
做硬件的人迟早要碰以太网。不管是单片机加个W5500做联网还是FPGA、ARM跑Linux需要网口RJ45网口都是绕不开的那一环。这篇文章我会用Altium Designer从原理图到PCB把RJ45以太网口的布局布线完整走一遍。项目按千兆网1000BASE-T的标准来做同时也讲清楚千兆和百兆在设计上的差异——因为很多项目现在虽然只跑百兆但方案选型阶段就得把升级余量留好。内容面向有一定AD基础、想系统了解网口设计的工程师也适合刚接触PCB设计、想找一份完整参考流程的新手。全文涉及的关键点包括RJ45接口定义与信号分配、连接器选型、PCB层叠规划、差分对规则设置、网口区域的布局布线思路以及制板回来后网口不通的排查逻辑。这些内容是我自己做了好几版网口板子之后沉淀下来的希望能帮你少走弯路。1. 动手之前先把千兆网方案和层叠想清楚1.1 千兆和百兆的本质区别不是多两根线那么简单千兆以太网1000BASE-T工作在125MHz四对双绞线全部参与数据传输而且每一对线都是全双工——发送和接收同时进行。这和百兆100BASE-TX只用到1、2、3、6这四根线两对差分线一对负责发送、一对负责接收是完全不同的工作机制。千兆网采用PAM-5编码信号电平更精细幅度也更小对外界噪声和自身串扰比百兆敏感得多。这给PCB设计带来的直接影响有三点差分对从2对变成4对布线面积几乎翻倍差分阻抗控制要求更严格100Ω±10%是底线实际做的时候尽量往±5%靠对内等长、对间等长的要求远高于百兆阻抗不连续、等长偏差大都会直接导致误码率上升所以做千兆网口布局布线不能用百兆那种“差不多就行”的思路来对付。差分对是网口信号的主角每一对的参考平面必须完整线宽间距必须算过等长必须调过。这些后面都会展开讲。1.2 连接器和变压器怎么选RJ45网口方案常见有两种形态一种是RJ45座子自带变压器例如HR911105A这类集成磁性元件的一体式座子体积小、走线短、Layout简单小板和模块上用得很多。另一种是RJ45裸座加独立网络变压器例如排针式RJ45加HX1188NL独立变压器。这种方案灵活变压器和座子各自选型散热和隔离处理比一体式更好控制做中高端网口板子时更常见。选型时看Datasheet重点看三块内容引脚定义和内部结构图Pin Map、Internal Diagram、中心抽头Center Tap的推荐接法、是否支持PoE供电。像T568B线序下千兆网四对线分布在1/2、3/6、4/5、7/8上但不同厂家的RJ45座子内部引脚顺序不一定一致原理图符号上的信号名和实际PCB封装脚位要反复核对不要照搬别人的引脚分配。做独立变压器方案时PHY → 变压器 → RJ45这个顺序是经典布局变压器一侧接PHY原边另一侧接RJ45副边原副边中间是安全隔离区域。中心抽头部分常见偏置电压是3.3V或2.5V按照PHY芯片手册的推荐来接通常串磁珠或RC滤波后接过去。1.3 层叠规划能上四层板就别省做千兆网口我强烈建议四层板起步。四层板常见的叠法有两种信号-地-电源-信号顶层走元件和主要信号底层走普通信号和少量走线内层一个完整地平面、一个完整电源平面这是最通用的叠法。地-信号-信号-地适合有大量底层走线或需要严格屏蔽的场景缺点是电源完整性不如第一种好做。在Altium Designer里打开层叠管理器快捷键是D K把每一层的Layer Type设置为Top Layer、GND、POWER、Bottom Layer然后调整介质厚度和材料参数。这里顺便说一下网上一搜一大把的“PCB层叠厚度”问题——在Layer Stack Manager里调的Prepeg和Core厚度直接影响差分阻抗计算。介质厚度越薄达到目标差分阻抗所需的线宽就越细布线空间越充裕反过来介质厚线就要加粗占用面积变大。强烈不建议在2层板上做千兆网口。不是说绝对做不成但2层板没有完整的参考平面差分阻抗很难控制EMI辐射也更难压住。做个百兆网口用2层板可以前提还是要把差分阻抗匹配做好。2. 原理图端准备库和连线决定后面顺不顺2.1 RJ45的库从哪来原理图符号和PCB封装有三条获取路径厂家官网直接下载Altium格式库用Ultra Librarian这类工具转换或者自己手动建库。厂家提供的库看起来省事但导入后必须检查引脚编号是否与Datasheet一致。用转换工具转出来的库更要小心封装容易丢3D模型或者焊盘尺寸出偏差。最可靠的还是自己建原理图符号照着Datasheet的引脚定义画PCB封装用AD内置的IPC Footprint Wizard生成再根据具体型号的实尺寸微调。RJ45座子这种连接器厂家之间尺寸差异很大不能盲目套用通用封装。我自己建封装时会重点核对四个地方引脚间距、焊盘孔径、座体外框尺寸、定位柱或固定脚的位置。建完后下载厂商提供的STEP格式3D模型导入AD把封装和3D模型叠在一起看这一步能避免绝大多数封装错误导致贴不了板的悲剧。2.2 原理图连线网口电路不是光把线连上就行信号链路是PHY芯片 → 网络变压器 → RJ45。数据段用差分方式连接这里有个命名规范建议一开始就执行差分网络统一加_P和_N后缀例如ETH_TX0_P、ETH_TX0_N。后面在PCB里设置差分对时会非常省事AD能自动识别成对网络。电源部分有几个容易忽略的细节PHY的每个电源引脚旁边就近放0.1uF去耦电容模拟电源和数字电源如果分开供电注意单点连接变压器中心抽头的偏置电压按PHY芯片手册给定值接常见是3.3V或2.5V供电路径上串磁珠或加RC滤波LED指示灯电路RJ45座子上的Link/Act指示灯驱动端限流电阻按LED压降和驱动电平平算常见取1k到2k我自己见过不少初级工程师在原理图阶段就把差分网络命名成ETH1P、ETH1N这种不带下划线的名字结果到PCB阶段AD无法自动识别成对网络只能手动一个个加Differential Pair浪费时间还容易漏。2.3 编译检查与工程版本管理在AD里按快捷键C C编译工程重点看ERC报错有没有未连接的网络、悬空的电源引脚、输出引脚短路等问题。编译通过后执行Design → Update PCB Document把网表同步到PCB。再提一句版本管理。虽然是个人项目也建议从一开始就用Git管理工程或者每天另存一个带日期的文件。AD工程里的 .PcbDoc 和 .SchDoc 都是二进制格式Git合并比较麻烦但每天提交一次、留好回退点比出了问题重新画要高效得多。我以前吃过亏一版板的走线调了三天覆盖保存后想回退上一步发现没有备份只能靠记忆重补。3. PCB布局实操位置对了布线才有意义3.1 板框与网口区域的预留打开PCB文档后的第一件事不是急着拖元件而是先把板框画好把接口位置预留出来。RJ45座子无论直插还是贴片都要放在板边缘让网口能露出壳体。如果是做产品还要配合结构限位确定座子的朝向和出线高度。建议在Keepout层把网口座子的占用区域框出来设置成禁止布线区把座子底下和周边的走线空间全部约束住。隔离带禁布槽也在这个阶段画好变压器下方原边与副边之间的隔离区域宽度我习惯开8到12mil这个宽度要在后面布线时一直保持清空。这里有个大多数教程不会提的细节隔离带不只是顶层铜皮上画一条线而要在所有需要隔离的铜箔层同步处理。AD里可以用Edit → Select → All on Layer配合多选完成先把隔离槽在机械层画好然后在布线后期铺铜时统一执行Keepout设置。3.2 摆放顺序从连接器往芯片推网口区域的布局逻辑是RJ45 → 网络变压器 → PHY芯片 → 主控。按信号流向摆放每级之间的走线距离最短差分对拥塞最少也方便后续做等长。几个关键点RJ45紧贴板边保证插拔时外壳能受得住力应力不传导到焊盘变压器放在RJ45和PHY中间尽量靠近RJ45那一侧原边副边隔离距离足够PHY芯片靠近主控MDIO/MDC管理信号走线短减少干扰四对差分线经过的区域不允许其他高速信号横穿地平面的处理是网口布局的重头戏。带隔离变压器的网口原边PHY侧和副边RJ45侧通常要分割地。做法是在变压器下方区域把地平面切开形成两个独立地岛再用一颗0欧电阻或高频电容在特定位置桥接。桥接点位置很关键一般放在变压器下方靠近PHY侧两边地岛的电位差通过这个桥接点泄放。3.3 元器件细节与地的处理去耦电容永远是最容易被忽略的。PHY的每个电源引脚0.1uF电容到引脚的距离不要超过50mil尽量放在芯片同侧且紧贴引脚。变压器中心抽头偏置的滤波电容放在对应的中心抽头引脚旁边。LED限流电阻靠近PHY驱动端不要放在RJ45旁边——放驱动端的好处是走线短LED开关噪声不会辐射太远。网口变压器底下的挖空处理要单独说。千兆网络变压器本身有隔离作用但如果变压器正下方铺满铜皮共模噪声可能通过寄生电容耦合到副边造成辐射发射超标。我一般会在变压器所在层的正下方画一块禁布区把铜皮掏空。注意不是所有层都掏空电源层掏空面积太大会导致内电层跨分割带来电源完整性问题。经验做法顶层掏空地平面和电源层只在副边对应区域掏。4. PCB布线实操差分线是网口设计的灵魂4.1 规则设置先把100欧姆算明白打开PCB Rules and Constraints Editor快捷键D R需要设置的规则包括线宽Width、间距Clearance、差分对规则Differential Pair和长度约束Length。差分阻抗的计算离不开层叠参数。以我自己常用的四层板叠层为例顶层1oz铜信号层第二层地平面与顶层的介质厚度约4~5mil第三层电源平面底层信号层在这个叠层下表层差分线做5~6mil线宽、8~10mil对内间距差分阻抗大概落在95~105Ω范围。但注意这只是经验估算不同板厂的叠层厚度和板材介电常数有差异最靠谱的方法还是用Polar Si9000这类工具把目标100Ω±10%反推线宽和间距。在AD规则里填差分参数时要注意Width是单根走线的宽度Gap是差分对内部两条线之间的间距。填好规则后差分走线会按照规则里的线宽、间距自动推线。4.2 差分对布线的具体操作在PCB中把网络定义成差分对可以手动操作菜单Design → Classes进入Differential Pair Classes右键添加类把_P和_N网络分别加进去。如果你在原理图阶段命名规范这一步基本就是拖拽确认。交互式差分布线是最快的路径先选中一对差分网络按快捷键U DAD会识别_P/_N后缀自动进入差分布线模式。这时候只需要沿着目标路径点两下按Shift空格切换拐角模式就能快速把一对线布完。布差分线有几个原则是经验也是教训同一对差分线尽量贴近并行走线不要中途分开差分线正下方必须是完整参考平面不要跨越平面分割缝隙过孔越少越好一对线上最多不超过两个过孔远离晶振、时钟线、开关电源功率走线距离不小于3W线宽的3倍差分不是玄学是数学。线宽、线距、参考平面距离这三个参数决定阻抗阻抗决定信号完整性。靠感觉走线的人往往会在实验室里被千兆link不上的问题折磨到怀疑人生。4.3 等长处理与蛇形补偿千兆网四对差分线PHY芯片手册上通常会给出等长要求。以常见PHY手册的典型值为例对内等长差最小做到不超过5mil约0.127mm四对差分线之间的总长度差控制在50mil约1.27mm以内在AD里调等长先给每一对差分线设好目标长度值然后用Length Tuning工具做蛇形补偿。蛇形线有三个关键规则波峰间距不小于线宽的3倍、拐角用圆弧或45度斜角不用90度直角、同一对里两根线的蛇形补偿要成对出现。实际操作的顺序是先完成所有差分走线然后查看每对的长度记录下来排序。从最短的那对开始调把蛇形长度加在靠近PHY那一侧这样对侧差分对的影响最小。调完一对马上锁定锁定长度再调下一对。这里有一个我在实际中踩过的坑为了追求美观把蛇形补偿全部放在网口座子旁边结果蛇形区域的耦合太强千兆link成功率反而下降。后来把蛇形集中到PHY侧、并且同一对线的两根线都做相同的蛇形长度问题才解决。所以等长补偿的位置同样重要不是随意塞一段蛇形就算完。5. 制板与调试设计完了问题才刚开始5.1 从AD到生产文件布局布线完成之后用OutJob文件统一输出生产文件快捷键F T F。Output Job可以一次性输出GerberRS-274X格式、钻孔文件NC Drill、元器件坐标文件Pick and Place和装配图纸Assembly Drawing每一版都不会漏输出。出Gerber前要检查几项板框是否包含在输出层、丝印是否完整、铜皮间距是否满足制板工艺最小线宽线距、最小过孔孔径、电源层是负片还是正片输出。这些参数在发单前和板厂确认好能避免来回沟通浪费周期。5.2 千兆网不通的排查思路这是高频问题——跑U-Boot时千兆网不通、PHY识别不了、ping不通。结合调试经验我给一个排查顺序先看PHY有没有起来板上指示灯有没有亮用MDIO/MDC管理接口读PHY寄存器如果读不到ID先查复位、时钟和电源查时钟25MHz晶振是否起振幅度够不够看信号用示波器量TX差分对看差分信号幅度和时基是否正常百兆通千兆不通八成是四对线没有全部处理到位。检查四对差分是否都布线、等长是否满足、差分阻抗是否在100Ω附近link状态不稳定多半是连接器或变压器虚焊或者隔离地带分割有问题用万用表测RJ45连接器和变压器副边之间的导通关系可以快速判断是选型问题还是焊接问题。链路调不通时先换一根质量好的网线、换个交换机端口排除测试环境因素再动板子。我自己踩过最深的一个坑原理图里PHY的驱动能力配置引脚没接对导致发送幅度不足百兆勉强通、千兆完全不通。这种问题属于原理图层面的缺陷PCB布线做得再好也救不回来。所以调试时先怀疑原理图再怀疑PCB这个顺序别搞反。5.3 收到板子后先别急着上电拿到板子先做外观检查丝印是否清晰、过孔是否堵孔、焊盘尺寸是否正确。有条件的话用万用表量一下电源对地阻抗确认没有短路再上电。上电后先摸芯片温度温度异常立刻断电排查。网口区域的焊点建议用放大镜或者剥线钳夹住座子轻微晃一晃确认没虚焊。RJ45座子的引脚比较密手工焊接时容易连锡量产板回来也要抽样检查。这里说一个调试网口特别好用的小工具命令行的mii工具在U-Boot或Linux下都有可以直接读PHY寄存器状态看link是否建立、协商速率是千兆还是百兆。很多情况下一条mii命令就能定位问题在哪一侧比示波器到处点高效得多。最后分享几个小习惯网口设计做多了之后我最大的体会是一切问题都能归结到原理、布局、布线三个层面。原理图阶段把PHY手册读透确认引脚配置、偏置电压、等长要求布局阶段把信号流向摆顺、把地分割想清楚布线阶段把计算工具用起来老老实实算阻抗、调等长。三步做到位制板回来基本一次点亮。再补充一个Altium Designer的小技巧在Preferences里把默认差分线宽和间距预填好交互式布线时就不用每次手动改规则了。另外AR全局修正可以快速调整走线ShiftF5切换层显示这些快捷键在实际布局布线中能明显提升效率。如果你想在这个网口设计基础上继续扩展建议下一步做ESD防护在RJ45座子旁加TVS管或者做PoE供电把电源协议芯片纳入布局。每加一层功能坑就换一批但核心思路永远一样先想清楚信号怎么走再让PCB辅助信号走得舒服。