硬件設(shè)計(jì)實(shí)戰(zhàn):從PCB層疊到磁性元件選型的關(guān)鍵細(xì)節(jié))
做硬件這么久我越來(lái)越覺(jué)得千兆以太網(wǎng)是一個(gè)看起來(lái)簡(jiǎn)單做起來(lái)全是細(xì)節(jié)的東西。原理圖照著PHY芯片的參考設(shè)計(jì)抄PCB按廠家推薦來(lái)畫幾乎每個(gè)人都能很快跑通第一版但真正到了量產(chǎn)、過(guò)EMC、跑長(zhǎng)時(shí)間大壓力吞吐的時(shí)候那些當(dāng)初忽略的細(xì)節(jié)會(huì)一個(gè)個(gè)冒出來(lái)找你算賬。這篇文章不打算從什么是以太網(wǎng)開(kāi)始講起而是直接聊我在設(shè)計(jì)千兆以太網(wǎng)接口時(shí)真正花過(guò)時(shí)間、踩過(guò)坑、并且最后證明非常關(guān)鍵的那些點(diǎn)。我默認(rèn)看這篇文章的你已經(jīng)知道PHY和MAC大概是什么關(guān)系、RGMII是什么東西也知道千兆以太網(wǎng)就是用那八根線四對(duì)差分線跑數(shù)據(jù)。所以下面要聊的都是那些參考設(shè)計(jì)不會(huì)寫在第一頁(yè)、但對(duì)產(chǎn)品穩(wěn)定性影響極大的設(shè)計(jì)決策——從PCB層疊一直聊到磁性元件選型再到調(diào)試現(xiàn)場(chǎng)怎么定位問(wèn)題。1. 千兆以太網(wǎng)千在什么地方信號(hào)速率上來(lái)之后一切都變了很多從百兆產(chǎn)品轉(zhuǎn)過(guò)來(lái)的人最容易犯的一個(gè)錯(cuò)誤就是拿做100BASE-TX的思路去做1000BASE-T。表面上只是速率從100M變成了1000M但底層傳輸機(jī)制的變化是本質(zhì)性的如果這個(gè)意識(shí)沒(méi)轉(zhuǎn)過(guò)來(lái)后面很多設(shè)計(jì)決策都會(huì)跑偏。1.1 四對(duì)線全雙工同時(shí)收發(fā)這是最核心的變化100BASE-TX只用兩對(duì)線一對(duì)發(fā)、一對(duì)收半雙工或者全雙工是靠協(xié)議層控制的電氣上收發(fā)天然隔離。而1000BASE-T用了全部四對(duì)線每一對(duì)線都是同時(shí)收發(fā)而且是雙向的。怎么做到同時(shí)收發(fā)還不沖突靠的是混合線圈和回波消除電路把發(fā)出去的信號(hào)從總線上減掉剩下的就是對(duì)方發(fā)過(guò)來(lái)的信號(hào)。這對(duì)硬件設(shè)計(jì)意味著什么呢意味著從PHY芯片的引腳到RJ45之間這四對(duì)線的對(duì)稱性非常重要。如果一對(duì)線里的P和N走線長(zhǎng)度差很多、過(guò)孔數(shù)量不一樣、或者參考面被切斷信號(hào)的正負(fù)分量就會(huì)出現(xiàn)偏差回波消除的效果就會(huì)變差?;夭ㄏ坏糨p則減少鏈路預(yù)算導(dǎo)致長(zhǎng)線纜協(xié)商不上千兆重則明明鏈路是Up的但長(zhǎng)時(shí)間跑吞吐就會(huì)莫名丟包。我見(jiàn)過(guò)一個(gè)案例客戶反饋千兆網(wǎng)絡(luò)在-40℃到-20℃之間不時(shí)斷鏈常溫一切正常。排查了很久最后發(fā)現(xiàn)是PCB上一對(duì)差分線的正端多走了一個(gè)過(guò)孔在低溫下PHY芯片的回波消除自適應(yīng)算法的收斂結(jié)果變差鏈路余量不足才觸發(fā)斷鏈。換了一版把過(guò)孔對(duì)稱掉之后問(wèn)題再?zèng)]復(fù)現(xiàn)過(guò)。這種問(wèn)題在百兆時(shí)代幾乎不會(huì)出因?yàn)榘僬椎氖瞻l(fā)電氣上是隔離的根本不需要回波消除。1.2 125MHz符號(hào)速率帶來(lái)的信號(hào)完整性問(wèn)題千兆以太網(wǎng)每一對(duì)線上跑的符號(hào)速率是125MBaud使用PAM-5調(diào)制也就是五電平。五電平意味著信號(hào)幅度被切成更多份對(duì)噪聲的容忍度比百兆的MLT-3編碼要差得多。同樣是100mV的噪聲在百兆系統(tǒng)里可能完全無(wú)感在千兆系統(tǒng)里可能直接導(dǎo)致誤碼。所以一個(gè)很重要的意識(shí)是千兆以太網(wǎng)的信號(hào)完整性問(wèn)題不是能不能跑通的問(wèn)題而是余量有多少的問(wèn)題。參考設(shè)計(jì)那種隨意走的線可能在家里的短網(wǎng)線上也能跑通千兆但拿到線上用上50米、100米的Cat5e線或者放進(jìn)機(jī)箱里、旁邊有開(kāi)關(guān)電源、有LCD排線問(wèn)題就暴露了。設(shè)計(jì)千兆以太網(wǎng)一定要把鏈路預(yù)算這個(gè)概念放在腦子里——你每節(jié)省一點(diǎn)反射損耗、串?dāng)_、噪聲都是在給系統(tǒng)的穩(wěn)定性多留一點(diǎn)余量這些余量最終指向的是量產(chǎn)一致性和惡劣環(huán)境的適應(yīng)能力。1.3 自動(dòng)協(xié)商不是你想象的自動(dòng)那么省心Auto-Negotiation是IEEE 802.3的標(biāo)準(zhǔn)功能但實(shí)際聯(lián)調(diào)中因協(xié)商失敗導(dǎo)致的問(wèn)題遠(yuǎn)比想象的常見(jiàn)。設(shè)計(jì)層面能做的事情主要是保證PHY的配置電阻、默認(rèn)寄存器值正確尤其是關(guān)于Master/Slave時(shí)鐘同步的配置。千兆以太網(wǎng)的定時(shí)是建立在Master/Slave機(jī)制上的——一端做主時(shí)鐘另一端做從時(shí)鐘。如果兩端都默認(rèn)成Master或者都默認(rèn)成Slave鏈路上就存在時(shí)鐘競(jìng)爭(zhēng)問(wèn)題雖然有的PHY支持自動(dòng)配置但有些場(chǎng)景下需要手動(dòng)指定。一個(gè)產(chǎn)品里如果PHY的Master/Slave配置引腳通常是一個(gè)配置電阻或寄存器位設(shè)置不當(dāng)和某些交換機(jī)網(wǎng)口對(duì)接時(shí)就可能出現(xiàn)協(xié)商成功但Link Up之后跑不了數(shù)據(jù)的怪問(wèn)題重試很多次才能成功。這些坑要在原理圖階段就排查掉別等到了現(xiàn)場(chǎng)才去懷疑網(wǎng)線。2. 高速PCB設(shè)計(jì)繞不過(guò)去的三道關(guān)卡層疊、阻抗與回流路徑現(xiàn)在很多開(kāi)發(fā)板為了成本做兩層板跑千兆以太網(wǎng)也能跑通但我要先潑一盆冷水兩層板跑千兆屬于能通但是賭運(yùn)氣尤其是當(dāng)你的板子上還有其他高速信號(hào)或者DC-DC開(kāi)關(guān)電源的時(shí)候。如果你在做一個(gè)要過(guò)認(rèn)證、要量產(chǎn)的產(chǎn)品我強(qiáng)烈建議至少用四層板。下面這幾個(gè)問(wèn)題是你在畫板前就必須決定好的。2.1 層疊結(jié)構(gòu)參考平面比抗干擾更關(guān)鍵千兆以太網(wǎng)的差分對(duì)需要連續(xù)、完整的參考平面這不僅僅是為了EMC更是為了阻抗可控。四層板的經(jīng)典疊構(gòu)是信號(hào)-地-電源-信號(hào)讓頂層和底層的信號(hào)都能就近參考到完整的平面層。以太網(wǎng)的差分線走頂層下面第二層就是完整的地平面這對(duì)信號(hào)質(zhì)量是最好的同時(shí)也是最容易實(shí)現(xiàn)的。如果受限于結(jié)構(gòu)必須走內(nèi)層一定要注意參考平面的連續(xù)性。我看到過(guò)一種典型的錯(cuò)誤做法以太網(wǎng)差分線走內(nèi)層但那一層旁邊被相鄰平面的分割區(qū)切斷了一部分參考路徑導(dǎo)致阻抗在某個(gè)區(qū)域突變。這種問(wèn)題用眼圖測(cè)試不一定馬上能看出來(lái)但誤碼率會(huì)明顯偏高尤其是長(zhǎng)時(shí)間跑大包的時(shí)候。關(guān)于雙層板如果你實(shí)在要這樣設(shè)計(jì)也有一條退路——必須保證以太網(wǎng)差分線的下方是完整的連續(xù)地平面不要走跨越分割的路徑而且盡量減少過(guò)孔。差分線下面經(jīng)過(guò)電源線、信號(hào)線的地島斷裂區(qū)域那基本上已經(jīng)埋下了不穩(wěn)定隱患。PCB設(shè)計(jì)軟件里的阻抗計(jì)算器也能幫你估算但雙層板的阻抗受介質(zhì)厚度不均勻影響太大實(shí)際控制精度遠(yuǎn)不如四層板。2.2 100Ω差分阻抗不是所有100Ω都真的100Ω千兆以太網(wǎng)的差分對(duì)目標(biāo)阻抗是100Ω但100Ω這個(gè)數(shù)字背后還有很多細(xì)節(jié)。PCB加工有蝕刻公差、阻焊厚度差異、玻纖編織效應(yīng)都會(huì)影響實(shí)際阻抗所以設(shè)計(jì)目標(biāo)通常應(yīng)該定在100Ω±10%有些要求高的會(huì)定在±5%。這里有個(gè)經(jīng)常被忽略的點(diǎn)阻抗計(jì)算時(shí)使用的介電常數(shù)Dk必須是真實(shí)板材的值而不能用FR4的通用值4.2來(lái)猜。不同廠家、不同樹(shù)脂體系的FR4Dk可能在3.8到4.8之間波動(dòng)直接決定了線寬線距。另外玻纖編織效應(yīng)在高速信號(hào)里會(huì)造成同一條線上不同位置的阻抗周期性波動(dòng)尤其當(dāng)差分線走線與玻纖束平行且距離很近時(shí)這個(gè)問(wèn)題更明顯。低頻一點(diǎn)的問(wèn)題不大但千兆正處于這個(gè)敏感區(qū)間。有一種簡(jiǎn)單粗暴的做法是把走線角度斜著走避開(kāi)平行玻纖但效果最好的還是選用了低損耗平滑玻纖板材的廠家做樣機(jī)測(cè)試。我推薦的做法是畫板之前先跟PCB板廠確認(rèn)他們常用的板材型號(hào)問(wèn)他們要這個(gè)板材在目標(biāo)厚度下的阻抗計(jì)算推薦值。別自己閉門算了一個(gè)線寬就丟出去做板很多板廠在被動(dòng)阻抗控制下會(huì)自己調(diào)整但如果你指定了靜態(tài)阻抗值而工藝差太多板廠開(kāi)工程問(wèn)題單來(lái)問(wèn)你的時(shí)間都?jí)蚰阒匦略O(shè)計(jì)一版了。2.3 回流路徑與過(guò)孔繞路不是免費(fèi)的差分對(duì)走線上任何一個(gè)過(guò)孔都意味著信號(hào)在該點(diǎn)的參考平面會(huì)短暫斷裂。雖然過(guò)孔本身有寄生電容和電感但只要控制得當(dāng)千兆速率下幾個(gè)過(guò)孔是可以接受的。真正要避免的是——信號(hào)走線從頂層換到內(nèi)層之后回流路徑被迫繞了一大圈。因?yàn)樾盘?hào)的回流電流總是走阻抗最小的路徑如果參考平面在換層處不連續(xù)回流電流就會(huì)繞路尋找回路這個(gè)繞路的路徑會(huì)形成一個(gè)大的電流環(huán)既是輻射源也是接收天線。一個(gè)很實(shí)用的檢查方法在PCB設(shè)計(jì)軟件里把以太網(wǎng)那部分的差分線高亮出來(lái)然后一層一層地看它的正下方有沒(méi)有完整的參考平面。如果某個(gè)區(qū)域下方是電源平面而且對(duì)應(yīng)的層離得遠(yuǎn)或者切了兩條走線過(guò)去那就要重新處理。有時(shí)候?yàn)榱死@開(kāi)一個(gè)BGA的電源分割往往需要多打幾個(gè)過(guò)孔配合旁邊的回流地過(guò)孔來(lái)完成換層這樣代價(jià)遠(yuǎn)小于信號(hào)質(zhì)量惡化之后的反復(fù)調(diào)試。關(guān)于過(guò)孔的使用記住一個(gè)換層鐵律信號(hào)過(guò)孔旁邊緊挨一個(gè)地過(guò)孔。這樣換層時(shí)回流電流可以通過(guò)相鄰的地過(guò)孔從頂層的平面跳到內(nèi)層的平面電流環(huán)面積被壓縮到最小。這個(gè)動(dòng)作不是玄學(xué)是能讓眼圖質(zhì)量肉眼可見(jiàn)變好的實(shí)操細(xì)節(jié)。3. 變壓器和共模電感不是隨便選的信號(hào)鏈路上的隱形決定因素很多項(xiàng)目里設(shè)計(jì)師對(duì)網(wǎng)口變壓器和共模電感的選型不太上心覺(jué)得功能一樣的隨便買一個(gè)就行這是個(gè)很危險(xiǎn)的認(rèn)知。以太網(wǎng)信號(hào)從PHY引腳出來(lái)到RJ45中間經(jīng)過(guò)的這些磁性元件對(duì)信號(hào)完整性和電磁兼容性有決定性的影響。3.1 變壓器不只是隔離它還參與信號(hào)質(zhì)量塑造變壓器承擔(dān)的首要功能是電氣隔離把PHY芯片側(cè)和線纜側(cè)的直流電位隔開(kāi)避免共地回路帶來(lái)的噪聲。但它同時(shí)也是一個(gè)帶寬受限的器件它的高頻響應(yīng)、插入損耗、回波損耗直接決定了信號(hào)的質(zhì)量。選變壓器的時(shí)候第一看的就是它支持的速率等級(jí)。很多變壓器型號(hào)明寫了10/100Base-T千萬(wàn)別拿來(lái)做千兆。千兆變壓器需要支持更高的頻率帶寬至少要到125MHz實(shí)際設(shè)計(jì)會(huì)留余量到200-300MHz并且四對(duì)通道之間的串?dāng)_要低。第二不同PHY芯片對(duì)變壓器的要求有一些細(xì)微差異。部分PHY要求變壓器中心抽頭接特定的直流偏置電壓比如3.3V或者2.5V這會(huì)直接影響PHY內(nèi)部收發(fā)電路的工作點(diǎn)。你如果照抄一個(gè)別人的電路圖但用的不是他的PHY芯片就一定要確認(rèn)這個(gè)抽頭電壓和你的PHY匹配不匹配。接錯(cuò)了鏈路能在測(cè)試環(huán)境通但是信號(hào)質(zhì)量很差長(zhǎng)線纜或者高溫下就掉鏈子。有個(gè)簡(jiǎn)便方案是使用帶變壓器的RJ45連接器把變壓器集成在連接器內(nèi)部這樣可以減少板級(jí)器件數(shù)量也簡(jiǎn)化了差分布線密度。但集成式連接器也存在一些劣勢(shì)變壓器位置靠近面板如果面板附近有其他噪聲源隔離度反而不如分立方案。具體怎么選要看整體布局。3.2 共模電感抑制輻射的一把好手共模電感在以太網(wǎng)信號(hào)路徑中的作用非常直接它對(duì)差模信號(hào)幾乎不產(chǎn)生衰減因?yàn)椴钅4艌?chǎng)在磁環(huán)中相互抵消但對(duì)共模噪聲呈現(xiàn)很高的阻抗可以把線纜上傳導(dǎo)的共模電流壓下去減少對(duì)外輻射。好多板子做電磁兼容測(cè)試時(shí)以太網(wǎng)口輻射超標(biāo)第一反應(yīng)是加屏蔽、加吸波材料其實(shí)很多時(shí)候問(wèn)題就出在共模電感選型或擺放上。共模電感的選型要看阻抗曲線和額定電流通常要求其共模阻抗在幾十MHz到幾百M(fèi)Hz范圍內(nèi)是千歐級(jí)別。同時(shí)共模電感自身也有諧振點(diǎn)如果諧振頻率恰好落在以太網(wǎng)工作頻段內(nèi)反而會(huì)把噪聲放大。所以選型時(shí)一定要看廠商提供的阻抗頻響曲線不要只看MHz標(biāo)稱值。它的擺放位置也很有講究。一般建議靠近RJ45側(cè)即信號(hào)從變壓器出來(lái)之后、進(jìn)入連接器之前讓共模噪聲在離開(kāi)板子之前就被擋住。放在PHY和變壓器之間也不是不行但效果會(huì)差一些。3.3 Bob Smith端接與中心抽頭別小看這幾個(gè)電阻電容Bob Smith端接是網(wǎng)口設(shè)計(jì)中的一個(gè)經(jīng)典電路在變壓器的線纜側(cè)四對(duì)線之間通過(guò)75Ω電阻相連并且中間用RC串聯(lián)到機(jī)殼地。它的作用是為線纜側(cè)的共模電流提供一個(gè)確定的回流路徑把共模噪聲從信號(hào)線上泄放掉對(duì)改善輻射和抗靜電沖擊都有幫助。有一些設(shè)計(jì)為了節(jié)省元器件省略了Bob Smith端接結(jié)果做電磁兼容測(cè)試時(shí)發(fā)現(xiàn)網(wǎng)口輻射或者傳導(dǎo)明顯偏大。如果你是在設(shè)計(jì)兼容性要求高的產(chǎn)品這個(gè)電路最好不要省。還有一個(gè)細(xì)節(jié)是中心抽頭的處理。有些PHY要求中心抽頭接電源有些要求接電阻電容到地具體用哪種方式取決于PHY的數(shù)據(jù)手冊(cè)和內(nèi)部電路結(jié)構(gòu)。設(shè)計(jì)時(shí)一定不要想當(dāng)然地照搬其他項(xiàng)目。3.4 不同方案的磁性元件對(duì)比方案優(yōu)點(diǎn)缺點(diǎn)適用場(chǎng)景分立變壓器 共模電感布局靈活EMC調(diào)整空間大便于分模塊調(diào)試器件多占板面積大需要細(xì)心布局對(duì)性能、過(guò)認(rèn)證要求高板子空間充裕集成RJ45帶磁性元件設(shè)計(jì)簡(jiǎn)單差分布線短器件少變壓器位置受限可調(diào)整空間小成本可能偏高產(chǎn)品迭代快、空間緊湊、要求不極端超薄貼片變壓器SMD高度低適合盲埋孔工藝對(duì)PCB工藝要求高供應(yīng)商選擇少板子厚度有限的產(chǎn)品4. 原理圖之外容易翻車的三個(gè)環(huán)節(jié)接口、時(shí)鐘與電源噪聲原理圖階段最常見(jiàn)的問(wèn)題不是畫錯(cuò)引腳而是接口時(shí)序、時(shí)鐘源選擇、電源去耦這些看起來(lái)沒(méi)什么技術(shù)含量的地方。4.1 MAC到PHY的接口RGMII的時(shí)序坑RGMII是當(dāng)前最主流的MAC-PHY接口數(shù)據(jù)線只有4根但通過(guò)雙沿采樣DDR在125MHz時(shí)鐘下達(dá)到千兆吞吐。正因?yàn)槭请p沿采樣它對(duì)時(shí)鐘和數(shù)據(jù)之間的建立保持時(shí)間要求非常嚴(yán)格。很多PHY芯片在RGMII接口上提供了一個(gè)可選的內(nèi)部延遲RX Clock Delay目的就是為了補(bǔ)償PCB走線和芯片封裝引入的時(shí)鐘-數(shù)據(jù)偏移設(shè)置不對(duì)就會(huì)讓你在功能測(cè)試時(shí)偶爾ping通的板子在持續(xù)大流量下瘋狂報(bào)CRC錯(cuò)誤。這個(gè)延遲的開(kāi)關(guān)取決于PHY芯片的具體引腳配置或寄存器操作不同廠商的命名不一樣常見(jiàn)有RXDLY、RGMII Clock Skew等但作用是類似的。我踩過(guò)的一個(gè)坑是用了CPU廠商參考設(shè)計(jì)里的PHY型號(hào)以為參考設(shè)計(jì)是驗(yàn)證過(guò)的結(jié)果它用的是PHY的某一種延遲配置但我采購(gòu)到的芯片批次是另一種封裝版本默認(rèn)延遲配置正好相反。結(jié)果板子跑千兆交換機(jī)對(duì)連測(cè)試時(shí)偶爾能Link但吞吐打不滿也不報(bào)錯(cuò)用協(xié)議分析儀抓包才發(fā)現(xiàn)CRC錯(cuò)誤暴增。最后把RX時(shí)鐘延遲設(shè)置反轉(zhuǎn)問(wèn)題立刻消失。所以無(wú)論參考設(shè)計(jì)怎么給我建議你在調(diào)試階段專門寫個(gè)小的寄存器讀寫測(cè)試代碼把PHY的時(shí)鐘延遲設(shè)置、極性設(shè)置都列出來(lái)在系統(tǒng)聯(lián)調(diào)前逐一確認(rèn)。4.2 時(shí)鐘源125MHz不是差不多就行千兆以太網(wǎng)的MAC側(cè)和PHY側(cè)的參考時(shí)鐘精度要求是±50ppm這個(gè)看似寬松但如果你選了一個(gè)普通精度的振蕩器或者時(shí)鐘電路設(shè)計(jì)不良一樣會(huì)出問(wèn)題。PHY的參考時(shí)鐘通常使用25MHz晶振加內(nèi)部PLL倍頻或者直接使用125MHz有源晶振。需要注意的區(qū)別在于抖動(dòng)和啟動(dòng)時(shí)間。晶振的起振時(shí)間在某些PHY的上電時(shí)序要求下可能帶來(lái)問(wèn)題——有些PHY要求參考時(shí)鐘必須在上電復(fù)位釋放前穩(wěn)定如果晶振起振慢、或者RC復(fù)位電路的延時(shí)太短PHY的PLL就鎖定不到正確的時(shí)鐘上鏈路建立就會(huì)異常。另一個(gè)容易被忽略的點(diǎn)是當(dāng)多個(gè)PHY或交換芯片共用同一顆參考時(shí)鐘時(shí)時(shí)鐘走線要避免分支、保持阻抗連續(xù)而且要控制走線長(zhǎng)度避免時(shí)鐘相位不一致。低成本的方案是用一顆支持多路輸出的緩沖器來(lái)分路而不是一條線串連好幾個(gè)負(fù)載。4.3 電源去耦與電源域劃分PHY的退耦電容放對(duì)位置了嗎千兆PHY通常有多個(gè)電源域模擬電源通常1.8V或2.5V、數(shù)字電源1.2V或1.8V、以及I/O電源3.3V。這些電源域在PHY內(nèi)部是分開(kāi)的PCB上也應(yīng)該做合理的分割和去耦。一個(gè)經(jīng)常出問(wèn)題的地方是PHY的數(shù)字電源和系統(tǒng)其它數(shù)字器件共用了同一個(gè)LDO或DC-DC當(dāng)系統(tǒng)在跑高負(fù)載時(shí)電源紋波變大PHY的模擬部分就受到干擾導(dǎo)致信號(hào)抖動(dòng)指標(biāo)變差。如果你在做高集成度系統(tǒng)最好把PHY的模擬電源用單獨(dú)的LDO供電或者在DC-DC后加一級(jí)LC濾波再進(jìn)PHY的模擬電源引腳。去耦電容的位置盡量靠近電源引腳一般是一個(gè)大電容10uF或更多加幾個(gè)小電容100nF、10nF組合。但很多人忽略的是電容到引腳之間的過(guò)孔也參與寄生電感它們會(huì)增加高頻去耦的阻抗。實(shí)際操作中我會(huì)把100nF和10nF電容放在PCB反面、正對(duì)著電源引腳正下方這樣過(guò)孔路徑最短。10uF的儲(chǔ)能電容可以稍微遠(yuǎn)一點(diǎn)但也要保證它能覆蓋PHY的峰值電流需求。4.4 復(fù)位電路的上電時(shí)序PHY的復(fù)位引腳通常有最小復(fù)位脈沖寬度要求部分芯片還要求電源穩(wěn)定后必須經(jīng)過(guò)一定時(shí)間才能釋放復(fù)位。如果你的板子簡(jiǎn)化設(shè)計(jì)把PHY的復(fù)位接到CPU的GPIO上由軟件控制那就一定要在驅(qū)動(dòng)初始化時(shí)保證上電后的延時(shí)滿足數(shù)據(jù)手冊(cè)要求。我見(jiàn)過(guò)一個(gè)量產(chǎn)返修案例產(chǎn)品冷啟動(dòng)時(shí)偶爾有網(wǎng)口不工作熱重啟正常。最后排查到系統(tǒng)里PHY復(fù)位信號(hào)由一個(gè)CPLD控制而CPLD的時(shí)序邏輯在上電瞬間沒(méi)有保證足夠的復(fù)位脈沖寬度。PHY有時(shí)候殘留在上電的不確定狀態(tài)只有等下次復(fù)位才恢復(fù)正常。這個(gè)問(wèn)題在實(shí)驗(yàn)室很難復(fù)現(xiàn)因?yàn)榄h(huán)境溫度和上電順序稍差一點(diǎn)就會(huì)觸發(fā)。設(shè)計(jì)時(shí)給PHY復(fù)位加一個(gè)RC延時(shí)或者專用的復(fù)位IC比單純依賴軟件要可靠得多。5. 樣機(jī)調(diào)試?yán)镂也冗^(guò)的坑從PHY寄存器到眼圖測(cè)量的現(xiàn)場(chǎng)排查硬件調(diào)試驗(yàn)證階段可能是整個(gè)項(xiàng)目周期里最考驗(yàn)工程判斷力的環(huán)節(jié)。千兆以太網(wǎng)的故障現(xiàn)象往往很模糊——有時(shí)通有時(shí)不通、速度只有100M、大吞吐會(huì)斷流——如果不會(huì)系統(tǒng)性地排查很容易陷入瞎試的循環(huán)。5.1 PHY寄存器是第一步不是最后一步板子拿到手上電后第一件事是讓CPU讀取PHY的基礎(chǔ)寄存器比如看基本模式狀態(tài)寄存器里面的鏈路狀態(tài)和協(xié)商結(jié)果。如果你連基本模式狀態(tài)寄存器的Link Status都是Down那基本可以斷定物理層沒(méi)建立起來(lái)別急著查協(xié)議和驅(qū)動(dòng)。翻到千兆相關(guān)的擴(kuò)展寄存器廠商私有寄存器空間各有差異可以讀到當(dāng)前協(xié)商得到的速率、雙工模式、Master/Slave狀態(tài)。有些PHY還提供信號(hào)質(zhì)量相關(guān)的寄存器比如接收信號(hào)幅度、信噪比估算等。雖然這些寄存器不如儀表測(cè)的準(zhǔn)但對(duì)定位問(wèn)題是很好的參照物如果信號(hào)幅度比正常值低很多或者信噪比寄存器顯示異常那問(wèn)題大概率就在模擬前端——變壓器、共模電感、PCB走線。常用的排查思路是先確認(rèn)MAC-PHY接口配置用測(cè)試代碼固定一種協(xié)商模式來(lái)驗(yàn)證鏈路比如強(qiáng)制千兆全雙工、關(guān)閉自動(dòng)協(xié)商。這樣可以快速區(qū)分問(wèn)題是出在底層的信號(hào)質(zhì)量還是出在協(xié)商協(xié)議比抓瞎快得多。5.2 眼圖測(cè)試沒(méi)有示波器的替代方案也要有眼圖是信號(hào)完整性的最直觀表現(xiàn)。如果你手頭有1GHz以上帶寬的示波器可以在PHY的測(cè)試模式下很多PHY支持回環(huán)模式或測(cè)試波形輸出直接測(cè)差分信號(hào)的眼圖。眼圖的張開(kāi)程度、抖動(dòng)大小能告訴你信號(hào)質(zhì)量怎么樣。但這東西需要比較好的示波器很多小公司的實(shí)驗(yàn)室可能沒(méi)有這樣的設(shè)備。沒(méi)有示波器怎么測(cè)也有替代方案比如利用PHY內(nèi)部自帶的BIST內(nèi)建自測(cè)試功能結(jié)合誤碼率判斷。將PHY設(shè)為內(nèi)部自環(huán)或者外部回環(huán)然后長(zhǎng)時(shí)間跑隨機(jī)數(shù)據(jù)統(tǒng)計(jì)誤碼率。能連續(xù)跑一晚上誤碼率為零說(shuō)明信號(hào)質(zhì)量大概率是可以在正常環(huán)境下工作的。誤碼率的存在不一定是信號(hào)差干擾源可能是工作環(huán)境里的其他信號(hào)所以要學(xué)會(huì)隔離變量來(lái)排查。5.3 常見(jiàn)問(wèn)題的現(xiàn)場(chǎng)排查順序故障現(xiàn)象優(yōu)先級(jí)排查動(dòng)作網(wǎng)口完全不通高檢查PHY供電、復(fù)位、時(shí)鐘是否正常讀基本模式狀態(tài)寄存器確認(rèn)鏈路狀態(tài)協(xié)商成百兆或十兆高確認(rèn)線纜是否為Cat5e以上檢查四對(duì)差分線阻抗觀察是否只有兩對(duì)線在通信Link Up但丟包高檢查RGMII時(shí)序檢查PHY的寄存器錯(cuò)誤計(jì)數(shù)CRC錯(cuò)誤、幀對(duì)齊錯(cuò)誤電磁兼容測(cè)試輻射超標(biāo)中檢查共模電感是否放置Bob Smith端接是否完整RJ45金屬殼接地與否低溫/高溫掉鏈中檢查電源紋波確認(rèn)時(shí)鐘精度懷疑焊錫和阻抗一致性5.4 兩個(gè)值得關(guān)注的隱藏技能調(diào)試到最后有兩個(gè)容易被忽視的項(xiàng)目。一個(gè)是線纜測(cè)試。很多實(shí)驗(yàn)室拿一根能用的網(wǎng)線做測(cè)試這根網(wǎng)線可能是Cat5e但已經(jīng)壓接過(guò)多次線對(duì)間串?dāng)_和衰減早就超過(guò)標(biāo)準(zhǔn)。測(cè)出來(lái)的結(jié)果往往誤導(dǎo)性很強(qiáng)。建議手邊常備幾根在福祿克測(cè)試儀上驗(yàn)證過(guò)的高質(zhì)量測(cè)試線并把它們和普通網(wǎng)線區(qū)分開(kāi)調(diào)試時(shí)避免誤判。另一個(gè)是RJ45金屬外殼的處理。帶屏蔽的RJ45它的金屬殼是否與機(jī)箱地/系統(tǒng)地相連直接影響靜電放電和輻射表現(xiàn)。很多參考設(shè)計(jì)里都是通過(guò)RC通常是幾MΩ電阻并聯(lián)高壓電容連接到機(jī)箱地形成低頻隔離、高頻導(dǎo)通的效果。直接連接到數(shù)字地可能會(huì)引入環(huán)路噪聲完全懸空則金屬殼沒(méi)有泄放路徑。這一步值得在實(shí)驗(yàn)室做對(duì)照試驗(yàn)找到最適合你系統(tǒng)的接法。6. 那些讓量產(chǎn)穩(wěn)定的工程習(xí)慣調(diào)試完成、樣機(jī)跑通這只是硬件設(shè)計(jì)的一半。接下來(lái)要考慮的是量產(chǎn)一致性和可制造性問(wèn)題。很多設(shè)計(jì)在實(shí)驗(yàn)室里跑得很順一到產(chǎn)線上就變臉往往是前面規(guī)劃不夠充分。生產(chǎn)階段最常出問(wèn)題的點(diǎn)是焊接質(zhì)量和物料一致性。PHY芯片和變壓器的引腳間距小焊接不良會(huì)導(dǎo)致虛焊或橋連這種情況普通的ICT測(cè)試不一定抓得出來(lái)但長(zhǎng)時(shí)間運(yùn)行會(huì)發(fā)現(xiàn)丟包或者偶發(fā)斷鏈。所以有條件的話在產(chǎn)線上增加在線路測(cè)試環(huán)節(jié)專門測(cè)試以太網(wǎng)變壓器繞組的直流電阻和匝數(shù)比誤差超過(guò)2%的直接報(bào)警。別覺(jué)得這是小題大做的工序它能攔住一大批物料批次問(wèn)題。PCB加工端也不能放松。量產(chǎn)時(shí)一定要確認(rèn)板廠使用的覆銅板型號(hào)和打樣階段一致特別是介電常數(shù)。有些板廠在打樣時(shí)用高Dk板材量產(chǎn)時(shí)為了成本換成了低Dk的同樣是標(biāo)稱100Ω實(shí)際特性完全不同。這種變更通常不會(huì)提前通知你所以必須要求板廠在出廠報(bào)告中附帶阻抗測(cè)試條數(shù)據(jù)并比對(duì)你的目標(biāo)值。在和PCB廠家溝通時(shí)我建議你在工程文件中專門標(biāo)注以太網(wǎng)部分為關(guān)鍵阻抗控制區(qū)域讓CAM工程師知道這里有特殊要求不要隨意做阻焊開(kāi)窗或者調(diào)整線寬。另外也要注意差分對(duì)走線區(qū)域的鋪銅是否會(huì)產(chǎn)生貼近的屏蔽地線這會(huì)改變差模阻抗如果設(shè)計(jì)軟件里沒(méi)有對(duì)這塊進(jìn)行精確建模生產(chǎn)結(jié)果可能和設(shè)計(jì)目標(biāo)差異很大。散熱對(duì)千兆PHY的影響也是容易被低估的。很多PHY芯片的結(jié)溫上限是125℃但實(shí)際工作溫度超過(guò)85℃后PLL抖動(dòng)會(huì)明顯惡化鏈路在高溫環(huán)境下可能出現(xiàn)誤碼率上升。如果你的設(shè)備外殼通風(fēng)不良或者有熱源靠近PHY建議在熱設(shè)計(jì)階段就留出風(fēng)道和散熱焊盤或者在器件布局上把PHY和DC-DC這類發(fā)熱大戶拉開(kāi)距離。電源策略上我習(xí)慣在PHY的每個(gè)電源域入口都加一個(gè)磁珠并配電容形成局部濾波這不僅能進(jìn)一步抑制高頻噪聲對(duì)多塊板的批次一致性也有好處——不同批次的PHY芯片在相同板子上工作時(shí)電源噪聲容忍度多少有差異濾波越干凈越不依賴批次。關(guān)于BOB Smith端接的阻容值不同設(shè)計(jì)的取值差異很大不要死記一個(gè)阻值。選型上要參考變壓器廠商的推薦電路——有些變壓器內(nèi)置了部分端接外部再加一組可能導(dǎo)致阻抗不匹配。這個(gè)一定要看你選的變壓器的具體型號(hào)數(shù)據(jù)手冊(cè)前面說(shuō)過(guò)了不要盲抄參考設(shè)計(jì)。最后分享一個(gè)我常用的驗(yàn)收小技巧量產(chǎn)樣機(jī)做整機(jī)長(zhǎng)期老化測(cè)試時(shí)不只是簡(jiǎn)單ping包而是同時(shí)跑多個(gè)不同包長(zhǎng)的雙向UDP流比如64字節(jié)小包和1518字節(jié)大包混合并記錄丟包率。小包測(cè)的是每秒包處理能力大包測(cè)的是帶寬和緩存壓力兩者混合才是真實(shí)網(wǎng)絡(luò)場(chǎng)景的模擬。如果連續(xù)跑72小時(shí)丟包率低于萬(wàn)分之一我覺(jué)得這塊板子的以太網(wǎng)設(shè)計(jì)才算是真正過(guò)關(guān)。這個(gè)方法幫我規(guī)避過(guò)很多只測(cè)千兆大吞吞吐量卻發(fā)現(xiàn)不了丟小包問(wèn)題的隱患。千兆以太網(wǎng)設(shè)計(jì)說(shuō)難不難說(shuō)簡(jiǎn)單也不簡(jiǎn)單關(guān)鍵是每個(gè)環(huán)節(jié)都要有一個(gè)明確的意識(shí)你在為系統(tǒng)留出余量而不是只追求能跑。信號(hào)完整性、電源完整性、磁性元件選型、接口時(shí)序、生產(chǎn)一致性這五件事做好你的板子就能在苛刻環(huán)境下穩(wěn)定工作。這也是一個(gè)硬件工程師從畫出來(lái)走向設(shè)計(jì)出來(lái)的分水嶺。