網口掃盲二:Mac與Phy組成原理的簡單分析


1. general

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

MAC(Media Access Control或者Medium Access Control)地址,意譯為媒體訪問控制,或稱為物理地址、硬件地址,用來定義網絡設備的位置。

PHY(Physical Layer) 物理層。以太網芯片。

以太網芯片:是一款微小的控制器,把太網媒體接入控制器(MAC)和物理接口收發器(PHY)整合進同一芯片。

很多網卡將MAC和PHY集成在一起,他們之間的關系是pci總線接mac總線,mac接phy,phy接網線。

 

對於上述的三部分,並不一定都是獨立的芯片,根據組合形式,可分為下列幾種類型:

  1. CPU集成MAC與PHY;
  2. CPU集成MAC,PHY采用獨立芯片;
  3. CPU不集成MAC與PHY,MAC與PHY采用集成芯片;

本例中選用方案二做進一步說明,因為CPU總線接口很常見,通常都會做成可以像訪問內存一樣去訪問,沒必要拿出來說,而Mac與PHY之間的MII接口則需要多做些說明。

下圖是采用方案二的網口結構圖。虛框表示CPU,MAC集成在CPU中。PHY芯片通過MII接口與CPU上的Mac連接。

在軟件上對網口的操作通常分為下面幾步:

  1. 為數據收發分配內存;
  2. 初始化MAC寄存器;
  3. 初始化PHY寄存器(通過MIIM);
  4. 啟動收發;

2. MII

MII接口是MAC與PHY連接的標准接口。因為各廠家采用了同樣的接口,用戶可以根據所需的性能、價格,采用不同型號,甚至不同公司的phy芯片。

需要發送的數據通過MII接口中的收發兩組總線實現。而對PHY芯片寄存器的配置信息,則通過MII總線的一組串口總線實現,即MIIM(MII Management).

下表列出了MII總線中主要的一些引腳。

PIN Name

Direction

Description

TXD[0:3]

Mac to Phy

Transmit Data

TXEN

Mac to Phy

Transmit Enable

TXCLK

Mac to Phy

Transmit Clock

RXD[0:3]

Phy to Mac

Receive Data

RXEN

Phy to Mac

Receive Enable

RXCLK

Phy to Mac

Receive Clock

MDC

Mac to Phy

Management Data Clock

MDIO

Bidirection

Management Data I/O


MIIM只有兩個線, 時鍾信號MDC與數據線MDIO。讀寫命令均由Mac發起,PHY不能通過MIIM主動向Mac發送信息。由於MIIM只能有Mac發起,我們可以操作的也就只有MAC上的寄存器。

3. DMA

收發數據總是件費時費力的事,尤其對於網絡設備來說更是如此。CPU做這些事情顯然不合適。既然是數據搬移, 最簡單的辦法當然是讓DMA來做。畢竟專業的才是最好的。

這樣CPU要做的事情就簡單了。只需要告訴DMA起始地址與長度,剩下的事情就會自動完成。

通常在MAC中會有一組寄存器專門用於記錄數據地址,tbase與rbase,cpu按MAC要的格式把數據放好后,啟動MAC的數據發送就可以了。啟動過程常會用到寄存器tstate。

4. MAC

CPU上有兩組寄存器用於MAC。一組用戶數據的收發,對應上面的DMA;一組用戶MIIM,用戶對PHY進行配置。兩組寄存器由於都在CPU上,配置方式與其他CPU上寄存器一樣,直接讀寫即可。數據的轉發通過DMA完成。 

5. PHY

該芯片是一個10M/100M Ethernet網口芯片

PHY芯片有一組寄存器用戶保存配置,並更新狀態。CPU不能直接訪問這組寄存器,只能通過MAC上的MIIM寄存器組實現間接訪問。同時PHY芯片負責完成MII總線的數據與Media Interface上數據的轉發。該轉發根據寄存器配置自動完成,不需要外接干預。

本文轉自:https://www.cnblogs.com/jason-lu/p/3196096.html


免責聲明!

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



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