自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

以太網(wǎng) Mac 和 Phy 層問題的“對癥下藥”攻略

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
在以太網(wǎng)中,MAC(Media Access Control,媒體訪問控制)層是數(shù)據(jù)鏈路層的重要組成部分,肩負著諸多關(guān)鍵功能。首先,它負責(zé)控制與連接物理層的物理介質(zhì),是數(shù)據(jù)鏈路層與物理層交互的關(guān)鍵橋梁,決定著數(shù)據(jù)如何流向物理層進行傳輸。

在當(dāng)今數(shù)字化連接的世界里,以太網(wǎng)作為網(wǎng)絡(luò)通信的基石,支撐著我們?nèi)粘5幕ヂ?lián)網(wǎng)生活、企業(yè)的數(shù)據(jù)傳輸以及工業(yè)領(lǐng)域的自動化控制等方方面面。然而,就像一座大廈的根基可能會出現(xiàn)裂縫一樣,以太網(wǎng)的 MAC(Media Access Control)層和 PHY(Physical Layer)層也常常會面臨各種各樣的問題,這些問題猶如隱藏在網(wǎng)絡(luò)中的 “暗礁”,威脅著數(shù)據(jù)傳輸?shù)姆€(wěn)定與流暢。

從數(shù)據(jù)傳輸?shù)膩G包、誤碼,到連接的不穩(wěn)定、速率受限,這些 MAC 和 PHY 層的問題可能會在不經(jīng)意間給我們的工作和生活帶來諸多困擾。但不必擔(dān)憂,如同航海者有應(yīng)對暗礁的方法和技巧,在網(wǎng)絡(luò)的世界里,我們也擁有一系列行之有效的解決方案,來化解這些 MAC 和 PHY 層的難題,讓以太網(wǎng)的傳輸之河重新恢復(fù)清澈與順暢。接下來,就讓我們一同深入探討這些解決方案的奧秘。

一、簡介

1.1什么是MAC 層

在以太網(wǎng)中,MAC(Media Access Control,媒體訪問控制)層是數(shù)據(jù)鏈路層的重要組成部分,肩負著諸多關(guān)鍵功能。首先,它負責(zé)控制與連接物理層的物理介質(zhì),是數(shù)據(jù)鏈路層與物理層交互的關(guān)鍵橋梁,決定著數(shù)據(jù)如何流向物理層進行傳輸。例如,在發(fā)送數(shù)據(jù)時,MAC 協(xié)議會預(yù)先判斷當(dāng)下是否可以發(fā)送數(shù)據(jù),如果條件允許,就會給數(shù)據(jù)添加上相應(yīng)的控制信息,然后按照規(guī)定的格式將數(shù)據(jù)發(fā)送到物理層;而在接收數(shù)據(jù)時,MAC 協(xié)議則會率先判斷輸入的信息是否存在傳輸錯誤,要是沒有錯誤,才會去掉控制信息,并將數(shù)據(jù)傳遞至上層的 LLC(邏輯鏈路控制)層。

其次,MAC 層承擔(dān)著對數(shù)據(jù)進行封裝成幀的任務(wù)。當(dāng)來自上層(像 LLC 層或網(wǎng)絡(luò)層)的數(shù)據(jù)抵達 MAC 層時,它會給這些數(shù)據(jù)添加上 MAC 報頭以及可能有的報尾,從而形成一個完整的 MAC 幀。與之相對應(yīng)的,在接收到 MAC 幀后,MAC 層也會去除幀的報頭和報尾,提取出其中有用的數(shù)據(jù)再傳遞給上層,以此完成解封裝操作。再者,處理目標(biāo)和源 MAC 地址也是 MAC 層的重要職責(zé)所在。MAC 地址作為全球唯一的硬件地址,被 MAC 層用于識別網(wǎng)絡(luò)上的各個設(shè)備,以此來明確數(shù)據(jù)究竟是從哪個設(shè)備發(fā)出,又該發(fā)往哪個設(shè)備,實現(xiàn)精準(zhǔn)的數(shù)據(jù)傳輸定位。

最后,MAC 層還具備進行傳輸錯誤校準(zhǔn)的功能,它能夠通過循環(huán)冗余校驗(CRC)等技術(shù)來檢測數(shù)據(jù)在傳輸過程中是否出現(xiàn)錯誤,一旦檢測到錯誤,通常會將出現(xiàn)問題的幀丟棄,并可能要求重傳,以此確保數(shù)據(jù)傳輸?shù)耐暾院蜏?zhǔn)確性,保障局域網(wǎng)中數(shù)據(jù)可以正確、高效且可靠地傳輸。

1.2什么是PHY 層

PHY 層作為實現(xiàn) OSI 模型中物理層功能的關(guān)鍵部分,在以太網(wǎng)數(shù)據(jù)傳輸過程中有著不可或缺的作用。

一方面,PHY 層會對 MAC 傳來的數(shù)據(jù)做進一步的編碼處理。比如,在不同的以太網(wǎng)標(biāo)準(zhǔn)下,編碼方式各有不同,在 100Base-TX 的標(biāo)準(zhǔn)下,MAC 層的數(shù)據(jù)首先要經(jīng)過 4B/5B 編碼,然后進行串并轉(zhuǎn)換,轉(zhuǎn)換后的串行碼流接著要經(jīng)過 NRZI 編碼、擾碼以及 MLT-3 編碼等一系列操作,之后才會進行后續(xù)的傳輸流程;而在接收數(shù)據(jù)時,則會按照相反的順序進行解碼等操作,把接收到的數(shù)據(jù)還原成 MAC 層能夠識別處理的形式。

另一方面,PHY 層承擔(dān)著數(shù)字信號與模擬信號的轉(zhuǎn)化工作。在發(fā)送數(shù)據(jù)時,它會把從 MAC 層接收到的數(shù)字信號轉(zhuǎn)換為模擬信號,以便能夠在物理介質(zhì)(如網(wǎng)線等)上進行傳輸;在接收外部傳來的數(shù)據(jù)時,則是將模擬信號轉(zhuǎn)換回數(shù)字信號,再傳遞給 MAC 層進行后續(xù)處理。

