ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于RTL8367RB与立创EDA的5口千兆交换机设计实战

基于RTL8367RB与立创EDA的5口千兆交换机设计实战 1. 为什么我要用RTL8367RB-VB-CG做一台5口千兆交换机去年年底整理工作室的时候发现角落里堆了好几台百兆交换机要么是接口不够用要么是跑满带宽时发热严重。当时正好在调一个多网口边缘计算网关的方案需要一台体积小、功耗低、能稳定跑满千兆的5口交换板市面上成品要么尺寸不合适要么价格虚高索性决定自己画一块。选芯片的时候其实纠结了一阵。市面上常见的千兆交换芯片有几家Realtek的RTL8367系列算是资料相对丰富、外围电路也不算太复杂的一档。我最终锁定的是RTL8367RB-VB-CGQFN-128封装支持5个10/100/1000M自适应端口内置RGMII接口可以外挂主控也支持无管理模式的即插即用。对于我这种不需要VLAN和网管功能、只要求稳定转发的场景来说它的性价比非常合适。整个项目从原理图到PCB打样再到上电调试前后大概花了三周时间中间踩了不少坑也积累了一些在常规教程里看不到的经验。这篇文章我会把立创EDA我用的是专业版画原理图和PCB的全过程、关键电路的设计考量、布线时的取舍、以及上电后遇到的各种问题尽可能完整地记录下来。如果你也在用立创EDA做千兆交换机或者类似的网络硬件设计这篇内容应该能帮你少走一些弯路。需要提前说明的是RTL8367RB-VB-CG这颗芯片的完整数据手册需要签NDA才能拿到网上能找到的公开资料比较有限。我下面涉及到的寄存器配置和部分引脚定义一部分来自公开的参考设计一部分是我自己实测验证的结果如果你要直接复现建议先用万用表和示波器把关键节点确认一遍再上电。2. 整体方案设计与关键器件选型2.1 系统框图与供电架构整块板子的核心思路很清晰RTL8367RB-VB-CG作为交换核心负责5个端口的PHY和交换逻辑外部只需要给它提供稳定的电源、时钟和必要的配置引脚电平它就能独立工作不需要额外的MCU干预。这也是我选它的一个重要原因——无管理模式下外围电路极简对于我这种只想做一块“哑交换机”的需求来说少一个主控就少一堆麻烦。供电方面RTL8367RB-VB-CG需要三路电压3.3VIO和部分模拟电路、1.8V部分内部电路、1.0V核心电压。三路电压的上电时序有要求一般是1.0V先上或者和1.8V同时上3.3V最后上具体顺序在数据手册里有明确说明。我一开始想用三颗LDO分别供电后来算了一下电流1.0V核心电压在满载时大概需要1.2A左右LDO的压差损耗太大发热扛不住最后改成了DC-DC降压 LDO的混合方案。具体来说输入是12V DC先用一颗同步降压芯片降到3.3V然后再从3.3V分别用LDO降到1.8V和1.0V。3.3V这一路电流最大用DC-DC效率能到90%以上1.8V和1.0V的电流相对小一些用LDO纹波更干净对PHY的模拟电路更友好。这个取舍在后面调试的时候证明是对的PHY的误码率一直很稳定。2.2 关键器件选型与BOM控制除了主芯片几个关键器件的选型也直接影响性能和成本晶振RTL8367RB-VB-CG需要一颗25MHz的无源晶振精度要求±50ppm以内。我选的是3225封装的贴片晶振负载电容12pF。这里要注意晶振的负载电容必须和芯片内部电容匹配不然起振会不稳定。网络变压器每个端口都需要一颗千兆网络变压器我选的是内置共模电感的型号可以省掉外部共模电感PCB面积能小一圈。RJ45连接器带变压器的集成式RJ45虽然方便但价格贵不少而且高度固定。我最后用的是分离式方案RJ45座子独立变压器布局更灵活。去耦电容这颗芯片的电源引脚非常多每个电源引脚旁边都要放0.1uF的去耦电容1.0V核心电源还需要额外加10uF的钽电容或者陶瓷电容做储能。我数了一下整块板子用了将近60颗去耦电容这个数量不能省。BOM成本算下来主芯片大概占总成本的一半左右变压器和RJ45占三成剩下的电源和阻容占两成。小批量打样的话单板成本能控制在合理范围内比买成品交换机便宜不了太多但胜在尺寸和接口布局完全按自己的需求来。2.3 立创EDA专业版的项目初始化我用的立创EDA专业版版本是V2.x。新建工程的时候有几个设置建议提前做好图纸尺寸原理图用A3PCB用四层板顶层、内层1、内层2、底层。千兆交换机的信号完整性要求比较高四层板是最低配置两层板我试过差分线的阻抗根本控不住。层叠设置在立创EDA的层管理器里把内层1设为GND平面内层2设为电源平面。信号层走顶层和底层这样差分线可以参考完整的地平面阻抗一致性会好很多。设计规则提前把线宽、间距、过孔尺寸设好。差分线我设的是6mil线宽、6mil间距过孔用0.3mm孔径、0.6mm外径。这些参数后面布线的时候会反复用到提前设好能省很多事。提示立创EDA专业版的层叠管理器里可以设置阻抗模板但实际阻抗还是取决于板厂的工艺。打样前最好和板厂确认一下层叠结构和阻抗控制能力不然算出来的线宽可能和实际对不上。3. 原理图设计与核心电路解析3.1 主芯片最小系统电路RTL8367RB-VB-CG的最小系统包括几个部分电源引脚、晶振电路、复位电路、配置引脚和RGMII接口如果不用可以悬空。电源部分是重点。芯片的电源引脚按功能分成了好几组每组都要单独去耦。我在原理图里把每一组电源引脚都画了独立的去耦电容组0.1uF的小电容尽量靠近引脚放置10uF的储能电容放在电源入口附近。这里有个细节1.0V核心电源的电流比较大走线要尽量宽我在PCB上用的是20mil的线宽从电源芯片到芯片引脚全程加粗。晶振电路比较简单25MHz晶振两端各接一个12pF的电容到地然后直接连到芯片的XI和XO引脚。需要注意的是晶振下面不要走任何信号线PCB上要挖空或者铺地隔离不然会引入噪声导致时钟抖动。复位电路我用了一颗专用的复位芯片输出低电平复位信号给芯片的RST引脚。RTL8367RB-VB-CG的复位引脚是低电平有效复位时间要求至少10ms。我一开始想用RC复位电路后来算了一下RC的复位时间受温度和电压影响太大不够可靠还是用了专用芯片。配置引脚决定了芯片的工作模式。RTL8367RB-VB-CG有一组配置引脚通过上下拉电阻来设定端口数量、PHY地址、工作模式等。我这里是5口全启用、无管理模式所以按照数据手册的推荐值配置了上下拉。这些电阻在PCB上要靠近芯片放置走线尽量短避免引入干扰。3.2 千兆PHY接口与网络变压器电路每个端口的PHY接口都是标准的千兆差分对TX/TX-、RX/RX-共四对差分线。RTL8367RB-VB-CG的PHY接口是电压驱动型不需要外部上拉电阻直接连到网络变压器的初级线圈就行。网络变压器的作用有三个电气隔离、共模抑制和阻抗匹配。我选的变压器是1:1的匝比初级中心抽头接3.3V通过一个0.1uF电容到地次级中心抽头通过一个75欧姆电阻和一个1000pF电容到地。这个75欧姆电阻和1000pF电容组成的RC网络是Bob Smith端接电路的一部分主要用来抑制共模噪声。这里有个容易忽略的细节变压器初级和次级之间的隔离带在PCB上要保证足够的爬电距离。我一开始布局的时候没注意变压器下面的走线离焊盘太近后来检查的时候发现爬电距离不够重新调整了布局。一般建议隔离带宽度至少2mm高压测试要求高的场合还要更宽。RJ45连接器这边每个差分对要尽量等长差分阻抗控制在100欧姆±10%。我在立创EDA里用差分对布线功能设置好线宽和间距后软件会自动帮你保持等长。但要注意RJ45座子内部的走线长度是固定的所以从变压器到RJ45的差分线要尽量短减少不匹配。3.3 电源树设计与上电时序控制电源树的设计前面提过12V输入先降到3.3V再降到1.8V和1.0V。这里重点说一下上电时序。RTL8367RB-VB-CG要求1.0V和1.8V先上3.3V后上或者三者同时上但3.3V不能早于1.0V。我一开始没注意这个要求直接三路同时上电结果芯片偶尔起不来复位后也不稳定。后来查了数据手册才发现时序问题。解决方案有两种一种是用带时序控制的电源芯片另一种是用简单的RC延时电路控制使能引脚。我用的是第二种在3.3V的使能引脚上加了一个RC延时让3.3V比1.0V晚大概5ms上电。实测下来这个延时足够了芯片每次都能正常启动。注意上电时序这个问题在调试初期很容易被忽略因为有时候芯片能起来有时候起不来看起来像是随机故障。如果你遇到芯片时好时坏的情况先检查一下上电时序。3.4 立创EDA原理图绘制技巧用立创EDA画原理图有几个技巧可以提升效率多用网络标签千兆交换机的原理图连接比较多用网络标签代替长走线图纸会清爽很多。立创EDA支持全局网络标签同名标签自动连接。元件分组把去耦电容、配置电阻这些重复性高的元件做成一个分组复制粘贴的时候一起复制不容易漏。DRC检查画完原理图后一定要跑一遍DRC检查有没有未连接的引脚、重复的位号、电源冲突等问题。我这次就发现了一个电源引脚悬空的问题DRC直接报出来了。原理图完成后导出BOM和网表就可以开始PCB布局了。4. PCB布局布线与信号完整性实战4.1 四层板层叠结构与阻抗控制四层板的层叠结构我前面提过顶层信号、内层1地平面、内层2电源平面、底层信号。这个结构的优点是信号层都有完整的参考平面差分线的阻抗容易控制。具体的层叠参数和板厂确认过的层材料厚度顶层铜铜箔1oz介质FR-40.2mm内层1铜铜箔1oz介质FR-41.0mm内层2铜铜箔1oz介质FR-40.2mm底层铜铜箔1oz按照这个层叠用立创EDA的阻抗计算器算出来6mil线宽、6mil间距的差分线阻抗大概在100欧姆左右和板厂确认后误差在可接受范围内。4.2 主芯片布局与去耦电容放置主芯片放在板子中央5个RJ45座子沿着板边排列这样差分线的走线最短。去耦电容的放置是布局阶段最耗时的部分因为数量太多了。我的做法是先把芯片的所有电源引脚标出来然后在每个引脚旁边放一个0.1uF的电容尽量靠近引脚走线最短。10uF的储能电容放在芯片的四个角附近通过过孔直接连到内层的电源平面。这里要注意去耦电容的接地端要通过过孔直接连到地平面不要用长走线绕。实操心得去耦电容的放置顺序建议先放0.1uF的再放10uF的。0.1uF的电容对位置最敏感必须紧贴引脚10uF的电容位置可以稍微宽松一些。4.3 差分线布线与等长匹配千兆差分线的布线是整个PCB设计中最关键的部分。我的布线策略是优先布差分线先把5个端口的差分线布完再布其他信号线。差分线走顶层和底层尽量不换层如果必须换层要在换层过孔附近加回流地过孔。等长匹配每对差分线内部的P和N要等长误差控制在5mil以内。不同差分对之间的长度差异可以放宽一些但最好也控制在50mil以内。远离干扰源差分线要远离晶振、电源电感、时钟线等噪声源间距至少3倍线宽。立创EDA的差分对布线功能可以自动保持等长但有时候自动布线会绕远路我最后还是手动调整了几对。手动调整的时候可以用软件里的等长调谐功能它会显示当前的长度差方便你调整。4.4 星型接地与电源平面分割接地是千兆交换机PCB设计的另一个重点。我用的是星型接地的思路数字地和模拟地在芯片下方分开最后在一点汇合。具体做法是内层1的地平面在芯片下方分成数字地和模拟地两个区域中间用一条窄桥连接。每个端口的变压器下方铺模拟地芯片的数字部分铺数字地。电源平面在内层23.3V、1.8V、1.0V各自独立分割避免相互干扰。星型接地的核心思想是让模拟电流和数字电流各自回流最后在一点汇合避免数字噪声串到模拟电路里。实测下来PHY的误码率比不分地的时候低了一个数量级。4.5 立创EDA布线效率提升技巧立创EDA专业版在布线效率上做了不少优化我常用的几个功能交互式布线按W键切换线宽按Tab键切换过孔尺寸布线的时候不用频繁打开设置面板。差分对布线选中差分对后按快捷键软件会自动保持等长和间距。铺铜布线完成后铺铜立创EDA支持动态铺铜修改走线后铜皮会自动更新。DRC检查布线完成后跑DRC检查线宽、间距、过孔等是否符合设计规则。整个PCB布线大概花了三天时间主要是差分线的调整比较耗时。布线完成后导出Gerber文件发给板厂打样。5. 打样、焊接与上电调试实录5.1 PCB打样与SMT贴片注意事项板子是在嘉立创打的样四层板沉金工艺5片起打。打样前我把Gerber文件在立创EDA里预览了一遍确认没有明显的错误。打样周期大概三天收到板子后检查了一下外观没有明显的划痕或者变形。焊接方面QFN-128封装的芯片手工焊接难度比较大我用了钢网热风枪的方案。具体步骤在PCB焊盘上涂锡膏用钢网对准后刮平。用镊子把芯片放到焊盘上注意对齐第一脚。热风枪调到280度左右从芯片上方均匀加热看到锡膏融化后停止。冷却后用放大镜检查焊点特别是芯片四周的引脚有没有虚焊或者连锡。注意QFN封装的芯片底部有散热焊盘焊接前要在焊盘上涂适量锡膏确保散热焊盘和PCB焊盘充分接触。如果散热焊盘虚焊芯片满载时会过热。5.2 上电前检查与首次上电上电前我做了几项检查用万用表测各路电源对地的阻抗确认没有短路。检查芯片的电源引脚和地引脚有没有连锡。确认晶振、复位电路、配置电阻都焊接正确。首次上电我用的是可调电源限流设在500mA电压从0慢慢往上调。调到12V后电流稳定在300mA左右没有异常发热。然后用万用表测各路电压3.3V、1.8V、1.0V都正常纹波在50mV以内。接下来测晶振用示波器探头点在XI引脚上能看到25MHz的正弦波幅度大概1Vpp起振正常。复位引脚在上电后大概10ms从低电平变成高电平时序也对。5.3 端口连通性测试与速率协商上电正常后我用网线把电脑和交换板的一个端口连起来电脑显示网络已连接速率是1.0Gbps。然后依次测试了5个端口都能正常协商到千兆。接下来做吞吐量测试用iperf3在两台电脑之间跑数据中间经过交换板。实测下来单向吞吐能跑到940Mbps左右双向同时跑也能维持在900Mbps以上基本跑满了千兆的带宽。这个结果比我预期的好说明差分线的阻抗控制和接地设计是有效的。5.4 常见问题与排查技巧实录调试过程中遇到了几个问题这里整理成速查表问题现象可能原因排查方法解决方法芯片上电后不启动上电时序不对用示波器测各路电压的上电顺序调整使能引脚的RC延时某个端口不亮差分线虚焊或变压器损坏用万用表测变压器初级次级通断重新焊接或更换变压器速率只能协商到百兆差分线阻抗不匹配用TDR测差分线阻抗调整线宽和间距跑满带宽时丢包电源纹波太大用示波器测电源纹波增加去耦电容或更换LDO芯片发热严重散热焊盘虚焊用手触摸芯片表面重新焊接散热焊盘实操心得调试的时候建议先测电源再测时钟最后测信号。电源和时钟没问题信号的问题一般都能通过示波器和万用表定位。6. 写在最后的一些个人体会这块板子从设计到调试完成前后大概三周时间中间有差不多一周是在等打样和排查问题。回过头来看最耗时的部分不是画原理图或者布线而是调试阶段的各种意外。上电时序、差分线阻抗、散热焊盘这些问题在原理图阶段很难发现只有实际跑起来才会暴露。如果让我重新做一遍我会在以下几个方面做得更好一是提前和板厂确认层叠结构和阻抗控制能力避免打样后才发现阻抗对不上二是在PCB上多留一些测试点调试的时候方便测量三是去耦电容的布局再紧凑一些特别是1.0V核心电源的去耦对稳定性影响很大。立创EDA专业版在这个项目里的表现整体让我满意差分对布线和动态铺铜功能省了不少事。当然它也有一些不足比如阻抗计算器的精度有限复杂封装的引脚管理不如Altium方便。但对于中小规模的硬件设计来说它已经足够用了而且免费版的功能对个人开发者来说基本够用。这块交换板现在还在我工作室里跑着带了三台服务器和两台工作站连续运行了几个月没出过问题。后面我打算在这个基础上加一个RGMII接口外挂一颗MCU做简单的端口状态监控和VLAN配置把它变成一台可管理的交换机。到时候如果有新的经验再整理出来分享。
返回列表