系列文章目錄
以太網(wǎng)(二)PHY、網(wǎng)卡、SWITCH介紹 [link]
1、CPU/MAC/PHY 硬件架構(gòu)
以太網(wǎng)是由CPU,MAC,PHY三部分組成的,如下圖示意:
但是,在實(shí)際的設(shè)計(jì)中,CPU、MAC和PHY三部分并不一定是獨(dú)立分開的,存在以下三種方式:
- MAC 與 PHY集成在CPU中,目前來說并不多見。
- MAC集成在CPU中,而PHY 采用獨(dú)立芯片,這種比較常見。
- MAC 和 PHY不集成在CPU 中,二者集成在同一芯片(形成獨(dú)立的網(wǎng)卡),這種也比較常見。
由于PHY 整合了大量模擬硬件,而 MAC 則是典型的全數(shù)字器件??紤]到芯片面積及模擬/數(shù)字混合架構(gòu)的原因,將MAC集成進(jìn)CPU而將PHY留在片外,這種結(jié)構(gòu)是最常見的。 下圖是網(wǎng)絡(luò)接口內(nèi)部結(jié)構(gòu)圖,虛框表示CPU,MAC集成在CPU中,PHY芯片通過MII接口與CPU上的MAC連接。
MAC 及 PHY 工作在 OSI 七層模型的數(shù)據(jù)鏈路層和物理層。具體如下:
IEEE802.3 標(biāo)準(zhǔn)文檔下載鏈接[link]。標(biāo)準(zhǔn)文檔很長(zhǎng),分為很多 section,大概第一部分是 10Mb/s 以太網(wǎng)(其中有關(guān)于 MAC 的規(guī)范),第二部分是 100BASE-T 100Mb/s 基帶網(wǎng)絡(luò)介紹,第三部分是 1000 Mb/s 基帶網(wǎng)絡(luò)介紹,第四部分是 10 Gb/s 基帶網(wǎng)絡(luò)介紹。但是,并不是說每部分都是獨(dú)立的。
2、網(wǎng)卡(MAC和PHY)工作原理
網(wǎng)卡工作在OSI模型中物理層和數(shù)據(jù)鏈路層,物理層的芯片稱之為 PHY,數(shù)據(jù)鏈路層的芯片稱之為 MAC控制器。
物理層定義了數(shù)據(jù)傳送與接收所需要的電與光信號(hào)、線路狀態(tài)、時(shí)鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路層設(shè)備提供標(biāo)準(zhǔn)接口。數(shù)據(jù)鏈路層則提供尋址機(jī)構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯(cuò)檢查、傳送控制、向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。以太網(wǎng)卡中。很多網(wǎng)卡的這兩個(gè)部分是做到一起的。他們之間的關(guān)系是PCI總線接MAC總線,MAC接PHY,PHY接網(wǎng)線(當(dāng)然也不是直接接上的,還有一個(gè)變壓裝置)。
PHY 和 MAC 通過 MII/GigabitMII(Media Independed Interfade,媒體獨(dú)立接口) 連接,IEEE定義的標(biāo)準(zhǔn)協(xié)議。MII傳遞了網(wǎng)絡(luò)的所有數(shù)據(jù)和數(shù)據(jù)的控制,而MAC對(duì)PHY的工作狀態(tài)的確定和對(duì)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ū)動(dòng)需要做相應(yīng)的修改。
來源鏈接: [link]
3、什么是 MAC
MAC(Media Access Controler) 即媒體訪問控制層協(xié)議(GMAC:Gigabit Media Access Controller)。MAC由硬件控制器和MAC通信協(xié)議構(gòu)成。該協(xié)議位于OSI七層協(xié)議中數(shù)據(jù)鏈路層的下半部分,主要負(fù)責(zé)控制與連接物理層的物理介質(zhì)。MAC硬件框圖如下圖所示:
在發(fā)送數(shù)據(jù)的時(shí)候,MAC 協(xié)議可以事先判斷是否可以發(fā)送數(shù)據(jù),如果可以發(fā)送將給數(shù)據(jù)加上一些控制信息,最終將數(shù)據(jù)以及控制信息以規(guī)定的格式發(fā)送到物理層;在接收數(shù)據(jù)的時(shí)候,MAC 協(xié)議首先判斷輸入的信息并是否發(fā)生傳輸錯(cuò)誤,如果沒有錯(cuò)誤,則去掉控制信息發(fā)送至 LLC(邏輯鏈路控制)層。該層協(xié)議是以太網(wǎng) MAC,由 IEEE-802. 3 以太網(wǎng)標(biāo)準(zhǔn)定義。最新的 MAC 同時(shí)支持 10Mbps 和100Mbps 兩種速率。
以太網(wǎng)數(shù)據(jù)鏈路層其實(shí)包含 MAC(介質(zhì)訪問控制)子層和 LLC(邏輯鏈路控制)子層。一塊以太網(wǎng)卡 MAC 芯片的作用不但要實(shí)現(xiàn) MAC 子層和 LLC 子層的功能,還要提供符合規(guī)范的 PCI 界面以實(shí)現(xiàn)和主機(jī)的數(shù)據(jù)交換。
MAC 從 PCI 總線收到 IP 數(shù)據(jù)包或者其他網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)包后,將之拆分并重新打包成最大 1518Byte、最小 64Byte 的幀。這個(gè)幀里面包括了目標(biāo) MAC 地址、自己的源 MAC 地址和數(shù)據(jù)包里面的協(xié)議類型(比如IP數(shù)據(jù)包的類型用 80 表示),最后還有一個(gè)DWORD(4Byte)的 CRC 碼。
目的 MAC 地址通過 ARP 學(xué)習(xí)得到,并以IP 地址和 MAC 地址的對(duì)應(yīng)關(guān)系保存在主機(jī)系統(tǒng)中,叫做 ARP 表,通過 arp -a 命令查看 ARP 表。
收到數(shù)據(jù)幀的時(shí)候也是一樣,做完 CRC 校驗(yàn)以后,如果沒有 CRC 效驗(yàn)錯(cuò)誤,就把幀頭去掉,把數(shù)據(jù)包拿出來通過標(biāo)準(zhǔn)的接口傳遞給驅(qū)動(dòng)和上層的協(xié)議棧。最終正確的達(dá)到我們的應(yīng)用程序。
4、什么是 PHY
PHY(Physical Layer) 是 IEEE802.3 中定義的一個(gè)標(biāo)準(zhǔn)模塊,STA(station management entity,管理實(shí)體,一般為MAC 或 CPU)通過 SMI(Serial Manage Interface)對(duì) PHY 的行為、狀態(tài)進(jìn)行管理和控制,而具體管理和控制動(dòng)作是通過讀寫 PHY 內(nèi)部的寄存器實(shí)現(xiàn)的。PHY的基本結(jié)構(gòu)如下圖:
PHY 在發(fā)送數(shù)據(jù)的時(shí)候,收到MAC過來的數(shù)據(jù)(對(duì)PHY來說,沒有幀的概念,對(duì)它來說,都是數(shù)據(jù)),每4bit就增加1bit的檢錯(cuò)碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則(10Based-T的NRZ編碼或100based-T的曼徹斯特編碼)把數(shù)據(jù)編碼,再變?yōu)槟M信號(hào)把數(shù)據(jù)送出去,收數(shù)據(jù)時(shí)的流程反之。
PHY還有個(gè)重要的功能就是實(shí)現(xiàn)CSMA/CD的部分功能,它可以檢測(cè)到網(wǎng)絡(luò)上是否有數(shù)據(jù)在傳送,如果有數(shù)據(jù)在傳送中就等待,一旦檢測(cè)到網(wǎng)絡(luò)空閑,再等待一個(gè)隨機(jī)時(shí)間后將送數(shù)據(jù)出去.如果兩個(gè)碰巧同時(shí)送出了數(shù)據(jù),那樣必將造成沖突,這時(shí)候沖突檢測(cè)機(jī)構(gòu)可以檢測(cè)到?jīng)_突,然后各等待一個(gè)隨機(jī)的時(shí)間重新發(fā)送數(shù)據(jù)。
關(guān)于 PHY 寄存器介紹參見[鏈接]。
5、什么是 MII
MII(Media Independent Interface) 即媒體獨(dú)立接口,MII 接口是 MAC 與 PHY 連接的標(biāo)準(zhǔn)接口。它是 IEEE-802.3 定義的以太網(wǎng)行業(yè)標(biāo)準(zhǔn)。MII 接口提供了 MAC 與 PHY 之間、PHY 與 STA(Station Management)之間的互聯(lián)技術(shù),該接口支持 10Mb/s 與 100Mb/s 的數(shù)據(jù)傳輸速率,數(shù)據(jù)傳輸?shù)奈粚挒?4 位。MII 接口如下圖所示:
MAC 通過MIIM 接口(MII 的 Management Interface)讀取PHY 狀態(tài)寄存器以得知目前PHY 的狀態(tài)。例如連接速度、雙工的能力等。也可以通過 MIIM設(shè)置PHY的寄存器達(dá)到控制的目的。例如流控的打開關(guān)閉、自協(xié)商模式還是強(qiáng)制模式等。MII以4位半字節(jié)方式傳送數(shù)據(jù)雙向傳輸,時(shí)鐘速率25MHz。其工作速率可達(dá)100Mb/s。當(dāng)時(shí)鐘頻率為2.5MHz時(shí),對(duì)應(yīng)速率為10Mb/s。MII接口雖然很靈活但由于信號(hào)線太多限制多接口網(wǎng)口的發(fā)展,后續(xù)又衍生出RMII,SMII等。文章來源:http://www.zghlxwxcb.cn/news/detail-801718.html
6、MAC 與 PHY 接口類型匯總表
參考文章:
以太網(wǎng)物理介質(zhì)介紹[link]
以太網(wǎng)MII接口類型大全[link]
詳解 MAC 地址、MAC 協(xié)議、MAC 控制器[link]
網(wǎng)卡構(gòu)造:MAC與PHY的關(guān)系,GMAC介紹[link]
千兆網(wǎng)媒體訪問控制(GMAC)[link]
網(wǎng)絡(luò)相關(guān)接口匯總描述[link]
以太網(wǎng)中的 MAC、MII、PHY 詳解 [link]
MAC/PHY/MII/RMII/GMII/RGMII基本介紹 [link]文章來源地址http://www.zghlxwxcb.cn/news/detail-801718.html
到了這里,關(guān)于以太網(wǎng)(一)MAC、MII、PHY 介紹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!