同時,PHY 層包含了多個子層,各子層有著明確的分工。其中,PCS(物理編碼子層)主要負責(zé)對信號的編碼譯碼、收發(fā)處理、管理和控制等工作,遵循 ISO/IEC8802-3 和 IEEE802.3 標(biāo)準(zhǔn),像在 100Base-TX 速率下對信號進行相應(yīng)的編譯碼等操作就是 PCS 子層的職責(zé)所在;PMA(物理介質(zhì)連接子層)進一步將 PCS 編碼向各種媒介進行傳送,完成串并、并串轉(zhuǎn)化,使得數(shù)據(jù)能夠適配不同的物理介質(zhì)傳輸要求;PMD(物理介質(zhì)相關(guān)子層)負責(zé)完成物理連接,確保數(shù)據(jù)能在對應(yīng)的物理介質(zhì)上穩(wěn)定傳輸。這些子層相互協(xié)作,共同保障了物理層數(shù)據(jù)傳輸功能的實現(xiàn)。

1.3MAC 和 PHY 層的連接方式

在以太網(wǎng)中,MAC 與 PHY 層之間通過特定的接口來實現(xiàn)連接,其中 MII(Media Independent Interface,介質(zhì)獨立接口)及其衍生版本和 SMI(Serial Management Interface,串行管理接口)接口起著關(guān)鍵作用。他們之間的關(guān)系是pci總線接mac總線,mac接 phy,phy接網(wǎng)線(當(dāng)然也不是直接接上的,還有一個變壓裝置)。

MII 接口作為 MAC 與 PHY 連接的標(biāo)準(zhǔn)接口,有著重要的作用。它包含了多個衍生版本,像 GMII(Gigabit Media Independent Interface,千兆媒體獨立接口)、RMII(Reduced Media Independant Interface,簡化媒體獨立接口)等,以適應(yīng)不同的數(shù)據(jù)傳輸速率和應(yīng)用場景需求。從功能角度來講,MII 接口涵蓋了從 MAC 層到 PHY 層的發(fā)送數(shù)據(jù)接口以及從 PHY 層到 MAC 層的接收數(shù)據(jù)接口,使得數(shù)據(jù)能夠在 MAC 和 PHY 層之間實現(xiàn)雙向傳輸。例如,MII 接口在 100Mbps 速率下,時鐘頻率為 25MHz,數(shù)據(jù)接口總共需要 16 個信號,支持 10Mb/s 和 100Mb/s 的數(shù)據(jù)速率,還能支持全雙工、半雙工兩種工作模式,發(fā)送和接收數(shù)據(jù)時采用 4bit 方式;而 RMII 是簡化的 MII 接口,在數(shù)據(jù)的收發(fā)上它比 MII 接口少了一倍的信號線(2 數(shù)據(jù)位),一般要求是 50MHz 的總線時鐘,同樣支持 10Mbps 和 100Mbps 的總線接口速度,適用于一些對信號線數(shù)量有要求的應(yīng)用場景;GMII 則是為了支持千兆網(wǎng)口而出現(xiàn)的接口,現(xiàn)在比較常用的 RGMII 在其基礎(chǔ)上減小了 MAC 和 PHY 之間的引腳數(shù)量,采用數(shù)據(jù)信號和控制信號混合在一起的方式,并且在工作時鐘的上升沿和下降沿同時采樣,滿足了千兆以太網(wǎng)的數(shù)據(jù)傳輸要求。

另外,SMI 接口在 MAC 對 PHY 的控制方面有著關(guān)鍵作用。SMI 接口由兩根線組成,雙工模式運行,其中 MDC 為時鐘線,MDIO 為數(shù)據(jù)線,它也支持通過總線訪問多個不同的 phy 芯片。在這個接口體系下,MDIO 總線只支持 MAC 作為主設(shè)備,PHY 作為從設(shè)備,其基本特性包括兩線制、特定的時鐘頻率(如 2.5MHz)以及總線制通信方式,且可同時接入的 PHY 數(shù)量為 32 個。通過 SMI 接口,MAC 芯片能夠主動地輪詢 PHY 層芯片,獲取其狀態(tài)信息,比如 PHY 芯片當(dāng)前的連接速度、雙工的能力等,并且可以發(fā)出相應(yīng)的命令信息,從而實現(xiàn)對 PHY 工作狀態(tài)的確定和控制,保障整個以太網(wǎng)通信系統(tǒng)穩(wěn)定有序地運行。

二、常見問題大揭秘

2.1硬件連接相關(guān)問題

在以太網(wǎng) MAC 和 PHY 層的實際應(yīng)用中,硬件連接方面出現(xiàn)的問題往往會影響二者之間的正常通信。常見的情況包括焊接錯誤、線路損壞以及接口松動等。

比如焊接錯誤,可能是在安裝 PHY 芯片時,引腳焊接出現(xiàn)虛焊或者連焊的情況。虛焊會導(dǎo)致芯片引腳與電路板之間接觸不良,信號傳輸就會時斷時續(xù);連焊則可能造成引腳之間的短路,使信號傳輸混亂,進而影響 MAC 和 PHY 層之間的數(shù)據(jù)交互。像有的工程師在調(diào)試過程中發(fā)現(xiàn)設(shè)備通信異常,經(jīng)過仔細排查,發(fā)現(xiàn)是 PHY 芯片的某個關(guān)鍵引腳存在虛焊,重新焊接后問題得到部分改善。

