在當(dāng)前的嵌入式系統(tǒng)設(shè)計趨勢中,MAC功能普遍被整合至CPU內(nèi)核,形成一種高度集成的網(wǎng)絡(luò)功能模塊。與此同時,PHY芯片作為獨立器件,專注于應(yīng)對物理層錯綜復(fù)雜的電氣特性和信號轉(zhuǎn)換需求。為了確保PHY芯片能夠在所需的各種網(wǎng)絡(luò)模式和參數(shù)設(shè)定下精確運作,業(yè)界廣泛采用了MDIO(Management Data Input/Output)管理總線進行配置和調(diào)控。通過MDIO總線接口,開發(fā)工程師能夠深入訪問并靈活調(diào)整PHY芯片內(nèi)部的寄存器設(shè)置,進而實現(xiàn)實時的自適應(yīng)速率調(diào)整、全雙工與半雙工模式切換等多種關(guān)鍵功能。
針對ELF 1開發(fā)板的具體架構(gòu),其PHY芯片與內(nèi)置MAC控制器間的數(shù)據(jù)傳輸互動是借助RMII(Reduced Media Independent Interface)高效接口技術(shù)來完成的。RMII標(biāo)準(zhǔn)因其精簡的引腳數(shù)量和高效的傳輸速率,顯著減少了電路板布局的復(fù)雜度,節(jié)約了系統(tǒng)硬件資源,并提升了以太網(wǎng)數(shù)據(jù)的傳輸速度。得益于這一接口技術(shù),ELF 1開發(fā)板成功地實現(xiàn)了從物理層到數(shù)據(jù)鏈路層的平滑過渡和完美融合,從而有力支持了基于TCP/IP協(xié)議棧的各類應(yīng)用程序在嵌入式環(huán)境中的穩(wěn)定高效運行。
了解MDIO總線
MDC是開漏(OD)輸出,只能輸出低電平,因此需要上拉處理,為MDIO提供時鐘信號;MDIO管理接口數(shù)據(jù)傳輸格式及含義如下表所示:
需要注意的是,TA在讀操作和寫操作兩種狀態(tài)下數(shù)據(jù)位不同,TA是介于寄存器地址和寄存器數(shù)據(jù)之間的2個bit位,用來轉(zhuǎn)換數(shù)據(jù)傳輸方向。讀操作時,地址傳輸和數(shù)據(jù)傳輸控制方不同,設(shè)置2bit?TA的目的就是為了防止MDIO總線上產(chǎn)生競爭。TA的第1位z,PHY和MAC均釋放總線控制輸出高阻,且后面MAC一直保持高阻態(tài)狀態(tài),第2位0由PHY提供。第2位相當(dāng)于一個應(yīng)答信號,如果第2位為高電平,PHY無應(yīng)答。除此之外,Idle為空閑狀態(tài),此時MDIO無源驅(qū)動,處高阻狀態(tài),但一般用上拉電阻使其處在高電平。
關(guān)于網(wǎng)絡(luò)信號模式
常見網(wǎng)絡(luò)信號模式包含:MII、RMII、GMII、RGMII、SGMII。每種模式包含的信號線數(shù)量和控制線數(shù)量各不相同,通訊速度也不相同:MII、RMII為百兆網(wǎng)絡(luò),GMII、RGMII、SGMII為千兆網(wǎng)絡(luò),區(qū)別和關(guān)系參考表以下圖表。
ELF 1開發(fā)板使用的RJ45內(nèi)部集成了網(wǎng)絡(luò)變壓器,其4、5腳位中心抽頭引腳,該引腳有兩種接法:電流型,中心抽頭直接接電源;電壓型,中心抽頭通過100nF電容接地(ELF 1開發(fā)板的接法,引腳4、5接100nF電容C87和C88)。實際使用中需要如何處理中心抽頭需要根據(jù)PHY芯片的驅(qū)動類型確定。
PHY芯片電路原理說明
ELF 1開發(fā)板最多支持兩路百兆網(wǎng)口,底板和擴展板上各一路。開發(fā)板使用兩個KSZ8081RNB型號的PHY芯片實現(xiàn)網(wǎng)絡(luò)通信,KSZ8081RNB是通過MDIO總線掛載到EL開發(fā)板上,MDIO總線對應(yīng)芯片的11、12引腳主要負(fù)責(zé)通過配置PHY芯片KSZ8081RNB的寄存器控制PHY芯片的網(wǎng)口速率、網(wǎng)口雙工模式、自協(xié)商使能等功能。KSZ8081RNB的數(shù)據(jù)接口是通過RMII和開發(fā)板連接,并傳輸網(wǎng)絡(luò)數(shù)據(jù)的。
ENET_PHYAD0、ENET_PHYAD1和ENET_RXD1在芯片上電復(fù)位時會鎖存一個電平狀態(tài)作為芯片的PHY地址,在芯片上電后,其數(shù)據(jù)被鎖存到相應(yīng)寄存器中,而后恢復(fù)芯片的默認(rèn)功能,不會影響通信。由于該款芯片有三條地址線,因此理論上同一塊板卡最多可以掛載7顆(001—111。000作為廣播地址,是不可以被使用的)。
ENET_CRS_DV、ENET_CFG1、ENET_CFG0是芯片接口模式選擇, ELF 1開發(fā)板設(shè)置為100。
底板網(wǎng)口原理圖
擴展板網(wǎng)口原理圖
網(wǎng)口電路設(shè)計指南
(1)ELF 1開發(fā)板可支持兩路百兆網(wǎng)。
(3)MDIO以及RMII接口的引腳要注意電平匹配,核心板為3.3V電平。
(4)MDIO總線上需要加上拉電阻,阻值可以根據(jù)實際情況調(diào)整。
網(wǎng)口PCB設(shè)計指南
(1)MDIO總線上掛載多個PHY芯片時,使用串聯(lián)方式,不要分叉布線。
(2)RGMII接口分為發(fā)送信號,接收信號和控制信號,各組阻抗控制在50Ω±10%。
(3)發(fā)送信號和接收信號,布線長度不超過100mm,組內(nèi)信號長度誤差不超過2.54mm。
(4)時鐘預(yù)留對地電容,方便后期調(diào)試。
(5)MDI接口采用差分布線,阻抗100Ω±10%。
(6)MDI組內(nèi)差分誤差不超過0.12mm。
(7)芯片內(nèi)部DCDC連接的功率電感要靠近芯片保證回路最短,并且保證地回路的完整。
(8)數(shù)據(jù)線上預(yù)留的串聯(lián)電阻需要靠近源端放置。
(9)保護器件建議放置在變壓器內(nèi)側(cè),在變壓器和PHY之間,靠近變壓器。
(10)供電部分要考慮電流的大小,線寬盡量寬一點。要有足夠的載流能力,濾波電容的位置盡量靠近芯片。
(11)網(wǎng)口 RJ45 在布線時要注意進行隔離地。
網(wǎng)口問題排查思路
在遇到網(wǎng)口問題時排查網(wǎng)口問題首先要明確問題點,網(wǎng)口不通的情況下首先要看 PHY 有沒有成功掛載上,可通過是否可以啟動網(wǎng)卡來判斷,如果根本看不到設(shè)備節(jié)點或者在輸入啟動網(wǎng)卡的命令后報錯,找不到 PHY 芯片說明 PHY 芯片沒有成功掛載。如果可以正常啟動網(wǎng)卡說明 PHY 可以成功掛載。
如果 PHY 沒掛載上排查思路如下:
(1)首先看是否有缺件、少件,原件焊接錯誤的情況,PHY 芯片焊接是否過關(guān)等。
(2)檢查各路供電是否正常,電源是否穩(wěn)定,是否有明顯壓降、跌坑現(xiàn)象。濾波電容容量是否達標(biāo)。
(3)檢查復(fù)位電路是否有復(fù)位動作,復(fù)位后是否可以正常抬起復(fù)位信號,復(fù)位信號低電平的維持時間是否滿足 PHY 的要求。
(4)檢查芯片的時鐘頻率、幅值、以及信號質(zhì)量是否滿足手冊要求。不同類型的時鐘輸入方式原理是否正確。
(5)檢查 PHY 芯片的地址、模式、電平配置等參數(shù)設(shè)置的上下拉電阻是否正常。
(6)檢查 MDIO 總線的波形幅值、斜率、是否正常,振鈴是否嚴(yán)重,是否有下降沿壓降不到 0 的現(xiàn)象,在 MDC 的上升沿來臨時 MDIO 的電平維持時間是否滿足硬件資料里網(wǎng)口芯片手冊要求等問題。
先將芯片成功掛載后再看網(wǎng)口通不通。如果經(jīng)過以上檢測排查成功將 PHY 芯片掛載但是網(wǎng)口還是不通,那就需要繼續(xù)檢查數(shù)據(jù)接口部分。根據(jù)不同接口的規(guī)定來對數(shù)據(jù)接口的總線進行檢查。
(1)按照具體的接口形式檢查數(shù)據(jù)線連接是否正確,在使用MII,RMII,GMII,RGMII時的線序,檢查參考時鐘波形是否正常。
(2)檢查網(wǎng)絡(luò)變壓器的中心抽頭的接法是否與PHY 規(guī)定的網(wǎng)絡(luò)變壓器的驅(qū)動類型相對應(yīng)。
以上就是對ELF 1開發(fā)板網(wǎng)口組件中的幾個核心概念做了講解。然而,“實踐出真知”,我們誠摯建議各位小伙伴在理論學(xué)習(xí)之余,更要親自進行實踐操作,如測試、故障排查等,以便深入理解和掌握網(wǎng)口模塊的內(nèi)在機制。唯有親手實踐,才能使知識領(lǐng)悟更為深刻全面。倘若在嵌入式學(xué)習(xí)探索過程中遇到任何疑問或難題,歡迎各位小伙伴與ElfBoard的技術(shù)支持團隊進溝通交流。我們堅信,通過共同探討與分享,定能助力您的嵌入式學(xué)習(xí)之路更上一層樓,一同見證彼此的進步與發(fā)展。