MII
MII(Media Independent Interface(介質無關接口));或稱爲媒體獨立接口,它是IEEE-802.3定義的以太網行業標準。它包括一個數據接口,以及一個MAC和PHY之間的管理接口。數據接口包括分別用於發送器和接收器的兩條獨立信道。每條信道都有自己的數據、時鐘和控制信號。MII數據接口總共需要16個信號。管理接口是個雙信號接口:一個是時鐘信號,另一個是數據信號。通過管理接口,上層能監視和控制PHY。MII(Management interface)只有兩條信號線。
MII標準接口用於Fast Ethernet MAC-block與PHY。在其他速率下工作的與MII等效的接口有:AUI(10M以太網)、GMII(Gigabit以太網)和XAUI(10-Gigabit以太網)。
MII工作原理
“媒體獨立(介質無關)”表明在不對MAC硬件重新設計或替換的情況下,任何類型的PHY設備都可以正常工作。
包括分別用於發送器和接收器的兩條獨立信道。每條信道都有自己的數據、時鐘和控制信號。
MII數據接口總共需要16個信號,包括TX_ER,TXD,TX_EN,TX_CLK,COL,RXD,RX_EX,RX_CLK,CRS,RX_DV等。
MII以4位半字節方式傳送數據雙向傳輸,時鐘速率25MHz。其工作速率可達100Mb/s。
MII管理接口(SMI接口,也有稱爲MIIM)是個雙信號接口,一個是時鐘信號MDC,另一個是數據信號MDIO。
SMI接口包括兩根信號線:MDC和MDIO,通過它,MAC層芯片(或其它控制芯片)可以訪問物理層芯片的寄存器,並通過這些寄存器來對物理層芯片進行控制和管理。
MDC:管理接口的時鐘,它是一個非週期信號,信號的最小週期(實際是正電平時間和負電平時間之和)爲400ns,最小正電平時間和負電平時間爲160ns,最大的正負電平時間無限制。它與TX_CLK和RX_CLK無任何關係。
MDIO是一根雙向的數據線。用來傳送MAC層的控制信息和物理層的狀態信息。MDIO數據與MDC時鐘同步,在MDC上升沿有效。
PHY裏面的部分寄存器是IEEE定義的,這樣PHY把自己的目前的狀態反映到寄存器裏面,MAC通過SMI總線不斷的讀取PHY的狀態寄存器以得知目前PHY的狀態,例如連接速度,雙工的能力等。
當然也可以通過SMI設置PHY的寄存器達到控制的目的,例如流控的打開關閉,自協商模式還是強制模式等。
不論是物理連接的MII總線和SMI總線還是PHY的狀態寄存器和控制寄存器都是有IEEE的規範的,因此不同公司的MAC和PHY一樣可以協調工作。當然爲了配合不同公司的PHY的自己特有的一些功能,驅動需要做相應的修改。
PHY是物理接口收發器,它實現物理層。包括MII/GMII(介質獨立接口)子層、PCS(物理編碼子層)、PMA(物理介質附加)子層、PMD(物理介質相關)子層、MDI子層。100BaseTX採用4B/5B編碼。
PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什麼地址,數據還是CRC),每4bit就增加1bit的檢錯碼,然後把並行數據轉化爲串行流數據,再按照物理層的編碼規則把數據編碼,再變爲模擬信號把數據送出去。收數據時的流程反之。
PHY還有個重要的功能就是實現CSMA/CD的部分功能。
它可以檢測到網絡上是否有數據在傳送,如果有數據在傳送中就等待,一旦檢測到網絡空閒,再等待一個隨機時間後將送數據出去。如果兩個碰巧同時送出了數據,那樣必將造成衝突,這時候,衝突檢測機構可以檢測到衝突,然後各等待一個隨機的時間重新發送數據。這個隨機時間很有講究的,並不是一個常數,在不同的時刻計算出來的隨機時間都是不同的,而且有多重算法來應付出現概率很低的同兩臺主機之間的第二次衝突。
通信速率通過雙方協商,協商的結果是兩個設備中能同時支持的最大速度和最好的雙工模式,這個技術被稱爲Auto Negotiation或者NWAY。
隔離變壓器把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,並且通過電磁場的轉換耦合到連接網線的另外一端。
RJ-45中1、2是傳送數據的,3、6是接收數據的。
新的PHY支持AUTO MDI-X功能,也需要隔離變壓器支持,它可以實現RJ-45接口的1、2上的傳送信號線和3、6上的接收信號線的功能自動互相交換。