Linux設備之網絡驅動介紹

有線網絡:以太網
無線網絡:4G、wifi、藍牙、5G

在這裡插入圖片描述

總結:內部MAC + 外部PHY + RJ45 座(內置網絡變壓器)就組成瞭一個完整的嵌入式網絡接口硬件。

內部的 MAC 外設會通過 MII 或者 RMII 接口來連接外部的 PHY 芯片, MII/RMII 接口用來傳輸網絡數據。另外主控需要配置或讀取 PHY 芯片,也就是讀寫 PHY 的內部寄存器,所以還需要一個控制接口,叫做 MIDO, MDIO 很類似 IIC,也是兩根線,一根數據線叫做 MDIO,一根時鐘線叫做 MDC。

在這裡插入圖片描述

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

(2)物理層 PHY 是物理接口收發器,它實現物理層。包括 MII/GMII(介質獨立接口)子層、PCS(物理編碼子層)、PMA(物理介質附加)子層、 PMD(物理介質相關)子層、MDI 子層。

(3)MII 全稱是 Media Independent Interface 即媒體獨立接口 , “媒體獨立”表明在不對 MAC 硬件重新設計或替換的情況下,任何類型的 PHY 設備都可以正常工作。包括分別用於發送器和接收器的兩條獨立信道。每條信道都有自己的 數據、時鐘和控制信號。MII 數據接口總共需要 16 個信號,包括 TX_ER,TXD<3:0>,TX_EN,TX_CLK,COL,RXD,RX_EX,RX_CLK,CRS,RX_DV 等。

(4)RMII 全稱是 Reduced Media Independent Interface 翻譯過來就是精簡的介質獨立接口,也就是 MII 接口的精簡版本。RMII 接口隻需要 7 根數據線,相比 MII 直接減少瞭 9 根,極大的方便瞭板子佈線。一般要求是 50 兆的總線時鐘和 MII 一樣,RMII 支持 10 兆和 100 兆的總線接口速度

(5)GMII 是千兆網的 MII 接口,這個也有相應的 RGMII 接口,表示簡化瞭的 GMII 接口。GMII 采用 8 位接口數據,工作時鐘 125MHz,因此傳輸速率可達 1000Mbps 。同時兼容 MII 所規定的 10/100 Mbps 工作方式。

(6)MDIO 接口
MDIO 全稱是 Management Data Input/Output,直譯過來就是管理數據輸入輸出接口,是一個簡單的兩線串行接口,一根 MDIO 數據線,一根 MDC 時鐘線。驅動程序可以通過 MDIO 和MDC 這兩根線訪問 PHY 芯片的任意一個寄存器。 MDIO 接口支持多達 32 個 PHY。 同一時刻內隻能對一個 PHY 進行操作,那麼如何區分這 32 個 PHY 芯片呢?和 IIC 一樣,使用器件地址即可。同一 MDIO 接口下的所有 PHY 芯片,其器件地址不能沖突,必須保證唯一,具體器件地址值要查閱相應的 PHY 數據手冊。

因此, MAC 和外部 PHY 芯片進行連接的時候主要是 MII/RMII 和 MDIO 接口,另外可能還需要復位、中斷等其他引腳。

附錄:

在這裡插入圖片描述
在這裡插入圖片描述

到此這篇關於Linux設備之網絡驅動介紹的文章就介紹到這瞭,更多相關Linux網絡驅動內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: