
1. 为什么选择RTL8367RB这颗芯片1.1 从需求出发5口千兆交换机的核心诉求自己动手做一台5口千兆交换机听起来像是网络设备厂商才干的活但实际上只要你选对了主控芯片这件事的门槛比想象中低得多。我当初起这个念头是因为家里那台老百兆交换机在NAS和台式机之间传大文件时慢得让人抓狂而市面上带网管功能的5口千兆交换机要么贵得离谱要么功能冗余到根本用不上。于是我想干脆自己画一块。选芯片是整个项目的起点也是最关键的一步。市面上的交换芯片大致分几个梯队Realtek的RTL8367系列、Marvell的88E6系列、Microchip的KSZ系列还有一些国产替代方案。我最终锁定RTL8367RB原因很直接——它在消费级和工业级产品中出货量极大资料相对丰富封装是LQFP-128手工焊接虽然有点挑战但并非不可能而且内置了完整的5口千兆PHY不需要外挂额外的PHY芯片BOM成本能压得很低。RTL8367RB的核心规格值得先理清楚它是一颗集成5端口10/100/1000Mbps以太网交换控制器支持非阻塞线速转发内置包缓存支持VLAN、QoS、端口镜像、链路聚合等网管功能。供电方面需要3.3V和1.1V或1.05V两组电源1.1V给核心逻辑供电3.3V给PHY和IO供电。时钟输入是25MHz晶振内部PLL倍频到所需频率。这些参数在选型阶段就要确认清楚因为它们直接决定了你的电源设计和PCB布局方案。1.2 与其他方案的对比为什么不是KSZ9897或88E6390有人可能会问KSZ9897也是5口千兆交换芯片为什么不选它我实际对比过几款主流方案这里把关键差异列出来对比项RTL8367RBKSZ989788E6390封装LQFP-128LQFP-128QFN-128内核电压1.1V1.2V1.0V网管功能支持VLAN/QoS/镜像支持VLAN/QoS支持完整二层资料获取难度中等较难较难单颗价格参考较低中等较高手工焊接难度中等中等较高QFNKSZ9897的资料相对封闭datasheet需要签NDA才能拿到完整版本这对个人开发者很不友好。88E6390性能更强但QFN封装底部有散热焊盘手工焊接需要热风枪加预热台返修难度大。RTL8367RB的LQFP封装引脚外露用拖焊法就能搞定而且它的寄存器手册在网上能找到较为完整的版本配置起来有迹可循。还有一点很实际RTL8367RB在淘宝和立创商城上都能买到现货价格大概在十几到二十几块钱一颗而KSZ9897和88E6390经常缺货或者需要批量采购。对于个人DIY项目来说供应链的便利性有时候比性能参数更重要。1.3 项目整体架构一块板子搞定所有事整个项目的硬件架构可以拆成几个模块来理解。核心是RTL8367RB这颗交换芯片它周围需要搭配25MHz晶振提供时钟基准、复位电路保证上电时序正确、电源电路提供1.1V和3.3V、5个RJ45接口带网络变压器、以及配置接口I2C或SPI用于设置工作模式。我设计的这块板子尺寸控制在100mm×80mm以内四层板结构。为什么用四层而不是两层因为千兆以太网的差分信号对阻抗匹配要求很严格差分阻抗需要控制在100Ω±10%两层板很难在保证线宽的同时做到完整的参考平面。四层板的叠层结构是顶层信号层、内层地平面、内层电源平面、底层信号层。这样每个信号层都有相邻的参考平面阻抗控制起来容易得多。RJ45接口我选的是带集成网络变压器的型号比如HanRun HR911105A这样省去了外置变压器的空间和布线麻烦。网络变压器的作用是电气隔离和阻抗匹配千兆应用必须用千兆级别的变压器百兆的变压器虽然引脚兼容但带宽不够插上去可能只能跑百兆甚至完全不link。这个坑我后面会详细说。2. 原理图设计每个元件都有存在的理由2.1 电源树设计1.1V和3.3V从哪来RTL8367RB的电源需求看起来简单但细节不少。它需要两组电压核心电压1.1V典型值范围1.05V~1.15V和IO电压3.3V。核心电压的电流需求大概在1.5A左右3.3V的电流需求约0.8A。整个板子如果从外部5V或12V供电就需要降压转换。我的方案是输入用DC-005接口接受12V供电第一级用MP2315同步降压芯片把12V降到3.3V第二级用MP2145把3.3V降到1.1V。为什么不用LDO从3.3V直接降到1.1V因为压差2.2V、电流1.5A的情况下LDO的功耗是3.3W封装稍微小一点就会烫得没法摸效率只有33%左右。而开关电源的效率能到85%以上发热小得多。MP2315和MP2145都是MPS的同步降压芯片开关频率高MP2315是500kHzMP2145是1.2MHz外围元件少只需要一个电感、几个电容和反馈电阻。反馈电阻的计算公式是Vout 0.8V × (1 R1/R2)对于3.3V输出R1/R2 (3.3/0.8) - 1 3.125取R131.6kΩR210kΩ实际输出约3.33V在允许范围内。对于1.1V输出R1/R2 (1.1/0.8) - 1 0.375取R13.9kΩR210.4kΩ用10kΩ和4.02kΩ组合实际输出约1.12V也OK。电感的选择要根据纹波电流来算。以MP2145为例开关频率1.2MHz输入3.3V输出1.1V负载1.5A。纹波电流取负载电流的30%即0.45A则电感值为L (Vout × (Vin - Vout)) / (Vin × fsw × ΔI) (1.1 × (3.3 - 1.1)) / (3.3 × 1200000 × 0.45) ≈ 1.36μH取标准值1.5μH。电感的饱和电流要大于负载电流加上一半纹波电流即1.5A 0.225A 1.725A选2A以上的电感比较稳妥。注意RTL8367RB对上电时序有要求一般建议3.3V先上电或与1.1V同时上电但1.1V不能明显早于3.3V。我在实际调试中发现如果1.1V先建立而3.3V还没上来芯片有时会进入异常状态表现为所有端口都不link。解决办法是在1.1V的使能脚上加一个RC延时让3.3V先建立。2.2 时钟与复位电路别小看这两个部分RTL8367RB需要一颗25MHz的无源晶振负载电容根据晶振规格来选一般是12pF到18pF。我用的晶振负载电容是12pF所以外接电容取22pF左右因为PCB走线本身有3~5pF的寄生电容实际取值要比计算值略小。晶振的精度要求是±50ppm以内普通无源晶振都能满足。复位电路我用了经典的RC复位加专用复位芯片的方案。RC复位用一个10kΩ电阻和100nF电容时间常数1ms但RC复位的问题是高低温下阈值不稳定而且掉电时电容放电慢可能导致复位不彻底。所以我加了一颗MAX809复位芯片它能在上电时输出200ms的复位脉冲掉电时当电压降到阈值以下也能可靠复位。复位信号接到RTL8367RB的RESET_N引脚低电平有效。实操心得复位引脚上一定要加一个100nF的滤波电容靠近芯片引脚放置。我有一次忘了加这个电容结果板子在电机旁边工作时会随机复位后来补上电容就稳定了。复位信号的走线也要尽量短避免被其他信号耦合干扰。2.3 配置接口I2C还是SPIRTL8367RB支持I2C和SPI两种配置接口也可以通过 strapping 引脚在复位时选择工作模式。对于不需要复杂网管功能的场景可以用strapping电阻直接配置成非网管交换机模式上电就能工作不需要MCU干预。但如果你想用VLAN或者端口镜像就需要通过I2C或SPI来写寄存器。我选择了I2C接口因为只需要两根线SCL和SDA而且可以用一颗便宜的STM32F030或者CH32V003来当配置MCU。I2C的上拉电阻取4.7kΩ接3.3V。RTL8367RB的I2C地址是7位地址0x5C写地址0xB8读地址0xB9这个地址是固定的不能改。如果你不想用MCU也可以用SPI接口配合一颗SPI Flash把配置数据存在Flash里上电时芯片自动从Flash加载。这种方式适合量产但个人DIY的话用MCU更灵活改配置不用重新烧Flash。2.4 RJ45与网络变压器千兆和百兆的区别在这里RJ45接口我选的是带变压器的HR911105A它内部集成了千兆网络变压器和共模扼流圈。这里要特别注意千兆网络变压器和百兆的引脚定义不同千兆的每个端口有4对差分线8根线全用百兆只用2对4根线。如果你买了百兆的RJ45座子焊上去千兆的4对线里只有2对能用结果就是只能跑百兆或者完全不link。网络变压器的中心抽头需要接一个75Ω的电阻到地这个电阻的作用是提供共模电流的泄放路径。有些设计会用两个75Ω电阻并联到地再通过一个1000pF电容接到机壳地这样共模干扰能更好地泄放到大地。我实际测试过不加这个电阻的话网线插拔时偶尔会出现link中断加上之后就稳定了。RJ45的金属外壳要接到机壳地chassis ground和信号地之间用一个1nF/2kV的电容连接或者用0Ω电阻直接连接。这个处理方式取决于你的应用场景如果板子放在金属机箱里机壳地接大地信号地和机壳地之间用电容连接可以抑制共模干扰如果板子没有机箱信号地和机壳地直接短接也行。3. PCB布局布线千兆信号不是闹着玩的3.1 叠层设计与阻抗控制四层板的叠层我前面提过这里展开说具体参数。顶层和底层是信号层内层1是地平面内层2是电源平面。板厚1.6mm芯板厚度0.5mm半固化片厚度0.2mm。顶层到内层1的距离是0.2mm这个距离决定了微带线的宽度。对于100Ω的差分阻抗用微带线结构顶层走线内层1为参考地线宽0.2mm、线间距0.2mm时阻抗大约在100Ω左右。这个计算可以用Saturn PCB Toolkit或者Polar SI9000来验证。我实际用的是线宽0.22mm、间距0.18mm实测阻抗在98Ω到102Ω之间满足要求。差分对内的两根线要严格等长误差控制在5mil以内。差分对之间的间距要大于3倍线宽也就是至少0.6mm减少串扰。所有差分线尽量走直线必须拐弯时用45度角或者圆弧不能用90度直角。注意千兆以太网的差分信号速率是125MHz每个符号周期8ns但实际信号频率更高虽然不算特别高但阻抗不连续会导致信号反射表现为误码率升高或者link不稳定。我见过有人用两层板做千兆交换机差分线走得歪歪扭扭结果只能跑百兆这就是阻抗没控制好的典型症状。3.2 电源平面分割与去耦电容布局电源平面的处理有个原则1.1V和3.3V要分开铺铜不要混在一起。我在内层2上把电源平面分成两个区域左边是3.3V右边是1.1V中间用20mil的间隙隔开。每个电源区域都要有足够的铜皮面积保证电流密度不超过1A/mm²。去耦电容的布局是很多人容易忽略的地方。RTL8367RB的每个电源引脚旁边都要放一个100nF的电容尽量靠近引脚距离不超过2mm。除此之外每个电源区域还要放几个10μF的钽电容或者陶瓷电容做储能。我用了4个10μF的0805封装陶瓷电容分别放在芯片的四个角附近。为什么去耦电容这么重要因为交换芯片内部有大量的逻辑门同时开关瞬间电流变化率很高如果电源引脚旁边的电容不够近电源线上的寄生电感会导致电压跌落芯片可能工作异常。我实测过去掉某个引脚的100nF电容后那个端口在满负载传输时会出现丢包。3.3 差分线走线规则与RJ45区域处理从RTL8367RB到RJ45的差分线是整个PCB最关键的走线。我总结了几个必须遵守的规则第一差分线从芯片引脚出来到变压器之间的走线要尽量短最好控制在25mm以内。走线越长损耗和干扰越大。第二差分线不能跨分割的地平面。如果地平面被其他走线割裂差分线的回流路径就会绕远导致阻抗突变。我在布局时把RJ45区域的地平面做成完整的一块不和数字地混在一起。第三差分线下面不要走其他信号线尤其是时钟线或者开关电源的走线。如果实在避不开中间要隔一层地平面。第四RJ45的LED引脚走线要远离差分线LED的电流虽然不大但开关时会产生噪声。第五变压器到RJ45之间的走线也要按差分规则走虽然这段是隔离后的信号但同样需要阻抗匹配。我实际布线时把5个端口的差分线分成5组每组从芯片出来先走内层到了RJ45附近再换到顶层。换层时要在旁边加回流地过孔保证回流路径连续。3.4 晶振与复位电路的布局要点25MHz晶振要尽量靠近芯片的晶振引脚走线长度不超过10mm。晶振下面不要走其他信号线最好在晶振区域铺一块地铜皮并打过孔到内层地平面。晶振的两个负载电容要对称放置地端就近接地。复位芯片放在芯片的复位引脚附近复位走线不要和其他信号线平行走太长距离。复位引脚上的100nF电容要靠近芯片引脚。实操心得我在第一版PCB上把晶振放在了板子边缘结果发现link不稳定后来用示波器测晶振输出发现波形上有明显的振铃。把晶振移到芯片旁边并加了地屏蔽之后波形干净了link也稳定了。晶振的走线真的不能马虎。4. 焊接与调试从裸板到能用的交换机4.1 焊接顺序与温度曲线RTL8367RB是LQFP-128封装引脚间距0.5mm手工焊接需要一定的技巧。我的焊接顺序是先焊电源芯片和阻容元件再焊RJ45和晶振最后焊RTL8367RB。为什么最后焊主芯片因为主芯片最怕静电和热损伤先焊其他元件可以缩短芯片暴露在高温下的时间。焊接主芯片时先用助焊剂涂满焊盘把芯片对准放好注意第一脚的位置。然后用刀头烙铁加锡拖焊每边拖两次。拖焊时烙铁温度设在320°C左右不要超过350°C。拖完之后用放大镜检查有没有连锡特别是引脚密集的地方。如果有连锡用吸锡线加助焊剂清理。注意焊接前一定要戴防静电手环工作台要接地。RTL8367RB的ESD等级是HBM 2kV虽然不算低但手工焊接时静电风险还是有的。我有一次没戴手环焊完之后芯片就发烫不工作换了颗新的才好。4.2 上电检查与电压测量焊完之后不要急着插网线先做上电检查。用可调电源设到12V限流设到200mA然后上电。如果电流超过200mA说明有短路立刻断电检查。正常情况下的空载电流应该在80mA到120mA之间。用万用表测量各路电压3.3V应该在3.2V到3.4V之间1.1V应该在1.05V到1.15V之间。如果电压不对检查反馈电阻有没有焊错。然后用示波器测25MHz晶振应该有干净的25MHz正弦波峰峰值在1V左右。如果电压和晶振都正常用示波器测复位引脚上电时应该有一个从低到高的跳变高电平是3.3V。如果复位引脚一直是低电平检查复位芯片有没有焊反或者损坏。4.3 配置寄存器与功能验证如果只是做非网管交换机strapping电阻配置好之后上电就能工作。插上网线对应的LED应该亮起来。用两台电脑分别接两个端口互相ping应该能通。用iperf3测吞吐量千兆环境下应该能跑到940Mbps左右。如果要配置VLAN就需要通过I2C写寄存器。我用CH32V003写了一个简单的配置程序上电后初始化I2C然后写几个关键寄存器端口使能、VLAN表、PVID等。RTL8367RB的寄存器手册有几百页但常用的就那么几十个。我建议先用非网管模式验证硬件没问题再折腾网管功能。实操心得调试时如果某个端口不link先检查差分线的焊接有没有虚焊特别是RJ45的引脚。我遇到过好几次是RJ45的某个引脚没焊好补焊之后就正常了。另外网线也要用好的劣质网线的回波损耗大千兆可能协商不上。4.4 常见问题速查表现象可能原因排查方法所有端口不link电源异常、复位异常、晶振不起振测电压、测复位、测晶振单个端口不link差分线虚焊、变压器损坏、RJ45引脚氧化补焊、换变压器、换RJ45link但只能跑百兆差分线阻抗不匹配、变压器是百兆的测阻抗、换千兆变压器传输大文件丢包去耦电容不足、电源纹波大加电容、测纹波芯片发烫电源短路、芯片损坏断电测阻抗、换芯片插拔网线时link中断共模电阻未接、变压器中心抽头处理不当加75Ω电阻、加共模电容5. 完整PCB设计文件说明与复现指南5.1 文件结构说明我整理的设计文件包括原理图PDF和源文件、PCB文件四层板Gerber格式、BOM表含立创商城编号、以及配置MCU的固件源码。原理图用KiCad 7.0绘制PCB也是KiCad格式Gerber文件可以直接发给嘉立创或者捷配打样。BOM表里我标注了每个元件的型号、封装、数量和参考位号。关键元件包括RTL8367RBU1、MP2315U2、MP2145U3、MAX809U4、25MHz晶振Y1、HR911105AJ1-J5、CH32V003U5可选。阻容元件都是0603封装电感是CDRH系列。5.2 打样与焊接注意事项打样时建议选四层板板厚1.6mm沉金工艺ENIG因为沉金表面平整适合细间距引脚的焊接。喷锡工艺的平整度差一些0.5mm间距的引脚容易连锡。阻焊颜色随意但建议选绿色或者蓝色黑色阻焊不容易看清走线。打样回来之后先目检看有没有明显的短路或者断路。然后用万用表测电源和地之间的阻抗正常应该在几百欧姆以上。如果阻抗很低说明有短路要仔细检查。5.3 后续扩展思路这块板子做完之后还可以往几个方向扩展。一是加一颗SPI Flash把配置数据存进去实现上电自动加载。二是加一个USB转串口芯片通过串口配置VLAN。三是把5个端口改成4个端口加一个SFP光口用RTL8367RB的SerDes接口接光模块。四是加一个散热片如果长时间满负载运行芯片温度会到60°C左右加个小散热片能降到45°C以下。我个人在实际操作中的体会是RTL8367RB这颗芯片的性价比确实高但调试过程中最花时间的不是焊接而是排查link不稳定的问题。很多时候问题出在差分线的阻抗或者变压器的选型上而不是芯片本身。所以如果你也要做这个项目建议在PCB布局阶段就严格按照差分规则来能省掉后面很多调试的麻烦。另外配置MCU的固件不用写得太复杂先把非网管模式跑通再慢慢加功能这样出问题的时候容易定位。