線路損壞也是一個不容忽視的問題。網(wǎng)線長期使用或者受到外力拉扯、彎折等,內(nèi)部的導(dǎo)線可能會出現(xiàn)斷裂情況,使得從 PHY 層轉(zhuǎn)換后的模擬信號無法正常通過網(wǎng)線傳輸?shù)较鄳?yīng)設(shè)備,或者 MAC 層傳出的數(shù)字信號不能順利到達 PHY 層進行下一步處理。另外,若電路板上連接 MAC 和 PHY 層的線路存在短路、斷路等故障,同樣會阻斷信號的正常傳遞。

接口松動同樣較為常見,例如 RJ45 接口(常用網(wǎng)口座子)如果沒有插緊,或者長時間使用后出現(xiàn)松動,會導(dǎo)致物理連接不穩(wěn)定,進而影響數(shù)據(jù)的發(fā)送和接收。還有 MII、RMII、GMII 等 MAC 和 PHY 層之間的連接接口,若松動也會造成數(shù)據(jù)傳輸出現(xiàn)錯誤或者中斷。

當(dāng)遇到因硬件連接導(dǎo)致的 MAC 和 PHY 層通信問題時,排查思路如下:

首先,直觀檢查硬件連接情況,查看是否有明顯的線路破損、接口松動跡象,芯片焊接是否牢固、引腳有無異常等。其次,借助專業(yè)工具進行檢測,比如使用萬用表測量線路的通斷情況,判斷是否存在斷路;對于電源線路,檢查電壓是否正常傳輸?shù)较鄳?yīng)芯片,確保供電正常;還可以用示波器查看信號線上的信號波形,判斷信號質(zhì)量是否符合要求等。通過這些基本的排查方向,逐步定位并解決硬件連接方面出現(xiàn)的問題,恢復(fù) MAC 和 PHY 層之間的正常通信。

2.2電源與復(fù)位問題

電源供應(yīng)以及復(fù)位電路的狀態(tài)對于 MAC 和 PHY 層的工作有著至關(guān)重要的影響。

電源供應(yīng)不穩(wěn)定時,可能出現(xiàn)多種不良情況。例如,若電源電壓出現(xiàn)波動,過高的電壓可能會損壞 PHY 芯片內(nèi)部的電子元件,而過低的電壓則可能導(dǎo)致 PHY 芯片無法正常工作,像不能正常掛載到系統(tǒng)中,使得 MAC 層無法與之建立有效的通信連接。又比如電源存在紋波干擾,會影響信號的準(zhǔn)確性,導(dǎo)致 PHY 層在進行數(shù)字信號與模擬信號轉(zhuǎn)換等工作時出現(xiàn)錯誤,進而影響整個數(shù)據(jù)傳輸流程。以一些工業(yè)環(huán)境下的以太網(wǎng)設(shè)備為例,由于現(xiàn)場存在較多大型電機等設(shè)備,電源容易受到干擾,PHY 芯片就時常因為電源不穩(wěn)定而出現(xiàn)工作異常,無法準(zhǔn)確將 MAC 層傳來的數(shù)字信號轉(zhuǎn)換為適合網(wǎng)線傳輸?shù)哪M信號,導(dǎo)致數(shù)據(jù)傳輸失敗。

復(fù)位電路異常同樣會引發(fā)諸多問題。當(dāng)復(fù)位電路不能正常工作時,比如復(fù)位信號無法正常產(chǎn)生或者復(fù)位后不能按照要求及時抬起復(fù)位信號,PHY 芯片就可能無法完成初始化,不能進入正常的工作狀態(tài)。在一些嵌入式設(shè)備中,復(fù)位電路設(shè)計不合理或者元件出現(xiàn)故障,會使得 PHY 芯片在復(fù)位后一直處于異常狀態(tài),即使電源等其他條件正常,也無法與 MAC 層協(xié)同工作,像不能響應(yīng) MAC 層通過 SMI 接口發(fā)來的控制命令,無法完成諸如自動協(xié)商速度、雙工模式等操作。

針對電源與復(fù)位問題,可以采取以下解決思路:

對于電源問題,一方面要確保供電電源本身的穩(wěn)定性,可使用穩(wěn)壓電源模塊,減少外部因素對電源電壓的干擾;另一方面,在電路設(shè)計階段,合理布置濾波電容等元件,對電源進行濾波處理,降低紋波系數(shù),保證電源輸出的純凈性。同時,要按照芯片手冊要求,嚴(yán)格匹配電源的電壓、電流等參數(shù),避免因參數(shù)不匹配導(dǎo)致芯片工作異常。

對于復(fù)位電路問題,首先要檢查復(fù)位電路中的各個元件,如復(fù)位芯片、電阻、電容等是否正常工作,有無損壞或者焊接不良等情況。然后,通過示波器等工具查看復(fù)位信號的波形,確認(rèn)復(fù)位信號的電平維持時間、上升沿和下降沿等是否滿足 PHY 芯片的要求,若不符合,要對相應(yīng)電路進行調(diào)整和修復(fù),確保復(fù)位電路能夠正常完成復(fù)位操作,使 PHY 芯片以及 MAC 層能在正確的初始狀態(tài)下開始工作。

2.3配置與驅(qū)動問題

在 MAC 和 PHY 層的應(yīng)用中,配置與驅(qū)動方面出現(xiàn)問題也會對二者的通訊造成阻礙。

驅(qū)動程序如果沒有正確設(shè)置控制寄存器位,會導(dǎo)致 MAC 和 PHY 無法正常通訊。例如,當(dāng)沒有設(shè)置好相應(yīng)位來使 MAC 層知曉 PHY 層的鏈路狀態(tài)已準(zhǔn)備好時,即便物理鏈路正常,MAC 層也會因得不到準(zhǔn)確信息而無法與 PHY 層進行數(shù)據(jù)交互,最終收不到任何數(shù)據(jù)。而且在速度和雙工模式的協(xié)商上,如果驅(qū)動程序配置不當(dāng),MAC 和 PHY 層不能協(xié)商出一致的速度(如 10Mbps、100Mbps、1000Mbps 等)以及雙工模式(半雙工或全雙工),就會導(dǎo)致數(shù)據(jù)傳輸出現(xiàn)混亂或者根本無法傳輸。像有的網(wǎng)絡(luò)設(shè)備在更換了新的 PHY 芯片后,由于驅(qū)動沒有及時更新適配,沒有正確配置寄存器來與新芯片協(xié)同工作,結(jié)果出現(xiàn)設(shè)備之間無法正常通信的情況。

