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位。提到MII,就有可能涉及到RS,PLS,STA等名詞術語,下面講一下他們之間對應的關係。所謂RS即Reconciliation sublayer,它的主要功能主要是提供一種MII和MAC/PLS之間的信號映射機制。它們(RS與MII)之間的關係如下圖:

 

  

 

 

 

 

 

 

 

 

 

 

 

  

  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接口的信號定義,時序特性等。由於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接口PHY模式定義:

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

  由圖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這一側的發送特性就可以。

  由圖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沒有任何影響。

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

  <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。

  <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通道數據傳輸的影響。

  <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。即半雙工模式信號有效,全雙工模式信號無效。

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

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

  MDIO是一根雙向的數據線。用來傳送MAC層的控制信息和物理層的狀態信息。MDIO數據與MDC時鐘同步,在MDC上升沿有效。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接口也有一些不足之處,主要是其接口信號線很多,發送和接收和指示接口有14根數據線(不包括MDIO接口的信號線,因爲其被所有MII接口所共享),當交換芯片的端口數據較多時,會造成芯片的管腳數目很多的問題,這給芯片的設計和單板的設計都帶來了一定的問題。爲了解決這些問題,人們設計了兩種新的MII接口,它們是RMII接口(Reduced MII接口)和SMII接口(StreamMII接口)。

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

  下面這張圖是從DM368的datasheet上的:

【轉自】http://dpinglee.blog.163.com/blog/static/144097753201041131115262/ 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章