天天看點

以太網PHY 晶片之 MII/MDIO接口詳解

原文位址為: 以太網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)之間的關系如下圖:

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

以太網PHY 晶片之 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模式定義:

以太網PHY 晶片之 MII/MDIO接口詳解

MII接口PHY模式定義:

以太網PHY 晶片之 MII/MDIO接口詳解

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

以太網PHY 晶片之 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這一側的發送特性就可以。

以太網PHY 晶片之 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沒有任何影響。

以太網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信号線沒有用到,必須将它下拉接地。

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

以太網PHY 晶片之 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通道資料傳輸的影響。

以太網PHY 晶片之 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。即半雙工模式信号有效,全雙工模式信号無效。

以太網PHY 晶片之 MII/MDIO接口詳解

MDIO接口包括兩根信号線:MDC和MDIO,通過它,MAC層晶片(或其它控制晶片)可以通路實體層晶片的寄存器(前面100M實體層晶片中介 紹的寄存器組,但不僅限于100M實體層晶片,10M實體層晶片也可以擁有這些寄存器),并通過這些寄存器來對實體層晶片進行控制和管理。MDIO管理接口如下:

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

MDIO是一根雙向的資料線。用來傳送MAC層的控制資訊和實體層的狀态資訊。MDIO資料與MDC時鐘同步,在MDC上升沿有效。MDIO管理接口的資料幀結構如:

以太網PHY 晶片之 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資料幀的時序關系如下:

以太網PHY 晶片之 MII/MDIO接口詳解
以太網PHY 晶片之 MII/MDIO接口詳解

MII接口也有一些不足之處,主要是其接口信号線很多,發送和接收和訓示接口有14根資料線(不包括MDIO接口的信号線,因為其被所有MII接口 所共享),當交換晶片的端口資料較多時,會造成晶片的管腳數目很多的問題,這給晶片的設計和單闆的設計都帶來了一定的問題。為了解決這些問題,人們設計了 兩種新的MII接口,它們是RMII接口(Reduced MII接口)和SMII接口(StreamMII接口)。

這兩種接口都減少了MII接口的資料線,不過它們一般隻用在以太網交換機的交換MAC晶片和多口實體層晶片中,而很少用于單口的MAC層晶片和實體 層晶片中。RMII接口和SMII接口都可以用于10M以太網和100M以太網,但不可能用于1000M以太網,因為此時時鐘頻率太高,不可能實作。

以太網PHY 晶片之 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.

轉載請注明本文位址: 以太網PHY 晶片之 MII/MDIO接口詳解

繼續閱讀