MAC和PHY關系


以太網MAC是什么

MAC即 Media Access Control,即 媒體訪問控制子協議。該協議位於OSI七層協議中數據鏈路層的下半部分, 主要負責控制與連接物理層的物理介質。
在發送數據的時候,MAC協議可以事先判斷是否可以發送數據,如果可以發送將給數據加上一些控制信息,最終將數據以及控制信息以規定的格式發送到物理層;
在接收數據的時候,MAC協議首先判斷輸入的信息並是否發生傳輸錯誤,如果沒有錯誤,則去掉控制信息發送至LLC層。
該層協議是以太網MAC由IEEE-802.3以太網標准定義。最新的MAC同時支持10Mbps和100Mbps兩種速率。

以太網數據鏈路層其實包含MAC(介質訪問控制)子層和LLC(邏輯鏈路控制)子層.一塊以太網卡MAC芯片的作用不但要實現MAC子層和LLC子層的功能,還要提供符合規范的PCI界面以實現和主機的數據交換.

什么是MII

MII即媒體獨立接口,它是IEEE-802.3定義的以太網行業標准. "媒體獨立"表明在不對MAC硬件重新設計或替換的情況下,任何類型的PHY設備都可以正常工作.
它包括一個數據接口,以及一個MAC和PHY之間的管理接口.

  • 數據接口包括分別用於發送器和接收器的兩條獨立信道.每條信道都有自己的數據,時鍾和控制信號.
    MII數據接口總共需要16個信號,包括

MII以4位半字節方式傳送數據雙向傳輸,時鍾速率25MHz.其工作速率可達100Mb/s;

  • MII管理接口是個雙信號接口,一個是時鍾信號,另一個是數據信號.通過管理接口,上層能監視和控制PHY.
    其管理是使用SMI(Serial Management Interface)總線通過讀寫PHY的寄存器來完成的.
    PHY里面的部分寄存器是IEEE定義的,這樣PHY把自己的目前的狀態反映到寄存器里面,MAC通過SMI總線不斷的讀取PHY的狀態寄存器以得知目前PHY的狀態,
    例如連接速度,雙工的能力等.當然也可以通過SMI設置PHY的寄存器達到控制的目的,例如流控的打開關閉,自協商模式還是強制模式等.不論是物理連接的MII總線和SMI總線還是PHY的狀態寄存器和控制寄存器都是有IEEE的規范的,因此不同公司的MAC和PHY一樣可以協調工作.當然為了配合不同公司的PHY的自己特有的一些功能,驅動需要做相應的修改.

MII支持10Mbps和100Mbps的操作,一個接口由14根線組成,它的支持還是比較靈活的,但是有一個缺點是因為它一個端口用的信號線太多,
如果一個8端口的交換機要用到112根線,16端口就要用到224根線,到32端口的話就要用到448根線,一般按照這個接口做交換機,是不太現實的,所以現代的交換機的制作都會用到其它的一些從MII簡化出來的標准,比如RMII,SMII,GMII等.

RMII是簡化的MII接口,在數據的收發上它比MII接口少了一倍的信號線,所以它一般要求是50MHz的總線時鍾.
RMII一般用在多端口的交換機,它不是每個端口安排收,發兩個時鍾,而是所有的數據端口公用一個時鍾用於所有端口的收發,這里就節省了不少的端口數目.RMII的一個端口要求7個數據線,比MII少了一倍,所以交換機能夠接入多一倍數據的端口.
和MII一樣,RMII支持10Mbps和100Mbps的總線接口速度.

SMII是由思科提出的一種媒體接口,它有比RMII更少的信號線數目,S表示串行的意思.
因為它只用一根信號線傳送發送數據,一根信號線傳輸接受數據,所以為了滿足100Mbps的總線接口速度的需求,它的時鍾頻率就達到了125MHz,
為什么用125MHz,是因為數據線里面會傳送一些控制信息.SMII一個端口僅用4根信號線完成100Mbps的傳輸,比起RMII差不多又少了一倍的信號線.
SMII在工業界的支持力度是很高的.同理,所有端口的數據收發都公用同一個外部的125MHz時鍾.

GMII(Gigabit MII)是千兆網的MII接口,這個也有相應的RGMII接口,表示簡化了的GMII接口.
GMII采用8位接口數據,工作時鍾125MHz,因此傳輸速率可達1000Mbps.同時兼容MII所規定的10/100 Mbps工作方式.
GMII接口數據結構符合IEEE以太網標准.該接口定義見IEEE 802.3-2000.

以太網PHY是什么?

PHY是物理接口收發器,它實現物理層.IEEE-802.3標准定義了以太網PHY.包括MII/GMII(介質獨立接口)子層,PCS(物理編碼子層),PMA(物理介質附加)子層,PMD(物理介質相關)子層,MDI子層.
它符合IEEE-802.3k中用於10BaseT(第14條)和100BaseTX(第24條和第25條)的規范.

PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什么地址,數據還是CRC.
對於100BaseTX因為使用4B/5B編碼,每4bit就增加1bit的檢錯碼),然后把並行數據轉化為串行流數據,再按照物理層的編碼規則把數據編碼,再變為模擬信號把數據送出去.收數據時的流程反之.
PHY還有個重要的功能就是實現CSMA/CD的部分功能.它可以檢測到網絡上是否有數據在傳送,如果有數據在傳送中就等待,一旦檢測到網絡空閑,再等待一個隨機時間后將送數據出去.如果兩個碰巧同時送出了數據,那樣必將造成沖突,這時候,沖突檢測機構可以檢測到沖突,然后各等待一個隨機的時間重新發送數據.
這個隨機時間很有講究的,並不是一個常數,在不同的時刻計算出來的隨機時間都是不同的,而且有多重算法來應付出現概率很低的同兩台主機之間的第二次沖突.

除此之外PHY還提供了和對端設備連接的重要功能並通過LED燈顯示出自己目前的連接的狀態和工作狀態讓我們知道.
當我們給網卡接入網線的時候,PHY不斷發出的脈沖信號檢測到對端有設備,它們通過標准的”語言”交流,互相協商並卻定連接速度、雙工模式、是否采用流控等.
通常情況下,協商的結果是兩個設備中能同時支持的最大速度和最好的雙工模式.這個技術被稱為AutoNegotiation或者NWAY,它們是一個意思–自動協商.

具體傳輸過程為,發送數據時,網卡首先偵聽介質上是否有載波(載波由電壓指示),如果有,則認為其他站點正在傳送信息,繼續偵聽介質.
一旦通信介質在一定時間段內(稱為幀間縫隙IFG=9.6微秒)是安靜的,即沒有被其他站點占用,則開始進行幀數據發送,同時繼續偵聽通信介質,以檢測沖突.
在發送數據期間,如果檢測到沖突,則立即停止該次發送,並向介質發送一個“阻塞”信號,告知其他站點已經發生沖突,從而丟棄那些可能一直在接收的受到損壞的幀數據,並等待一段隨機時間(CSMA/CD確定等待時間的算法是二進制指數退避算法).
在等待一段隨機時間后,再進行新的發送.如果重傳多次后(大於16次)仍發生沖突,就放棄發送.接收時,網卡瀏覽介質上傳輸的每個幀,如果其長度小於64字節,則認為是沖突碎片.
如果接收到的幀不是沖突碎片且目的地址是本地地址,則對幀進行完整性校驗,如果幀長度大於1518字節(稱為超長幀,可能由錯誤的LAN驅動程序或干擾造成)或未能通過CRC校驗,則認為該幀發生了畸變.
通過校驗的幀被認為是有效的,網卡將它接收下來進行本地處理.

造成以太網MAC和PHY單片整合難度高的原因是什么?

PHY整合了大量模擬硬件,而MAC是典型的全數字器件.芯片面積及模擬/數字混合架構是為什么先將MAC集成進微控制器而將PHY留在片外的原因.
更靈活、密度更高的芯片技術已經可以實現MAC和PHY的單芯片整合.

10BaseT和100BaseTX PHY實現方式不同的原因何在?

兩種實現的分組描述本質上是一樣的,但兩者的信令機制完全不同.其目的是阻止一種硬件實現容易地處理兩種速度.

  • 10BaseT采用曼徹斯特編碼
  • 100BaseTX采用4B/5B編碼

網卡的MAC和PHY間的關系?

下圖是網口結構簡圖.網口由CPU、MAC和PHY三部分組成.DMA控制器通常屬於CPU的一部分,用虛線放在這里是為了表示DMA控制器可能會參與到網口數據傳輸中.

網卡工作在osi的最后兩層,物理層和數據鏈路層,物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鍾基准、數據編碼和電路等,並向數據鏈路層設備提供標准接口.
物理層的芯片稱之為PHY.數據鏈路層則提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層提供標准的數據接口等功能.
以太網卡中數據鏈路層的芯片稱之為MAC控制器.很多網卡的這兩個部分是做到一起的.他們之間的關系是pci總線接mac總線,mac接phy,phy接網線(當然也不是直接接上的,還有一個變壓裝置).

PHY和MAC之間是如何傳送數據和相互溝通的.通過IEEE定義的標准的MII/GigaMII(Media Independed Interfade,介質獨立界面)界面連接MAC和PHY.
這個界面是IEEE定義的.MII界面傳遞了網絡的所有數據和數據的控制.ETHERNET的接口實質是MAC通過MII總線控制PHY的過程.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM