MII接口

簡介

MII是英文Medium Independent Interface的縮寫,翻譯成中文是“介質獨立接口”,該接口一般應用於以太網硬件平臺的MAC層和PHY層之間,MII接口的類型有很多,常用的有MIIRMIISMIISSMIISSSMIIGMIIRGMIISGMIITBIRTBIXGMIIXAUIXLAUI等。下面對它們進行一一介紹。

 

MII接口:

TXD(Transmit Data)[3:0]:數據發送信號,共4根信號線;

RXD(Receive Data)[3:0]:數據接收信號,共4根信號線;

TX_ER(Transmit Error)  發送數據錯誤提示信號,同步於TX_CLK,高電平有效,表示TX_ER有效期內傳輸的數據無效。對於10Mbps速率下,TX_ER不起作用;

RX_ER(Receive Error)  接收數據錯誤提示信號,同步於RX_CLK,高電平有效,表示RX_ER有效期內傳輸的數據無效。對於10Mbps速率下,RX_ER不起作用;

TX_EN(Transmit Enable):發送使能信號,只有在TX_EN有效期內傳的數據纔有效;

RX_DV(Reveive Data Valid):接收數據有效信號,作用類型於發送通道的TX_EN

TX_CLK:發送參考時鐘,100Mbps速率下,時鐘頻率爲25MHz10Mbps速率下,時鐘頻率爲2.5MHz。注意,TX_CLK時鐘的方向是從PHY側指向MAC側的,因此此時鐘是由PHY提供的。

RX_CLK:接收數據參考時鐘,100Mbps速率下,時鐘頻率爲25MHz10Mbps速率下,時鐘頻率爲2.5MHzRX_CLK也是由PHY側提供的。

CRSCarrier Sense,載波偵測信號,不需要同步於參考時鐘,只要有數據傳輸,CRS就有效,另外,CRS只有PHY在半雙工模式下有效;

COLCollision Detectd,衝突檢測信號,不需要同步於參考時鐘,只有PHY在半雙工模式下有效。

MII接口一共有16根線。

 

RMII接口:

 

RMIIReduced MII,是MII的簡化板,連線數量由MII16根減少爲8根。

TXD[1:0]:數據發送信號線,數據位寬爲2,是MII接口的一半;

RXD[1:0]:數據接收信號線,數據位寬爲2,是MII接口的一半;

TX_EN(Transmit Enable):數據發送使能信號,與MII接口中的該信號線功能一樣;

RX_ER(Receive Error):數據接收錯誤提示信號,與MII接口中的該信號線功能一樣;

CLK_REF:是由外部時鐘源提供的50MHz參考時鐘,與MII接口不同,MII接口中的接收時鐘和發送時鐘是分開的,而且都是由PHY芯片提供給MAC芯片的。這裏需要注意的是,由於數據接收時鐘是由外部晶振提供而不是由載波信號提取的,所以在PHY層芯片內的數據接收部分需要設計一個FIFO,用來協調兩個不同的時鐘,在發送接收的數據時提供緩衝。PHY層芯片的發送部分則不需要FIFO,它直接將接收到的數據發送到MAC就可以了。

CRS_DV:此信號是由MII接口中的RX_DVCRS兩個信號合併而成。當介質不空閒時,CRS_DVRE_CLK相異步的方式給出。當CRSRX_DV早結束時(即載波消失而隊列中還有數據要傳輸時),就會出現CRS_DV在半位元組的邊界以25MHz/2.5MHz的頻率在01之間的來回切換。因此,MAC能夠從 CRS_DV中精確的恢復出RX_DVCRS

100Mbps速率時,TX/RX每個時鐘週期採樣一個數據;在10Mbps速率時,TX/RX每隔10個週期採樣一個數據,因而TX/RX數據需要在數據線上保留10個週期,相當於一個數據發送10次。

PHY層芯片收到有效的載波信號後,CRS_DV信號變爲有效,此時如果FIFO中還沒有數據,則它會發送出全0的數據給MAC,然後當FIFO中填入有效的數據幀,數據幀的開頭是“101010---”交叉的前導碼,當數據中出現“01”的比特時,代表正式數據傳輸開始,MAC芯片檢測到這一變化,從而開始接收數據。

當外部載波信號消失後,CRS_DV會變爲無效,但如果FIFO中還有數據要發送時,CRS_DV在下一週期又會變爲有效,然後再無效再有效,直到FIFO中數據發送完爲止。在接收過程中如果出現無效的載波信號或者無效的數據編碼,則RX_ER會變爲有效,表示物理層芯片接收出錯。

 

SMII接口:

  SMIISerial MII,串行MII的意思,跟RMII相比,連線進一步減少到4根;

TXD:發送數據信號,位寬爲1

RXD:接收數據信號,位寬爲1

SYNC:收發數據同步信號,每10個時鐘週期置1次高電平,指示同步。

