ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

基于RTL8367RB的五口千兆无管理交换机硬件设计实战

基于RTL8367RB的五口千兆无管理交换机硬件设计实战 RTL8367RB-VB-CG这颗料基本就是五端口千兆无管理交换机的“标准答案”之一。我前面做过一版基于它的五口千兆交换机硬件设计整体下来感受是原理图不算难难在细节——电源、时钟、网络变压器、差分布线哪一环偷懒后面调板就得还债。这篇文章把从选型到调试的完整过程记录下来想给正在做同类硬件设计的人或者准备把路由器LAN口扩成五个口的DIY玩家做个参考。我尽量把每一步为什么这么做讲清楚不只是贴个原理图还把实际踩过的坑也一块说出来。这个方案适合三类人第一类是硬件工程师想快速把一颗成熟的交换芯片做成自己的小模块或产品第二类是嵌入式开发者板子上需要多接几个有线网口又不想用“USB转百兆”这种凑合方案第三类是网络设备折腾爱好者想理解市面上几十块钱五口千兆交换机到底是怎么工作的。无论哪类读者只要按着这套流程走基本都能做出可用的样机。1. 方案选型与整体设计思路拆解1.1 一颗RTL8367RB-VB-CG能做什么五口千兆无管理交换机的核心定位RTL8367RB-VB-CG是瑞昱Realtek一颗经典的5端口10/100/1000M以太网交换芯片后缀里的VB-CG通常代表版本和环保合规标识不影响电气设计但采购时一定要注意按完整料号下单不同后缀可能在温宽、长期供货状态上有差异。这颗芯片的厉害之处在于它把交换引擎、MAC地址表、地址学习、流控、以及5路千兆PHY全部集成在一颗芯片里。也就是说外部不需要再挂独立的PHY芯片也不需要MCU来跑协议栈只要给它供电、给时钟、接上网络变压器和RJ45座它就能自己完成以太网报文的转发这就构成了一个典型的无管理交换机。从定位上看无管理交换机解决的是“把多个有线设备安全地连进同一个局域网”的需求。它没有配置界面所有端口默认处于同一个广播域即插即用适合家庭宽带扩容、监控摄像头组网、开发板联网这类场景。相比可管理交换机它少了很多VLAN、链路聚合、端口镜像等高级功能但换来的是低成本、低功耗和零配置。选用RTL8367RB-VB-CG而不是拿一颗MCU去外接多个USB网卡或者用两颗百兆交换芯片拼接最重要的理由就是集成度。三颗芯片才能干完的活它一颗就能搞定BOM数量直接下降PCB尺寸也大幅度缩小。实际做下来一个手掌大小的板子就可以放下完整的五口千兆方案整板功耗通常也就一两瓦对散热和电源要求都很友好。1.2 无管理模式的系统架构与选型取舍无管理交换机的系统架构比大家想象中简单得多。以我做的这版为例系统由以下几大部分组成核心交换芯片RTL8367RB-VB-CG供电系统外部输入电源5V或12V经过DC-DC和LDO转换成芯片需要的多路电压时钟系统一颗25MHz无源晶体为芯片提供基准时钟网络接口5个带隔离变压器的RJ45连接器状态指示每端口至少一组Link/Act LED复位电路上电复位RC回路或独立复位IC这里有一个容易被忽略的选型问题网络变压器和RJ45到底是买一体式的RJ45带变压器还是买分离式的我的结论是项目初期打样验证用一体式连接器最快比如HR911130A、HX1188NL这类带变压器的RJ45座不需要再单独画变压器封装也少了不少布局烦恼。但如果你对EMC和信号完整性要求比较高或者后续要做批量生产、想在变压器上做更多设计自由度那就应该选分离式网络变压器比如H6101系列配合普通RJ45座使用。无管理模式下芯片的工作状态完全由引脚上的上下拉电阻strap也叫启动配置引脚决定不需要写程序也不需要外挂EEPROM。这也意味着硬件设计阶段就必须把这些引脚的默认状态定死一旦板子贴好后再想改工作模式就麻烦了。所以设计时一定要对着数据手册一页页核对引脚默认值和推荐的上下拉电阻接法这部分我在第2章会详细讲。2. 原理图设计核心环节电源、时钟、复位与模式引脚2.1 电源树设计多路供电怎么分去耦电容放哪里RTL8367RB-VB-CG这种带5路千兆PHY的芯片电源需求比普通MCU复杂。一般会有内核电压1.0V、PHY模拟电压3.3V或2.5V具体以手册为准、数字IO电压3.3V这几路。每一路都对纹波有要求尤其PHY的模拟供电纹波太大会直接体现在网口误码率上这也是很多自制交换机“看着能link但跑不满速”的根源之一。我的做法是这样外部用12V/5V适配器输入板上一路同步降压DC-DC把电压降到3.5V左右再通过LDO分别稳压到3.3V和2.5V另用一路小电流DC-DC或LDO输出1.0V内核电压。内核电流虽然比IO和模拟小一些但千兆PHY满载时也不可小看所以这颗1.0V推荐用DC-DC而不是LDO直接降否则发热太集中。上电顺序上无管理模式的要求不算苛刻因为片内一般有上电复位逻辑但设计上还是建议让复位信号最后释放也就是等各电源都稳定后再释放复位。最省事的办法是把RC复位电路的充电时间常数设得稍大一点比如用10kΩ电阻配1uF电容时间常数约10ms实测大多数情况下都能让芯片稳定启动。去耦电容的布局建议是每路电源引脚附近就近放置0.1uF陶瓷电容大容量的10uF~22uF电容放在电源入口处并且要保证电容的地过孔能直接打到主地平面否则高频去耦效果会大打折扣。千兆PHY对电源高频噪声比较敏感如果布局空间允许PHY模拟电源和数字电源之间最好再用一颗磁珠做隔离。2.2 25MHz晶振匹配别让时钟变成EMC源头RTL8367RB-VB-CG需要一颗25MHz的基准时钟。可以用无源晶体加两颗负载电容也可以用有源晶振直接输入硬件设计上两种都行。我习惯用无源晶体成本低而且只要匹配得当稳定性完全够用。晶体匹配的关键是负载电容计算。芯片数据手册里一般会给出晶体的推荐负载电容CL比如常见的18pF或者20pF。外接的两颗电容实际取值用这个公式估算C 2 × CL - Cstray其中Cstray是PCB走线和引脚寄生电容一般取3~6pF。如果CL18pF杂散电容按4pF算C 2×18 - 4 32pF那两颗电容就各取32pF左右实际上拿33pF也问题不大。不过这个公式只是起点真正调板时建议用示波器看晶振两脚的波形幅度和起振时间再用频谱仪确认一下有没有异常谐波。晶体走线要尽量短两条走线建议等长并且周围用地包围避免时钟信号串扰到网口的差分信号上否则千兆眼图质量会受影响。有源晶振的优势是波形更陡、电平更容易控制劣势是成本高、还需要额外给电源加滤波。如果你的板子上有FPGA或MCU也可以从其他25MHz时钟扇出但要注意时钟的抖动和驱动能力不建议从普通GPIO硬怼。2.3 复位与strap配置无管理交换机“无软件”的秘密无管理交换机之所以能做到“无软件”靠的就是复位后芯片自动读取一组配置引脚的电平来决定工作模式、LED定义、PHY地址等。这组引脚就是strap引脚。硬件设计时必须确认每颗strap引脚是接上拉、下拉还是悬空。我的习惯是先把数据手册后面的strap表格打印出来一个一个对着原理图打勾。常见需要配置的项目包括交换芯片与电脑端MDIO接口上是否有外部CPU访问无管理模式下一般配置为无CPU端口速率协商是否允许自动协商LED工作模式选哪种指示方式以及PHY的断电策略是否开启EEE等。某颗strap引脚一旦接错轻则LED显示不对重则芯片进不了正常交换模式所有端口都不link那种问题查起来很花时间。复位方面最简单可靠的是RC复位电路复位引脚通过10kΩ电阻接高电平对地再接1uF电容开机时电容充电造成引脚低电平保持一段时间然后变高释放复位。要求高一点就加一颗专用复位IC比如BD52系列或者MAX809好处是阈值更准确复位时间可预期。RC复位在批量一致性上稍弱但实验室打样完全够用。有一点特别提醒如果板子上有外部MCU想通过MDIO/MDC访问RTL8367RB的寄存器strap引脚里通常还要留出PHY ADDR的配置位默认4’b0000还是其他值要按手册设好。我就见过有人默认配置对不上导致MDIO扫不到设备最后查了半天才发现是strap地址配错。3. 千兆网口硬件设计网络变压器、RJ45与差分布线3.1 千兆网口连接方案一体式RJ45与分离式变压器的取舍千兆以太网使用的是4对差分线也就是8根线芯全要工作。这4对线从RTL8367RB的MDI0±到MDI3±引脚出来后先进入网络变压器再做共模抑制、阻抗变换和电气隔离最后接到RJ45座。一体式RJ45虽然方便但有个实际问题不同厂家的内部变压器绕法可能略有差异中心抽头处理也不一样如果没按器件手册接Bob Smith电路就可能在EMC测试时出问题。我建议打样初期拿到一体式器件后先看看封装内部原理图确认哪些引脚是变压器中心抽头哪些是要接电阻电容的终端点再画封装。分离式变压器的好处就是灵活可控。例如H6101这颗料数据手册里通常会给出完整的应用电路。以常见的千兆变压器接法为例PHY侧的每对差分线中心抽头可以接一个1000pF/2kV高压电容到地或者根据参考设计接到对应的电源线缆侧四对差分线的中心抽头汇聚到一个公共点这个公共点再接1000pF/2kV电容到地。这样做的目的是给共模干扰提供回流路径同时把高压静电从信号线上泄放掉。RJ45端还要考虑防护器件。工业或户外环境建议在每对差分线上并接TVS管或者用带变压器和防护的一体化RJ45。普通家用环境可以只在变压器中心抽头附近做高压电容接地BOM更简单成本也更低。3.2 100欧姆差分对布线规则线宽线距、等长与回流千兆网口能不能稳定跑满PCB布线占了很大权重。RTL8367RB的4对MDI差分线都需要控制在100Ω±10%的差分阻抗走线尽量使用完整的地平面作为参考层不能跨越电源轨分割否则阻抗突变会让信号反射导致对端CRC错误。以常见的1.6mm FR4四层板为例层叠可以设为TOP走差分线、L2完整GND、L3电源平面、BOTTOM走剩余信号。表层差分线的线宽和线距不是拍脑袋定的要让PCB板厂提供阻抗结构或者用参数计算器来算。我这里做个参考如果叠层是表层到L2的介质厚度约0.1mm差分线线宽6mil、线距8mil左右通常能走到100Ω附近但每家的压合厚度不同所以最稳妥的方式是提交板厂做阻抗控制叠层他们会直接给出线宽线距建议。等长控制方面千兆以太网的规范对同一对差分线P/N之间的skew要求很严PCB上一般要求做到±5mil以内我在布线时甚至习惯做到±3mil。对与对之间比如MDI0这对和MDI1这对的等长要求相对宽松控制在±20~30mil问题不大。实际画板时可以用绕线方式补长但注意绕线处的间距要保持一致不要突然改变线距。走线过程中我建议尽量减少过孔因为每个过孔都会引入阻抗不连续。如果不得不换层信号过孔旁边必须放一个地过孔给回流电流提供短路道。四对差分线之间要保持间距至少3倍线宽以上避免线间串扰来到千兆这种高速信号不可接受的程度。3.3 PCB层叠与散热焊盘处理RTL8367RB-VB-CG这类芯片通常采用QFN封装底部有一块大焊盘这个焊盘不只是散热用的也是重要的地连接点。原理图设计时一定要标注清楚底部焊盘连接到GND网络并且PCB上要开足够多的热过孔塞到内层的地平面把热量导走。我做的这版PCB在芯片下方放了9个过孔孔径0.3mm电镀后均匀分布在焊盘区域。这样不仅散热好也能降低地回路阻抗对PHY稳定工作有帮助。如果底部焊盘的地没有可靠接到主地平面芯片工作一段时间后温度会明显升高网口速率甚至可能从千兆自动降级到百兆因为PHY内部温度保护触发了。布局上要注意RTL8367RB和RJ45座之间的距离不宜过长。差分线从芯片出来后经过变压器到RJ45走线越长信号损耗越大。理想情况是把5个RJ45座排在板子一侧芯片和变压器尽量靠近座子电源部分放另一侧这样信号路径清晰电源干扰也不会轻易耦合到网口线上。网络变压器下方我习惯做净空表层铜皮和参考地平面都挖掉一点目的是减少变压器线圈与地之间的寄生电容。否则共模噪声容易被耦合到地EMC成绩会变差。具体挖多少要看器件手册的推荐封装和参考布局别自己随便挖太大免得变压器引脚不好走线。4. 从原理图到样机的实操流程与调试要点4.1 原理图搭建与BOM核对细节画原理图时我强烈建议先去瑞昱官方或者代理商的FAE那里要到RTL8367RB的参考原理图Reference Design是最省事的起点。不要自己从零开始一项项对着数据手册画那样很容易漏掉某个strap电阻或电源滤波网络。拿到参考图后再根据自己的接口需求做裁剪去掉用不到的MDIO座、EEPROM、配置按键等保留核心交换链路。BOM核对是另一个容易踩坑的地方。第一次打样时我建议所有关键器件都买样品先量一遍特别是网络变压器的同名端和中心抽头定义。不同厂家的变压器引脚定义可能不一样明明型号后缀差不多实际绕线却可能相反。假如把初级和次级接反网口要么完全不link要么link上了数据也全错。电感、TVS和ESD器件也很容易买错封装。RJ45座附近的TVS如果电源电压错了可能导致信号被钳位到异常电平出现“能协商千兆但一传大包就断”的诡异现象。所以每个器件我习惯再看一眼规格书不只看型号对不对还要看耐压、电容值、引脚排列这些参数。打样前还要做一次网络检查ERC把每个电源网络检查一遍是否有多驱动、悬空输入这类问题。无管理交换机看起来简单但5个网口的网络变压器和LED走线会拉出不少线路ERC能提前拦下一批低级错误。4.2 样机上电调试与千兆性能验证样机回来后第一步千万别急着插网线先目检、再量短路、再上电。我习惯先用万用表打在二极管档量各个电源轨对地的阻值如果有接近0Ω的短路大概率是焊盘连锡或者去耦电容焊歪。上电时用稳压电源限流比如先设定5V/500mA观察电流是否异常大。确认电源正常后再测各路电压值比如1.0V内核、2.5V/3.3V模拟、3.3V数字。电压都对了再用示波器看25MHz晶振是否起振波形幅度是否足够是否有明显抖动。接下来测复位引脚电平如果复位一直被拉低芯片什么都不会干。这套流程没问题后就可以插网线了。从电脑的RJ45口连到焊好的交换机某端口看网卡是否显示1.0Gbps。如果只显示100Mbps先换一根8芯全通的成品网线再试很多时候问题出在测试线材而不是板子。只要能协商到千兆再打流测试。压力测试我一般用两台电脑接交换机两端一台开iperf3服务端另一台跑iperf3客户端双向打流持续跑至少半小时看有没有掉速、丢包和CRC错误。Windows下的“网络连接”状态页只能看到协商速率看不出错包想要详细结果最好是跑到Linux端用ethtool -S查看端口的rx_crc_errors。打流测试能过基本硬件就没大问题了。5. 常见问题与排查技巧实录5.1 协商只有百兆甚至10M八成是网线与连接器问题自制交换机最常见的症状就是明明方案是千兆插上去却只协商到100M。我一开始也以为是芯片或PCB问题结果排查了一圈最后发现故障原因是测试用网线只有四根芯导通。千兆传输必须8根芯全部工作4芯网线最高只能协商到百兆就是这么一个很傻但又频繁出现的坑。水晶头的千兆定义其实就一句话T568A或T568B线序8根铜芯全部压好并导通。买网线时别只看外皮印的“CAT5e/CAT6”要实际拿测线仪打一下或者直接插到千兆路由器上看协商速度。如果DIY压水晶头注意压线钳要压到位外皮需要卡在水晶头卡扣里否则线芯容易缩回去。如果是分离式RJ45座还要检查焊接有没有虚焊。RJ45座引脚多手工焊接时块头小容易桥连或假焊。我一般打完样会用放大镜挨个脚检查一遍再用万用表蜂鸣档量相邻引脚是否短路。5.2 千兆链路频繁CRC错误与丢包从阻抗到变压器逐项排查这个问题的原因比“协商不到千兆”更隐蔽。现象是可以协商到1.0Gbps但只要一打大流量接收端不断出现硬件CRC错误甚至断流。这也是很多网友用其他PHY芯片时遇到的共性问题比如YT8521这类电口PHY也经常被问到“百兆正常千兆出现接收硬件CRC很多错误”。按我的排查顺序先怀疑网线换一根高品质超五类或六类跳线排除线缆问题。接着检查网络变压器的中心抽头处理重点看是不是线缆侧公共点没有按参考设计接Bob Smith电路或高压电容到地。如果这部分悬空共模回流不畅千兆高速信号会更容易受到外部干扰。再往下就是PCB问题。差分线是否保持了等长同对P/N的偏差如果超过10~20mil千兆信号时序就会出问题。差分阻抗是否落在90~110Ω范围内如果板厂没有做阻抗控制线宽线距又不合理反射损耗会造成大量错误帧。还有一种可能差分线走了没有连续地平面的层跨了电源分割信号回流路径被拉长导致链路误码。这种情况只能在Layout阶段规避改板后重新打样。最后别忘了看电源纹波。PHY模拟供电的纹波如果超过规格也会表现为CRC错误用示波器交流耦合测一下纹波如果超过50mV就该在电源上加磁珠或者加大电容。5.3 无管理交换机“不听话”的典型场景环路、VLAN与兼容性无管理交换机最大的局限是它不跑STP生成树协议也基本不做VLAN隔离。你把两个交换机互相连接、形成一个环路它不会自动阻断冗余链路结果就是广播帧在环路里无限复制所有端口都被广播风暴塞满整个局域网瘫痪。这在接线复杂的环境里非常容易出现尤其是家里有多个交换机和监控场景。另外虽然很多无管理交换芯片片内支持VLAN查表但无管理模式下默认是VLAN透传的如果运营商IPTV、企业网环境里需要按VLAN隔离用户无管理交换机是做不到的。遇到这类需求建议直接换成可管理交换机或者像我这样在RTL8367RB外部加一颗MCU通过MDIO/MDC访问内部寄存器配置端口隔离和802.1Q VLAN把无管理板升级成简易管理型交换机这个扩展空间是这颗芯片的价值所在。互操作兼容性上也有可能出现怪现象。比如某些路由器或光猫的网口与交换机连接后协商速率只有10M这种情况十有八九是网线质量、接触氧化或端口供电不足而不是芯片本身的问题。先把链路两端锁定成强制千兆试试如果能强制到千兆并且稳定说明自动协商过程可能被某个异常中断再慢慢排查线缆。5.4 长时间运行发热与稳定性散热焊盘与布局复盘无管理交换机虽然功耗不高但长时间挂机运行后芯片周围依然会积累热量。QFN封装底部的散热焊盘如果没处理好芯片内部结温会过高PHY可能自动降速或重启端口。我实测过没有可靠接地热焊盘的板子满负载跑40℃环境温度下外壳微热但芯片表面温度已经到70℃以上接着就出现千兆断流。正常设计下底部的散热焊盘要大面积连到地平面并且焊盘区域要有多孔热过孔让热量能快速导入内层地铜皮和底层散热区域。如果产品外壳是金属的还可以在芯片PCB背面加导热垫到金属外壳效果立竿见影。如果只是PCB自然散热那就要保证PCB周围没有完全封死的塑料壳至少留出空气对流路径。我做的第二版在这里做了改进底部开孔增加到15个芯片下方PCB背面留了一块大面积裸铜方便手工加散热片或者贴导热垫。实测同样的测试条件下芯片背部温度比第一版降低了大约10℃打流一晚上也很稳定。说到底千兆交换机硬件设计的“稳”靠的就是这些平时不起眼的细节堆出来的。最后再分享一个我自己的习惯每次画完板子、贴完片我都会把电源、时钟、复位、网络变压器、差分线这五部分单独检查一遍每项确认没问题再上电。这些年调过的网口板子出的大部分问题都逃不出这五类。如果你也正在做RTL8367RB-VB-CG的五口千兆无管理交换机建议先把这些基础环节打牢再谈什么花活这样出来的板子才能真正扛得住长时间运行。
返回列表