[轉載]MII/MDIO接口詳解

原文地址:MII/MDIO接口詳解 做者:心田麥浪
本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信號定義,及相關知識,同時本文也對RJ-45接口進行了總結,分析了在10/100模式下和1000M模式下的設計方法。

MII接口提供了MAC與PHY之間、PHY與STA(Station Management)之間的互聯技術,該接口支持10Mb/s與100Mb/s的數據傳輸速率,數據傳輸的位寬爲4位。html

提到MII,就有可能涉及到RS,PLS,STA等名詞術語,下面講一下他們之間對應的關係。ide

所謂RS即Reconciliation sublayer,它的主要功能主要是提供一種MII和MAC/PLS之間的信號映射機制。它們(RS與MII)之間的關係以下圖:ui

[轉載]MII/MDIO接口詳解

MII接口的Management Interface可同時控制多個PHY,802.3協議最多支持32個PHY,但有必定的限制:要符合協議要求的connector特性。所謂Management Interface,即MDC信號和MDIO信號。url

前面已經講過RS與PLS的關係,以及MII接口鏈接的對象。它們是經過MII接口進行鏈接的,示意圖以下圖。由圖可知,MII的Management Interface是與STA(Station Management)相連的。spa

接口支持10Mb/s以及100Mb/s,且在兩種工做模式下全部的功能以及時序關係都是一致的,惟一不一樣的是時鐘的頻率問題。802.3要求PHY不必定必定要支持這兩種速率,但必定要描述,經過Management Interface反饋給MAC。設計

[轉載]MII/MDIO接口詳解

下面將詳細介紹MII接口的信號定義,時序特性等。因爲MII接口有MAC和PHY模式,所以,將會根據這兩種不一樣的模式進行分析,同時還會對RMII/SMII進行介紹。3d

MII接口可分爲MAC模式和PHY模式,通常說來MAC和PHY對接,可是MAC和MAC也是能夠對接的。htm

之前的10M的MAC層芯片和物理層芯片之間傳送數據是經過一根數據線來進行的,其時鐘是10M,在100M中,若是也用一根數據線來傳送的話,時 鍾須要100M,這會帶來一些問題,因此定義了MII接口,它是用4根數據線來傳送數據的,這樣在傳送100M數據時,時鐘就會由100M下降爲25M, 而在傳送10M數據時,時鐘會下降到2.5M,這樣就實現了10M和100M的兼容。對象

MII接口主要包括四個部分。一是從MAC層到物理層的發送數據接口,二是從物理層到MAC層的接收數據接口,三是從物理層到MAC層的狀態指示信號,四是MAC層和物理層之間傳送控制和狀態信息的MDIO接口。blog

MII接口的MAC模式定義:

[轉載]MII/MDIO接口詳解

MII接口PHY模式定義:

[轉載]MII/MDIO接口詳解

在MII接口中,TX通道參考時鐘是TX_CLK,RX通道參考時鐘是RX_CLK,802.3-2005定義了它們之間的關係。

[轉載]MII/MDIO接口詳解

圖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這一側的發送特性做了定義,而對TX通道PHY那一側的接收特性並無定義。IC Vendor可在TX通道那一側的PHY的接收特性做適當調整,只要最終的時序知足TX通道上MAC這一側的發送特性就能夠。

[轉載]MII/MDIO接口詳解

圖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那一側的發送特性並無定義。IC Vendor可在RX通道那一側的PHY的發送特性做適當調整,只要最終的時序知足RX通道上MAC這一側的接收特性就能夠。

<1>: TX_CLK (transmit clock),TX_CLK (Transmit Clock)是一個連續的時鐘信號(即系統啓動,該信號就一直存在),它是TX_EN, TXD, and TX_ER(信號方向爲從RS到PHY)的參考時鐘,TX_CLK由PHY驅動TX_CLK的時鐘頻率是數據傳輸速率的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驅動,PHY可能從接收到的數據中提取時鐘RX_CLK,也有可能從一個 名義上的參考時鐘(e.g., the TX_CLK reference)來驅動RX_CLK

<3>:TXD (transmit data),TXD由RS驅動,同步於TX_CLK,在TX_CLK的時鐘週期內,而且TX_EN有效,TXD上的數據被PHY接收,不然TXD的數據對PHY沒有任何影響。

[轉載]MII/MDIO接口詳解

<4>:TX_ER (transmit coding error),TX_ER同步於TX_CLK,在數據傳輸過程當中,若是TX_ER有效超過一個時鐘週期,而且此時TX_ENTX_ER有效並不影響工做在 10Mb/s的PHY或者TX_EN無效時的數據傳輸。在MII接口的連線中,若是TX_ER信號線沒有用到,必須將它下拉接地。

[轉載]MII/MDIO接口詳解