要解決這類配置與驅(qū)動問題,可以從以下方面入手:

步驟一是修改驅(qū)動程序,當(dāng)使用了不同廠家或者不同型號的 PHY 芯片時,要根據(jù)芯片的特性以及手冊要求,對驅(qū)動中的相關(guān)代碼進行調(diào)整,確保驅(qū)動能夠準(zhǔn)確地與 PHY 芯片配合工作。例如,不同廠家的 PHY 芯片對于控制寄存器的定義和操作方式可能存在差異,需要針對性地修改驅(qū)動中對寄存器讀寫等操作的代碼部分,使其能正確配置 PHY 芯片的工作模式、速度等參數(shù)。

步驟二是正確配置寄存器,要深入了解 MAC 和 PHY 層所涉及的各類寄存器功能,比如通過 SMI 接口讀寫 PHY 芯片的寄存器,來設(shè)置 PHY 芯片的工作狀態(tài)、獲取其狀態(tài)信息等。按照標(biāo)準(zhǔn)的 IEEE 規(guī)范以及芯片手冊的具體說明,準(zhǔn)確地向寄存器寫入相應(yīng)的值,實現(xiàn)對 MAC 和 PHY 層的正確配置,保障它們之間能夠順利通訊、協(xié)商出合適的速度和雙工模式,從而實現(xiàn)以太網(wǎng)數(shù)據(jù)的穩(wěn)定、高效傳輸。

如果操作系統(tǒng)沒有加載網(wǎng)卡驅(qū)動,網(wǎng)卡雖然在系統(tǒng)設(shè)備樹上,但網(wǎng)卡接口創(chuàng)建不了,那網(wǎng)卡實際能不能接收到數(shù)據(jù)?

這里面有很多細節(jié), 我根據(jù)Intel網(wǎng)卡的Spec大概寫了寫, 想盡量寫的通俗一些,所以沒有刻意用Spec里的術(shù)語,另外本文雖然講的是MAC/PHY,但光口卡的(SERDES)也是類似的。

1. PCI設(shè)備做reset以后進入D0uninitialized(非初始化的D0狀態(tài), 參考PCI電源管理規(guī)范),此時網(wǎng)卡的MAC和DMA都不工作,PHY是工作在一個特殊的低電源狀態(tài)的。

2. 操作系統(tǒng)創(chuàng)建設(shè)備樹時,初始化這個設(shè)備,PCI命令寄存器的 Memory Access Enable or the I/O Access Enable bit會被enable, 這就是D0active。此時PHY/MAC就能了。

3. PHY被使能應(yīng)該就可以接收物理鏈路上的數(shù)據(jù)了,否則不能收到FLP/NLP, PHY就不能建立物理連接。但這類包一般是流量間歇發(fā)送的.

4. 驅(qū)動程序一般要通過寄存器來控制PHY, 比如自動協(xié)商speed/duplex, 查詢物理鏈路的狀態(tài)Link up/down。

5. MAC被使能后, 如果沒有驅(qū)動設(shè)置控制寄存器的一個位(CTRL.SLU )的話, MAC和PHY是不能通訊的, 就是說MAC不知道PHY的link已經(jīng)ready, 所以收不到任何數(shù)據(jù)的。這位設(shè)置以后, PHY完成自協(xié)商, 網(wǎng)卡才會有個Link change的中斷,知道物理連接已經(jīng)Link UP了。

6. 即使Link已經(jīng)UP, MAC還需要enable接收器的一個位(RCTL.RXEN ),包才可以被接收進來,如果網(wǎng)卡被reset,這位是0,意味著所有的包都會被直接drop掉,不會存入網(wǎng)卡的 FIFO。老網(wǎng)卡在驅(qū)動退出前利用這個關(guān)掉接收。Intel的最新千兆網(wǎng)卡發(fā)送接收隊列的動態(tài)配置就是依靠這個位的,重新配置的過程一定要關(guān)掉流量。

7. 無論驅(qū)動加載與否, 發(fā)生reset后,網(wǎng)卡EEPOM里的mac地址會寫入網(wǎng)卡的MAC地址過濾寄存器, 驅(qū)動可以去修改這個寄存器,現(xiàn)代網(wǎng)卡通常支持很多MAC地址,也就是說,MAC地址是可以被軟件設(shè)置的。例如,Intel的千兆網(wǎng)卡就支持16個單播 MAC地址,但只有1個是存在EEPROM里的,其它是軟件聲稱和設(shè)置的。

8. 但如果驅(qū)動沒有加載,網(wǎng)卡已經(jīng)在設(shè)備樹上,操作系統(tǒng)完成了步驟1-2的初始化,此時網(wǎng)卡的PHY應(yīng)該是工作的,但因為沒有人設(shè)置控制位(CTRL.SLU)來讓MAC和PHY建立聯(lián)系,所以MAC是不收包的。這個控制位在reset時會再設(shè)置成0。

9. PHY可以被軟件設(shè)置加電和斷電, 斷電狀態(tài)除了接收管理命令以外,不會接收數(shù)據(jù)。另外,PHY還能工作在Smart Power Down模式下,link down就進入省電狀態(tài)。

10. 有些多口網(wǎng)卡,多個網(wǎng)口共享一個PHY, 所以BIOS里設(shè)置disbale了某個網(wǎng)口, 也未必會把PHY的電源關(guān)掉,反過來,也要小心地關(guān)掉PHY的電源。

三、通訊方式

