概述:
MII (Media Independent Interface(介質無關接口)或稱為媒體獨立接口,它是IEEE-802.3定義的以太網行業標准。它包括一個數據接口和一個MAC和PHY之間的管理接口。
數據接口包括分別用於發送器和接收器的兩條獨立信道,每條信道都有自己的數據、時鍾和控制信號。MII數據接口總共需要16個信號。
管理接口是個雙信號接口:一個是時鍾信號,另一個是數據信號。通過管理接口,上層能監視和控制PHY。MII (Management interface)只有兩條信號線。
MII標准接口用於連接Fast Ethernet MAC-block與PHY。表明在不對MAC硬件重新設計或替換的情況下,任何類型的PHY設備都可以正常工作。在其他速率下工作的與MII等效的接口有:AUI(10M 以太網)、GMII(Gigabit 以太網)和XAUI(10-Gigabit 以太網)。
MII總線
在IEEE802.3中規定的MII總線是一種用於將不同類型的PHY與相同網絡控制器(MAC)相連接的通用總線。網絡控制器可以用同樣的硬件接口與任何PHY進行連接。
MII相關接口介紹:
以太網媒體接口有:MII RMII SMII GMII
所有的這些接口都從MII而來,MII是(Medium Independent Interface)的意思,是指不用考慮媒體是銅軸、光纖、電纜等,因為這些媒體處理的相關工作都有PHY或者叫做MAC的芯片完成。
MII支持10兆和100兆的操作,一個接口由14根線組成,它的支持還是比較靈活的,但是有一個缺點是因為它一個端口用的信號線太多,如果一個8端口的交換機要用到112根線,16端口就要用到224根線,到32端口的話就要用到448根線,一般按照這個接口做交換機,是不太現實的,所以現代的交換機的制作都會用到其它的一些從MII簡化出來的標准,比如RMII、SMII、GMII等。
RMII是簡化的MII接口,在數據的收發上它比MII接口少了一倍的信號線,所以它一般要求是50兆的總線時鍾。RMII一般用在多端口的交換機,它不是每個端口安排收、發兩個時鍾,而是所有的數據端口公用一個時鍾用於所有端口的收發,這里就節省了不少的端口數目。RMII的一個端口要求7個數據線,比MII少了一倍,所以交換機能夠接入多一倍數據的端口。和MII一樣,RMII支持10兆和100兆的總線接口速度。
SMII是由思科提出的一種媒體接口,它有比RMII更少的信號線數目,S表示串行的意思。因為它只用一根信號線傳送發送數據,一根信號線傳輸接受數據,所以在時鍾上為了滿足100的需求,它的時鍾頻率很高,達到了125兆,為什么用125兆,是因為數據線里面會傳送一些控制信息。SMII一個端口僅用4根信號線完成100信號的傳輸,比起RMII差不多又少了一倍的信號線。SMII在工業界的支持力度是很高的。同理,所有端口的數據收發都公用同一個外部的125M時鍾。
GMII是千兆網的MII接口,這個也有相應的RGMII接口,表示簡化了的GMII接口。
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管理接口是個雙信號接口,一個是時鍾信號,另一個是數據信號。
通過管理接口,上層能監視和控制PHY,其管理是使用SMI(Serial Management Interface)總線通過讀寫PHY的寄存器來完成的。
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上的接收信號線的功能自動互相交換。
GMII簡介:
GMII (Gigabit MII)
GMII采用8位接口數據,工作時鍾125MHz,因此傳輸速率可達1000Mbps。同時兼容MII所規定的10/100 Mbps工作方式。
GMII接口數據結構符合IEEE以太網標准。該接口定義見IEEE 802.3-2000。
發送器:
◇ GTXCLK——吉比特TX..信號的時鍾信號(125MHz)
◇ TXCLK——10/100M信號時鍾
◇ TXD[7..0]——被發送數據
◇ TXEN——發送器使能信號
◇ TXER——發送器錯誤(用於破壞一個數據包)
注:在千兆速率下,向PHY提供GTXCLK信號,TXD、TXEN、TXER信號與此時鍾信號同步。否則,在10/100M速率下,PHY提供 TXCLK時鍾信號,其它信號與此信號同步。其工作頻率為25MHz(100M網絡)或2.5MHz(10M網絡)。
接收器:
◇ RXCLK——接收時鍾信號(從收到的數據中提取,因此與GTXCLK無關聯)
◇ RXD[7..0]——接收數據
◇ RXDV——接收數據有效指示
◇ RXER——接收數據出錯指示
◇ COL——沖突檢測(僅用於半雙工狀態)
管理配置
◇ MDC——配置接口時鍾
◇ MDIO——配置接口I/O
管理配置接口控制PHY的特性。該接口有32個寄存器地址,每個地址16位。其中前16個已經在“IEEE 802.3,2000-22.2.4 Management Functions”中規定了用途,其余的則由各器件自己指定。
RMII簡介:
RMII: Reduced Media Independant Interface 即簡化媒體獨立接口;是標准的以太網接口之一,比MII有更少的I/O傳輸。
關於RMII口和MII口的問題
RMII口是用兩根線來傳輸數據的,
MII口是用4根線來傳輸數據的,
GMII是用8根線來傳輸數據的。
MII/RMII只是一種接口,對於10M線速,MII的速率是2.5M,RMII則是5M;對於100M線速,MII的速率是25M,RMII則是50M。
MII/RMII 用於傳輸以太網包,在MII/RMII接口是4/2bit的,在以太網的PHY里需要做串並轉換、編解碼等才能在雙絞線和光纖上進行傳輸,其幀格式遵循IEEE 802.3(10M)/IEEE 802.3u(100M)/IEEE 802.1q(VLAN)。
以太網幀的格式為:前導符+開始位+目的mac地址+源mac地址+類型/長度+數據+padding(optional)+32bitCRC
如果有vlan,則要在類型/長度后面加上2個字節的vlan tag,其中12bit來表示vlan id,另外4bit表示數據的優先級!
網卡的工作原理,MAC和PHY:
認識網卡,我們上網必備組件之一。
網卡工作在osi的最后兩層,物理層和數據鏈路層,物理層定義了數據傳送與接收所需要的電與光信號、線路狀態、時鍾基准、數據編碼和電路等,並向數據鏈路層設備提供標准接口。物理層的芯片稱之為PHY。數據鏈路層則提供尋址機構、數據幀的構建、數據差錯檢查、傳送控制、向網絡層提供標准的數據接口等功能。以太網卡中數據鏈路層的芯片稱之為MAC控制器。很多網卡的這兩個部分是做到一起的。他們之間的關系是pci總線接mac總線,mac接phy,phy接網線(當然也不是直接接上的,還有一個變壓裝置)。
下面繼續讓我們來關心一下PHY和MAC之間是如何傳送數據和相互溝通的。通過IEEE定義的標准的MII/GigaMII(Media Independed Interfade,介質獨立界面)界面連接MAC和PHY。這個界面是IEEE定義的。MII界面傳遞了網絡的所有數據和數據的控制。而MAC對PHY的工作狀態的確定和對PHY的控制則是使用SMI(Serial Management Interface)界面通過讀寫PHY的寄存器來完成的。PHY里面的部分寄存器也是IEEE定義的,這樣PHY把自己的目前的狀態反映到寄存器里面,MAC通過SMI總線不斷的讀取PHY的狀態寄存器以得知目前PHY的狀態,例如連接速度,雙工的能力等。當然也可以通過SMI設置PHY的寄存器達到控制的目的,例如流控的打開關閉,自協商模式還是強制模式等。我們看到了,不論是物理連接的MII界面和SMI總線還是PHY的狀態寄存器和控制寄存器都是有IEEE的規范的,因此不同公司的MAC和PHY一樣可以協調工作。當然為了配合不同公司的PHY的自己特有的一些功能,驅動需要做相應的修改。一片網卡主要功能的實現就基本上是上面這些器件了。其他的,還有一顆EEPROM芯片,通常是一顆93C46。里面記錄了網卡芯片的供應商ID、子系統供應商ID、網卡的MAC地址、網卡的一些配置,如SMI總線上PHY的地址,BOOTROM的容量,是否啟用BOOTROM引導系統等東西。很多網卡上還有BOOTROM這個東西。它是用於無盤工作站引導操作系統的。既然無盤,一些引導用必需用到的程序和協議棧就放到里面了,例如RPL、PXE等。實際上它就是一個標准的PCI ROM。所以才會有一些硬盤寫保護卡可以通過燒寫網卡的BootRom來實現。其實PCI設備的ROM是可以放到主板BIOS里面的。啟動電腦的時候一樣可以檢測到這個ROM並且正確識別它是什么設備的。AGP在配置上和PCI很多地方一樣,所以很多顯卡的BIOS也可以放到主板BIOS里面。這就是為什么板載的網卡我們從來沒有看到過BOOTROM的原因。
2。工作過程, PHY在發送數據的時候,收到MAC過來的數據(對PHY來說,沒有幀的概念,對它來說,都是數據而不管什么地址,數據還是CRC),每4bit就增加1bit的檢錯碼,然后把並行數據轉化為串行流數據,再按照物理層的編碼規則(10Based-T的NRZ編碼或100based-T的曼徹斯特編碼)把數據編碼,再變為模擬信號把數據送出去。收數據時的流程反之。現在來了解PHY的輸出后面部分。一顆CMOS制程的芯片工作的時候產生的信號電平總是大於0V的(這取決於芯片的制程和設計需求),但是這樣的信號送到100米甚至更長的地方會有很大的直流分量的損失。而且如果外部網現直接和芯片相連的話,電磁感應(打雷)和靜電,很容易造成芯片的損壞。 再就是設備接地方法不同,電網環境不同會導致雙方的0V電平不一致,這樣信號從A傳到B,由於A設備的0V電平和B點的0V電平不一樣,這樣會導致很大的電流從電勢高的設備流向電勢低的設備。我們如何解決這個問題呢?這時就出現了Transformer(隔離變壓器)這個器件。它把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,並且通過電磁場的轉換耦合到連接網線的另外一端。這樣不但使網線和PHY之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還可以在不同0V電平的設備中傳送數據。隔離變壓器本身就是設計為耐2KV~3KV的電壓的。也起到了防雷感應(我個人認為這里用防雷擊不合適)保護的作用。有些朋友的網絡設備在雷雨天氣時容易被燒壞,大都是PCB設計不合理造成的,而且大都燒毀了設備的接口,很少有芯片被燒毀的,就是隔離變壓器起到了保護作用。
————————————————
版權聲明:本文為CSDN博主「reille」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/reille/article/details/6312156