MDIO概述
MDIO接口,是Management Data Input/Output的縮寫。MDIO接口包含在IEEE802.3協議中,是專用于以太PHY的管理的串行總線接口。
MDIO應用框圖
圖1 MDIO應用框圖
圖1為MDIO應用框圖。STA設備通過MDIO接口與PHY通信。STA(Station Management)為主控設備,比如MCU、MAC、ONU等。PHY為從設備。一個STA最多管理32個PHY。MDC信號由STA控制,MDIO信號根據通信方式的不同可以由STA或者PHY接管控制。通常MDIO會通過電阻上拉至接口電源。
MDIO接口信號
如表1所示,MDIO接口包含兩根信號線,一根時鐘線,一根數據線。
表1 MDIO接口信號
MDC為MDIO接口時鐘信號,來自STA,用來對MDIO的數據采樣。MDC可以是非周期性信號。協議對MDC的高低電平的最大寬度并沒有限制,僅限制了MDC的最小高低電平寬度不能小于160ns,最小周期不能小于400ns。這意味著MDC最高頻率不能超過2.5MHz。
MDIO為MDIO接口數據信號,為雙向信號,STA和PHY均可以接管。用來在PHY控制芯片和PHY芯片之間的傳遞控制和狀態信息。
圖2 MDIO接口時序
協議對MDIO接口時序進行了定義。如圖2所示,以MDC上升沿為基準。當MDIO由STA輸出時,需要滿足建立時間、保持時間均大于10ns。當MDIO由PHY輸出時,需要滿足輸出延遲不超過300ns。
MDIO幀格式
MDIO有兩種模式:俗稱1G MDIO和XG MDIO。1G MDIO由IEEE 802.3 Clause22定義,主要應用于千兆/百兆的以太PHY,XG MDIO由IEEE 802.3 Clause45定義,主要用于千兆以上的以太PHY。下面以Clause22為例介紹MDIO幀格式,如圖3所示。
圖3 MDIO Clause22幀格式
IDLE:空閑域。無MDIO幀發送時,MDIO接口輸出高阻(外部有上拉電阻,總線上看到的是高電平)。
PRE:Preamble,前導。每幀發送前,STA通過MDIO連續發送32個MDC周期的高電平,同時通過MDC輸出32個時鐘周期。前導的作用是為PHY建立同步提供時間。如果STA能夠確定PHY可以接收管理幀,可以壓縮前導的發送。
ST:2bit,Start of Frame。幀起始符,2’b01代表幀起始。
OP:2bit,操作碼。2’b10代表讀,2’b01代表寫。
PHYAD:5bit,PHY地址。因此1個MDIO最多管理32個PHY。MDIO在訪問PHY之前,需要提前知曉各個PHY的地址。所有PHY均需要對地址0進行響應。
REGAD:5bit,寄存器地址。總共32個寄存器地址,協議對前16個寄存器地址進行了詳細的定義。其中地址0為控制寄存器,地址1為狀態寄存器,其他14個地址為擴展寄存器。
TA:2bit,Turnaround。TA是地址傳輸和數據傳輸轉換時的空閑時間。因為讀操作的時候,地址傳輸和數據傳輸控制方不同,設置2bit TA的目的就是為了防止MDIO總線上產生競爭。
讀情形,TA第1bit,PHY和STA均釋放總線控制輸出高阻。TA第2bit,總線交由PHY控制,輸出0,即讀操作時TA為2‘bZ0(由于總線有上拉電阻存在,從總線上看到的依然是2’b10)。寫情形,TA由STA輸出2‘b10。
DATA:16bit,數據域。寫操作的時候,STA用來發送寫數據。讀操作的時候,PHY用來發送讀數據。
注:MDIO發送bit序為高比特先傳。
圖4 MDIO Clause45幀格式
MDIO Clause45在Clause22基礎上做了一些擴展,目的是為了訪問更多的寄存器。Clause45幀格式如圖4所示。相對于Clause22幀格式而言,Clause45做了如下修改:
1、ST由01修改為00
2、OP進行了重新定義。00:地址幀 01:寫 11:讀 10:增量讀(Post-read-increment-address)
3、PHYAD域修改名稱為PRTAD,端口地址但仍代表PHY地址
4、REGAD修改為DEVAD,Clause45將PHY內部子模塊的地址進行細分,這些子模塊用DEVAD尋址。子模塊內部的寄存器則使用地址幀進行尋址。
Clause45的修改大大擴展了訪問地址范圍,但是由于地址和讀寫操作的分離,導致訪問效率降低一半。為了解決該問題,Clause45新增了增量讀模式,允許先發送一次地址幀,后續僅發送增量讀操作。在每次讀完成后,PHY會自動將地址移動到下一個相鄰的寄存器地址,這樣就能完成從指定地址開始順序讀取設備內部的寄存器,而無需重新發送地址幀,訪問效率可以和Clause22相當。
后記
MDIO接口不僅定義了幀格式,還對其訪問空間的寄存器進行了詳細的定義,因此它只能應用于以太PHY的管理接口。對于MDIO寄存器詳細定義感興趣的同學,可以參考IEEE802.3 22.2.4(Clause22)和45.2(Clause45)中的描述。
Clause22和Clause45是不能共存的,如果應用時存在共存的情況,可以參考IEEE 802.3 Annex45A中關于Clause22 PHY,Clause45 PHY混合組網時的解決方案描述。簡單說就是通過協議轉換芯片進行混合組網。
責任編輯人:CC
評論
查看更多