MII(Media Independent Interface)即媒體獨立接口,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ù)。媒體獨立表明在不對MAC硬件重新設(shè)計或替換的情況下,任何類型的PHY設(shè)備都可以正常工作.它包括一個數(shù)據(jù)接口,以及一個MAC和PHY之間的管理接口。MII接口有MII、RMII、SMII、SSMII、SSSMII、GMII、SGMII、RGMII等。這里簡要介紹其中的MII和RGMII。

MII接口主要包括以下三個部分:

  • 從MAC層到PHY層的發(fā)送數(shù)據(jù)接口
  • 從PHY層到MAC層的接收數(shù)據(jù)接口
  • 從MAC層和PHY層之間寄存器控制和信息獲取的MDIO接口

MII 數(shù)據(jù)接口總共需要 16 個信號。MII的時鐘為25MHz,傳輸速率為10/100Mbps。所以MII的特性如下:

  • 支持10Mb/s和100Mb/s的數(shù)據(jù)速率
  • 100M工作模式下,參考時鐘是25MHz;10M工作模式下,信號參考時鐘是2.5MHz
  • 支持全雙工、半雙工兩種工作模式
  • 發(fā)送和接收數(shù)據(jù)時采用,4bit方式

RMII是簡化的MII接口,在數(shù)據(jù)的收發(fā)上它比MII接口少了一倍的信號線(2數(shù)據(jù)位),所以它一般要求是50MHz的總線時鐘。RMII一般用在多端口的交換機,所有的數(shù)據(jù)端口公用一個時鐘用于所有端口的收發(fā),這里就節(jié)省了不少的端口數(shù)目.RMII的一個端口要求7個數(shù)據(jù)線,比MII少了一倍,所以交換機能夠接入多一倍數(shù)據(jù)的端口.和MII一樣,RMII支持10Mbps和100Mbps的總線接口速度.

后來為了支持千兆網(wǎng)口,也就開始有了千兆網(wǎng)的MII接口,也就是GMII接口?,F(xiàn)在比較常用的是RGMII,減小了MAC和PHY之間的引腳數(shù)量。數(shù)據(jù)信號和控制信號混合在一起,并且在工作時鐘的上升沿和下降沿同時采樣,其對應(yīng)關(guān)系圖如下:

  • 10M帶寬對應(yīng)的是2.5MHz,因為4bit*2.5M=10Mbps
  • 100M帶寬對應(yīng)的是25MHz,因為4bit*25M=100Mbps

1000M帶寬對應(yīng)的是125MHz,因為250MHz頻率太高,所以采用雙邊沿采樣技術(shù)(會帶來設(shè)計復(fù)雜度)。4bit125M2=1000Mbps

SMI是MAC內(nèi)核訪問PHY寄存器接口,它由兩根線組成,雙工,MDC為時鐘,MDIO為雙向數(shù)據(jù)通信,原理上跟I2C總線很類似,也可以通過總線訪問多個不同的phy。

MDC/MDIO基本特性:

  • 兩線制:MDC(時鐘線)和MDIO(數(shù)據(jù)線)。
  • 時鐘頻率:2.5MHz
  • 通信方式:總線制,可同時接入的PHY數(shù)量為32個
  • 通過SMI接口,MAC芯片主動的輪詢PHY層芯片,獲得狀態(tài)信息,并發(fā)出命令信息。

當(dāng)PHY芯片發(fā)送數(shù)據(jù),接收到MAC層發(fā)送過來的數(shù)字信號,然后轉(zhuǎn)換成模擬信號,通過MDI接口傳輸出去。但是網(wǎng)線傳輸?shù)木嚯x又很長,有時候需要送到100米甚至更遠的地址,那么就會導(dǎo)致信號的流失。而且外網(wǎng)線與芯片直接相連電磁感應(yīng)和靜電,也很容易導(dǎo)致芯片的損壞,所以就要使用網(wǎng)絡(luò)變壓器,其主要作用是:

傳輸數(shù)據(jù),它把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強信號,并且通過電磁場的轉(zhuǎn)換耦合到不同電平的連接網(wǎng)線的另外一端;

隔離網(wǎng)線連接的不同網(wǎng)絡(luò)設(shè)備間的不同電平,以防止不同電壓通過網(wǎng)線傳輸損壞設(shè)備;還能使芯片端與外部隔離,抗干擾能力大大增強,而且對芯片增加了很大的保護作用,保護PHY免遭由于電氣失誤而引起的損壞(如雷擊)。

3.1MAC

MAC(Media Access Control),即媒體訪問控制子層協(xié)議,該部分有兩個概念:MAC可以是一個硬件控制器以及MAC通訊協(xié)議。該協(xié)議位于OSI七層協(xié)議中數(shù)據(jù)鏈路層的下半部分,主要是負責(zé)控制與連接物理層的物理介質(zhì)。

MAC(Media Access Control),即媒體訪問控制子層協(xié)議,該部分有兩個概念:MAC可以是一個硬件控制器以及MAC通訊協(xié)議。該協(xié)議位于OSI七層協(xié)議中數(shù)據(jù)鏈路層的下半部分,主要是負責(zé)控制與連接物理層的物理介質(zhì)。

發(fā)送數(shù)據(jù):MAC協(xié)議可以事先判斷是否可以發(fā)送數(shù)據(jù),如果可以發(fā)送將數(shù)據(jù)加上一些控制信息,最后將數(shù)據(jù)以及控制信息以規(guī)定的格式發(fā)送到物理層

接收數(shù)據(jù):MAC協(xié)議首先判斷輸入的信息并是否發(fā)生傳輸錯誤,如果沒有錯誤,則去掉控制信息后發(fā)送至LLC(邏輯鏈路控制)層。

圖片圖片

PHY物理層位于OSI最底層,物理層協(xié)議定義電氣信號、線的狀態(tài)、時鐘要求、數(shù)據(jù)編碼和數(shù)據(jù)傳輸用的連接器。

圖片圖片

