網絡通信路徑常可總結為:網絡數據-->RJ45接口-->網絡變壓器-->網絡PHY芯片-->MAC-->CPU,如圖1。其中網絡變壓器到PHY之前傳輸接口一般為MDI,而PHY到MAC之前的傳輸接口一般包括有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等,下面我們以RTL8211E為例對網絡通信路徑接口做一次梳理與總結,桑尼奇孫生,18576699326,QQ:2335804557,歡迎交流!(更多詳情)
、
對應于RTL8211E,在物理網線與RTL8211E之間,主要通過MDI接口傳輸,而對于RTL8211E與MAC之前的通信接口會隨RTL8211E的版本不同,會有些許差異,RTL8211E-VB-CG為RGMII接口,而RTL8211EG-VB-CG則是除RGMII接口外還具備MII、GMII接口。
以下則具體介紹這幾類接口 :
(1)MDI的全稱 Medium Dependent Interface ,網絡上給的翻譯是介質相關接口。在 hub或 switch 中有兩種接口,分別叫 MDI port和 MDI-X port, MDI port 也叫做級聯端口( uplink port ),是 hub 或 switch 之間相互連接的端口。 MDI port和 MDI-X port 之間最大的區別在于, MDI port內部發送數據線和接收數據線沒交叉,而MDI-X port 內部發送數據線和接收數據線是交叉的,這個X代表交叉的意思。
下圖示意了hub或switch內部的結構,transmit代表發送數據線,receive代表接收數據線,兩者在內部交叉著。
(2)MII接口
MII是英文Medium Independent Interface的縮寫,翻譯成中文是“介質獨立接口”,該接口一般應用于MAC層和PHY層之間的以太網數據傳輸,也可叫數據接口。
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速率下,時鐘頻率為25MHz,10Mbps速率下,時鐘頻率為2.5MHz。注意,TX_CLK時鐘的方向是從PHY側指向MAC側的,因此此時鐘是由PHY提供的。
RX_CLK:接收數據參考時鐘,100Mbps速率下,時鐘頻率為25MHz,10Mbps速率下,時鐘頻率為2.5MHz。RX_CLK也是由PHY側提供的。
CRS:Carrier Sense,載波偵測信號,不需要同步于參考時鐘,只要有數據傳輸,CRS就有效,另外,CRS只有PHY在半雙工模式下有效;
COL:Collision Detectd,沖突檢測信號,不需要同步于參考時鐘,只有PHY在半雙工模式下有效。
MII接口一共有16根線。
(2)RMII接口
RMII即Reduced MII,是MII的簡化板,連線數量由MII的16根減少為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_DV和CRS兩個信號合并而成。當介質不空閑時,CRS_DV和RE_CLK相異步的方式給出。當CRS比RX_DV早結束時(即載波消失而隊列中還有數據要傳輸時),就會出現CRS_DV在半位元組的邊界以25MHz/2.5MHz的頻率在0、1之間的來回切換。因此,MAC能夠從 CRS_DV中精確的恢復出RX_DV和CRS。
在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會變為有效,表示物理層芯片接收出錯。
(3)GMII接口
與MII接口相比,GMII的數據寬度由4位變為8位,GMII接口中的控制信號如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同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_CLK和GTX_CLK(兩者的方向是不一樣的,前面已經說過了),在用作MII模式時,使用TX_CLK和8根數據線中的4根。
(4)RGMII接口
RGMII即Reduced GMII,是GMII的簡化版本,將接口信號線數量從24根減少到14根(COL/CRS端口狀態指示信號,這里沒有畫出),時鐘頻率仍舊為125MHz,TX/RX數據寬度從8為變為4位,為了保持1000Mbps的傳輸速率不變,RGMII接口在時鐘的上升沿和下降沿都采樣數據。在參考時鐘的上升沿發送GMII接口中的TXD[3:0]/RXD[3:0],在參考時鐘的下降沿發送GMII接口中的TXD[7:4]/RXD[7:4]。RGMI同時也兼容100Mbps和10Mbps兩種速率,此時參考時鐘速率分別為25MHz和2.5MHz。
TX_EN信號線上傳送TX_EN和TX_ER兩種信息,在TX_CLK的上升沿發送TX_EN,下降沿發送TX_ER;同樣的,RX_DV信號線上也傳送RX_DV和RX_ER兩種信息,在RX_CLK的上升沿發送RX_DV,下降沿發送RX_ER。
桑尼奇專業供應網絡芯片,涉及USB轉RJ45芯片、千兆網絡PHY芯片、百兆網絡PHY芯片、千兆/百兆網絡集線器芯片等,涵蓋有Realtek、ICplus、TI、SMSC、Micrel等品牌,具本型號有RTL8152B/RTL8153B,RTL8211E、RTL8211F、RTL8201CP、RTL8201F、IP101GR、DP83848、LAN8720等,可提供樣品或型號推薦,歡迎咨詢。桑尼奇孫生:18576699326,QQ:2335804557.
(以上信息由深圳市桑尼奇科技有限公司提供)
評論列表: