以太網詳解(一)-MAC/PHY/MII/RMII/GMII/RGMII基本介紹 https://blog.csdn.net/sternlycore/article/details/89065789 網絡設備中肯定離開不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) 即媒體訪問控制層協(xié)議。MAC由硬件控制器及MAC通信協(xié)議構成。該協(xié)議位于OSI七層協(xié)議中數據鏈路層的下半部分,主要負責控制與連接物理層的物理介質。MAC硬件框圖如下圖所示: 在發(fā)送數據的時候,MAC協(xié)議可以事先判斷是否可以發(fā)送數據,如果可以發(fā)送將給數據加上一些控制信息,最終將數據以及控制信息以規(guī)定的格式發(fā)送到物理層;在接收數據的時候,MAC協(xié)議首先判斷輸入的信息并是否發(fā)生傳輸錯誤,如果沒有錯誤,則去掉控制信息發(fā)送至LLC(邏輯鏈路控制)層。該層協(xié)議是以太網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的行為、狀態(tài)進行管理和控制,而具體管理和控制動作是通過讀寫PHY內部的寄存器實現的。PHY的基本結構如下圖: PHY在發(fā)送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據)然后把并行數據轉化為串行流數據,再按照物理層的編碼規(guī)則把數據編碼,再變?yōu)槟M信號把數據送出去,收數據時的流程反之。 PHY還有個重要的功能就是實現CSMA/CD的部分功能,它可以檢測到網絡上是否有數據在傳送,如果有數據在傳送中就等待,一旦檢測到網絡空閑,再等待一個隨機時間后將送數據出去.如果兩個碰巧同時送出了數據,那樣必將造成沖突,這時候沖突檢測機構可以檢測到沖突,然后各等待一個隨機的時間重新發(fā)送數據。 PHY寄存器的地址空間為5位,從0到31最多可以定義32個寄存器(隨著芯片功能不斷增加,很多PHY芯片采用分頁技術來擴展地址空間以定義更多的寄存器),IEEE802.3定義了地址為0-15這16個寄存器的功能,地址16-31的寄存器留給芯片制造商自由定義,如下表所示: 注: 上圖B和E表示在特定接口下,寄存器是基本的還是擴展的。例如:MII接口下只有0和1寄存器是基本的,其它的是擴展的。所為擴展是指留給IEEE以后的擴展特性用,不是給PHY廠商的擴展,PHY廠商自定義的只能是16~31號寄存器 。 在IEEE標準文檔及某些PHY手冊中,某寄存器的比特(bit)用X.y表示,如0.15表示第0寄存器的第15位。 MII MII(Media Independent interface)即介質無關接口,它是IEEE-802.3定義的行業(yè)標準,是MAC與PHY之間的接口。MII數據接口包含16個信號和2個管理接口信號,如下圖所示: 信號定義如下: 信號名稱描述方向 TX_CLK發(fā)送時鐘PHY → MAC TX_ER發(fā)送數據錯誤MAC → PHY TX_EN發(fā)送使能MAC → PHY TXD0發(fā)送數據位0(最先傳輸)MAC → PHY TXD1發(fā)送數據位1MAC → PHY TXD2發(fā)送數據位2MAC → PHY TXD3發(fā)送數據位3MAC → PHY RX_CLK接收時鐘PHY → MAC RX_DV接收數據有效PHY → MAC RX_ER接收數據錯誤PHY → MAC RXD0接收數據位0(最先傳輸)PHY → MAC RXD1接收數據位1PHY → MAC RXD2接收數據位2PHY → MAC RXD3接收數據位3PHY → MAC CRS載波監(jiān)測PHY → MAC COL沖突碰撞監(jiān)測PHY → MAC MDIO管理數據雙向 MDC管理數據時鐘MAC → PHY MAC 通過MIIM 接口讀取PHY 狀態(tài)寄存器以得知目前PHY 的狀態(tài)。例如連接速度、雙工的能力等。也可以通過 MIIM設置PHY的寄存器達到控制的目的。例如流控的打開關閉、自協(xié)商模式還是強制模式等。MII以4位半字節(jié)方式傳送數據雙向傳輸,時鐘速率25MHz。其工作速率可達100Mb/s。當時鐘頻率為2.5MHz時,對應速率為10Mb/s。MII接口雖然很靈活但由于信號線太多限制多接口網口的發(fā)展,后續(xù)又衍生出RMII,SMII等。 RMII RMII(Reduced Media Independant Interface),精簡MII接口,節(jié)省了一半的數據線。RMII收發(fā)使用2位數據進行傳輸,收發(fā)時鐘均采用50MHz時鐘源。信號定義如下: 信號名稱描述方向 REF_CLK參考時鐘MAC→PHY或由外部時鐘源提供 TX_EN發(fā)送數據使能MAC → PHY TXD0發(fā)送數據位0(最先傳輸)MAC → PHY TXD1發(fā)送數據位1MAC → PHY RX_ER接收錯誤PHY → MAC RXD0接收數據位0(最先傳輸)PHY → MAC RXD1接收數據1PHY → MAC CRS_DV載波和接收數據有效PHY → MAC MDIO管理數據雙向 MDC管理數據時鐘MAC → PHY 其中CRS_DV是MII中RX_DV和CRS兩個信號的合并,當物理層接收到載波信號后CRS_DV變得有效,將數據發(fā)送給RXD。當載波信號消失后,CRS_DV會變?yōu)闊o效。在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發(fā)送數據MAC → PHY RXD接收數據PHY → MAC SYNC同步信號- MDIO管理數據雙向 MDC管理數據時鐘MAC → PHY SYNC是數據收發(fā)的同步信號,每10個時鐘同步置高一次電平,表示同步。TXD和RXD上的數據和控制信息,以10bit為一組。發(fā)送部分波形如下: 從波形可以看出,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所規(guī)定的10/100 Mbps工作方式。GMII接口數據結構符合IEEE以太網標準,該接口定義見IEEE 802.3-2000。信號定義如下: 信號名稱描述方向 GTX_CLK1000M發(fā)送時鐘MAC → PHY TX_CLK100/10M發(fā)送時鐘MAC → PHY TX_ER發(fā)送數據錯誤MAC → PHY TX_EN發(fā)送使能MAC → PHY TX_[7:0]發(fā)送數據8bitMAC → PHY RX_CLK接收時鐘PHY → MAC RX_DV接收數據有效PHY → MAC RX_ER接收數據錯誤PHY → MAC RX_[7:0]接收數據8bitPHY → MAC CRS載波監(jiān)測PHY → MAC COL沖突碰撞監(jiān)測PHY → MAC MDIO管理數據雙向 MDC管理數據時鐘MAC → PHY RGMII RGMII(Reduced Gigabit Media Independant Interface),精簡GMII接口。相對于GMII相比,RGMII具有如下特征: 發(fā)送/接收數據線由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發(fā)送時鐘MAC→PHY TX_CTL發(fā)送數據控制MAC → PHY TXD[3:0]發(fā)送數據4bitMAC → PHY RXC接收時鐘PHY → MAC RX_CTL接收數據控制PHY → MAC RXD[3:0]接收數據4bitPHY → MAC MDIO管理數據雙向 MDC管理數據時鐘MAC → PHY 雖然RGMII信號線減半,但TXC/RXC時鐘仍為125Mhz,為了達到1000Mbit的傳輸速率,TXD/RXD信號線在時鐘上升沿發(fā)送接收GMII接口中的TXD[3:0]/RXD[3:0],在時鐘下降沿發(fā)送接收TXD[7:4]/RXD[7:4],并且信號TX_CTL反應了TX_EN和TX_ER狀態(tài),即在TXC上升沿發(fā)送TX_EN,下降沿發(fā)送TX_ER,同樣的道理試用于RX_CTL,下圖為發(fā)送接收的時序: ———————————————— 版權聲明:本文為CSDN博主「sternlycore」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權協(xié)議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/sternlycore/article/details/89065789 |
|
來自: 新用戶52403431 > 《待分類》