<5>:RX_DV (Receive Data Valid),RXD_DV同步於RX_CLK,被PHY驅動,它的做用如同於發送通道中的TX_EN,不一樣的是在時序上稍有一點差異:爲了讓數據可以成 功被RS接收,要求RXD_DV有效的時間必須覆蓋整個FRAME的過程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter,以下圖7。

[轉載]MII/MDIO接口詳解

<6>:RXD (receive data),RXD由RS驅動,同步於RX_CLK,在RX_CLK的時鐘週期內,而且RX_DV有效,RXD上的數據被RS接收,不然RXD的數據對 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通道數據傳輸的影響。

[轉載]MII/MDIO接口詳解

<8>:CRS (carrier sense),CRS不須要同步於參考時鐘,只要通道存在發送或者接收過程,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(自動協商禁止,人工設爲全雙工模式), 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(自動協商禁止,人工設爲全雙工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半雙工模式信號有效,全雙工模式信號無效。

[轉載]MII/MDIO接口詳解

MDIO接口包括兩根信號線:MDC和MDIO,經過它,MAC層芯片(或其它控制芯片)能夠訪問物理層芯片的寄存器(前面100M物理層芯片中介 紹的寄存器組,但不只限於100M物理層芯片,10M物理層芯片也能夠擁有這些寄存器),並經過這些寄存器來對物理層芯片進行控制和管理。MDIO管理接口以下:

MDC:管理接口的時鐘,它是一個非週期信號,信號的最小週期(實際是正電平時間和負電平時間之和)爲400ns,最小正電平時間和負電平時間爲160ns,最大的正負電平時間無限制。它與TX_CLK和RX_CLK無任何關係。

MDIO是一根雙向的數據線。用來傳送MAC層的控制信息和物理層的狀態信息。MDIO數據與MDC時鐘同步,在MDC上升沿有效。MDIO管理接口的數據幀結構如:

[轉載]MII/MDIO接口詳解

PRE:幀前綴域,爲32個連續「1」比特,這幀前綴域不是必要的,某些物理層芯片的MDIO操做就沒有這個域。

OP:幀操做碼,比特「10」表示此幀爲一讀操做幀,比特「01」表示此幀爲一寫操做幀。

PHYAD:物理層芯片的地址,5個比特,每一個芯片都把本身的地址與這5個比特進行比較,若匹配則響應後面的操做,若不匹配,則忽略掉後面的操做。

REGAD:用來選擇物理層芯片的32個寄存器中的某個寄存器的地址。

TA:狀態轉換域,若爲讀操做,則第一比特時MDIO爲高阻態,第二比特時由物理層芯片使MDIO置「0」。若爲寫操做,則MDIO仍由MAC層芯片控制,其連續輸出「10」兩個比特。

DATA:幀的寄存器的數據域,16比特,若爲讀操做,則爲物理層送到MAC層的數據,若爲寫操做,則爲MAC層送到物理層的數據。

IDLE:幀結束後的空閒狀態,此時MDIO無源驅動,處高阻狀態,但通常用上拉電阻使其處在高電平,即MDIO引腳須要上拉電阻。

MDIO數據幀的時序關係以下:

[轉載]MII/MDIO接口詳解

[轉載]MII/MDIO接口詳解

MII接口也有一些不足之處,主要是其接口信號線不少,發送和接收和指示接口有14根數據線(不包括MDIO接口的信號線,由於其被全部MII接口 所共享),當交換芯片的端口數據較多時,會形成芯片的管腳數目不少的問題,這給芯片的設計和單板的設計都帶來了必定的問題。爲了解決這些問題,人們設計了 兩種新的MII接口,它們是RMII接口(Reduced MII接口)和SMII接口(StreamMII接口)。

這兩種接口都減小了MII接口的數據線,不過它們通常只用在以太網交換機的交換MAC芯片和多口物理層芯片中,而不多用於單口的MAC層芯片和物理 層芯片中。RMII接口和SMII接口均可以用於10M以太網和100M以太網,但不可能用於1000M以太網,由於此時時鐘頻率過高,不可能實現。

[轉載]MII/MDIO接口詳解
【轉自】http://dpinglee.blog.163.com/blog/static/144097753201041131115262 /

關於PHYAD:
The PHYAD field for an MDIO frame is a 5-bit binary value capable of addressing 32 
unique addresses. However, every MDIO slave must respond to physical address 0. This 
requirement dictates that the physical address for any particular PHY must not be set to 0 
to avoid MDIO contention. Physical Addresses 1 through to 31 can be used to connect up 
to 31 PHY devices onto a single MDIO bus.
Physical Address 0 can be used to write a single command that is obeyed by all attached 
PHYs, such as a reset or power-down command.
相關文章
相關標籤/搜索