本文主要介紹以太網Drive Side接口(MAC和PHY之間的接口),也被稱為MII(Media Independent Interface),支持從10M到100G的不同應用場合,主要包括MII、RMII、SMII(Cisco Systems Specification)、SSMII、S3MII、GMII、RGMII、SGMII、QSGMII(Cisco Systems Specification)、TBI、RTBI、XGMII、XAUI、RXAUI、XLGMII、XLAUI、CGMII、CAUI、HIGIG(Broadcom Specification)、Interlaken等接口,下面就針對10Mbps到100Gbps的不同接口進行介紹,最后介紹一下PHY芯片的控制接口MDIO BUS。
1、MII接口
100Mbps速率下,時鐘頻率為25MHz,10Mbps速率下,時鐘頻率為2.5MHz。TXC和RXC均由PHY提供。PHY在TXC的上升沿采樣TXD上的數據,MAC在RXC的上升沿采樣RXD上的數據。
2、RMII接口
REF_CLK是由外部時鐘源提供的50MHz參考時鐘,與MII接口不同,MII接口中的接收時鐘和發(fā)送時鐘是分開的,而且都是由PHY芯片提供給MAC芯片的。這里需要注意的是,由于數據接收時鐘是由外部晶振提供而不是由載波信號提取的,所以在PHY層芯片內的數據接收部分需要設計一個FIFO,用來協調兩個不同的時鐘,在發(fā)送接收的數據時提供緩沖。PHY層芯片的發(fā)送部分則不需要FIFO,它直接將接收到的數據發(fā)送到MAC就可以了。
3、SMII(Cisco Systems Specification)接口
REF_CLK:所有端口共用的一個參考時鐘,頻率為125MHz,為什么100Mbps速率要用125MHz時鐘呢?因為在每8位數據中會插入2位控制信號。
TXD/RXD以10比特為一組,以SYNC為高電平來指示一組數據的開始,在SYNC變高后的10個時鐘周期內,TXD上依次輸出的數據是:TXD[7:0]、TX_EN、TX_ER,控制信號的含義與MII接口中的相同;RXD上依次輸出的數據是:RXD[7:0]、RX_DV、CRS,RXD[7:0]的含義與RX_DV有關,當RX_DV為有效時(高電平),RXD[7:0]上傳輸的是物理層接收的數據。當RX_DV為無效時(低電平),RXD[7:0]上傳輸的是物理層的狀態(tài)信息數據。
當速率為10Mbps時,每一組數據要重復10次,MAC/PHY芯片每10個周期采樣一次。MAC/PHY芯片在接收到數據后會進行串/并轉換。
?4、SSMII接口
5、S3MII接口
6、GMII接口
GMII的數據寬度為8位,GMII接口中的發(fā)送參考時鐘GTX_CLK和接收參考時鐘RX_CLK的頻率均為125MHz(1000Mbps/8=125MHz)。GMII接口中的GTX_CLK是由MAC芯片提供給PHY芯片。
在實際應用中,絕大多數GMII接口都是兼容MII接口的,一般的GMII接口都有兩個發(fā)送參考時鐘:TX_CLK和GTX_CLK(兩者的方向是不一樣的),在用作MII模式時,使用TX_CLK和8根數據線中的4根。
7、RGMII接口
RGMII的時鐘頻率為125MHz,TX/RX數據寬度從8為變?yōu)?位,為了保持1000Mbps的傳輸速率不變,RGMII接口在時鐘的上升沿和下降沿都采樣數據。在參考時鐘的上升沿發(fā)送GMII接口中的TXD[3:0]/RXD[3:0],在參考時鐘的下降沿發(fā)送GMII接口中的TXD[7:4]/RXD[7:4]。RGMII同時也兼容100Mbps和10Mbps兩種速率,此時參考時鐘速率分別為25MHz和2.5MHz。
TX_EN信號線上傳送TX_EN和TX_ER兩種信息,在TX_CLK的上升沿發(fā)送TX_EN,下降沿發(fā)送TX_ER;同樣的,RX_DV信號線上也傳送RX_DV和RX_ER兩種信息,在RX_CLK的上升沿發(fā)送RX_DV,下降沿發(fā)送RX_ER。
8、SGMII接口
SGMII收發(fā)各一對差分信號線,時鐘頻率625MHz,在時鐘信號的上升沿和下降沿均采樣,參考時鐘RX_CLK由PHY提供,是可選的,主要用于MAC側沒有時鐘的情況,一般情況下,RX_CLK不使用。收發(fā)都可以從數據中恢復出時鐘。
在TXD發(fā)送的串行數據中,每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”情況,影響時鐘信息的提取。
9、TBI接口
TBI即Ten BitInterface的意思,接口數據位寬由GMII接口的8位增加到10位,其實,TBI接口跟GMII接口的差別不是很大,多出來的2位數據主要是因為在TBI接口下,MAC芯片在將數據發(fā)給PHY芯片之前進行了8b/10b變換(8b/10b變換本是在PHY芯片中完成的,TBI在MAC中完成了,所以每傳輸一個字節(jié)需要傳輸10bit數據)。
RBC0和RBC1是從接收數據中恢復出來的半頻時鐘,頻率為62.5MHz,RBC0和RBC1不是差分信號,而是兩個獨立的信號,兩者之間有180度的相位差,在這兩個時鐘的上升沿都采樣數據。RBC0和RBC1也叫偽差分信號。除掉上面說到的之外,剩下的信號都跟GMII接口中的相同。
大多數芯片的TBI接口和GMII接口兼容。在用作TBI接口時,CRS和COL一般不用。
10、RTBI接口
RTBI接口數據位寬為5bit,時鐘頻率為125MHz,在時鐘的上升沿和下降沿都采樣數據,同RGMII接口一樣,TX_EN線上會傳送TX_EN和TX_ER兩種信息,在時鐘的上升沿傳TX_EN,下降沿傳TX_ER;RX_DV線上傳送RX_DV和RX_ER兩種信息,在RX_CLK上升沿傳RX_DV,下降沿傳RX_ER。
11、XGMII接口
XGMII接口的單端信號采用HSTL/SSTL_2邏輯,端口電壓1.5V/2.5V,由于SSTL_2的端口電壓高,功耗大,現在已很少使用。
TXC[3:0]:發(fā)送通道控制信號,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_CLK:TXD和TXC的參考時鐘,時鐘頻率156.25MHz,在時鐘信號的上升沿和下降沿都采樣數據。
RX_CLK:RXD和RXC的參考時鐘,時鐘頻率156.25MHz,在時鐘信號的上升沿和下降沿都采樣數據。156.25MHz*2*32=10Gbps。
XGMII接口還有XLGMII(40Gb)、CGMII(100Gb)等變種。其基本已經被XAUI/XLAUI/CAUI接口取代了。
12、XAUI接口
XAUI接口有如下一系列的變種:RXAUI、XLAUI(40Gb)、CAUI(100Gb)等。
由于受電氣特性的影響,XGMII接口的PCB走線最大傳輸距離僅有7cm,并且XGMII接口的連線數量太多,給實際應用帶來不便。因此,在實際應用中,XGMII接口通常被XAUI接口代替,XAUI即10Gigabit Attachment Unit Interface,XAUI在XGMII的基礎上實現了XGMII接口的物理距離擴展,將PCB走線的傳輸距離增加到50cm,使背板走線成為可能。
源端XGMII把收發(fā)32位寬度數據流分為4個獨立的lane通道,每個lane通道對應一個字節(jié),經XGXS(XGMII ExtenderSublayer)完成8b/10b編碼后,將4個lane分別對應XAUI的4個獨立通道,XAUI端口速率為:2.5Gbps*1.25*4=12.5Gbps。
在發(fā)送端的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]中發(fā)出去,在接收端的XGXS模塊中,串行數據被轉換成并行,并且進行時鐘恢復和補償,完成時鐘去抖,經過5b/4b解碼后,重新聚合成XGMII。
XAUI接口采用差分線,收發(fā)各四對,CML邏輯,AC耦合方式,耦合電容在10nF~100nF之間。
XAUI接口可以直接接光模塊,如XENPAK/X2等。也可以轉換成一路10G信號XFI,接XFP/SFP+等。
有些芯片不支持XAUI接口,只支持XGMII接口,這時可以用專門的芯片進行XGMII→XAUI接口轉換,如BCM8011等。
XAUI/XLAUI/CAUI是四通道串行總線,采用的差分信號,CML邏輯傳輸,并且進行了擾碼,大大增強了信號的抗擾性能,使得信號的有效傳輸距離增加到50cm。
XAUI/XLAUI/CAUI在物理結構上是一樣的,收發(fā)通道獨立,各四對差分信號線。
對于XAUI總線,每對差分線上的數據速率為3.125Gbps,總數據帶寬為12.5Gbps,有效帶寬為12.5Gbps*0.8=10Gbps(因為XAUI總線數據在傳輸前進行了8b/10b變換,編碼效率為80%)。
對于XLAUI總線,每對差分線上的數據速率為10.3125Gbps,總數據帶寬為41.25Gbps,有效帶寬為41.25Gbps*(64/66)=40Gbps(因為XLAUI總線數據在傳輸前進行了64b/66B變換,編碼效率為96.97%)。
對于CAUI總線,每對差分線上的數據速率為25.78125Gbps,總數據帶寬為103.125Gbps,有效帶寬為103.125Gbps*(64/66)=100Gbps(因為CAUI總線數據在傳輸前進行了64B/66B變換,編碼效率為96.97%)。
13、Interlaken
Interlaken是Cisco和Cortina公司共同推出的一種高速通道化的C2C(芯片間)接口協議。主要用于10Gbps端口的MAC、OC-768SONET Framer、下一代100Gbps以太網集成電路、100Gbps Swich Fabric與包處理器。主要有以下特征:
- 支持256個通道,可以擴展到64K;
- 與SPI4.2(SystemPacket Interface Level 4 (SPI-4) Phase 2 Revision 1: OC-192 System Interfacefor Physical and Link Layer Devices.(OIF-SPI-4-2.1))類似,通過簡單control word來表示packet;
- 通過Meta Frame完成各個lane的對齊;
- 協議本身和實際使用lane數目和SerDes速率無關;
- 提供帶外帶內兩種flow control方式,以及xon/xoff的整個接口的flow control;
- 采用64/67B數據編碼;
- 接口本身性能隨lane增加而同比增加。
TX_Ddta[n:0]p/n:數據發(fā)送通道,CML差分電平,每對差分線速率為1~6.25Gbps;
TX_FC_CLK:數據發(fā)送通道帶外流控參考時鐘,LVCMOS電平;
TX_FC_SYNC:數據發(fā)送通道帶外流控同步信號,LVCMOS電平;
TX_FC_DATA:數據發(fā)送通道帶外流控數據信號,LVCMOS電平;
RX_Ddta[n:0]p/n:數據接收通道,CML差分電平,每對差分線速率為1~6.25Gbps;
RX_FC_CLK:數據接收通道帶外流控參考時鐘,LVCMOS電平;
RX_FC_SYNC:數據接收通道帶外流控同步信號,LVCMOS電平;
RX_FC_DATA:數據接收通道帶外流控數據信號,LVCMOS電平;
14、MDIO BUS(SMI(Serial Management Interface))
MDIO是一個以太網控制器的傳輸協議,廣泛用于以太網控制器和PHY之間的數據通訊。
MDIO(Management Data Input/Output),管理數據輸入輸出總線。它是由IEEE802.3定義的以太網行業(yè)標準,它承載著MAC層和物理層通信的重任。MDIO接口包括兩根信號線:時鐘線MDC,數據線MDIO(雙向),MAC層芯片(或其他控制芯片)可以通過它們訪問物理層芯片的寄存器,并通過這些寄存器來對物理芯片進行控制和管理。
MDC(Management Data Clock):管理接口的時鐘,是一個非周期信號,信號的最小周期為400ns(最快2.5MHz),最小正電平時間和負電平時間為160ns,最大正負電平時間無限制。
MDIO(Management Data Input/Output):是雙向的數據線,用來傳送MAC層的控制信息和物理層的狀態(tài)信息。它與MDC時鐘同步,在MDC上升沿有效。
14.1、MDIO幀格式
PRE:幀前綴域,為32個連續(xù)“1”比特,這幀前綴域不是必需的,某些物理層芯片的MDIO操作就沒有這個域。
ST:幀開始標識碼,為“01”。
OP:幀操作碼(讀寫操作),比特“10”表示此幀為一讀操作幀,比特“01”表示此幀為一寫操作幀。
PHYAD:PHY芯片的地址,5個比特,每個芯片都把自己的地址與這5個比特進行比較,若匹配則響應后面的操作,若不匹配,則忽略掉后面的操作。一個系統最多聯31個PHY(地址0為保留)。
REGAD:用來選擇物理層芯片的32個寄存器中的某個寄存器的地址。一個PHY上最多32個寄存器地址(可以使用shadow value技術,訪問更多的寄存器)。
TA:狀態(tài)轉換域,若為讀操作,則第一比特時MDIO為高阻態(tài),第二比特時由物理層芯片使MDIO置“0”。若為寫操作,則MDIO仍由MAC層芯片控制,其連續(xù)輸出“10”兩個比特。
DATA:幀的寄存器的數據域,16比特,若為讀操作,則為物理層送到MAC層的數據,若為寫操作,則為MAC層送到物理層的數據。
IDLE:幀結束后的空閑狀態(tài),此時MDIO無源驅動,處于高阻狀態(tài),但一般用上拉電阻使其處在高電平,即MDIO引腳需要上拉電阻。
14.2、MDIO操作時序
MDIO工作流程如下:
- Preamle(PRE):在沒有傳輸數據的空閑狀態(tài)時,數據線MDIO處于高阻態(tài)(由于外部上拉,故一直為1)。
- Start of Frame(ST):MAC驅動MDIO線,出現一個2bit的開始標識碼(01)。
- Operation Code(OP):MAC驅動MDIO線,出現一個2bit數據來標識是讀操作(10)還是寫操作(01)。
- PHY Address(PHYAD):MAC驅動MDIO線,出現一個5bit數據標識PHY的地址,對應該地址的PHY芯片會響應。
- Reg Address(REGAD):MAC驅動MDIO線,出現一個5bit的PHY芯片寄存器地址(需要讀/寫的地址)。
- Turnaround(TA):寫操作的話,MAC驅動MDIO線,出現10;讀操作的話,MDIO pin of MAC must be put in high-impedance state,在第二個周期,PHY驅動MDIO線,出現0。
- Data,MDIO串行讀出/寫入PHY芯片寄存器的數據(16bit)。
- 最后MDIO恢復成空閑狀態(tài)(IDLE),同時MDIO進入高阻狀態(tài)。
本文主要介紹了以太網MAC和PHY之間的接口,支持10Mbps到100Gbps的不同速率等級,同時介紹了PHY芯片的控制接口MDIO總線。
-
以太網
+關注
關注
40文章
5343瀏覽量
170801 -
PHY
+關注
關注
2文章
301瀏覽量
51659 -
RMII
+關注
關注
0文章
8瀏覽量
12039 -
Side
+關注
關注
0文章
2瀏覽量
7689 -
控制接口
+關注
關注
0文章
15瀏覽量
10853
發(fā)布評論請先 登錄
相關推薦
評論