MII RMII SMII GMII
定義的以太網(wǎng)行業(yè)標(biāo)準(zhǔn)。它包括一個數(shù)據(jù)接口和一個 MAC 和 PHY 之間的管理接口。
數(shù)據(jù)接口包括分別用于發(fā)送器和接收器的兩條獨(dú)立信道,每條信道都有自己的數(shù)據(jù)、時
鐘和控制信號。 MII 數(shù)據(jù)接口總共需要 16 個信號。
管理接口是個雙信號接口:一個是時鐘信號,另一個是數(shù)據(jù)信號。通過管理接口,上層
能監(jiān)視和控制 PHY。 MII ( Management interface)只有兩條信號線。
MII 標(biāo)準(zhǔn)接口用于連接 Fast Ethernet MAC-block 與 PHY。表明在不對 MAC 硬件重新設(shè)
計(jì)或替換的情況下,任何類型的 PHY 設(shè)備都可以正常工作。在其他速率下工作的與 MII 等
效的接口有: AUI( 10M 以太網(wǎng))、 GMII( Gigabit 以太網(wǎng))和 XAUI( 10-Gigabit 以
太網(wǎng))。
? ? ?在IEEE802.3中規(guī)定的MII總線是一種用于將不同類型的 PHY與相同網(wǎng)絡(luò)控制器( MAC)
相連接的通用總線。網(wǎng)絡(luò)控制器可以用同樣的硬件接口與任何
相連接的通用總線。網(wǎng)絡(luò)控制器可以用同樣的硬件接口與任何 PHY 進(jìn)行連接。MII 相關(guān)接口介紹:
以太網(wǎng)媒體接口有: MII RMII SMII GMII
所有的這些接口都從 MII 而來, MII 是(Medium Independent Interface)的意思,是指不
用考慮媒體是銅軸、光纖、電纜等,因?yàn)檫@些媒體處理的相關(guān)工作都有 PHY 或者叫做 MAC
的芯片完成。
但是有一個缺點(diǎn)是因?yàn)樗粋€端口用的信號線太多,如果一個 8 端口的交換機(jī)要用到 112
根線, 16 端口就要用到 224 根線,到 32 端口的話就要用到 448 根線,一般按照這個接口
做交換機(jī),是不太現(xiàn)實(shí)的,所以現(xiàn)代的交換機(jī)的制作都會用到其它的一些從 MII 簡化出來的
標(biāo)準(zhǔn),比如 RMII、
SMII、 GMII
等。
要求是 50 兆的總線時鐘。 RMII 一般用在多端口的交換機(jī),它不是每個端口安排收、發(fā)兩個
時鐘,而是所有的數(shù)據(jù)端口公用一個時鐘用于所有端口的收發(fā),這里就節(jié)省了不少的端口數(shù)
目。 RMII 的一個端口要求 7 個數(shù)據(jù)線,比 MII 少了一倍,所以交換機(jī)能夠接入多一倍數(shù)據(jù)
的端口。和 MII
一樣, RMII 支持
10 兆和 100
兆的總線接口速度。
思。因?yàn)樗挥靡桓盘柧€傳送發(fā)送數(shù)據(jù),一根信號線傳輸接受數(shù)據(jù),所以在時鐘上為了滿
足 100 的需求,它的時鐘頻率很高,達(dá)到了 125 兆,為什么用 125 兆,是因?yàn)閿?shù)據(jù)線里面
會傳送一些控制信息。 SMII 一個端口僅用 4 根信號線完成 100 信號的傳輸,比起 RMII 差
不多又少了一倍的信號線。 SMII 在工業(yè)界的支持力度是很高的。同理,所有端口的數(shù)據(jù)收
發(fā)都公用同一個外部的 125M
時鐘。
GMII 是千兆網(wǎng)的
MII 接口,這個也有相應(yīng)的
RGMII 接口,表示簡化了的 GMII
接口。
“媒體獨(dú)立”表明在不對 MAC 硬件重新設(shè)計(jì)或替換的情況下,任何類型的 PHY 設(shè)備都可
以正常工作。包括分別用于發(fā)送器和接收器的兩條獨(dú)立信道。每條信道都有自己的數(shù)據(jù)、時
鐘和控制信號。
MII 數(shù)據(jù)接口總共需要 16 個信號,包括 TX_ER, TXD, TX_EN, TX_CLK, COL, RXD,RX_EX, RX_CLK, CRS, RX_DV 等。
MII 以 4 位半字節(jié)方式傳送數(shù)據(jù)雙向傳輸,時鐘速率 25MHz。其工作速率可達(dá) 100Mb/s。MII 管理接口是個雙信號接口,一個是時鐘信號,另一個是數(shù)據(jù)信號。
通過管理接口,上層能監(jiān)視和控制 PHY,其管理是使用 SMI ( Serial Management Interface)
總線通過讀寫 PHY
的寄存器來完成的。
面, MAC 通過 SMI 總線不斷的讀取 PHY 的狀態(tài)寄存器以得知目前 PHY 的狀態(tài),例如連接
速度,雙工的能力等。
當(dāng)然也可以通過 SMI 設(shè)置 PHY 的寄存器達(dá)到控制的目的,例如流控的打開關(guān)閉,自協(xié)
商模式還是強(qiáng)制模式等。
不論是物理連接的 MII 總線和 SMI 總線還是 PHY 的狀態(tài)寄存器和控制寄存器都是有
IEEE 的規(guī)范的,因此不同公司的 MAC 和 PHY 一樣可以協(xié)調(diào)工作。當(dāng)然為了配合不同公司
的 PHY 的自己特有的一些功能,驅(qū)動需要做相應(yīng)的修改。
PHY 是物理接口收發(fā)器,它實(shí)現(xiàn)物理層。包括 MII/GMII(介質(zhì)獨(dú)立接口)子層、 PCS(物
理編碼子層)、PMA (物理介質(zhì)附加)子層、PMD (物理介質(zhì)相關(guān))子層、MDI 子層。100BaseTX
采用 4B/5B 編碼。
PHY 在發(fā)送數(shù)據(jù)的時候,收到 MAC 過來的數(shù)據(jù)(對 PHY 來說,沒有幀的概念,對它來
說,都是數(shù)據(jù)而不管什么地址,數(shù)據(jù)還是 CRC),每 4bit 就增加 1bit 的檢錯碼,然后把并
行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則把數(shù)據(jù)編碼,再變?yōu)槟M信號把數(shù)據(jù)送
出去。收數(shù)據(jù)時的流程反之。
PHY 還有個重要的功能就是實(shí)現(xiàn) CSMA/CD 的部分功能。
它可以檢測到網(wǎng)絡(luò)上是否有數(shù)據(jù)在傳送,如果有數(shù)據(jù)在傳送中就等待,一旦檢測到網(wǎng)絡(luò)
空閑,再等待一個隨機(jī)時間后將送數(shù)據(jù)出去。如果兩個碰巧同時送出了數(shù)據(jù),那樣必將造成
沖突,這時候,沖突檢測機(jī)構(gòu)可以檢測到?jīng)_突,然后各等待一個隨機(jī)的時間重新發(fā)送數(shù)據(jù)。
這個隨機(jī)時間很有講究的,并不是一個常數(shù),在不同的時刻計(jì)算出來的隨機(jī)時間都是不同的,
而且有多重算法來應(yīng)付出現(xiàn)概率很低的同兩臺主機(jī)之間的第二次沖突。
通信速率通過雙方協(xié)商,協(xié)商的結(jié)果是兩個設(shè)備中能同時支持的最大速度和最好的雙工
模式,這個技術(shù)被稱為 Auto Negotiation 或者 NWAY。
隔離變壓器把 PHY 送出來的差分信號用差模耦合的線圈耦合濾波以增強(qiáng)信號,并且通過
電磁場的轉(zhuǎn)換耦合到連接網(wǎng)線的另外一端。
RJ-45 中 1、 2 是傳送數(shù)據(jù)的, 3、 6 是接收數(shù)據(jù)的。
1、 2 上的傳送信號線和 3、 6 上的接收信號線的功能自動互相交換。
GMII 簡介:
GMII (Gigabit MII)
GMII 采用 8 位接口數(shù)據(jù),工作時鐘 125MHz,因此傳輸速率可達(dá) 1000Mbps。同時兼容
MII 所規(guī)定的 10/100 Mbps 工作方式。
GMII 接口數(shù)據(jù)結(jié)構(gòu)符合 IEEE 以太網(wǎng)標(biāo)準(zhǔn)。該接口定義見 IEEE 802.3-2000。
發(fā)送器:
◇ GTXCLK——吉比特 TX..信號的時鐘信號( 125MHz)
◇ TXCLK——10/100M 信號時鐘
◇ TXD[7..0]——被發(fā)送數(shù)據(jù)
◇ TXEN——發(fā)送器使能信號
◇ TXER——發(fā)送器錯誤(用于破壞一個數(shù)據(jù)包)
注:在千兆速率下,向 PHY 提供 GTXCLK 信號, TXD、 TXEN、 TXER 信號與此時鐘信
號同步。否則,在 10/100M 速率下, PHY 提供 TXCLK 時鐘信號,其它信號與此信號同步。
其工作頻率為 25MHz( 100M 網(wǎng)絡(luò))或 2.5MHz( 10M 網(wǎng)絡(luò))。
接收器:
◇ RXCLK——接收時鐘信號(從收到的數(shù)據(jù)中提取,因此與 GTXCLK 無關(guān)聯(lián))
◇ RXD[7..0]——接收數(shù)據(jù)
◇ RXDV——接收數(shù)據(jù)有效指示
◇ RXER——接收數(shù)據(jù)出錯指示
◇ COL——沖突檢測(僅用于半雙工狀態(tài))
管理配置
◇ MDC——配置接口時鐘
◇ MDIO——配置接口 I/O
管理配置接口控制 PHY 的特性。該接口有 32 個寄存器地址,每個地址 16 位。其中前
16 個已經(jīng)在“IEEE 802.3,2000-22.2.4 Management Functions”中規(guī)定了用途,其余的則由
各器件自己指定。
RMII: Reduced Media Independant Interface 即簡化媒體獨(dú)立接口;是標(biāo)準(zhǔn)的以太網(wǎng)接
口之一,比 MII 有更少的 I/O 傳輸。
關(guān)于 RMII 口和 MII 口的問題
RMII 口是用兩根線來傳輸數(shù)據(jù)的,
MII 口是用 4 根線來傳輸數(shù)據(jù)的,
GMII 是用 8 根線來傳輸數(shù)據(jù)的。
MII/RMII 只是一種接口,對于 10M 線速,MII 的速率是 2.5M, RMII 則是 5M;對于 100M
線速, MII 的速率是 25M, RMII 則是 50M。
MII/RMII 用于傳輸以太網(wǎng)包,在 MII/RMII 接口是 4/2bit 的,在以太網(wǎng)的 PHY 里需要做
串并轉(zhuǎn)換、編解碼等才能在雙絞線和光纖上進(jìn)行傳輸,其幀格式遵循 IEEE 802.3(10M)/IEEE
802.3u(100M)/IEEE 802.1q(VLAN)。
以太網(wǎng)幀的格式為:前導(dǎo)符+開始位+目的 mac 地址+源 mac 地址+類型/長度+數(shù)據(jù)
+padding(optional)+32bitCRC
如果有 vlan,則要在類型/長度后面加上 2 個字節(jié)的 vlan tag,其中 12bit 來表示 vlan id,
另外 4bit 表示數(shù)據(jù)的優(yōu)先級!
網(wǎng)卡的工作原理, MAC 和 PHY:
認(rèn)識網(wǎng)卡,我們上網(wǎng)必備組件之一。
網(wǎng)卡工作在 osi 的最后兩層,物理層和數(shù)據(jù)鏈路層,物理層定義了數(shù)據(jù)傳送與接收所需要
的電與光信號、線路狀態(tài)、時鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路層設(shè)備提供標(biāo)準(zhǔn)接
口。物理層的芯片稱之為 PHY。數(shù)據(jù)鏈路層則提供尋址機(jī)構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯檢
查、傳送控制、向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。以太網(wǎng)卡中數(shù)據(jù)鏈路層的芯片稱之為
MAC 控制器。很多網(wǎng)卡的這兩個部分是做到一起的。他們之間的關(guān)系是 pci 總線接 mac 總
線, mac 接 phy, phy 接網(wǎng)線(當(dāng)然也不是直接接上的,還有一個變壓裝置)。
下面繼續(xù)讓我們來關(guān)心一下 PHY 和 MAC 之間是如何傳送數(shù)據(jù)和相互溝通的。通過 IEEE
定義的標(biāo)準(zhǔn)的 MII/GigaMII(Media Independed Interfade,介質(zhì)獨(dú)立界面)界面連接 MAC 和
PHY。這個界面是 IEEE 定義的。 MII 界面?zhèn)鬟f了網(wǎng)絡(luò)的所有數(shù)據(jù)和數(shù)據(jù)的控制。而 MAC
對 PHY 的工作狀態(tài)的確定和對 PHY 的控制則是使用 SMI(Serial Management Interface)界
面通過讀寫 PHY 的寄存器來完成的。 PHY 里面的部分寄存器也是 IEEE 定義的,這樣 PHY
把自己的目前的狀態(tài)反映到寄存器里面, MAC 通過 SMI 總線不斷的讀取 PHY 的狀態(tài)寄存
器以得知目前 PHY 的狀態(tài),例如連接速度,雙工的能力等。當(dāng)然也可以通過 SMI 設(shè)置 PHY
的寄存器達(dá)到控制的目的,例如流控的打開關(guān)閉,自協(xié)商模式還是強(qiáng)制模式等。我們看到了,
不論是物理連接的 MII 界面和 SMI 總線還是 PHY 的狀態(tài)寄存器和控制寄存器都是有 IEEE
的規(guī)范的,因此不同公司的 MAC 和 PHY 一樣可以協(xié)調(diào)工作。當(dāng)然為了配合不同公司的 PHY
的自己特有的一些功能,驅(qū)動需要做相應(yīng)的修改。一片網(wǎng)卡主要功能的實(shí)現(xiàn)就基本上是上面
這些器件了。其他的,還有一顆 EEPROM 芯片,通常是一顆 93C46。里面記錄了網(wǎng)卡芯片
的供應(yīng)商 ID、子系統(tǒng)供應(yīng)商 ID、網(wǎng)卡的 MAC 地址、網(wǎng)卡的一些配置,如 SMI 總線上 PHY
的地址, BOOTROM 的容量,是否啟用 BOOTROM 引導(dǎo)系統(tǒng)等東西。很多網(wǎng)卡上還有
BOOTROM 這個東西。它是用于無盤工作站引導(dǎo)操作系統(tǒng)的。既然無盤,一些引導(dǎo)用必需
用到的程序和協(xié)議棧就放到里面了,例如 RPL、PXE 等。實(shí)際上它就是一個標(biāo)準(zhǔn)的 PCI ROM。
所以才會有一些硬盤寫保護(hù)卡可以通過燒寫網(wǎng)卡的 BootRom 來實(shí)現(xiàn)。其實(shí) PCI 設(shè)備的 ROM
是可以放到主板 BIOS 里面的。啟動電腦的時候一樣可以檢測到這個 ROM 并且正確識別它
是什么設(shè)備的。 AGP 在配置上和 PCI 很多地方一樣,所以很多顯卡的 BIOS 也可以放到主
板 BIOS
里面。這就是為什么板載的網(wǎng)卡我們從來沒有看到過 BOOTROM
的原因。
的概念,對它來說,都是數(shù)據(jù)而不管什么地址,數(shù)據(jù)還是 CRC),每 4bit 就增加 1bit 的檢錯
碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則(10Based-T 的 NRZ 編碼
或 100based-T 的曼徹斯特編碼)把數(shù)據(jù)編碼,再變?yōu)槟M信號把數(shù)據(jù)送出去。收數(shù)據(jù)時的
流程反之?,F(xiàn)在來了解 PHY 的輸出后面部分。一顆 CMOS 制程的芯片工作的時候產(chǎn)生的
信號電平總是大于 0V 的(這取決于芯片的制程和設(shè)計(jì)需求),但是這樣的信號送到 100 米甚
至更長的地方會有很大的直流分量的損失。而且如果外部網(wǎng)現(xiàn)直接和芯片相連的話,電磁感
應(yīng)(打雷)和靜電,很容易造成芯片的損壞。 再就是設(shè)備接地方法不同,電網(wǎng)環(huán)境不同會導(dǎo)
致雙方的 0V 電平不一致,這樣信號從 A 傳到 B,由于 A 設(shè)備的 0V 電平和 B 點(diǎn)的 0V 電平
不一樣,這樣會導(dǎo)致很大的電流從電勢高的設(shè)備流向電勢低的設(shè)備。我們?nèi)绾谓鉀Q這個問題
呢?這時就出現(xiàn)了 Transformer(隔離變壓器)這個器件。它把 PHY 送出來的差分信號用差模
耦合的線圈耦合濾波以增強(qiáng)信號,并且通過電磁場的轉(zhuǎn)換耦合到連接網(wǎng)線的另外一端。這樣
不但使網(wǎng)線和 PHY 之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還
可以在不同 0V 電平的設(shè)備中傳送數(shù)據(jù)。隔離變壓器本身就是設(shè)計(jì)為耐 2KV~3KV 的電壓的。
也起到了防雷感應(yīng)(我個人認(rèn)為這里用防雷擊不合適)保護(hù)的作用。有些朋友的網(wǎng)絡(luò)設(shè)備在雷
雨天氣時容易被燒壞,大都是 PCB 設(shè)計(jì)不合理造成的,而且大都燒毀了設(shè)備的接口,很少
有芯片被燒毀的,就是隔離變壓器起到了保護(hù)作用。