MII/MDIO接口詳解
MII接口提供了MAC與PHY之間、PHY與STA(Station Management)之間的互聯(lián)技術(shù),該接口支持10Mb/s與100Mb/s的數(shù)據(jù)傳輸速率,數(shù)據(jù)傳輸?shù)奈粚挒?位。
本文引用地址:http://butianyuan.cn/article/201612/328730.htm提到MII,就有可能涉及到RS,PLS,STA等名詞術(shù)語,下面講一下他們之間對應(yīng)的關(guān)系。
所謂RS即Reconciliation sublayer,它的主要功能主要是提供一種MII和MAC/PLS之間的信號映射機制。它們(RS與MII)之間的關(guān)系如下圖:
MII接口的Management Interface可同時控制多個PHY,802.3協(xié)議最多支持32個PHY,但有一定的限制:要符合協(xié)議要求的connector特性。所謂Management Interface,即MDC信號和MDIO信號。
前面已經(jīng)講過RS與PLS的關(guān)系,以及MII接口連接的對象。它們是通過MII接口進行連接的,示意圖如下圖。由圖可知,MII的Management Interface是與STA(Station Management)相連的。
接口支持10Mb/s以及100Mb/s,且在兩種工作模式下所有的功能以及時序關(guān)系都是一致的,唯一不同的是時鐘的頻率問題。802.3要求PHY不一定一定要支持這兩種速率,但一定要描述,通過Management Interface反饋給MAC。
下面將詳細介紹MII接口的信號定義,時序特性等。由于MII接口有MAC和PHY模式,因此,將會根據(jù)這兩種不同的模式進行分析,同時還會對RMII/SMII進行介紹。
MII接口可分為MAC模式和PHY模式,一般說來MAC和PHY對接,但是MAC和MAC也是可以對接的。
以前的10M的MAC層芯片和物理層芯片之間傳送數(shù)據(jù)是通過一根數(shù)據(jù)線來進行的,其時鐘是10M,在100M中,如果也用一根數(shù)據(jù)線來傳送的話,時鐘需要100M,這會帶來一些問題,所以定義了MII接口,它是用4根數(shù)據(jù)線來傳送數(shù)據(jù)的,這樣在傳送100M數(shù)據(jù)時,時鐘就會由100M降低為25M,而在傳送10M數(shù)據(jù)時,時鐘會降低到2.5M,這樣就實現(xiàn)了10M和100M的兼容。
MII接口主要包括四個部分。一是從MAC層到物理層的發(fā)送數(shù)據(jù)接口,二是從物理層到MAC層的接收數(shù)據(jù)接口,三是從物理層到MAC層的狀態(tài)指示信號,四是MAC層和物理層之間傳送控制和狀態(tài)信息的MDIO接口。
MII接口的MAC模式定義:
MII接口PHY模式定義:
在MII接口中,TX通道參考時鐘是TX_CLK,RX通道參考時鐘是RX_CLK,802.3-2005定義了它們之間的關(guān)系。
圖3 Transmit signal timing relationships at the MII
由圖3可知,即The clock to output delay shall be a min of 0 ns and a max of 25 nsSpec只對TX通道上MAC這一側(cè)的發(fā)送特性作了定義,而對TX通道PHY那一側(cè)的接收特性并沒有定義。IC Vendor可在TX通道那一側(cè)的PHY的接收特性作適當調(diào)整,只要最終的時序滿足TX通道上MAC這一側(cè)的發(fā)送特性就可以。
圖4 Receive signal timing relationships at the MII
由圖4可知,The input setup time shall be a minimum of 10 ns and the input hold time shall be a minimum of 10 nsSpec只對RX通道上MAC這一側(cè)的接收特性作了定義,而對RX通道PHY那一側(cè)的發(fā)送特性并沒有定義。IC Vendor可在RX通道那一側(cè)的PHY的發(fā)送特性作適當調(diào)整,只要最終的時序滿足RX通道上MAC這一側(cè)的接收特性就可以。
<1>: TX_CLK (transmit clock),TX_CLK (Transmit Clock)是一個連續(xù)的時鐘信號(即系統(tǒng)啟動,該信號就一直存在),它是TX_EN, TXD, and TX_ER(信號方向為從RS到PHY)的參考時鐘,TX_CLK由PHY驅(qū)動TX_CLK的時鐘頻率是數(shù)據(jù)傳輸速率的25%,偏差+-100ppm。例如,100Mb/s模式下,TX_CLK時鐘頻率為25MHz,占空比在35%至65%之間。
<2>:對于同樣的RX_CLK,它與TX_CLK具有相同的要求,所不同的是它是RX_DV, RXD, and RX_ER(信號方向是從PHY到RS)的參考時鐘。RX_CLK同樣是由PHY驅(qū)動,PHY可能從接收到的數(shù)據(jù)中提取時鐘RX_CLK,也有可能從一個名義上的參考時鐘(e.g., the TX_CLK reference)來驅(qū)動RX_CLK
<3>:TXD (transmit data),TXD由RS驅(qū)動,同步于TX_CLK,在TX_CLK的時鐘周期內(nèi),并且TX_EN有效,TXD上的數(shù)據(jù)被PHY接收,否則TXD的數(shù)據(jù)對PHY沒有任何影響。
<4>:TX_ER (transmit coding error),TX_ER同步于TX_CLK,在數(shù)據(jù)傳輸過程中,如果TX_ER有效超過一個時鐘周期,并且此時TX_ENTX_ER有效并不影響工作在10Mb/s的PHY或者TX_EN無效時的數(shù)據(jù)傳輸。在MII接口的連線中,如果TX_ER信號線沒有用到,必須將它下拉接地。
<5>:RX_DV (Receive Data Valid),RXD_DV同步于RX_CLK,被PHY驅(qū)動,它的作用如同于發(fā)送通道中的TX_EN,不同的是在時序上稍有一點差別:為了讓數(shù)據(jù)能夠成功被RS接收,要求RXD_DV有效的時間必須覆蓋整個FRAME的過程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter,如下圖7。
<6>:RXD (receive data),RXD由RS驅(qū)動,同步于RX_CLK,在RX_CLK的時鐘周期內(nèi),并且RX_DV有效,RXD上的數(shù)據(jù)被RS接收,否則RXD的數(shù)據(jù)對RS沒有任何影響。While RX_DV is de-asserted, the PHY may provide a False Carrier indication by asserting the RX_ER signal while driving the value <1110> onto RXD<3:0>。
<7>:RX_ER (receive error),RX_ER同步于RX_CLK,其在RX通道中的作用類似于TX_ER對于TX通道數(shù)據(jù)傳輸?shù)挠绊憽?/p>
<8>:CRS (carrier sense),CRS不需要同步于參考時鐘,只要通道存在發(fā)送或者接收過程,CRS就需要有效。The behavior of the CRS signal is unspecified when the duplex mode bit 0.8 in the control register is set to a logic one(自動協(xié)商禁止,人工設(shè)為全雙工模式), or when the Auto-Negotiation process selects a full duplex mode of operation,即半雙工模式信號有效,全雙工模式信號無效。
<9>:COL (collision detected),COL不需要同步于參考時鐘。The behavior of the COL signal is unspecified when the duplex mode bit 0.8 in the control register is set to a logic one(自動協(xié)商禁止,人工設(shè)為全雙工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半雙工模式信號有效,全雙工模式信號無效。
MDIO接口包括兩根信號線:MDC和MDIO,通過它,MAC層芯片(或其它控制芯片)可以訪問物理層芯片的寄存器(前面100M物理層芯片中介紹的寄存器組,但不僅限于100M物理層芯片,10M物理層芯片也可以擁有這些寄存器),并通過這些寄存器來對物理層芯片進行控制和管理。MDIO管理接口如下:
MDC:管理接口的時鐘,它是一個非周期信號,信號的最小周期(實際是正電平時間和負電平時間之和)為400ns,最小正電平時間和負電平時間為160ns,最大的正負電平時間無限制。它與TX_CLK和RX_CLK無任何關(guān)系。
MDIO是一根雙向的數(shù)據(jù)線。用來傳送MAC層的控制信息和物理層的狀態(tài)信息。MDIO數(shù)據(jù)與MDC時鐘同步,在MDC上升沿有效。MDIO管理接口的數(shù)據(jù)幀結(jié)構(gòu)如:
PRE:幀前綴域,為32個連續(xù)“1”比特,這幀前綴域不是必要的,某些物理層芯片的MDIO操作就沒有這個域。
OP:幀操作碼,比特“10”表示此幀為一讀操作幀,比特“01”表示此幀為一寫操作幀。
PHYAD:物理層芯片的地址,5個比特,每個芯片都把自己的地址與這5個比特進行比較,若匹配則響應(yīng)后面的操作,若不匹配,則忽略掉后面的操作。
REGAD:用來選擇物理層芯片的32個寄存器中的某個寄存器的地址。
TA:狀態(tài)轉(zhuǎn)換域,若為讀操作,則第一比特時MDIO為高阻態(tài),第二比特時由物理層芯片使MDIO置“0”。若為寫操作,則MDIO仍由MAC層芯片控制,其連續(xù)輸出“10”兩個比特。
DATA:幀的寄存器的數(shù)據(jù)域,16比特,若為讀操作,則為物理層送到MAC層的數(shù)據(jù),若為寫操作,則為MAC層送到物理層的數(shù)據(jù)。
IDLE:幀結(jié)束后的空閑狀態(tài),此時MDIO無源驅(qū)動,處高阻狀態(tài),但一般用上拉電阻使其處在高電平,即MDIO引腳需要上拉電阻。
MDIO數(shù)據(jù)幀的時序關(guān)系如下:
MII接口也有一些不足之處,主要是其接口信號線很多,發(fā)送和接收和指示接口有14根數(shù)據(jù)線(不包括MDIO接口的信號線,因為其被所有MII接口所共享),當交換芯片的端口數(shù)據(jù)較多時,會造成芯片的管腳數(shù)目很多的問題,這給芯片的設(shè)計和單板的設(shè)計都帶來了一定的問題。為了解決這些問題,人們設(shè)計了兩種新的MII接口,它們是RMII接口(Reduced MII接口)和SMII接口(StreamMII接口)。
這兩種接口都減少了MII接口的數(shù)據(jù)線,不過它們一般只用在以太網(wǎng)交換機的交換MAC芯片和多口物理層芯片中,而很少用于單口的MAC層芯片和物理層芯片中。RMII接口和SMII接口都可以用于10M以太網(wǎng)和100M以太網(wǎng),但不可能用于1000M以太網(wǎng),因為此時時鐘頻率太高,不可能實現(xiàn)。
下面這張圖是從DM368的datasheet上的:
評論