以太網PHY 芯片之 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位。

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

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

MII/MDIO接口詳解

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

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

接口支持10Mb/s以及100Mb/s,且在兩種工作模式下所有的功能以及時序關系都是一致的,唯一不同的是時鍾的頻率問題。802.3要求PHY不一定一定要支持這兩種速率,但一定要描述,通過Management Interface反饋給MAC。

MII/MDIO接口詳解

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

MII接口可分為MAC模式和PHY模式,一般說來MAC和PHY對接,但是MAC和MAC也是可以對接的。

以前的10M的MAC層芯片和物理層芯片之間傳送數據是通過一根數據線來進行的,其時鍾是10M,在100M中,如果也用一根數據線來傳送的話,時 鍾需要100M,這會帶來一些問題,所以定義了MII接口,它是用4根數據線來傳送數據的,這樣在傳送100M數據時,時鍾就會由100M降低為25M, 而在傳送10M數據時,時鍾會降低到2.5M,這樣就實現了10M和100M的兼容。

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

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.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM