MAC (Medium Access Control),簡(jiǎn)稱媒體訪問控制。MAC層在OSI模型中是屬于數(shù)據(jù)鏈路層,其主要任務(wù)是解決數(shù)據(jù)包發(fā)給誰。數(shù)據(jù)鏈路層包含MAC(介質(zhì)訪問控制)子層和LLC(邏輯鏈路控制)子層。
?文章來源地址http://www.zghlxwxcb.cn/news/detail-623051.html
PHY(physical),簡(jiǎn)稱物理層,是一個(gè)對(duì)OSI模型物理層的簡(jiǎn)稱。PHY包括兩個(gè)接口三個(gè)子層:
兩個(gè)接口:
1、MII接口:媒體獨(dú)立接口。PHY與MAC之間的通信方式,其中包括數(shù)據(jù)接口、管理接口。在MII的基礎(chǔ)上,又發(fā)展了RMII(Reduced Media Independant Interface,簡(jiǎn)化了MII,比MII用的信號(hào)線更少)、GMII(Gigabit Media Independent Interface,即先兆的MII接口)、RGMII(Reduced Gigabit Media Independent Interface,及簡(jiǎn)化先兆的MII接口);
2、MDI接口:媒體相關(guān)接口;
三個(gè)子層:
1、PCS子層:物理編碼子層,負(fù)責(zé)編碼;
2、PMA子層:物理介質(zhì)連接子層,進(jìn)一步將PCS編碼向各種媒介進(jìn)行傳送。完成串并、并串轉(zhuǎn)化;
3、PMD子層:物理介質(zhì)相關(guān)子層,完成物理連接;
MAC的功能
1)封裝網(wǎng)絡(luò)層的數(shù)據(jù),將數(shù)據(jù)封裝為幀,實(shí)現(xiàn)幀同步對(duì)目標(biāo)MAC地址和源MAC地址進(jìn)行處理,對(duì)PHY傳輸錯(cuò)誤時(shí)進(jìn)行校準(zhǔn)。MAC幀的數(shù)據(jù)部分只有一個(gè)字段,其長(zhǎng)度;
2)控制PHY芯片;
PHY的功能
1)通過MII接受MAC的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步編碼;
2)數(shù)字信號(hào)轉(zhuǎn)化為模擬信號(hào);
MAC和PHY的結(jié)構(gòu)簡(jiǎn)圖
一般的鏈路層和物理層實(shí)現(xiàn)方式有以下幾種:
1)CPU集成MAC和PHY
2)CPU集成MAC,PHY采用外部芯片實(shí)現(xiàn)
3)CPU不集成MAC和PHY,MAC和PHY都通過外部芯片實(shí)現(xiàn)
一般采用的是第二種方法。?
PHY芯片
PHY芯片的主要功能就是將數(shù)據(jù)再次編碼,然后數(shù)字信號(hào)轉(zhuǎn)化為電信號(hào)。PHY一般有32個(gè)寄存器,其中的前16個(gè)寄存器是根據(jù)802.3協(xié)議定義的,后面的16個(gè)寄存器是芯片制造商定義的功能寄存器。下圖是RTL8211FD芯片的系統(tǒng)框圖:
?**驅(qū)動(dòng)PHY芯片的驅(qū)動(dòng)其實(shí)就是調(diào)用MAC控制器,通過SMI接口控制PHY芯片。在做協(xié)議適配的時(shí)候,主要就是通過MAC控制器與PHY芯片通信,來完成數(shù)據(jù)的控制。**詳細(xì)的適配過程,可以參考和學(xué)習(xí)LWIP適配的詳細(xì)講解。
具體舉例說明
下圖是采用方案二的網(wǎng)口結(jié)構(gòu)圖.虛框表示CPU,MAC集成在CPU中.PHY芯片通過MII接口與CPU上的Mac連接.
?文章來源:http://www.zghlxwxcb.cn/news/detail-623051.html
在軟件上對(duì)網(wǎng)口的操作通常分為下面幾步:
- 為數(shù)據(jù)收發(fā)分配內(nèi)存;
- 初始化MAC寄存器;
- 初始化PHY寄存器(通過MIIM);
- 啟動(dòng)收發(fā);
?
1.MII
MII接口是MAC與PHY連接的標(biāo)準(zhǔn)接口.因?yàn)楦鲝S家采用了同樣的接口,用戶可以根據(jù)所需的性能、價(jià)格,采用不同型號(hào),甚至不同公司的phy芯片.
需要發(fā)送的數(shù)據(jù)通過MII接口中的收發(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上的寄存器.
2.?DMA
收發(fā)數(shù)據(jù)總是間費(fèi)時(shí)費(fèi)力的事,尤其對(duì)于網(wǎng)絡(luò)設(shè)備來說更是如此.CPU做這些事情顯然不合適.既然是數(shù)據(jù)搬移, 最簡(jiǎn)單的辦法當(dāng)然是讓DMA來做.畢竟專業(yè)的才是最好的.
這樣CPU要做的事情就簡(jiǎn)單了.只需要告訴DMA起始地址與長(zhǎng)度, 剩下的事情就會(huì)自動(dòng)完成.
通常在MAC中會(huì)有一組寄存器專門用戶記錄數(shù)據(jù)地址, tbase與rbase, cpu按MAC要的格式把數(shù)據(jù)放好后, 啟動(dòng)MAC的數(shù)據(jù)發(fā)送就可以了.啟動(dòng)過程常會(huì)用到寄存器tstate.
3.?MAC
CPU上有兩組寄存器用與MAC.一組用戶數(shù)據(jù)的收發(fā),對(duì)應(yīng)上面的DMA;一組用戶MIIM,用戶對(duì)PHY進(jìn)行配置.兩組寄存器由于都在CPU上,配置方式與其他CPU上寄存器一樣,直接讀寫即可.數(shù)據(jù)的轉(zhuǎn)發(fā)通過DMA完成. ?
4.?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ù).
?
?
到了這里,關(guān)于以太網(wǎng)基礎(chǔ)理論—MAC+PHY的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!