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