MAC(以太網(wǎng)媒體接入控制器)在OSI七層模型中屬于數(shù)據(jù)鏈路層,提供尋址機(jī)構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯(cuò)檢查、傳送控制、向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能,主要是處理通信中的數(shù)字信號(hào)。
PHY在OSI七層模型中屬于物理層(Physical Layer),定義了數(shù)據(jù)傳送與接收所需要的電與光信號(hào)、線路狀態(tài)、時(shí)鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路層設(shè)備提供標(biāo)準(zhǔn)接口,主要是處理通信中的模擬信號(hào)。處理物理層業(yè)務(wù)的芯片通常稱為PHY芯片。
常見(jiàn)的網(wǎng)卡芯片都是把MAC和PHY集成在一個(gè)芯片中,i.MX6ULL自帶的網(wǎng)絡(luò)功能包括了MAC,外面還需要再外接一個(gè)PHY芯片(有些SOC會(huì)同時(shí)集成MAC和PHY,例如TI的一些芯片)。MAC與PHY之間的連接總線包括MII、RMII等。
MII即“媒體獨(dú)立接口”,也叫“獨(dú)立于介質(zhì)的接口”。它是IEEE-802.3定義的以太網(wǎng)行業(yè)標(biāo)準(zhǔn)。它包括一個(gè)數(shù)據(jù)接口,以及一個(gè)MAC和PHY之間的管理接口。RMII全稱為“簡(jiǎn)化的媒體獨(dú)立接口”,是IEEE-802.3u標(biāo)準(zhǔn)中除MII接口之外的另一種實(shí)現(xiàn)。
(一)獨(dú)立于介質(zhì)的接口(MII)
獨(dú)立于介質(zhì)的接口(MII)用于MAC與外接的PHY互聯(lián),支持10Mbit/s和100Mbit/s數(shù)據(jù)傳輸模式。MII的信號(hào)線如下圖所示:
MII_TX_CLK:發(fā)送數(shù)據(jù)使用的時(shí)鐘信號(hào),對(duì)于10M位/s的數(shù)據(jù)傳輸,此時(shí)鐘為2.5MHz,對(duì)于100M位/s的數(shù)據(jù)傳輸,此時(shí)鐘為25MHz。
MII_RX_CLK:接收數(shù)據(jù)使用的時(shí)鐘信號(hào),對(duì)于10M位/s的數(shù)據(jù)傳輸,此時(shí)鐘為2.5MHz,對(duì)于100M位/s的數(shù)據(jù)傳輸,此時(shí)鐘為25MHz。
MII_TX_EN:傳輸使能信號(hào),此信號(hào)必需與數(shù)據(jù)前導(dǎo)符的起始位同步出現(xiàn),并在傳輸完畢前一直保持。
MII_TXD[3:0]:發(fā)送數(shù)據(jù)線,每次傳輸4位數(shù)據(jù),數(shù)據(jù)在MII_TX_EN信號(hào)有效時(shí)有效。MII_TXD[0]是數(shù)據(jù)的最低位,MII_TXD[3]是最高位。當(dāng)MII_TX_EN信號(hào)無(wú)效時(shí),PHY忽略傳輸?shù)臄?shù)據(jù)。
MII_CRS:載波偵聽(tīng)信號(hào),僅工作在半雙工模式下,由PHY控制,當(dāng)發(fā)送或接收的介質(zhì)非空閑時(shí),使能此信號(hào)。PHY必須保證MII_CRS信號(hào)在發(fā)生沖突的整個(gè)時(shí)間段內(nèi)都保持有效,不需要此信號(hào)與發(fā)送/接收的時(shí)鐘同步。
MII_COL:沖突檢測(cè)信號(hào),僅工作在半雙工模式下,由PHY控制,當(dāng)檢測(cè)到介質(zhì)發(fā)生沖突時(shí),使能此信號(hào),并且在整個(gè)沖突的持續(xù)時(shí)間內(nèi),保持此信號(hào)有效。此信號(hào)不需要和發(fā)送/接收的時(shí)鐘同步。
MII_RXD[3:0]:接收數(shù)據(jù)線,每次接收4位數(shù)據(jù),數(shù)據(jù)在MII_RX_DV信號(hào)有效時(shí)有效。MII_RXD[0]是數(shù)據(jù)的最低位,MII_RXD[3]是最高位。當(dāng)MII_RX_EN無(wú)效,而MII_RX_ER有效時(shí),MII_RXD[3:0]數(shù)據(jù)值代表特定的信息(請(qǐng)參考表194)。
MII_RX_DV:接收數(shù)據(jù)使能信號(hào),由PHY控制,當(dāng)PHY準(zhǔn)備好數(shù)據(jù)供MAC接收時(shí),使能該信號(hào)。此信號(hào)必須和幀數(shù)據(jù)的首位同步出現(xiàn),并保持有效直到數(shù)據(jù)傳輸完成。在傳送最后4位數(shù)據(jù)后的第一個(gè)時(shí)鐘之前,此信號(hào)必須變?yōu)闊o(wú)效狀態(tài)。為了正確的接收一個(gè)幀,有效電平不能滯后于數(shù)據(jù)線上的SFD位出現(xiàn)。
MII_RX_ER:接收出錯(cuò)信號(hào),保持一個(gè)或多個(gè)時(shí)鐘周期(MII_RX_CLK)的有效狀態(tài),表明MAC在接收過(guò)程中檢測(cè)到錯(cuò)誤。具體錯(cuò)誤原因需配合MII_RX_DV的狀態(tài)及MII_RXD[3:0]的數(shù)據(jù)值。
(二)精簡(jiǎn)的獨(dú)立于介質(zhì)的接口(RMII)
精簡(jiǎn)的獨(dú)立于介質(zhì)接口(RMII)規(guī)范減少了以太網(wǎng)通信所需要的引腳數(shù)。根據(jù)IEEE802.3標(biāo)準(zhǔn),MII接口需要16個(gè)數(shù)據(jù)和控制信號(hào)引腳,而RMII標(biāo)準(zhǔn)則將引腳數(shù)減少到了7個(gè)。RMII具有以下特性:
時(shí)鐘信號(hào)需要提高到50MHz;
MAC和外部的以太網(wǎng)PHY需要使用同樣的時(shí)鐘源;
使用2位寬度的數(shù)據(jù)收發(fā);
RMII的信號(hào)線如下圖所示:
ELF?1開(kāi)發(fā)板就是以RMII方式進(jìn)行連接。