在開發(fā)以太網(wǎng)接口的過程中經??吹?MII、RMII、GMII、RGMII 等英文縮寫名稱。在開發(fā)接口前,先將這些名詞搞清楚。
1 MII
MII(Medium Independent Interface)的縮寫,翻譯成中文是“介質獨立接口”,該接口一般應用于以太網(wǎng)硬件平臺的 MAC 層和 PHY 層之間,MII 接口的類型有很多,常用的有 MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI 等。
MII 支持 10 兆和 100 兆的操作,一個接口由 14 根線組成,它的支持還是比較靈活的,但是有一個缺點是因為它一個端口用的信號線太多
RXD(Receive Data)[3:0]:數(shù)據(jù)接收信號,共 4 根信號線;
TX_ER(Transmit Error):發(fā)送數(shù)據(jù)錯誤提示信號,同步于 TX_CLK,高電平有效,表示 TX_ER 有效期內傳輸?shù)臄?shù)據(jù)無效。對于 10Mbps 速率下,TX_ER 不起作用;
RX_ER(Receive Error):接收數(shù)據(jù)錯誤提示信號,同步于 RX_CLK,高電平有效,表示 RX_ER 有效期內傳輸?shù)臄?shù)據(jù)無效。對于 10Mbps 速率下,RX_ER 不起作用;
TX_EN(Transmit Enable):發(fā)送使能信號,只有在 TX_EN 有效期內傳的數(shù)據(jù)才有效;
RX_DV(Reveive Data Valid):接收數(shù)據(jù)有效信號,作用類型于發(fā)送通道的 TX_EN;
TX_CLK:發(fā)送參考時鐘,100Mbps 速率下,時鐘頻率為 25MHz,10Mbps 速率下,時鐘頻率為 2.5MHz。注意,TX_CLK 時鐘的方向是從 PHY 側指向 MAC 側的,因此此時鐘是由 PHY 提供的。
RX_CLK:接收數(shù)據(jù)參考時鐘,100Mbps 速率下,時鐘頻率為 25MHz,10Mbps 速率下,時鐘頻率為 2.5MHz。RX_CLK 也是由 PHY 側提供的。
CRS:Carrier Sense,載波偵測信號,不需要同步于參考時鐘,只要有數(shù)據(jù)傳輸,CRS 就有效,另外,CRS 只有 PHY 在半雙工模式下有效;
COL:Collision Detectd,沖突檢測信號,不需要同步于參考時鐘,只有 PHY 在半雙工模式下有效。
MII 接口一共有 16 根線。
2 RMII
RMII 是簡化的 MII 接口,在數(shù)據(jù)的收發(fā)上它比 MII 接口少了一倍的信號線,所以它一般要求是 50 兆的總線時鐘,是 MII 接口時鐘的兩倍。
3 GMII
與 MII 接口相比,GMII 的數(shù)據(jù)寬度由 4 位變?yōu)?8 位,GMII 接口中的控制信號如 TX_ER、TX_EN、RX_ER、RX_DV、CRS 和 COL 的作用同 MII 接口中的一樣,發(fā)送參考時鐘 GTX_CLK 和接收參考時鐘 RX_CLK 的頻率均為 125MHz(1000Mbps/8=125MHz)。
在這里有一點需要特別說明下,那就是發(fā)送參考時鐘 GTX_CLK,它和 MII 接口中的 TX_CLK 是不同的,MII 接口中的 TX_CLK 是由 PHY 芯片提供給 MAC 芯片的,而 GMII 接口中的 GTX_CLK 是由 MAC 芯片提供給 PHY 芯片的。兩者方向不一樣。
在實際應用中,絕大多數(shù) GMII 接口都是兼容 MII 接口的,所以,一般的 GMII 接口都有兩個發(fā)送參考時鐘:TX_CLK 和 GTX_CLK(兩者的方向是不一樣的,前面已經說過了),在用作 MII 模式時,使用 TX_CLK 和 8 根數(shù)據(jù)線中的 4 根。
GMII 是千兆網(wǎng)的 MII 接口。GMII 采用 8 位接口數(shù)據(jù),工作時鐘 125MHz,因此傳輸速率可達 1000Mbps。同時兼容 MII 所規(guī)定的 10/100 Mbps 工作方式。
4 RGMII
RGMII 接口表示簡化了的 GMII 接口。RGMII 均采用 4 位數(shù)據(jù)接口,工作時鐘 125MHz,并且在上升沿和下降沿同時傳輸數(shù)據(jù),因此傳輸速率可達 1000Mbps。同時兼容 MII 所規(guī)定的 10/100 Mbps 工作方式,支持傳輸速率:10M/100M/1000Mb/s ,其對應 clk 信號分別為:2.5MHz/25MHz/125MHz。