CLK_REF:所有端口共用的一個參考時鐘,頻率爲125MHz,爲什麼100Mbps速率要用125MHz時鐘?因爲在每8位數據中會插入2位控制信號,請看下面介紹。

 TXD/RXD10比特爲一組,以SYNC爲高電平來指示一組數據的開始,在SYNC變高後的10個時鐘週期內,TXD上依次輸出的數據是:TXD[7:0]TX_ENTX_ER,控制信號的含義與MII接口中的相同;RXD上依次輸出的數據是:RXD[7:0]RX_DVCRSRXD[7:0]的含義與RX_DV有關,當RX_DV爲有效時(高電平)RXD[7:0]上傳輸的是物理層接收的數據。當RX_DV爲無效時(低電平)RXD[7:0]上傳輸的是物理層的狀態信息數據。見下表:

當速率爲10Mbps時,每一組數據要重複10次,MAC/PHY芯片每10個週期採樣一次。

MAC/PHY芯片在接收到數據後會進行串/並轉換。

 

SSMII接口:

SSMIISerial Sync MII,叫串行同步接口,跟SMII接口很類似,只是收發使用獨立的參考時鐘和同步時鐘,不再像SMII那樣收發共用參考時鐘和同步時鐘,傳輸距離比SMII更遠。

 

SSSMII接口:

SSSMIISource Sync Serial MII,叫源同步串行MII接口,SSSMIISSMII的區別在於參考時鐘和同步時鐘的方向,SSMIITX/RX參考時鐘和同步時鐘都是由PHY芯片提供的,而SSSMIITX參考時鐘和同步時鐘是由MAC芯片提供的,RX參考時鐘和同步時鐘是由PHY芯片提供的,所以顧名思義叫源同步串行。

 

GMII接口:

         與MII接口相比,GMII的數據寬度由4位變爲8位,GMII接口中的控制信號如TX_ERTX_ENRX_ERRX_DVCRSCOL的作用同MII接口中的一樣,發送參考時鐘GTX_CLK和接收參考時鐘RX_CLK的頻率均爲125MHz(1000Mbps/8=125MHz)

         在這裏有一點需要特別說明下,那就是發送參考時鐘GTX_CLK,它和MII接口中的TX_CLK是不同的,MII接口中的TX_CLK是由PHY芯片提供給MAC芯片的,而GMII接口中的GTX_CLK是由MAC芯片提供給PHY芯片的。兩者方向不一樣。

         在實際應用中,絕大多數GMII接口都是兼容MII接口的,所以,一般的GMII接口都有兩個發送參考時鐘:TX_CLKGTX_CLK(兩者的方向是不一樣的,前面已經說過了),在用作MII模式時,使用TX_CLK8根數據線中的4根。

 

RGMII接口:

        RGMIIReduced GMII,是RGMII的簡化版本,將接口信號線數量從24根減少到14(COL/CRS端口狀態指示信號,這裏沒有畫出),時鐘頻率仍舊爲125MHzTX/RX數據寬度從8爲變爲4位,爲了保持1000Mbps的傳輸速率不變,RGMII接口在時鐘的上升沿和下降沿都採樣數據。在參考時鐘的上升沿發送GMII接口中的TXD[3:0]/RXD[3:0],在參考時鐘的下降沿發送GMII接口中的TXD[7:4]/RXD[7:4]RGMI同時也兼容100Mbps10Mbps兩種速率,此時參考時鐘速率分別爲25MHz2.5MHz

        TX_EN信號線上傳送TX_ENTX_ER兩種信息,在TX_CLK的上升沿發送TX_EN,下降沿發送TX_ER;同樣的,RX_DV信號線上也傳送RX_DVRX_ER兩種信息,在RX_CLK的上升沿發送RX_DV,下降沿發送RX_ER

 

SGMII接口:

        SGMIISerial GMII,串行GMII,收發各一對差分信號線,時鐘頻率625MHz,在時鐘信號的上升沿和下降沿均採樣,參考時鐘RX_CLKPHY提供,是可選的,主要用於MAC側沒有時鐘的情況,一般情況下,RX_CLK不使用。收發都可以從數據中恢復出時鐘。

        在TXD發送的串行數據中,每8比特數據會插入TX_EN/TX_ER 兩比特控制信息,同樣,在RXD接收數據中,每8比特數據會插入RX_DV/RX_ER 兩比特控制信息,所以總的數據速率爲1.25Gbps=625Mbps*2.

        其實,大多數MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模塊,而不需要PHY層芯片,此時時鐘速率仍舊是625MHz,不過此時跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因爲插入了控制信息,而SerDes端口速率被提高是因爲進行了8B/10B變換,本來8B/10B變換是PHY芯片的工作,在SerDes接口中,因爲外面不接PHY芯片,此時8B/10B變換在MAC芯片中完成了。8B/10B變換的主要作用是擾碼,讓信號中不出現過長的連“0”和連“1”情況,影響時鐘信息的提取,關於8B/10B變換知識,我後續會單獨介紹。

 

TBI接口:

        TBITen Bit Interface的意思,接口數據位寬由GMII接口的8位增加到10位,其實,TBI接口跟GMII接口的差別不是很大,多出來的2位數據主要是因爲在TBI接口下,MAC芯片在將數據發給PHY芯片之前進行了8B/10B變換(8B/10B變換本是在PHY芯片中完成的,前面已經說過了),另外,RX_CLK+/-是從接收數據中恢復出來的半頻時鐘,頻率爲62.5MHzRX_CLK+/-不是差分信號,而是兩個獨立的信號,兩者之間有180度的相位差,在這兩個時鐘的上升沿都採樣數據。RX_CLK+/-也叫僞差分信號。除掉上面說到的之外,剩下的信號都跟GMII接口中的相同。

        大多數芯片的TBI接口和GMII接口兼容。在用作TBI接口時,CRSCOL一般不用。

 

RTBI接口:

        RTBIReduced TBI,簡化版TBI,接口數據位寬爲5bit,時鐘頻率爲125MHz,在時鐘的上升沿和下降沿都採樣數據,同RGMII接口一樣,TX_EN線上會傳送TX_ENTX_ER兩種信息,在時鐘的上升沿傳TX_EN,下降沿傳TX_ERRX_DV線上傳送RX_DVRX_ER兩種信息,在RX_CLK上升沿傳RX_DV,下降沿傳RX_ER

        萬兆以太網接口的端口速率爲10Gbps,主要有XGMIIXAUI兩種,另外還有HIGIG,不過HIGIGBroadcom公司的私有標準,這裏暫不介紹。

 

XGMII接口:

 

        TXD[31:0]:數據發送通道,32位並行數據。

  RXD[31:0]:數據接收通道,32位並行數據。

  TXC[3:0]:發送通道控制信號,TXC=0時,表示TXD上傳輸的是數據;TXC=1時,表示TXD上傳輸的是控制字符。TXC[3:0]分別對應TXD[31:24], TXD[23:16], TXD[15:8], TXD[7:0]

  RXC[3:0]:接收通道控制信號,RXC=0時,表示RXD上傳輸的是數據;RXC=1時,表示RXD上傳輸的是控制字符。RXC[3:0]分別對應RXD[31:24], RXD[23:16], RXD[15:8], RXD[7:0]

  TX_CLKTXDTXC的參考時鐘,時鐘頻率156.25MHz,在時鐘信號的上升沿和下降沿都採樣數據。156.25MHz * 2 * 32 = 10Gbps 

  RX_CLKRXDRXC的參考時鐘,時鐘頻率156.25MHz,在時鐘信號的上升沿和下降沿都採樣數據。

 

  XGMII接口共74根連線,單端信號,採用HSTL/SSTL_2邏輯,端口電壓1.5V/2.5V,由於SSTL_2的端口電壓高,功耗大,現在已很少使用。HSTLHigh Speed Transceiver Logic,高速發送邏輯的意思。SSTL,即Stub Series Terminated Logic,短路終止邏輯,主要用於高速內存接口,SSTL目前存在兩種標準,SSTL_33.3V標準;SSTL_22.5V標準。

 

XAUI接口:

       由於受電氣特性的影響,XGMII接口的PCB走線最大傳輸距離僅有7cm,並且XGMII接口的連線數量太多,給實際應用帶來不便,因此,在實際應用中,XGMII接口通常被XAUI接口代替,XAUI10 Gigabit attachment unit interface10G附屬單元接口,XAUIXGMII的基礎上實現了XGMII接口的物理距離擴展,將PCB走線的傳輸距離增加到50cm,使背板走線成爲可能。

       源端XGMII把收發32位寬度數據流分爲4個獨立的lane通道,每個lane通道對應一個字節,經XGXS(XGMII Extender Sublayer)完成8B/10B編碼後,將4lane分別對應XAUI4個獨立通道,XAUI端口速率爲:2.5Gbps * 1.25 * 412.5Gbps

 

  在發送端的XGXS模塊中,將TXD[31:0]/ RXD[31:0],TXC[3:0]/ RXC[3:0], TX_CLK/ RX_CLK轉換成串行數據從TX Lane[3:0]/ RX Lane[3:0]中發出去,在接收端的XGXS模塊中,串行數據被轉換成並行,並且進行時鐘恢復和補償,完成時鐘去抖,經過5B/4B解碼後,重新聚合成XGMII

 

  XAUI接口採用差分線,收發各四對,CML邏輯,AC耦合方式,耦合電容在10nF~100nF之間。

 

  XAUI接口可以直接接光模塊,如XENPAK/X2等。也可以轉換成一路10G信號XFI,接XFP/SFP+等。

 

  有些芯片不支持XAUI接口,只支持XGMII接口,這時可以用專門的芯片進行XGMIIà XAUI接口轉換,如BCM8011等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章