网口扫盲二:Mac与Phy组成原理的简单分析(转)
?
1.?general
下圖是網(wǎng)口結(jié)構(gòu)簡圖.網(wǎng)口由CPU、MAC和PHY三部分組成.DMA控制器通常屬于CPU的一部分,用虛線放在這里是為了表示DMA控制器可能會(huì)參與到網(wǎng)口數(shù)據(jù)傳輸中.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
對(duì)于上述的三部分,并不一定都是獨(dú)立的芯片,根據(jù)組合形式,可分為下列三種方案:
本例中選用方案二做進(jìn)一步說明,因?yàn)镃PU總線接口很常見,通常都會(huì)做成可以像訪問內(nèi)存一樣去訪問,沒必要拿出來說,而MAC與PHY之間的MII接口則需要多做些說明.
下圖是采用方案二的網(wǎng)口結(jié)構(gòu)圖.虛框表示CPU,MAC集成在CPU中.PHY芯片通過MII接口與CPU上的MAC連接.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
在軟件上對(duì)網(wǎng)口的操作通常分為下面幾步:
2.?MII
MII接口是MAC與PHY連接的標(biāo)準(zhǔn)接口.因?yàn)楦鲝S家采用了同樣的接口,用戶可以根據(jù)所需的性能、價(jià)格,采用不同型號(hào),甚至不同公司的phy芯片.
需要發(fā)送的數(shù)據(jù)通過MII(Media-Independent Interface)接口中的收發(fā)兩組總線實(shí)現(xiàn).而對(duì)PHY芯片寄存器的配置信息,則通過MII總的一組串口總線實(shí)現(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只有兩個(gè)線, 時(shí)鐘信號(hào)MDC與數(shù)據(jù)線MDIO.讀寫命令均由Mac發(fā)起, PHY不能通過MIIM主動(dòng)向Mac發(fā)送信息.由于MIIM只能有Mac發(fā)起, 我們可以操作的也就只有MAC上的寄存器.
3.?DMA
收發(fā)數(shù)據(jù)總是間費(fèi)時(shí)費(fèi)力的事,尤其對(duì)于網(wǎng)絡(luò)設(shè)備來說更是如此.CPU做這些事情顯然不合適.既然是數(shù)據(jù)搬移, 最簡單的辦法當(dāng)然是讓DMA來做.畢竟專業(yè)的才是最好的.
這樣CPU要做的事情就簡單了.只需要告訴DMA起始地址與長度, 剩下的事情就會(huì)自動(dòng)完成.
通常在MAC中會(huì)有一組寄存器專門用戶記錄數(shù)據(jù)地址, tbase與rbase, cpu按MAC要的格式把數(shù)據(jù)放好后, 啟動(dòng)MAC的數(shù)據(jù)發(fā)送就可以了.啟動(dòng)過程常會(huì)用到寄存器tstate.
4.?MAC
CPU上有兩組寄存器用與MAC.一組控制用戶數(shù)據(jù)的收發(fā)地址和狀態(tài),對(duì)應(yīng)上面的DMA;一組用戶MIIM,使得用戶可以對(duì)PHY芯片進(jìn)行配置.兩組寄存器由于都在CPU上,配置方式與其他CPU上寄存器一樣,直接讀寫即可.數(shù)據(jù)的轉(zhuǎn)發(fā)通過DMA完成. ?
5.?PHY
該芯片是一個(gè)10M/100M Ethernet網(wǎng)口芯片
PHY芯片有一組寄存器用戶保存配置,并更新狀態(tài).CPU不能直接訪問這組寄存器,只能通過MAC上的MIIM寄存器組實(shí)現(xiàn)間接訪問. 同時(shí)PHY芯片負(fù)責(zé)完成MII總線的數(shù)據(jù)與Media Interface上數(shù)據(jù)的轉(zhuǎn)發(fā).該轉(zhuǎn)發(fā)根據(jù)寄存器配置自動(dòng)完成,不需要外接干預(yù).
本文轉(zhuǎn)自:http://www.360doc.com/content/13/0717/16/2768962_300623597.shtml
轉(zhuǎn)載于:https://www.cnblogs.com/limanjihe/p/9807734.html
總結(jié)
以上是生活随笔為你收集整理的网口扫盲二:Mac与Phy组成原理的简单分析(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员的简历模板
- 下一篇: 如何让程序员更容易的开发Web界面?重构