Mac与Phy组成原理的简单分析
//http://blog.chinaunix.net/uid-20528014-id-3050217.html
本文乃fireaxe原創(chuàng),使用GPL發(fā)布,可以自由拷貝,轉(zhuǎn)載。但轉(zhuǎn)載請保持文檔的完整性,并注明原作者及原鏈接。內(nèi)容可任意使用,但對因使用該內(nèi)容引起的后果不做任何保證。作者:fireaxe_hq@hotmail.com 博客:fireaxe.blog.chinaunix.net
Mac與Phy組成原理的簡單分析
1? 1.general
下圖是網(wǎng)口結(jié)構(gòu)簡圖。網(wǎng)口由CPU、MAC和PHY三部分組成。DMA控制器通常屬于CPU的一部分,用虛線放在這里是為了表示DMA控制器可能會參與到網(wǎng)口數(shù)據(jù)傳輸中。
對于上述的三部分,并不一定都是獨立的芯片,根據(jù)組合形式,可分為下列幾種類型:
方案一:CPU集成MAC與PHY;
方案二:CPU集成MAC,PHY采用獨立芯片;
方案三:CPU不集成MAC與PHY,MAC與PHY采用集成芯片;
本例中選用方案二做進一步說明,因為CPU總線接口很常見,通常都會做成可以像訪問內(nèi)存一樣去訪問,沒必要拿出來說,而Mac與PHY之間的MII接口則需要多做些說明。
下圖是采用方案二的網(wǎng)口結(jié)構(gòu)圖。虛框表示CPU,MAC集成在CPU中。PHY芯片通過MII接口與CPU上的Mac連接。
?
在軟件上對網(wǎng)口的操作通常分為下面幾步:
1)??????? 1) 為數(shù)據(jù)收發(fā)分配內(nèi)存;
2)?????? 2) 初始化MAC寄存器;
3)?????? 3) 初始化PHY寄存器(通過MIIM);
? ? ? ?? ? 4) 啟動收發(fā);
2.2.?MII
MII接口是MAC與PHY連接的標準接口。因為各廠家采用了同樣的接口,用戶可以根據(jù)所需的性能、價格,采用不同型號,甚至不同公司的phy芯片。
需要發(fā)送的數(shù)據(jù)通過MII接口中的收發(fā)兩組總線實現(xiàn)。而對PHY芯片寄存器的配置信息,則通過MII總的一組串口總線實現(xiàn),即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與數(shù)據(jù)線MDIO。讀寫命令均由Mac發(fā)起,PHY不能通過MIIM主動向Mac發(fā)送信息。由于MIIM只能有Mac發(fā)起,我們可以操作的也就只有MAC上的寄存器。
?
3.? 3.DMA
收發(fā)數(shù)據(jù)總是間費時費力的事,尤其對于網(wǎng)絡(luò)設(shè)備來說更是如此。CPU做這些事情顯然不合適。既然是數(shù)據(jù)搬移,最簡單的辦法當然是讓DMA來做。畢竟專業(yè)的才是最好的。
這樣CPU要做的事情就簡單了。只需要告訴DMA起始地址與長度,剩下的事情就會自動完成。
通常在MAC中會有一組寄存器專門用戶記錄數(shù)據(jù)地址,tbase與rbase,cpu按MAC要的格式把數(shù)據(jù)放好后,啟動MAC的數(shù)據(jù)發(fā)送就可以了。啟動過程常會用到寄存器tstate。
?4.4. MAC
CPU上有兩組寄存器用與MAC。一組用戶數(shù)據(jù)的收發(fā),對應(yīng)上面的DMA;一組用戶MIIM,用戶對PHY進行配置。
兩組寄存器由于都在CPU上,配置方式與其他CPU上寄存器一樣,直接讀寫即可。
數(shù)據(jù)的轉(zhuǎn)發(fā)通過DMA完成。
5.5.?PHY
該芯片是一個10M/100M Ethernet網(wǎng)口芯片
PHY芯片有一組寄存器用戶保存配置,并更新狀態(tài)。CPU不能直接訪問這組寄存器,只能通過MAC上的MIIM寄存器組實現(xiàn)間接訪問。
同時PHY芯片負責完成MII總線的數(shù)據(jù)與Media Interface上數(shù)據(jù)的轉(zhuǎn)發(fā)。該轉(zhuǎn)發(fā)根據(jù)寄存器配置自動完成,不需要外接干預(yù)。
作者:fireaxe_hq@hotmail.com 博客:fireaxe.blog.chinaunix.net
總結(jié)
以上是生活随笔為你收集整理的Mac与Phy组成原理的简单分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker 基本操作 镜像操作 --
- 下一篇: caffe入门教程