ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

RTL8370N单芯片8口千兆交换机硬件设计实战与避坑指南

RTL8370N单芯片8口千兆交换机硬件设计实战与避坑指南 千兆交换机在很多人眼里是“买一台就完事”的东西但真到自己动手画板子的时候坑比想象中多得多。RTL8370N这颗芯片我前前后后用了三四次从最初照着参考设计抄、到后来自己改电源拓扑和走线踩过的雷基本覆盖了“能通但不稳”“能跑但发热”“能协商但丢包”这几类典型症状。这篇就把单芯片8口千兆傻瓜交换机的硬件设计从头到尾捋一遍重点讲清楚为什么这么选、为什么这么画以及那些文档里不会写、但实际调试时一定会遇到的东西。1. 先搞清楚RTL8370N到底能干什么、不能干什么1.1 这颗芯片的定位与集成边界RTL8370N是一颗面向非网管型Unmanaged应用的8端口千兆以太网交换芯片内部集成了8路Gigabit PHY、交换引擎Switching Fabric、包缓存Packet Buffer以及MAC地址表。也就是说一颗芯片加上少量的外围器件就能构成一台完整的8口千兆傻瓜交换机。它的封装通常是LQFP或QFN形式引脚密度不低对PCB布线有一定要求。很多人第一次接触会误以为“单芯片”意味着外围几乎为零实际上它只是把PHY和交换核心集成进来了电源、时钟、复位、EEPROM可选、LED指示、网络隔离变压器这些依然要自己搭。真正省掉的是“交换芯片8颗独立PHY”这种传统方案里的大量走线和PHY配置工作而不是把整个BOM都吃掉。从应用场景看它适合做桌面级8口千兆小交换机、嵌入式设备的板载交换模块、工业控制里需要多网口的汇聚节点。不适合做需要VLAN、端口镜像、链路聚合这类网管功能的场景因为傻瓜交换机没有管理接口配置能力基本为零。1.2 傻瓜交换机与网管交换机的硬件差异傻瓜交换机的“傻”体现在没有CPU去配置交换芯片芯片上电后按照内部默认策略工作所有端口同属一个广播域、自动学习MAC地址、自动协商速率和双工模式。硬件上因此可以省掉管理CPU、串口、管理PHY、配置EEPROM有些方案用EEPROM存配置傻瓜机通常不需要。但省掉CPU不代表硬件设计变简单。恰恰相反因为没有软件层去“兜底”硬件上任何电源噪声、时钟抖动、阻抗不连续都会直接反映成丢包、掉速、端口反复up/down。网管交换机还能通过寄存器读计数器和状态来定位问题傻瓜交换机只能靠示波器、万用表和经验去猜。所以做傻瓜交换机硬件设计的裕量要给得比网管机更足。1.3 典型系统框图拆解一台基于RTL8370N的8口千兆傻瓜交换机系统层面可以拆成这几块交换核心RTL8370N本体负责8路MAC/PHY和交换转发。电源系统一般需要3.3V、1.8V或1.2V视具体型号和内核电压而定、以及PHY用的模拟电源。多路电源的时序和纹波是关键。时钟系统通常用25MHz晶振或外部时钟源给芯片提供参考时钟。复位电路上电复位POR电路保证电源稳定后芯片才释放复位。网络接口8路差分对经过网络隔离变压器再到RJ45连接器。指示灯Link/Act、Speed指示通常由芯片的LED引脚直接驱动或经三极管驱动。可选EEPROM部分设计会挂一颗小容量EEPROM用于加载配置傻瓜机可以省略。这个框图看起来简单但每一块都有讲究。下面逐块展开。2. 电源树设计多路电源的时序与纹波才是隐形杀手2.1 电源轨的划分与电流估算RTL8370N通常需要以下几路电源电源轨典型电压用途估算电流8口全速VDDIO3.3VIO接口、LED驱动100~200mAVDDC1.2V或1.8V交换核心逻辑300~500mAAVDD3.3V或1.8VPHY模拟电源200~300mADVDD1.2V或1.8V数字内核视具体型号具体电压值一定要以你手上那颗芯片的Datasheet为准不同批次或不同子型号的内核电压可能不同。我遇到过有人照着旧版参考设计用了1.8V内核结果新批次芯片要求1.2V上电后芯片发烫但不工作查了半天才发现是电压给错了。电流估算上8口全千兆同时跑满的情况在桌面场景不常见但设计时电源要按最坏情况留裕量。一般建议每路电源的实际输出能力至少是估算值的1.5倍LDO或DC-DC的散热要提前算。2.2 LDO还是DC-DC效率与噪声的取舍3.3V到1.2V这种大压差、几百毫安的场景如果用LDO功耗会非常可观。比如1.2V/500mALDO上的压降是2.1V功耗就是1.05W一颗SOT-23封装的LDO根本扛不住会热到烫手甚至热保护。所以内核电源一般用DC-DC降压。但DC-DC的开关噪声对PHY模拟电源不友好。我的做法是内核和数字电源用DC-DCPHY的模拟电源用LDO从3.3V降下来或者用DC-DC后再加一级LC滤波。这样兼顾效率和噪声。具体选型上DC-DC开关频率建议在500kHz以上避开以太网信号频段同时电感选屏蔽式减少辐射。LDO的PSRR在1MHz以上要足够高否则DC-DC的纹波会串到PHY上。2.3 上电时序为什么顺序错了芯片会“假死”RTL8370N一般要求IO电源先于或同时于内核电源上电或者有明确的时序要求。如果内核电源先到、IO电源后到芯片内部可能出现闩锁或状态机卡死表现为上电后所有端口都不亮复位也没用。实际设计中可以用电源监控芯片如带PG信号的复位IC来保证时序或者用DC-DC的Power Good信号去使能下一级电源。最省事的办法是选一颗带时序控制的PMIC但成本会上去。低成本方案是用RC延时加MOS管做简单的时序控制但要实测上电波形确认。提示上电时序一定要用示波器多通道同时抓单看某一路电源“正常”不代表时序没问题。我见过3.3V比1.2V晚了几十毫秒芯片就是起不来。2.4 纹波实测多少算合格PHY模拟电源的纹波一般要求控制在50mVpp以内越干净越好。实测时用示波器配合弹簧地线不要用长地线夹带宽限制到20MHz探头直接点在芯片电源引脚附近的电容上。如果纹波超标先查DC-DC的电感和输出电容选型再看布局上反馈线是否远离电感和开关节点。LDO的话查输入输出电容的ESR是否在稳定范围内。我遇到过LDO输出振荡原因是输出电容用了低ESR的陶瓷电容但没加足够的裕量换了一颗ESR合适的钽电容就好了。3. 时钟与复位小电路大问题3.1 25MHz晶振的选型与负载电容计算RTL8370N通常用25MHz无源晶振配合芯片内部的振荡电路。晶振的负载电容CL要和芯片要求的匹配外部两颗电容C1、C2的计算公式是C1 C2 2 × (CL - Cstray)其中Cstray是PCB走线和引脚寄生电容一般估3~5pF。如果晶振规格书上CL18pFCstray取4pF那么C1C22×(18-4)28pF取标准值27pF或30pF。实际调试时如果时钟频偏太大以太网协商会不稳定甚至失败。可以用频率计或者示波器测时钟输出如果有CLK_OUT引脚或者间接通过端口能否稳定千兆协商来判断。频偏一般要求±50ppm以内。3.2 复位电路的阈值与延时复位电路要保证电源稳定后至少维持几十毫秒的复位低电平让芯片内部PLL锁定、状态机初始化完成。简单的RC复位电阻上拉、电容到地成本最低但阈值不精确温度漂移大。稍微讲究一点用专用的复位IC比如带固定延时的电压监控芯片。复位引脚一般低有效内部有上拉外部加电容和可选的下拉电阻即可。但要注意复位走线不要靠近时钟线或高速差分线否则可能耦合噪声导致误复位。3.3 时钟走线的注意事项25MHz时钟走线要尽量短远离电源电感和高速差分对。如果晶振离芯片较远走线要做包地处理两侧加地过孔。晶振下方不要走其他信号线保持完整地平面。我见过一个案例晶振走线从DC-DC电感旁边穿过结果端口频繁掉线把走线改短并远离电感后问题消失。这种问题用软件根本查不出来只能靠布局经验避免。4. 网络接口与变压器差分走线决定成败4.1 网络隔离变压器的作用与选型变压器在交换机里承担几个角色电气隔离防止不同设备间地电位差损坏芯片、共模抑制、阻抗匹配。选型时要看几个参数匝数比通常1:1、电感量、插入损耗、回波损耗、共模抑制比。常见的千兆变压器是集成式的一颗变压器里包含4对差分通道有的还集成共模扼流圈。选型时注意工作温度范围和耐压等级工业场景要选宽温型号。变压器到RJ45之间的走线也要注意这段是“线路侧”虽然经过隔离但依然要保持差分阻抗100欧姆走线尽量短且对称。4.2 差分对的阻抗控制与走线规则RTL8370N到变压器的差分对以及变压器到RJ45的差分对都要求差分阻抗100欧姆±10%。PCB叠层设计时要先算好线宽和间距用阻抗计算工具确认。走线规则上差分对内部两根线等长误差控制在5mil以内。差分对之间保持足够间距至少3倍线宽减少串扰。差分对尽量走内层参考完整地平面避免跨分割。过孔数量尽量少如果必须换层两根线要同时换且过孔附近加地过孔。不要在差分对下方走其他高速信号。这些规则听起来是老生常谈但实际项目中因为差分走线不规范导致丢包的比例非常高。尤其是8口全千兆同时工作串扰和反射会叠加裕量不够就出问题。4.3 变压器中心抽头的处理变压器芯片侧的中心抽头一般要接电源通常是PHY的模拟电源并通过电容到地。这个电容的选型和布局很关键它影响共模噪声的泄放路径。一般用0.1uF加0.01uF并联靠近变压器引脚放置。线路侧的中心抽头通常通过一个高压电容如2kV/1000pF到地用于泄放共模电荷。这个电容的耐压要足够否则雷击或浪涌时会击穿。4.4 RJ45连接器与LED布局RJ45连接器选带集成变压器的还是分立的取决于成本和空间。集成变压器的RJ45省事但贵分立方案便宜但占板面积大、走线要求高。傻瓜交换机出货量大成本敏感很多方案用分立变压器加普通RJ45。LED指示灯一般放在RJ45上方或侧面走线从芯片LED引脚过来。LED驱动电流不大但要注意限流电阻的计算以及LED走线不要和差分对平行过长避免耦合。5. PCB布局实战从叠层到散热5.1 叠层设计与阻抗规划四层板是这类设计的最低配置推荐叠层层用途Top信号、器件Inner1完整地平面Inner2电源平面Bottom信号、器件如果成本允许六层板更好可以把高速差分和电源分开。四层板时差分对走Top层参考Inner1地平面阻抗容易控制。电源走Inner2但要注意电源平面的分割和去耦。5.2 芯片下方散热与过孔设计RTL8370N功耗不算特别大但8口全速时芯片表面温度会明显上升。芯片底部如果有散热焊盘要在PCB上对应位置开窗并打散热过孔阵列过孔连接到地平面帮助散热。散热过孔一般打9~16个孔径0.3mm左右间距1mm左右。过孔要盖油还是开窗取决于工艺开窗散热更好但要注意焊接时锡膏量。5.3 去耦电容的摆放原则每对电源引脚附近都要放去耦电容0.1uF为主大容量电容如10uF放在电源入口或芯片附近。去耦电容的回路要短电容到引脚和到地的走线尽量短而粗。我习惯在芯片每个电源引脚旁边放一颗0.1uF0402或0201封装紧贴引脚。大容量电容放在芯片外围不要离太远。去耦电容的地要就近打过孔到地平面不要共用过孔。5.4 晶振与复位电路的布局禁区晶振要靠近芯片走线短且包地。晶振下方禁止走任何信号线保持地平面完整。复位电路远离晶振和DC-DC复位走线不要和时钟线平行。DC-DC的电感和开关节点是强噪声源要远离PHY模拟电源、晶振和差分对。布局时先把这些“敏感区”和“噪声区”划开再摆其他器件。6. 调试与验证从点亮到稳定跑满6.1 上电前检查清单焊接完成后不要急着上电先做这几项检查用万用表测各路电源对地阻抗确认没有短路。检查芯片引脚是否有连锡尤其是细间距引脚。确认晶振、复位、变压器等关键器件焊接方向正确。确认电源芯片的反馈电阻值正确。这一步能避免大部分“上电就冒烟”的悲剧。6.2 上电顺序与电流观察上电时用带限流的电源先设一个较小的限流值比如200mA观察电流是否异常。如果电流远大于预期立即断电查短路。正常上电后电流会稳定在估算值附近。然后测各路电源电压是否正常纹波是否在范围内。用示波器抓上电时序确认符合芯片要求。6.3 端口协商与丢包测试芯片正常上电后插上网线看端口LED是否亮、是否协商到千兆。可以用两台电脑对插测试吞吐或者用专业的网络测试仪。丢包测试要跑长时间至少几小时观察是否有偶发丢包。偶发丢包往往和电源纹波、时钟抖动、差分走线有关需要结合示波器和计数器定位。6.4 发热与长时间稳定性跑满8口一段时间后用手背触摸芯片和电源芯片确认温度在可接受范围。如果烫手要查功耗是否超标、散热是否足够。长时间稳定性测试建议跑24小时以上观察是否有端口掉线或速率降级。7. 几个容易翻车的细节与个人经验第一个坑是电源时序。我最早做的一版3.3V和1.2V同时上电但1.2V的DC-DC启动慢导致内核电源比IO电源晚了几十毫秒芯片上电后端口全不亮。后来加了PG信号控制问题解决。所以时序这件事datasheet上写了就一定要照做没写也要实测确认。第二个坑是差分对过孔。有一版为了省空间差分对换层时两根线没有同时打过孔结果千兆协商成功率只有一半。改成对称过孔后恢复正常。差分对的对称性不是理论要求是实测出来的硬指标。第三个坑是去耦电容的地回路。有次去耦电容的地过孔离电容太远导致高频去耦效果差端口在高负载下丢包。把地过孔挪到电容焊盘旁边后改善明显。去耦电容的回路电感比电容值本身更关键。第四个坑是变压器中心抽头电容。线路侧的高压电容耐压不够做浪涌测试时击穿导致端口损坏。后来换成2kV耐压的电容问题解决。这个电容不能省也不能随便选。第五个坑是散热。芯片底部散热焊盘如果没有打足够的过孔长时间跑满后芯片温度会到80度以上虽然不一定立刻坏但长期可靠性下降。散热过孔阵列要按datasheet推荐来不要偷懒。最后分享一个调试小技巧如果端口协商不稳定先别急着改硬件用示波器测一下差分对上的眼图或者用网络测试仪看误码率。有时候问题出在网线质量或对端设备不一定是板子的问题。排除法能省很多时间。这类单芯片傻瓜交换机的硬件设计核心就是把电源、时钟、差分这三块做扎实剩下的就是布局和调试的耐心。RTL8370N本身集成度很高外围不算复杂但正因为简单每个细节的裕量都要给足否则傻瓜机没有软件兜底问题会直接暴露在用户面前。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进