MDI口是快速以太網(wǎng)100BASE-T定義的與介質(zhì)有關(guān)接口(Media Dependent Interface)。MDI是指通過收發(fā)器發(fā)送的100BASE-T信號,即100BASE-TX、FX、T4或T2信號。將集線器連接網(wǎng)絡(luò)接口卡時,其發(fā)送和接收對通常是相互連接的。集線器之間連接時,通常需要一條跨接電纜,其中的發(fā)送和接收對是反接的。

MDI是正常的UTP或STP連接,而MDI-X連接器的發(fā)送和接收對是在內(nèi)部反接的,這就使得不同的設(shè)備(如集線器-集線器或集電器-交換機),可以利用常規(guī)的UTP或STP電纜實現(xiàn)背靠背的級聯(lián)。

⑴MII接口

MII(Media Independent Interface)即媒體獨立接口,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ù)。媒體獨立表明在不對MAC硬件重新設(shè)計或替換的情況下,任何類型的PHY設(shè)備都可以正常工作.它包括一個數(shù)據(jù)接口,以及一個MAC和PHY之間的管理接口。MII接口有MII、RMII、SMII、SSMII、SSSMII、GMII、SGMII、RGMII等。這里簡要介紹其中的MII和RGMII。

MII接口主要包括以下三個部分:

  • 從MAC層到PHY層的發(fā)送數(shù)據(jù)接口
  • 從PHY層到MAC層的接收數(shù)據(jù)接口
  • 從MAC層和PHY層之間寄存器控制和信息獲取的MDIO接口

首先來看看MII的MAC層定義接口:MII 數(shù)據(jù)接口總共需要 16 個信號,包括 TX_ER,TXD[3:0],TX_EN,TX_CLK,COL,RXD[3:0],RX_ER,RX_CLK,CRS,RX_DV 等。MII的時鐘為25MHz,傳輸速率為10/100Mbps。所以MII的特性如下:

  • 支持10Mb/s和100Mb/s的數(shù)據(jù)速率
  • 100M工作模式下,參考時鐘是25MHz;10M工作模式下,信號參考時鐘是2.5MHz
  • 支持全雙工、半雙工兩種工作模式
  • 發(fā)送和接收數(shù)據(jù)時采用,4bit方式

RMII的用途:

RMII是簡化的MII接口,在數(shù)據(jù)的收發(fā)上它比MII接口少了一倍的信號線(2數(shù)據(jù)位),所以它一般要求是50MHz的總線時鐘。RMII一般用在多端口的交換機,所有的數(shù)據(jù)端口公用一個時鐘用于所有端口的收發(fā),這里就節(jié)省了不少的端口數(shù)目.RMII的一個端口要求7個數(shù)據(jù)線,比MII少了一倍,所以交換機能夠接入多一倍數(shù)據(jù)的端口.和MII一樣,RMII支持10Mbps和100Mbps的總線接口速度.

后來為了支持千兆網(wǎng)口,也就開始有了千兆網(wǎng)的MII接口,也就是GMII接口?,F(xiàn)在比較常用的是RGMII,減小了MAC和PHY之間的引腳數(shù)量。數(shù)據(jù)信號和控制信號混合在一起,并且在工作時鐘的上升沿和下降沿同時采樣,其對應(yīng)關(guān)系圖如下:

  • 10M帶寬對應(yīng)的是2.5MHz,因為4bit*2.5M=10Mbps
  • 100M帶寬對應(yīng)的是25MHz,因為4bit*25M=100Mbps
  • 1000M帶寬對應(yīng)的是125MHz,因為250MHz頻率太高,所以采用雙邊沿采樣技術(shù)(會帶來設(shè)計復(fù)雜度)。4bit125M2=1000Mbps

⑵SMI接口

SMI是MAC內(nèi)核訪問PHY寄存器接口,它由兩根線組成,雙工,MDC為時鐘,MDIO為雙向數(shù)據(jù)通信,原理上跟I2C總線很類似,也可以通過總線訪問多個不同的phy。

MDC/MDIO基本特性:

  • 兩線制:MDC(時鐘線)和MDIO(數(shù)據(jù)線)。
  • 時鐘頻率:2.5MHz
  • 通信方式:總線制,可同時接入的PHY數(shù)量為32個
  • 通過SMI接口,MAC芯片主動的輪詢PHY層芯片,獲得狀態(tài)信息,并發(fā)出命令信息。

3.2PHY

物理層位于OSI最底層,物理層協(xié)議定義電氣信號、線的狀態(tài)、時鐘要求、數(shù)據(jù)編碼和數(shù)據(jù)傳輸用的連接器。物理層的器件稱為PHY。

圖片

PHY是物理接口收發(fā)器,它實現(xiàn)OSI模型的物理層。IEEE-802.3標(biāo)準(zhǔn)定義了以太網(wǎng)PHY包括MII/GMII(介質(zhì)獨立接口)子層、PCS(物理編碼子層)、PMA(物理介質(zhì)附加)子層、PMD(物理介質(zhì)相關(guān))子層、MDI子層。

⑴MDI

MDI口是快速以太網(wǎng)100BASE-T定義的與介質(zhì)有關(guān)接口(Media Dependent Interface)。MDI是指通過收發(fā)器發(fā)送的100BASE-T信號,即100BASE-TX、FX、T4或T2信號。將集線器連接網(wǎng)絡(luò)接口卡時,其發(fā)送和接收對通常是相互連接的。集線器之間連接時,通常需要一條跨接電纜,其中的發(fā)送和接收對是反接的。MDI是正常的UTP或STP連接,而MDI-X連接器的發(fā)送和接收對是在內(nèi)部反接的,這就使得不同的設(shè)備(如集線器-集線器或集電器-交換機),可以利用常規(guī)的UTP或STP電纜實現(xiàn)背靠背的級聯(lián)?!?/p>

⑵PHY基礎(chǔ)知識

