1. 程式人生 > 其它 >乙太網詳解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介紹

乙太網詳解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介紹

網路裝置中肯定離開不MAC和PHY,本篇文章將詳細介紹下乙太網中一些常見術語與介面。

MAC和PHY結構

從硬體角度來看乙太網是由CPU,MAC,PHY三部分組成的,如下圖示意:


上圖中DMA整合在CPU,CPU,MAC,PHY並不是整合在同一個晶片內,由於PHY包含大量模擬器件,而MAC是典型的數位電路,考慮到芯片面積及模擬/數字混合架構的原因,將MAC整合進CPU而將PHY留在片外,這種結構是最常見的。 下圖是網路介面內部結構圖,虛框表示CPU,MAC整合在CPU中,PHY晶片通過MII介面與CPU上的MAC連線:


以上是乙太網結構大框架,下面分別介紹各個部分。


MAC

MAC(Media Access Control)

 即媒體訪問控制層協議。MAC由硬體控制器及MAC通訊協議構成。該協議位於OSI七層協議中資料鏈路層的下半部分,主要負責控制與連線物理層的物理介質。MAC硬體框圖如下圖所示:

在傳送資料的時候,MAC協議可以事先判斷是否可以傳送資料,如果可以傳送將給資料加上一些控制資訊,最終將資料以及控制資訊以規定的格式傳送到物理層;在接收資料的時候,MAC協議首先判斷輸入的資訊並是否發生傳輸錯誤,如果沒有錯誤,則去掉控制資訊傳送至LLC(邏輯鏈路控制)層。該層協議是乙太網MAC由IEEE-802. 3乙太網標準定義。一般乙太網MAC晶片的一端連線PCI匯流排,另一端連線PHY晶片上通過MII介面連線。


PHY

PHY(Physical Layer)是IEEE802.3中定義的一個標準模組,STA(Station Management Entity,管理實體,一般為MAC或CPU)通過MIIM(MII Manage Interface)對PHY的行為、狀態進行管理和控制,而具體管理和控制動作是通過讀寫PHY內部的暫存器實現的。PHY的基本結構如下圖:

PHY在傳送資料的時候,收到MAC過來的資料(對PHY來說,沒有幀的概念,對它來說,都是資料)然後把並行資料轉化為序列流資料,再按照物理層的編碼規則把資料編碼,再變為模擬訊號把資料送出去,收資料時的流程反之。
PHY還有個重要的功能就是實現CSMA/CD的部分功能,它可以檢測到網路上是否有資料在傳送,如果有資料在傳送中就等待,一旦檢測到網路空閒,再等待一個隨機時間後將送資料出去.如果兩個碰巧同時送出了資料,那樣必將造成衝突,這時候衝突檢測機構可以檢測到衝突,然後各等待一個隨機的時間重新發送資料。

PHY暫存器的地址空間為5位,從0到31最多可以定義32個暫存器(隨著晶片功能不斷增加,很多PHY晶片採用分頁技術來擴充套件地址空間以定義更多的暫存器),IEEE802.3定義了地址為0-15這16個暫存器的功能,地址16-31的暫存器留給晶片製造商自由定義,如下表所示:

注:

  1. 上圖B和E表示在特定介面下,暫存器是基本的還是擴充套件的。例如:MII介面下只有0和1暫存器是基本的,其它的是擴充套件的。所為擴充套件是指留給IEEE以後的擴充套件特性用,不是給PHY廠商的擴充套件,PHY廠商自定義的只能是16~31號暫存器 。
  2. 在IEEE標準文件及某些PHY手冊中,某暫存器的位元(bit)用X.y表示,如0.15表示第0暫存器的第15位。

MII

MII(Media Independent interface)即介質無關介面,它是IEEE-802.3定義的行業標準,是MAC與PHY之間的介面。MII資料介面包含16個訊號和2個管理介面訊號,如下圖所示:


訊號定義如下:

訊號名稱 描述 方向
TX_CLK 傳送時鐘 PHY → MAC
TX_ER 傳送資料錯誤 MAC → PHY
TX_EN 傳送使能 MAC → PHY
TXD0 傳送資料位0(最先傳輸) MAC → PHY
TXD1 傳送資料位1 MAC → PHY
TXD2 傳送資料位2 MAC → PHY
TXD3 傳送資料位3 MAC → PHY
RX_CLK 接收時鐘 PHY → MAC
RX_DV 接收資料有效 PHY → MAC
RX_ER 接收資料錯誤 PHY → MAC
RXD0 接收資料位0(最先傳輸) PHY → MAC
RXD1 接收資料位1 PHY → MAC
RXD2 接收資料位2 PHY → MAC
RXD3 接收資料位3 PHY → MAC
CRS 載波監測 PHY → MAC
COL 衝突碰撞監測 PHY → MAC
MDIO 管理資料 雙向
MDC 管理資料時鐘 MAC → PHY

MAC 通過MIIM 介面讀取PHY 狀態暫存器以得知目前PHY 的狀態。例如連線速度、雙工的能力等。也可以通過 MIIM設定PHY的暫存器達到控制的目的。例如流控的開啟關閉、自協商模式還是強制模式等。MII以4位半位元組方式傳送資料雙向傳輸,時鐘速率25MHz。其工作速率可達100Mb/s。當時鍾頻率為2.5MHz時,對應速率為10Mb/s。MII介面雖然很靈活但由於訊號線太多限制多介面網口的發展,後續又衍生出RMII,SMII等。


