導(dǎo)讀
網(wǎng)絡(luò)故障困擾重重?本文聚焦客戶網(wǎng)卡故障的兩種特殊情形:低溫運(yùn)行與信號(hào)干擾下的網(wǎng)絡(luò)卡死??此坪?jiǎn)單卻歷經(jīng)波折的解決過(guò)程,帶你深入剖析排查中陷入的誤區(qū)。
? MDIO信號(hào)反射導(dǎo)致網(wǎng)絡(luò)卡死分析
客戶反饋網(wǎng)卡故障表現(xiàn)有兩種情形:在低溫情況下運(yùn)行一段時(shí)間后,容易出現(xiàn)網(wǎng)絡(luò)卡死,必須重啟才能恢復(fù);外界稍微有點(diǎn)信號(hào)干擾就有可能引起網(wǎng)絡(luò)卡死。
問(wèn)題的解決方法看似很簡(jiǎn)單,但解決過(guò)程卻頗費(fèi)周章,花費(fèi)了很多的精力。排查出原因是MDIO的時(shí)鐘信號(hào)在低溫情況振鈴增強(qiáng)或受到干擾時(shí),信號(hào)產(chǎn)生毛刺,導(dǎo)致寄存器被寫(xiě)入了錯(cuò)誤的值,PHY進(jìn)入了異常狀態(tài)無(wú)法工作。最終解決的方法是在MDC信號(hào)靠近源端串聯(lián)22歐電阻。下面進(jìn)行分析。
首先問(wèn)題的現(xiàn)象是低溫工作一段時(shí)間后出現(xiàn),雙網(wǎng)口的板卡只有其中一個(gè)網(wǎng)口會(huì)出現(xiàn)該問(wèn)題,且網(wǎng)絡(luò)一旦卡死,必須重啟才能恢復(fù),所以開(kāi)始認(rèn)為是走線問(wèn)題或電源問(wèn)題誘發(fā)的MAC或PHY卡死。
另一個(gè)陷阱是PHY寄存器有兩部分,由于MDIO協(xié)議定義的register address位寬為5bit,對(duì)PHY來(lái)說(shuō)是不夠用的,所以原廠將其分成了一般寄存器和擴(kuò)展寄存器兩部分。
以裕泰微的YT8531為例,通過(guò)一般寄存器的0x1E和0x1F間接地讀寫(xiě)擴(kuò)展寄存器,地址大于0x1F的寄存器都需要通過(guò)0x1E和0x1F作為入口,參考圖1。初次檢查寄存器的時(shí)候只讀出了一般寄存器的值,檢查對(duì)比異常時(shí)和正常時(shí)沒(méi)有區(qū)別就認(rèn)為寄存器沒(méi)有問(wèn)題了。后期又仔細(xì)核對(duì)發(fā)現(xiàn)出問(wèn)題在擴(kuò)展寄存器,才又將調(diào)試方向糾正過(guò)來(lái)。測(cè)試MDIO波形發(fā)現(xiàn)原本應(yīng)該只在初始化過(guò)程中配置好的地址,正常通信過(guò)程中也在不停的覆寫(xiě),最終在反復(fù)的“嘗試”后,終于等到MDC毛刺,成功將錯(cuò)誤值寫(xiě)入了寄存器。最終也通過(guò)示波器測(cè)到了MDC上的毛刺,測(cè)量得到的波形如圖2所示。
圖1 YT8531擴(kuò)展寄存器入口
圖1 示波器協(xié)議解析功能測(cè)量MDIO波形
MDIO是以太網(wǎng)電路中十分重要的部分,配置模式、調(diào)整性能都離不開(kāi)MDIO,很多以太網(wǎng)故障都與MDIO有關(guān)。MDIO協(xié)議規(guī)定是可以多個(gè)網(wǎng)口使用同一個(gè)總線的,PHY芯片基本也都留有設(shè)置PHY地址的上下拉電阻,但很多主控芯片原廠還是會(huì)不建議一對(duì)多的設(shè)計(jì)。MDIO看似和I2C很像,但實(shí)際還是與I2C有很大區(qū)別,它的協(xié)議時(shí)序不同,速率也比I2C高很多,沒(méi)有應(yīng)答位,所以MDIO的上拉電阻不能用阻值太小的,信號(hào)走線也需要注意抗干擾和阻抗匹配。
關(guān)注我們,下期繼續(xù)講解:以太網(wǎng)Link Down問(wèn)題排查題排查及其他容易忽略的問(wèn)題。
AM335x升級(jí)之選
2路千兆以太網(wǎng)
3路CAN FD
支持GPMC
參考價(jià)格:319元起