PHY是IEEE 802.3規(guī)定的一個標(biāo)準(zhǔn)模塊,SOC可以通過MDIO對PHY進行配置或者讀取phy相關(guān)狀態(tài),PHY內(nèi)部寄存器必須滿足

PHY芯片的寄存器地址空間是5位,一般由外部硬件連接決定。

地址空間031共32個寄存器,IEEE定義了015這16個寄存器的功能,16-31這16個寄存器由廠商自行實現(xiàn)。也就是說不管哪個廠商的PHY芯片,其中0~15這16個寄存器是一模一樣的。

僅靠這 16個寄存器完全可以驅(qū)動起PHY芯片,至少能保證基本的網(wǎng)絡(luò)數(shù)據(jù)通信。因此 Linux 內(nèi)核有通用 PHY 驅(qū)動,按道理來講,不管你使用的是哪個廠家的 PHY 芯片,都可以使用 Linux 的這個通用 PHY 驅(qū)動來驗證網(wǎng)絡(luò)工作是否正常。事實上在實際開發(fā)中可能會遇到一些其他的問題導(dǎo)致 Linux 內(nèi)核的通用 PHY 驅(qū)動工作不正常,這個時候就需要驅(qū)動開發(fā)人員去調(diào)試了。

隨著現(xiàn)在PHY芯片性能越來越強大,32個寄存器已經(jīng)無法滿足廠商的需求,因此很多廠商采用了分頁機制來開展寄存器地址空間,以求定義更多的寄存器。這些多出來的幾次器可以實現(xiàn)廠商特有的一些技術(shù),因此在Linux內(nèi)核里面可以看到很多具體的PHY芯片驅(qū)動源碼。

四、對癥下藥有妙招

4.1硬件層面解決方案

當(dāng)遇到硬件相關(guān)問題時,以下這些方法或許能幫助你恢復(fù)正常的硬件運行狀態(tài):

重新焊接:對于焊接錯誤導(dǎo)致的 MAC 和 PHY 層通信故障,像是引腳虛焊或者連焊情況,需要進行重新焊接操作。例如,若發(fā)現(xiàn) PHY 芯片引腳存在虛焊,使用專業(yè)的焊接工具,將虛焊的引腳重新補焊牢固,確保芯片引腳與電路板之間接觸良好,使信號可以穩(wěn)定傳輸;而對于連焊問題,則要小心地將短路的引腳分開,并清理干凈多余的焊錫,保證各引腳之間電氣連接正常。

檢查線路完整性:線路方面,無論是網(wǎng)線還是電路板上連接 MAC 和 PHY 層的線路,都要仔細排查。針對網(wǎng)線,可順著網(wǎng)線的走向,查看其外皮是否有破損、彎折過度的地方,若懷疑內(nèi)部導(dǎo)線斷裂,可用萬用表的電阻檔測量網(wǎng)線不同線芯的電阻值,正常情況下應(yīng)該是較小的阻值,如果阻值無窮大則意味著線芯可能斷裂,此時就需要更換新的網(wǎng)線。對于電路板上的線路,同樣借助萬用表的通斷測試功能,檢查是否存在斷路或者短路故障,若發(fā)現(xiàn)線路有損壞痕跡,要及時修復(fù)或者重新布線,保障信號能正常通過線路傳輸。

更換電源模塊:電源供應(yīng)不穩(wěn)定影響 MAC 和 PHY 層工作時,考慮更換電源模塊。比如在一些工業(yè)環(huán)境中,由于電源容易受到干擾,若原本的電源模塊無法提供穩(wěn)定的電壓輸出,可選擇具有更好抗干擾能力、穩(wěn)壓性能更強的電源模塊進行替換,確保輸出的電壓符合 PHY 芯片以及 MAC 芯片正常工作所要求的范圍,避免因電壓波動、紋波干擾等問題造成芯片工作異常,影響數(shù)據(jù)傳輸。

修復(fù)復(fù)位電路:復(fù)位電路出現(xiàn)異常,致使 PHY 芯片無法正常初始化進入工作狀態(tài)時,要對復(fù)位電路進行修復(fù)。首先,全面檢查復(fù)位電路中的各個元件,像復(fù)位芯片、電阻、電容等,查看是否有損壞或者焊接不良的情況,如有損壞的元件,按照原規(guī)格進行更換;然后,使用示波器查看復(fù)位信號的波形,確認(rèn)復(fù)位信號的電平維持時間、上升沿和下降沿等是否滿足 PHY 芯片的要求,若不符合,通過調(diào)整相關(guān)元件參數(shù)或者修復(fù)電路連接等方式進行修正,保證復(fù)位電路能正常完成復(fù)位操作,使 PHY 芯片以及 MAC 層能在正確的初始狀態(tài)下開始工作。

4.2軟件層面解決方案

在處理配置與驅(qū)動相關(guān)問題時,下面這些軟件操作手段能助力 MAC 和 PHY 層協(xié)調(diào)工作,實現(xiàn)正常的數(shù)據(jù)傳輸:

讀寫寄存器:通過 SMI 接口讀寫 PHY 芯片的寄存器是很關(guān)鍵的操作。不同廠家、不同型號的 PHY 芯片寄存器定義和操作方式會有差異,要依據(jù)芯片手冊的具體說明來進行讀寫。比如,為了獲取 PHY 芯片當(dāng)前的連接速度、雙工的能力等狀態(tài)信息,可按照相應(yīng)的寄存器地址和讀取規(guī)則,通過 SMI 接口從對應(yīng)的寄存器中讀取數(shù)據(jù);而要設(shè)置 PHY 芯片的工作狀態(tài),像配置其工作模式、速度等參數(shù)時,則向相應(yīng)的寄存器寫入符合 IEEE 規(guī)范以及芯片要求的值,確保 MAC 和 PHY 層能按照設(shè)定好的狀態(tài)進行工作,保障數(shù)據(jù)傳輸?shù)恼i_展。