RMII

RMII(Reduced Media Independant Interface),精簡MII介面,節省了一半的資料線。RMII收發使用2位資料進行傳輸,收發時鐘均採用50MHz時鐘源。訊號定義如下:

訊號名稱 描述 方向
REF_CLK 參考時鐘 MAC→PHY或由外部時鐘源提供
TX_EN 傳送資料使能 MAC → PHY
TXD0 傳送資料位0(最先傳輸) MAC → PHY
TXD1 傳送資料位1 MAC → PHY
RX_ER 接收錯誤 PHY → MAC
RXD0 接收資料位0(最先傳輸) PHY → MAC
RXD1 接收資料1 PHY → MAC
CRS_DV 載波和接收資料有效 PHY → MAC
MDIO 管理資料 雙向
MDC 管理資料時鐘 MAC → PHY

其中CRS_DV是MII中RX_DV和CRS兩個訊號的合併,當物理層接收到載波訊號後CRS_DV變得有效,將資料傳送給RXD。當載波訊號消失後,CRS_DV會變為無效。在100M乙太網速率中,MAC層每個時鐘取樣一次RXD[1:0]上的資料,在10M乙太網速率中,MAC層每10個時鐘取樣一次RXD[1:0]上的資料,此時物理層接收的每個資料會在RXD[1:0]保留10個時鐘。


SMII

SMII(Serial Media Independant Interface),序列MII介面。它包括TXD,RXD,SYNC三個訊號線,共用一個時鐘訊號,此時鐘訊號是125MHz,訊號線與此時鐘同步。訊號定義如下:

訊號名稱 描述 方向
REF_CLK 參考時鐘 外部時鐘源提供125MHz
TXD 傳送資料 MAC → PHY
RXD 接收資料 PHY → MAC
SYNC 同步訊號 -
MDIO 管理資料 雙向
MDC 管理資料時鐘 MAC → PHY

SYNC是資料收發的同步訊號,每10個時鐘同步置高一次電平,表示同步。TXD和RXD上的資料和控制資訊,以10bit為一組。傳送部分波形如下:

從波形可以看出,SYNC變高後的10個時鐘週期內,TXD依次輸出一組10bit的資料即TX_ER,TX_EN,TXD[0:7],這些控制資訊和MII介面含義相同。在100M速率中,每一組的內容都是變換的,在10M速率中,每一組資料需要重複10次,取樣任一一組都可以。


GMII

GMII(Gigabit Media Independant Interface),千兆MII介面。GMII採用8位介面資料,工作時鐘125MHz,因此傳輸速率可達1000Mbps。同時相容MII所規定的10/100 Mbps工作方式。GMII介面資料結構符合IEEE乙太網標準,該介面定義見IEEE 802.3-2000。訊號定義如下:

訊號名稱 描述 方向
GTX_CLK 1000M傳送時鐘 MAC → PHY
TX_CLK 100/10M傳送時鐘 MAC → PHY
TX_ER 傳送資料錯誤 MAC → PHY
TX_EN 傳送使能 MAC → PHY
TX_[7:0] 傳送資料8bit MAC → PHY
RX_CLK 接收時鐘 PHY → MAC
RX_DV 接收資料有效 PHY → MAC
RX_ER 接收資料錯誤 PHY → MAC
RX_[7:0] 接收資料8bit PHY → MAC
CRS 載波監測 PHY → MAC
COL 衝突碰撞監測 PHY → MAC
MDIO 管理資料 雙向
MDC 管理資料時鐘 MAC → PHY

RGMII

RGMII(Reduced Gigabit Media Independant Interface),精簡GMII介面。相對於GMII相比,RGMII具有如下特徵:

  • 傳送/接收資料線由8條改為4條
  • TX_ER和TX_EN複用,通過TX_CTL傳送
  • RX_ER與RX_DV複用,通過RX_CTL傳送
  • 1 Gbit/s速率下,時鐘頻率為125MHz
  • 100 Mbit/s速率下,時鐘頻率為25MHz
  • 10 Mbit/s速率下,時鐘頻率為2.5MHz

訊號定義如下:

訊號名稱 描述 方向
TXC 傳送時鐘 MAC→PHY
TX_CTL 傳送資料控制 MAC → PHY
TXD[3:0] 傳送資料4bit MAC → PHY
RXC 接收時鐘 PHY → MAC
RX_CTL 接收資料控制 PHY → MAC
RXD[3:0] 接收資料4bit PHY → MAC
MDIO 管理資料 雙向
MDC 管理資料時鐘 MAC → PHY

雖然RGMII訊號線減半,但TXC/RXC時鐘仍為125Mhz,為了達到1000Mbit的傳輸速率,TXD/RXD訊號線在時鐘上升沿傳送接收GMII介面中的TXD[3:0]/RXD[3:0],在時鐘下降沿傳送接收TXD[7:4]/RXD[7:4],並且訊號TX_CTL反應了TX_EN和TX_ER狀態,即在TXC上升沿傳送TX_EN,下降沿傳送TX_ER,同樣的道理試用於RX_CTL,下圖為傳送接收的時序:



參考

  1. Media-independent interface From Wikipedia
  2. Ethernet(乙太網)之 詳解 MAC、MII、PHY