硬件設(shè)計(jì)實(shí)戰(zhàn))
RTL8367RB-VB-CG這顆料基本就是五端口千兆無管理交換機(jī)的“標(biāo)準(zhǔn)答案”之一。我前面做過一版基于它的五口千兆交換機(jī)硬件設(shè)計(jì)整體下來感受是原理圖不算難難在細(xì)節(jié)——電源、時(shí)鐘、網(wǎng)絡(luò)變壓器、差分布線哪一環(huán)偷懶后面調(diào)板就得還債。這篇文章把從選型到調(diào)試的完整過程記錄下來想給正在做同類硬件設(shè)計(jì)的人或者準(zhǔn)備把路由器LAN口擴(kuò)成五個(gè)口的DIY玩家做個(gè)參考。我盡量把每一步為什么這么做講清楚不只是貼個(gè)原理圖還把實(shí)際踩過的坑也一塊說出來。這個(gè)方案適合三類人第一類是硬件工程師想快速把一顆成熟的交換芯片做成自己的小模塊或產(chǎn)品第二類是嵌入式開發(fā)者板子上需要多接幾個(gè)有線網(wǎng)口又不想用“USB轉(zhuǎn)百兆”這種湊合方案第三類是網(wǎng)絡(luò)設(shè)備折騰愛好者想理解市面上幾十塊錢五口千兆交換機(jī)到底是怎么工作的。無論哪類讀者只要按著這套流程走基本都能做出可用的樣機(jī)。1. 方案選型與整體設(shè)計(jì)思路拆解1.1 一顆RTL8367RB-VB-CG能做什么五口千兆無管理交換機(jī)的核心定位RTL8367RB-VB-CG是瑞昱Realtek一顆經(jīng)典的5端口10/100/1000M以太網(wǎng)交換芯片后綴里的VB-CG通常代表版本和環(huán)保合規(guī)標(biāo)識(shí)不影響電氣設(shè)計(jì)但采購(gòu)時(shí)一定要注意按完整料號(hào)下單不同后綴可能在溫寬、長(zhǎng)期供貨狀態(tài)上有差異。這顆芯片的厲害之處在于它把交換引擎、MAC地址表、地址學(xué)習(xí)、流控、以及5路千兆PHY全部集成在一顆芯片里。也就是說外部不需要再掛獨(dú)立的PHY芯片也不需要MCU來跑協(xié)議棧只要給它供電、給時(shí)鐘、接上網(wǎng)絡(luò)變壓器和RJ45座它就能自己完成以太網(wǎng)報(bào)文的轉(zhuǎn)發(fā)這就構(gòu)成了一個(gè)典型的無管理交換機(jī)。從定位上看無管理交換機(jī)解決的是“把多個(gè)有線設(shè)備安全地連進(jìn)同一個(gè)局域網(wǎng)”的需求。它沒有配置界面所有端口默認(rèn)處于同一個(gè)廣播域即插即用適合家庭寬帶擴(kuò)容、監(jiān)控?cái)z像頭組網(wǎng)、開發(fā)板聯(lián)網(wǎng)這類場(chǎng)景。相比可管理交換機(jī)它少了很多VLAN、鏈路聚合、端口鏡像等高級(jí)功能但換來的是低成本、低功耗和零配置。選用RTL8367RB-VB-CG而不是拿一顆MCU去外接多個(gè)USB網(wǎng)卡或者用兩顆百兆交換芯片拼接最重要的理由就是集成度。三顆芯片才能干完的活它一顆就能搞定BOM數(shù)量直接下降PCB尺寸也大幅度縮小。實(shí)際做下來一個(gè)手掌大小的板子就可以放下完整的五口千兆方案整板功耗通常也就一兩瓦對(duì)散熱和電源要求都很友好。1.2 無管理模式的系統(tǒng)架構(gòu)與選型取舍無管理交換機(jī)的系統(tǒng)架構(gòu)比大家想象中簡(jiǎn)單得多。以我做的這版為例系統(tǒng)由以下幾大部分組成核心交換芯片RTL8367RB-VB-CG供電系統(tǒng)外部輸入電源5V或12V經(jīng)過DC-DC和LDO轉(zhuǎn)換成芯片需要的多路電壓時(shí)鐘系統(tǒng)一顆25MHz無源晶體為芯片提供基準(zhǔn)時(shí)鐘網(wǎng)絡(luò)接口5個(gè)帶隔離變壓器的RJ45連接器狀態(tài)指示每端口至少一組Link/Act LED復(fù)位電路上電復(fù)位RC回路或獨(dú)立復(fù)位IC這里有一個(gè)容易被忽略的選型問題網(wǎng)絡(luò)變壓器和RJ45到底是買一體式的RJ45帶變壓器還是買分離式的我的結(jié)論是項(xiàng)目初期打樣驗(yàn)證用一體式連接器最快比如HR911130A、HX1188NL這類帶變壓器的RJ45座不需要再單獨(dú)畫變壓器封裝也少了不少布局煩惱。但如果你對(duì)EMC和信號(hào)完整性要求比較高或者后續(xù)要做批量生產(chǎn)、想在變壓器上做更多設(shè)計(jì)自由度那就應(yīng)該選分離式網(wǎng)絡(luò)變壓器比如H6101系列配合普通RJ45座使用。無管理模式下芯片的工作狀態(tài)完全由引腳上的上下拉電阻strap也叫啟動(dòng)配置引腳決定不需要寫程序也不需要外掛EEPROM。這也意味著硬件設(shè)計(jì)階段就必須把這些引腳的默認(rèn)狀態(tài)定死一旦板子貼好后再想改工作模式就麻煩了。所以設(shè)計(jì)時(shí)一定要對(duì)著數(shù)據(jù)手冊(cè)一頁(yè)頁(yè)核對(duì)引腳默認(rèn)值和推薦的上下拉電阻接法這部分我在第2章會(huì)詳細(xì)講。2. 原理圖設(shè)計(jì)核心環(huán)節(jié)電源、時(shí)鐘、復(fù)位與模式引腳2.1 電源樹設(shè)計(jì)多路供電怎么分去耦電容放哪里RTL8367RB-VB-CG這種帶5路千兆PHY的芯片電源需求比普通MCU復(fù)雜。一般會(huì)有內(nèi)核電壓1.0V、PHY模擬電壓3.3V或2.5V具體以手冊(cè)為準(zhǔn)、數(shù)字IO電壓3.3V這幾路。每一路都對(duì)紋波有要求尤其PHY的模擬供電紋波太大會(huì)直接體現(xiàn)在網(wǎng)口誤碼率上這也是很多自制交換機(jī)“看著能link但跑不滿速”的根源之一。我的做法是這樣外部用12V/5V適配器輸入板上一路同步降壓DC-DC把電壓降到3.5V左右再通過LDO分別穩(wěn)壓到3.3V和2.5V另用一路小電流DC-DC或LDO輸出1.0V內(nèi)核電壓。內(nèi)核電流雖然比IO和模擬小一些但千兆PHY滿載時(shí)也不可小看所以這顆1.0V推薦用DC-DC而不是LDO直接降否則發(fā)熱太集中。上電順序上無管理模式的要求不算苛刻因?yàn)槠瑑?nèi)一般有上電復(fù)位邏輯但設(shè)計(jì)上還是建議讓復(fù)位信號(hào)最后釋放也就是等各電源都穩(wěn)定后再釋放復(fù)位。最省事的辦法是把RC復(fù)位電路的充電時(shí)間常數(shù)設(shè)得稍大一點(diǎn)比如用10kΩ電阻配1uF電容時(shí)間常數(shù)約10ms實(shí)測(cè)大多數(shù)情況下都能讓芯片穩(wěn)定啟動(dòng)。去耦電容的布局建議是每路電源引腳附近就近放置0.1uF陶瓷電容大容量的10uF~22uF電容放在電源入口處并且要保證電容的地過孔能直接打到主地平面否則高頻去耦效果會(huì)大打折扣。千兆PHY對(duì)電源高頻噪聲比較敏感如果布局空間允許PHY模擬電源和數(shù)字電源之間最好再用一顆磁珠做隔離。2.2 25MHz晶振匹配別讓時(shí)鐘變成EMC源頭RTL8367RB-VB-CG需要一顆25MHz的基準(zhǔn)時(shí)鐘??梢杂脽o源晶體加兩顆負(fù)載電容也可以用有源晶振直接輸入硬件設(shè)計(jì)上兩種都行。我習(xí)慣用無源晶體成本低而且只要匹配得當(dāng)穩(wěn)定性完全夠用。晶體匹配的關(guān)鍵是負(fù)載電容計(jì)算。芯片數(shù)據(jù)手冊(cè)里一般會(huì)給出晶體的推薦負(fù)載電容CL比如常見的18pF或者20pF。外接的兩顆電容實(shí)際取值用這個(gè)公式估算C 2 × CL - Cstray其中Cstray是PCB走線和引腳寄生電容一般取3~6pF。如果CL18pF雜散電容按4pF算C 2×18 - 4 32pF那兩顆電容就各取32pF左右實(shí)際上拿33pF也問題不大。不過這個(gè)公式只是起點(diǎn)真正調(diào)板時(shí)建議用示波器看晶振兩腳的波形幅度和起振時(shí)間再用頻譜儀確認(rèn)一下有沒有異常諧波。晶體走線要盡量短兩條走線建議等長(zhǎng)并且周圍用地包圍避免時(shí)鐘信號(hào)串?dāng)_到網(wǎng)口的差分信號(hào)上否則千兆眼圖質(zhì)量會(huì)受影響。有源晶振的優(yōu)勢(shì)是波形更陡、電平更容易控制劣勢(shì)是成本高、還需要額外給電源加濾波。如果你的板子上有FPGA或MCU也可以從其他25MHz時(shí)鐘扇出但要注意時(shí)鐘的抖動(dòng)和驅(qū)動(dòng)能力不建議從普通GPIO硬懟。2.3 復(fù)位與strap配置無管理交換機(jī)“無軟件”的秘密無管理交換機(jī)之所以能做到“無軟件”靠的就是復(fù)位后芯片自動(dòng)讀取一組配置引腳的電平來決定工作模式、LED定義、PHY地址等。這組引腳就是strap引腳。硬件設(shè)計(jì)時(shí)必須確認(rèn)每顆strap引腳是接上拉、下拉還是懸空。我的習(xí)慣是先把數(shù)據(jù)手冊(cè)后面的strap表格打印出來一個(gè)一個(gè)對(duì)著原理圖打勾。常見需要配置的項(xiàng)目包括交換芯片與電腦端MDIO接口上是否有外部CPU訪問無管理模式下一般配置為無CPU端口速率協(xié)商是否允許自動(dòng)協(xié)商LED工作模式選哪種指示方式以及PHY的斷電策略是否開啟EEE等。某顆strap引腳一旦接錯(cuò)輕則LED顯示不對(duì)重則芯片進(jìn)不了正常交換模式所有端口都不link那種問題查起來很花時(shí)間。復(fù)位方面最簡(jiǎn)單可靠的是RC復(fù)位電路復(fù)位引腳通過10kΩ電阻接高電平對(duì)地再接1uF電容開機(jī)時(shí)電容充電造成引腳低電平保持一段時(shí)間然后變高釋放復(fù)位。要求高一點(diǎn)就加一顆專用復(fù)位IC比如BD52系列或者M(jìn)AX809好處是閾值更準(zhǔn)確復(fù)位時(shí)間可預(yù)期。RC復(fù)位在批量一致性上稍弱但實(shí)驗(yàn)室打樣完全夠用。有一點(diǎn)特別提醒如果板子上有外部MCU想通過MDIO/MDC訪問RTL8367RB的寄存器strap引腳里通常還要留出PHY ADDR的配置位默認(rèn)4’b0000還是其他值要按手冊(cè)設(shè)好。我就見過有人默認(rèn)配置對(duì)不上導(dǎo)致MDIO掃不到設(shè)備最后查了半天才發(fā)現(xiàn)是strap地址配錯(cuò)。3. 千兆網(wǎng)口硬件設(shè)計(jì)網(wǎng)絡(luò)變壓器、RJ45與差分布線3.1 千兆網(wǎng)口連接方案一體式RJ45與分離式變壓器的取舍千兆以太網(wǎng)使用的是4對(duì)差分線也就是8根線芯全要工作。這4對(duì)線從RTL8367RB的MDI0±到MDI3±引腳出來后先進(jìn)入網(wǎng)絡(luò)變壓器再做共模抑制、阻抗變換和電氣隔離最后接到RJ45座。一體式RJ45雖然方便但有個(gè)實(shí)際問題不同廠家的內(nèi)部變壓器繞法可能略有差異中心抽頭處理也不一樣如果沒按器件手冊(cè)接Bob Smith電路就可能在EMC測(cè)試時(shí)出問題。我建議打樣初期拿到一體式器件后先看看封裝內(nèi)部原理圖確認(rèn)哪些引腳是變壓器中心抽頭哪些是要接電阻電容的終端點(diǎn)再畫封裝。分離式變壓器的好處就是靈活可控。例如H6101這顆料數(shù)據(jù)手冊(cè)里通常會(huì)給出完整的應(yīng)用電路。以常見的千兆變壓器接法為例PHY側(cè)的每對(duì)差分線中心抽頭可以接一個(gè)1000pF/2kV高壓電容到地或者根據(jù)參考設(shè)計(jì)接到對(duì)應(yīng)的電源線纜側(cè)四對(duì)差分線的中心抽頭匯聚到一個(gè)公共點(diǎn)這個(gè)公共點(diǎn)再接1000pF/2kV電容到地。這樣做的目的是給共模干擾提供回流路徑同時(shí)把高壓靜電從信號(hào)線上泄放掉。RJ45端還要考慮防護(hù)器件。工業(yè)或戶外環(huán)境建議在每對(duì)差分線上并接TVS管或者用帶變壓器和防護(hù)的一體化RJ45。普通家用環(huán)境可以只在變壓器中心抽頭附近做高壓電容接地BOM更簡(jiǎn)單成本也更低。3.2 100歐姆差分對(duì)布線規(guī)則線寬線距、等長(zhǎng)與回流千兆網(wǎng)口能不能穩(wěn)定跑滿PCB布線占了很大權(quán)重。RTL8367RB的4對(duì)MDI差分線都需要控制在100Ω±10%的差分阻抗走線盡量使用完整的地平面作為參考層不能跨越電源軌分割否則阻抗突變會(huì)讓信號(hào)反射導(dǎo)致對(duì)端CRC錯(cuò)誤。以常見的1.6mm FR4四層板為例層疊可以設(shè)為TOP走差分線、L2完整GND、L3電源平面、BOTTOM走剩余信號(hào)。表層差分線的線寬和線距不是拍腦袋定的要讓PCB板廠提供阻抗結(jié)構(gòu)或者用參數(shù)計(jì)算器來算。我這里做個(gè)參考如果疊層是表層到L2的介質(zhì)厚度約0.1mm差分線線寬6mil、線距8mil左右通常能走到100Ω附近但每家的壓合厚度不同所以最穩(wěn)妥的方式是提交板廠做阻抗控制疊層他們會(huì)直接給出線寬線距建議。等長(zhǎng)控制方面千兆以太網(wǎng)的規(guī)范對(duì)同一對(duì)差分線P/N之間的skew要求很嚴(yán)PCB上一般要求做到±5mil以內(nèi)我在布線時(shí)甚至習(xí)慣做到±3mil。對(duì)與對(duì)之間比如MDI0這對(duì)和MDI1這對(duì)的等長(zhǎng)要求相對(duì)寬松控制在±20~30mil問題不大。實(shí)際畫板時(shí)可以用繞線方式補(bǔ)長(zhǎng)但注意繞線處的間距要保持一致不要突然改變線距。走線過程中我建議盡量減少過孔因?yàn)槊總€(gè)過孔都會(huì)引入阻抗不連續(xù)。如果不得不換層信號(hào)過孔旁邊必須放一個(gè)地過孔給回流電流提供短路道。四對(duì)差分線之間要保持間距至少3倍線寬以上避免線間串?dāng)_來到千兆這種高速信號(hào)不可接受的程度。3.3 PCB層疊與散熱焊盤處理RTL8367RB-VB-CG這類芯片通常采用QFN封裝底部有一塊大焊盤這個(gè)焊盤不只是散熱用的也是重要的地連接點(diǎn)。原理圖設(shè)計(jì)時(shí)一定要標(biāo)注清楚底部焊盤連接到GND網(wǎng)絡(luò)并且PCB上要開足夠多的熱過孔塞到內(nèi)層的地平面把熱量導(dǎo)走。我做的這版PCB在芯片下方放了9個(gè)過孔孔徑0.3mm電鍍后均勻分布在焊盤區(qū)域。這樣不僅散熱好也能降低地回路阻抗對(duì)PHY穩(wěn)定工作有幫助。如果底部焊盤的地沒有可靠接到主地平面芯片工作一段時(shí)間后溫度會(huì)明顯升高網(wǎng)口速率甚至可能從千兆自動(dòng)降級(jí)到百兆因?yàn)镻HY內(nèi)部溫度保護(hù)觸發(fā)了。布局上要注意RTL8367RB和RJ45座之間的距離不宜過長(zhǎng)。差分線從芯片出來后經(jīng)過變壓器到RJ45走線越長(zhǎng)信號(hào)損耗越大。理想情況是把5個(gè)RJ45座排在板子一側(cè)芯片和變壓器盡量靠近座子電源部分放另一側(cè)這樣信號(hào)路徑清晰電源干擾也不會(huì)輕易耦合到網(wǎng)口線上。網(wǎng)絡(luò)變壓器下方我習(xí)慣做凈空表層銅皮和參考地平面都挖掉一點(diǎn)目的是減少變壓器線圈與地之間的寄生電容。否則共模噪聲容易被耦合到地EMC成績(jī)會(huì)變差。具體挖多少要看器件手冊(cè)的推薦封裝和參考布局別自己隨便挖太大免得變壓器引腳不好走線。4. 從原理圖到樣機(jī)的實(shí)操流程與調(diào)試要點(diǎn)4.1 原理圖搭建與BOM核對(duì)細(xì)節(jié)畫原理圖時(shí)我強(qiáng)烈建議先去瑞昱官方或者代理商的FAE那里要到RTL8367RB的參考原理圖Reference Design是最省事的起點(diǎn)。不要自己從零開始一項(xiàng)項(xiàng)對(duì)著數(shù)據(jù)手冊(cè)畫那樣很容易漏掉某個(gè)strap電阻或電源濾波網(wǎng)絡(luò)。拿到參考圖后再根據(jù)自己的接口需求做裁剪去掉用不到的MDIO座、EEPROM、配置按鍵等保留核心交換鏈路。BOM核對(duì)是另一個(gè)容易踩坑的地方。第一次打樣時(shí)我建議所有關(guān)鍵器件都買樣品先量一遍特別是網(wǎng)絡(luò)變壓器的同名端和中心抽頭定義。不同廠家的變壓器引腳定義可能不一樣明明型號(hào)后綴差不多實(shí)際繞線卻可能相反。假如把初級(jí)和次級(jí)接反網(wǎng)口要么完全不link要么link上了數(shù)據(jù)也全錯(cuò)。電感、TVS和ESD器件也很容易買錯(cuò)封裝。RJ45座附近的TVS如果電源電壓錯(cuò)了可能導(dǎo)致信號(hào)被鉗位到異常電平出現(xiàn)“能協(xié)商千兆但一傳大包就斷”的詭異現(xiàn)象。所以每個(gè)器件我習(xí)慣再看一眼規(guī)格書不只看型號(hào)對(duì)不對(duì)還要看耐壓、電容值、引腳排列這些參數(shù)。打樣前還要做一次網(wǎng)絡(luò)檢查ERC把每個(gè)電源網(wǎng)絡(luò)檢查一遍是否有多驅(qū)動(dòng)、懸空輸入這類問題。無管理交換機(jī)看起來簡(jiǎn)單但5個(gè)網(wǎng)口的網(wǎng)絡(luò)變壓器和LED走線會(huì)拉出不少線路ERC能提前攔下一批低級(jí)錯(cuò)誤。4.2 樣機(jī)上電調(diào)試與千兆性能驗(yàn)證樣機(jī)回來后第一步千萬別急著插網(wǎng)線先目檢、再量短路、再上電。我習(xí)慣先用萬用表打在二極管檔量各個(gè)電源軌對(duì)地的阻值如果有接近0Ω的短路大概率是焊盤連錫或者去耦電容焊歪。上電時(shí)用穩(wěn)壓電源限流比如先設(shè)定5V/500mA觀察電流是否異常大。確認(rèn)電源正常后再測(cè)各路電壓值比如1.0V內(nèi)核、2.5V/3.3V模擬、3.3V數(shù)字。電壓都對(duì)了再用示波器看25MHz晶振是否起振波形幅度是否足夠是否有明顯抖動(dòng)。接下來測(cè)復(fù)位引腳電平如果復(fù)位一直被拉低芯片什么都不會(huì)干。這套流程沒問題后就可以插網(wǎng)線了。從電腦的RJ45口連到焊好的交換機(jī)某端口看網(wǎng)卡是否顯示1.0Gbps。如果只顯示100Mbps先換一根8芯全通的成品網(wǎng)線再試很多時(shí)候問題出在測(cè)試線材而不是板子。只要能協(xié)商到千兆再打流測(cè)試。壓力測(cè)試我一般用兩臺(tái)電腦接交換機(jī)兩端一臺(tái)開iperf3服務(wù)端另一臺(tái)跑iperf3客戶端雙向打流持續(xù)跑至少半小時(shí)看有沒有掉速、丟包和CRC錯(cuò)誤。Windows下的“網(wǎng)絡(luò)連接”狀態(tài)頁(yè)只能看到協(xié)商速率看不出錯(cuò)包想要詳細(xì)結(jié)果最好是跑到Linux端用ethtool -S查看端口的rx_crc_errors。打流測(cè)試能過基本硬件就沒大問題了。5. 常見問題與排查技巧實(shí)錄5.1 協(xié)商只有百兆甚至10M八成是網(wǎng)線與連接器問題自制交換機(jī)最常見的癥狀就是明明方案是千兆插上去卻只協(xié)商到100M。我一開始也以為是芯片或PCB問題結(jié)果排查了一圈最后發(fā)現(xiàn)故障原因是測(cè)試用網(wǎng)線只有四根芯導(dǎo)通。千兆傳輸必須8根芯全部工作4芯網(wǎng)線最高只能協(xié)商到百兆就是這么一個(gè)很傻但又頻繁出現(xiàn)的坑。水晶頭的千兆定義其實(shí)就一句話T568A或T568B線序8根銅芯全部壓好并導(dǎo)通。買網(wǎng)線時(shí)別只看外皮印的“CAT5e/CAT6”要實(shí)際拿測(cè)線儀打一下或者直接插到千兆路由器上看協(xié)商速度。如果DIY壓水晶頭注意壓線鉗要壓到位外皮需要卡在水晶頭卡扣里否則線芯容易縮回去。如果是分離式RJ45座還要檢查焊接有沒有虛焊。RJ45座引腳多手工焊接時(shí)塊頭小容易橋連或假焊。我一般打完樣會(huì)用放大鏡挨個(gè)腳檢查一遍再用萬用表蜂鳴檔量相鄰引腳是否短路。5.2 千兆鏈路頻繁CRC錯(cuò)誤與丟包從阻抗到變壓器逐項(xiàng)排查這個(gè)問題的原因比“協(xié)商不到千兆”更隱蔽。現(xiàn)象是可以協(xié)商到1.0Gbps但只要一打大流量接收端不斷出現(xiàn)硬件CRC錯(cuò)誤甚至斷流。這也是很多網(wǎng)友用其他PHY芯片時(shí)遇到的共性問題比如YT8521這類電口PHY也經(jīng)常被問到“百兆正常千兆出現(xiàn)接收硬件CRC很多錯(cuò)誤”。按我的排查順序先懷疑網(wǎng)線換一根高品質(zhì)超五類或六類跳線排除線纜問題。接著檢查網(wǎng)絡(luò)變壓器的中心抽頭處理重點(diǎn)看是不是線纜側(cè)公共點(diǎn)沒有按參考設(shè)計(jì)接Bob Smith電路或高壓電容到地。如果這部分懸空共?;亓鞑粫城д赘咚傩盘?hào)會(huì)更容易受到外部干擾。再往下就是PCB問題。差分線是否保持了等長(zhǎng)同對(duì)P/N的偏差如果超過10~20mil千兆信號(hào)時(shí)序就會(huì)出問題。差分阻抗是否落在90~110Ω范圍內(nèi)如果板廠沒有做阻抗控制線寬線距又不合理反射損耗會(huì)造成大量錯(cuò)誤幀。還有一種可能差分線走了沒有連續(xù)地平面的層跨了電源分割信號(hào)回流路徑被拉長(zhǎng)導(dǎo)致鏈路誤碼。這種情況只能在Layout階段規(guī)避改板后重新打樣。最后別忘了看電源紋波。PHY模擬供電的紋波如果超過規(guī)格也會(huì)表現(xiàn)為CRC錯(cuò)誤用示波器交流耦合測(cè)一下紋波如果超過50mV就該在電源上加磁珠或者加大電容。5.3 無管理交換機(jī)“不聽話”的典型場(chǎng)景環(huán)路、VLAN與兼容性無管理交換機(jī)最大的局限是它不跑STP生成樹協(xié)議也基本不做VLAN隔離。你把兩個(gè)交換機(jī)互相連接、形成一個(gè)環(huán)路它不會(huì)自動(dòng)阻斷冗余鏈路結(jié)果就是廣播幀在環(huán)路里無限復(fù)制所有端口都被廣播風(fēng)暴塞滿整個(gè)局域網(wǎng)癱瘓。這在接線復(fù)雜的環(huán)境里非常容易出現(xiàn)尤其是家里有多個(gè)交換機(jī)和監(jiān)控場(chǎng)景。另外雖然很多無管理交換芯片片內(nèi)支持VLAN查表但無管理模式下默認(rèn)是VLAN透?jìng)鞯娜绻\(yùn)營(yíng)商IPTV、企業(yè)網(wǎng)環(huán)境里需要按VLAN隔離用戶無管理交換機(jī)是做不到的。遇到這類需求建議直接換成可管理交換機(jī)或者像我這樣在RTL8367RB外部加一顆MCU通過MDIO/MDC訪問內(nèi)部寄存器配置端口隔離和802.1Q VLAN把無管理板升級(jí)成簡(jiǎn)易管理型交換機(jī)這個(gè)擴(kuò)展空間是這顆芯片的價(jià)值所在。互操作兼容性上也有可能出現(xiàn)怪現(xiàn)象。比如某些路由器或光貓的網(wǎng)口與交換機(jī)連接后協(xié)商速率只有10M這種情況十有八九是網(wǎng)線質(zhì)量、接觸氧化或端口供電不足而不是芯片本身的問題。先把鏈路兩端鎖定成強(qiáng)制千兆試試如果能強(qiáng)制到千兆并且穩(wěn)定說明自動(dòng)協(xié)商過程可能被某個(gè)異常中斷再慢慢排查線纜。5.4 長(zhǎng)時(shí)間運(yùn)行發(fā)熱與穩(wěn)定性散熱焊盤與布局復(fù)盤無管理交換機(jī)雖然功耗不高但長(zhǎng)時(shí)間掛機(jī)運(yùn)行后芯片周圍依然會(huì)積累熱量。QFN封裝底部的散熱焊盤如果沒處理好芯片內(nèi)部結(jié)溫會(huì)過高PHY可能自動(dòng)降速或重啟端口。我實(shí)測(cè)過沒有可靠接地?zé)岷副P的板子滿負(fù)載跑40℃環(huán)境溫度下外殼微熱但芯片表面溫度已經(jīng)到70℃以上接著就出現(xiàn)千兆斷流。正常設(shè)計(jì)下底部的散熱焊盤要大面積連到地平面并且焊盤區(qū)域要有多孔熱過孔讓熱量能快速導(dǎo)入內(nèi)層地銅皮和底層散熱區(qū)域。如果產(chǎn)品外殼是金屬的還可以在芯片PCB背面加導(dǎo)熱墊到金屬外殼效果立竿見影。如果只是PCB自然散熱那就要保證PCB周圍沒有完全封死的塑料殼至少留出空氣對(duì)流路徑。我做的第二版在這里做了改進(jìn)底部開孔增加到15個(gè)芯片下方PCB背面留了一塊大面積裸銅方便手工加散熱片或者貼導(dǎo)熱墊。實(shí)測(cè)同樣的測(cè)試條件下芯片背部溫度比第一版降低了大約10℃打流一晚上也很穩(wěn)定。說到底千兆交換機(jī)硬件設(shè)計(jì)的“穩(wěn)”靠的就是這些平時(shí)不起眼的細(xì)節(jié)堆出來的。最后再分享一個(gè)我自己的習(xí)慣每次畫完板子、貼完片我都會(huì)把電源、時(shí)鐘、復(fù)位、網(wǎng)絡(luò)變壓器、差分線這五部分單獨(dú)檢查一遍每項(xiàng)確認(rèn)沒問題再上電。這些年調(diào)過的網(wǎng)口板子出的大部分問題都逃不出這五類。如果你也正在做RTL8367RB-VB-CG的五口千兆無管理交換機(jī)建議先把這些基礎(chǔ)環(huán)節(jié)打牢再談什么花活這樣出來的板子才能真正扛得住長(zhǎng)時(shí)間運(yùn)行。