更新驅(qū)動程序版本:當(dāng)更換了不同廠家或者不同型號的 PHY 芯片后,原有的驅(qū)動程序可能無法適配新芯片,這時就需要更新驅(qū)動程序版本。根據(jù)新芯片的特性以及手冊要求,對驅(qū)動中的相關(guān)代碼進行調(diào)整修改,尤其是針對控制寄存器讀寫等操作的代碼部分,使其能準(zhǔn)確地與新的 PHY 芯片配合工作,實現(xiàn)諸如自動協(xié)商速度、雙工模式等功能,避免因驅(qū)動不匹配導(dǎo)致 MAC 和 PHY 無法正常通訊,數(shù)據(jù)傳輸出現(xiàn)混亂或者中斷的情況。

按照規(guī)范重新進行自動協(xié)商:通常情況下,MAC 和 PHY 芯片是默認(rèn)開啟自動協(xié)商功能的,但有時也可能出現(xiàn)該功能不能使用的狀況。此時,需要確認(rèn) MAC 和 PHY 芯片是否支持自動協(xié)商功能的使用,如果支持但未正常協(xié)商,就要按照 IEEE 規(guī)范重新進行自動協(xié)商操作。比如在一些特定的網(wǎng)絡(luò)設(shè)備組合中,若出現(xiàn)自動協(xié)商失敗導(dǎo)致無法確定合適的數(shù)據(jù)傳輸速度和雙工模式的問題,可以手動配置相關(guān)參數(shù),引導(dǎo) MAC 和 PHY 層重新進行協(xié)商,促使它們達成一致的、能保障數(shù)據(jù)穩(wěn)定傳輸?shù)墓ぷ髂J剑駞f(xié)商出 100Mbps 的速度以及全雙工模式等。

4.3綜合排查與維護建議

在遇到 MAC 和 PHY 層問題時,進行系統(tǒng)性的排查是至關(guān)重要的,以下是一些建議:

⑴系統(tǒng)性排查步驟

先從硬件外觀、連接情況查起:直觀查看硬件連接情況,檢查是否有明顯的線路破損、接口松動跡象,芯片焊接是否牢固、引腳有無異常等。比如查看 RJ45 接口是否插緊,MII、RMII、GMII 等 MAC 和 PHY 層之間的連接接口有沒有松動;再看 PHY 芯片的焊接狀況,有無虛焊、連焊或者引腳損壞的情況。同時,觀察電路板上相關(guān)線路是否存在短路、斷路等問題,對于網(wǎng)線也要留意其外皮完整性以及線芯是否有斷裂風(fēng)險。

再到軟件配置、驅(qū)動狀態(tài)等方面依次排查:在軟件方面,先檢查驅(qū)動程序是否正確安裝以及是否適配當(dāng)前的 MAC 和 PHY 芯片,查看驅(qū)動中對寄存器的配置是否符合芯片要求,例如控制寄存器位有沒有正確設(shè)置來使 MAC 層知曉 PHY 層的鏈路狀態(tài)等關(guān)鍵信息。然后通過相關(guān)工具查看軟件層面的狀態(tài),比如利用操作系統(tǒng)自帶的網(wǎng)絡(luò)管理工具或者專業(yè)的網(wǎng)絡(luò)檢測軟件,查看 MAC 和 PHY 層的工作狀態(tài)參數(shù),確認(rèn)速度、雙工模式等是否協(xié)商成功,數(shù)據(jù)傳輸是否正常等。

⑵日常維護建議

定期檢查硬件連接:每隔一段時間,對網(wǎng)線、接口以及芯片引腳等硬件連接部位進行檢查,及時發(fā)現(xiàn)并處理松動、破損等潛在問題,避免因長時間積累導(dǎo)致嚴(yán)重的通信故障。

做好電源管理與監(jiān)控:確保電源供應(yīng)穩(wěn)定,對于容易受到干擾的使用環(huán)境,可以增加電源濾波、穩(wěn)壓設(shè)備;同時,定期檢測電源電壓、紋波等參數(shù),及時發(fā)現(xiàn)電源異常情況并進行處理,防止因電源問題影響 MAC 和 PHY 層芯片工作。

及時更新驅(qū)動和固件:關(guān)注 MAC 和 PHY 芯片廠家發(fā)布的驅(qū)動更新以及固件升級信息,及時進行更新操作,以保證設(shè)備能適配最新的功能優(yōu)化和兼容性改進,減少因軟件版本過舊引發(fā)的問題。

備份重要配置信息:將 MAC 和 PHY 層相關(guān)的正確配置參數(shù)、寄存器設(shè)置值等重要信息進行備份,當(dāng)出現(xiàn)故障需要重新配置或者恢復(fù)設(shè)備時,可以快速準(zhǔn)確地還原到正常的工作。

責(zé)任編輯:武曉燕 來源: 深度Linux
相關(guān)推薦

2010-08-24 13:28:36

IP地址沖突現(xiàn)象

2009-01-11 12:12:41

2021-04-12 13:20:43

WiFi路由器網(wǎng)絡(luò)

2010-02-24 16:00:29

2012-04-16 15:16:32

2013-12-04 10:34:34

2019-01-08 07:45:54

2011-06-28 13:05:37

2020-09-23 14:59:12

大數(shù)據(jù)

2009-03-05 09:28:00

VPN連接Vista系統(tǒng)局域網(wǎng)

2010-01-15 11:45:10

交換機

2024-05-20 11:51:47

架構(gòu)重構(gòu)接口

2011-03-22 09:32:10

2016-11-04 16:29:15

移動安全移動設(shè)備風(fēng)險

2011-12-01 14:43:25

噴墨打印機故障與解決

2017-07-06 12:33:19

聯(lián)想超融合

2011-10-12 14:43:00

Broadcom汽車PHY

2011-12-15 10:26:34

Broadcom以太網(wǎng)PHY

2013-12-25 13:03:08

校園網(wǎng)出口A10
點贊
收藏

51CTO技術(shù)棧公眾號