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