ARTICLE DETAIL

资讯详情

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

千兆以太网PHY硬件设计:从原理图到PCB的完整实战指南

千兆以太网PHY硬件设计:从原理图到PCB的完整实战指南 前阵子帮朋友看一块ARM核心板的千兆网口问题现象很典型PHY芯片换了好几颗link灯能亮但一跑iperf吞吐只剩两三百兆偶尔还掉线。折腾一圈最后问题出在原理图上的一颗strap电阻和差分线绕法上。千兆以太网PHY这种芯片表面看是“照抄原厂参考设计就能用”实际上电源、时钟、复位、MDI和MAC侧接口每个环节都有隐形门槛。这篇就把一块千兆网口从PHY原理图到PCB落地的完整过程捋一遍适合正在画板子、准备替换国产PHY或者调试link不稳的硬件工程师参考。1. 先把数据通路捋清楚MAC、PHY、变压器、RJ45各管一段1.1 很多人把PHY原理图当成“照抄游戏”前提错了拿到一块PHY评估板的原理图第一反应都是照着画这没毛病。但如果不知道每一段在干什么抄出来的板子大概率能亮灯、跑不满速。一条完整的百兆/千兆以太网物理链路按信号走向是MACSoC/FPGA里的控制器→ PHY芯片 → 网络变压器 → RJ45连接器 → 网线 → 对端设备。MAC负责打包解包、TCP/IP协议栈这类逻辑工作它不认识网线PHY负责把MAC发来的并行数据变成线缆上的差分模拟信号同时把收到的模拟信号解调回数字信号还包括自动协商、编码、时钟恢复这些脏活累活网络变压器负责电气隔离、共模抑制和电平适配RJ45就是物理接口。类比一下MAC是写字的人PHY是翻译加快递员变压器是过海关的隔离舱RJ45是驿站。任何一环不到位包裹就送不到。所以PHY原理图看起来引脚多、密密麻麻但其实分成几大块后并不复杂只是每一块都有各自的电气约束。设计前先把约束列出来后面画起来才不慌。1.2 RGMII和SGMII怎么选引脚数和PCB难度一起算PHY上MAC侧的接口是原理图引脚密度最大的部分。常见的有RGMIIReduced Gigabit Media Independent Interface和SGMIISerial Gigabit Media Independent Interface再老一点的是GMII。RGMII在千兆模式下是4位数据发送、4位数据接收加上时钟和控制信号总共大约12根线速率125MHzDDR双边沿采样需要严格的时钟对齐处理。优点是主控普遍支持、PHY便宜、PCB只要控制好等长就能搞缺点是引脚多、时序敏感。SGMII就潇洒很多发送和接收各一根1.25Gbps的差分对加一个时钟或参考时钟总共就几根线PCB走线难度和干扰都小很多。但它要求主控侧有SerDes接口在FPGA里通常要例化SGMII IP核在高端SoC上则集成在MAC里。用FPGA做SGMII时IP核一侧要配成MAC模式外部PHY芯片工作在PHY模式两端工作模式对不上link永远建立不起来。还有个点很容易被忽略RGMII和SGMII的PHYMDI侧连变压器那一侧工作原理一样但MAC侧是完全不同的物理层两者不能混。选型时要先看主控有没有对应的MAC接口再决定PHY是RGMII版本还是SGMII版本。1.3 MDIO/MDC这条隐藏总线原理图上最容易画错MDIOManagement Data Input/Output和MDC是PHY的管理通道用来读写PHY内部的寄存器。它是低速串行总线MDC是时钟MDIO是数据。原理图上很多人把它当成普通I2C来画其实时序和电气要求完全不同MDIO不是开漏结构是双向三态通常在上拉电阻后由MAC主动驱动。多个PHY挂在同一条MDIO总线上时每个PHY的PHYAD引脚常见5位PHYAD[4:0]必须设置成不同地址。这个地址一般通过strap电阻在复位时锁存画原理图时不能图省事直接把PHYAD全接地否则两块板卡上的PHY寄存器地址撞车驱动根本分不清谁是谁。MDC信号建议加小电阻串阻靠近主控端放置减少反射。MDIO数据线上拉电阻常见4.7kΩ具体要看主控和PHY手册。另外如果板子上有多个MACPHY可以把MDIO总线做成菊花链或星型但要保证总线上所有PHY地址唯一。2. 原理图逐模块拆解电源、时钟、接口、MDI都要落到网络表2.1 电源树1.0V、2.5V、3.3V怎么给PHY喂饭千兆PHY内部是混合信号芯片数字核心、模拟前端、IO接口对电源的要求不太一样。常见供电脚大概分三类数字核心电压VDDC等一般1.0V/1.1V、模拟电压AVDD等常见2.5V或3.3V、IO电压VDDIO和MAC接口电平匹配常见1.8V/2.5V/3.3V。最稳妥的做法是看PHY数据手册里的电源树建议。典型系统里3.3V从板级电源进来经过LDO或DCDC降到1.0V给核心2.5V给模拟部分。模拟电源和数字电源之间通常用磁珠或小电感隔开避免数字开关噪声串进模拟前端。去耦电容不能只看总数要看摆放位置。每个电源引脚就近放一个0.1uF电容距离不得超过走线拐几个弯的范围芯片附近再放几颗10uF大电容作为储能。高频纹波如果压不住最直接的后果是MDI差分信号质量变差眼图闭合轻则降速重则link闪断。画电源树时还要算电流。千兆PHY整体功耗一般在几百毫瓦级别核心电流大概几百毫安但这不代表可以用细走线。PCB上电源走线宽度参考“线宽电流对照表”1oz铜厚外层走线1A电流至少要留出20mil左右宽度并考虑温升。电源走线太细电压跌落和纹波会把PHY坑得很惨。2.2 25MHz时钟和复位启动瞬间决定了PHY能不能好好工作几乎每一颗千兆PHY都需要25MHz参考时钟区别在于是从外部输入时钟还是用无源晶体配合内部振荡器。用外部时钟时注意时钟源的抖动和上升沿最好用有源晶振或由主控直接输出用无源晶体时晶体两端负载电容不是随便选要和晶体的负载电容CL匹配常见22pF或18pF具体看晶体手册。原理图上晶体旁边通常还并联一颗1MΩ电阻用于偏置内部反相器。很多新手漏了这颗电阻结果晶振不起振PHY完全没有反应。复位电路很多人直接RC了事——一个10kΩ电阻上拉到电源一个0.1uF电容到地。这样能用但要确认复位高/低电平的有效极性还要保证掉电后能产生完整复位而不是电压还没放干净就再次上电。更稳的方案是用复位芯片或主控GPIO控制PHY复位并确保PHY的复位释放时间晚于电源稳定时间这个时序在数据手册里一般写得很清楚。2.3 RGMII、MDIO、strap电阻的连接示例下面以一颗常见的RGMII千兆PHY为例画原理图时对照这个逻辑连线具体引脚名以你选的芯片手册为准# MAC侧 RGMII 主控RGMII_TXC - PHY_TXC 主控RGMII_TD[3:0]- PHY_TXD[3:0] 主控RGMII_TXCTL - PHY_TXCTL 主控RGMII_RXC - PHY_RXC 主控RGMII_RD[3:0]- PHY_RXD[3:0] 主控RGMII_RXCTL - PHY_RXCTL # 管理总线 主控MDC - PHY_MDC 主控MDIO - PHY_MDIO # PHY地址 strap PHYAD[4:0] - 按需上拉/下拉电阻RGMII的收发是独立时钟域TX和RX时钟分别由发送方产生。原理图阶段就要给每条数据线标注等长约束后面PCB才能实现。strap引脚是另一个大坑。PHY在复位释放瞬间锁存引脚电平用来决定PHY地址、自动协商使能、接口模式、时钟输出使能等配置。原理图上必须给每个strap引脚设计上拉或下拉连接的“初始默认值”并在PCB上留好0欧电阻位置。常见配置包括ANEN自动协商、PHYAD[4:0]、CLK125_EN是否输出125MHz参考时钟、MODE接口模式选择。很多板卡调试时发现PHY跑在百兆而不协商千兆十有八九是ANEN strap被拉到了错误电平或者PHY地址和驱动配置对不上。2.4 MDI差分对与网络变压器PHY到RJ45的最后几厘米MDI侧是PHY发往网线的差分信号分为TDP/TDN和RDP/RDN两组对应网络变压器的发送和接收线圈再接RJ45。变压器的作用不只是隔离还承担共模抑制和阻抗变换选错了变压器或者中心抽头接法不对信号直接废掉。常见网络变压器如RJ45集成变压器座子或独立变压器都有中心抽头需要按PHY手册给的电压接法连接比如通过电阻和电容组合接到3.3V或2.5V。中心抽头电压决定了共模电平和线缆驱动能力接错会导致信号幅度不对尤其是距离稍长或者对端设备兼容性差时问题集中爆发。如果RJ45连接器和变压器是分离的变压器和连接器之间、变压器和PHY之间的差分对都要尽量短、尽量等长还要注意变压器两侧地平面的区分与隔离带。实际项目中我喜欢把PHY、变压器、RJ45一字排开中间不留任何高速信号跨分割的机会。3. 从原理图到PCB层叠、阻抗、布局顺序决定千兆能不能跑满3.1 四层板和六层板都行参考平面完整性比层数更重要经常有人问千兆网口要不要上六层板答案没那么绝对。四层板只要叠层设计合理、参考平面完整照样能跑满千兆六层板只是给了更多走线空间和更稳的参考平面焊盘密度大、布局紧凑时更有优势。典型四层板结构顶层信号、第二层完整地平面、第三层电源平面、底层信号。RGMII和MDI走线尽量都在顶层底下就是连续的GND参考。第二层的“完整”非常关键任何分割缝横穿差分线下方阻抗和回流都会出问题。千万不要为了走线方便把地平面切开一块那是拿信号完整性开玩笑。六层板可以增加一个专门信号层或第二地平面比如信号-地-信号-电源-地-信号的结构。电源平面不必铺满所有电压但必须保证PHY核心电压和IO电压有完整平面或足够宽的铺铜路径。如果条件允许PHY芯片下方最好铺一块完整地平面过孔阵列打到主地平面既做散热也做回流。这个做法对PHY这种混合信号芯片特别有效。3.2 100Ω差分对线宽、线距、等长错一步眼图给你脸色看MDI差分对设计要求100Ω差分阻抗。四层板上通过调整线宽和线距来实现常见组合是5mil线宽、5mil间距、参考层间距合适时能接近100Ω但最终阻抗和板材、层间距强相关最稳的办法是让板厂按叠层算阻抗并在生产时控制。差分对内等长非常重要两颗信号在线上走出时间差共模转换和辐射都会恶化。一般要求对内等长小于5mil不同PHY手册可能有出入。差分对之间等长要求没那么苛刻但也不能差太多。绕等长时不要走直角用45度或圆弧蛇形绕线区域尽量对称。MDI差分对走线应尽量避免过孔如果被迫打孔两个差分对必须成对打过孔尽量缩短过孔stub并在过孔附近放地孔回流。RGMII并行信号是单端走线要求所有TX或RX信号等长常见规则是组内等长控制在±50mil以内但同样以芯片手册为准。时钟线TXC/RXC是125MHz DDR信号建议单独包地或者至少两边有足够的地间距避免对其他信号产生干扰。3.3 布局顺序与隔离RJ45、变压器、PHY、MAC这条流水线别乱千兆网口布局有一套实际验证过的顺序RJ45放在板边紧挨机壳开口网络变压器紧靠RJ45两者之间尽量短PHY芯片紧靠变压器MAC侧主控芯片再往板内放。这样信号从MAC到PHY到变压器到RJ45一路向前回流路径最短。RJ45的地处理和变压器隔离是两回事。RJ45的外壳地通常通过一个高压电容和一个高阻电阻单点连接到系统地用来泄放静电和共模干扰防止机壳噪声直接窜入信号地。变压器下面还要在PCB上挖空一部分铜箔形成隔离带以抵抗外部干扰通过变压器耦合进来。有些低成本板子为了省面积把变压器和PHY放得很近中间又没有隔离带结果是ESD测试一打就挂、link时断时续。要记住变压器的存在不是为了让你省一个器件而是制造物理隔离PCB上也必须有对应的隔离区。PHY芯片的电源去耦电容、磁珠要放在芯片同侧尽量靠近对应电源引脚。如果把去耦电容放在背面过孔来回穿透会增加寄生电感高频去耦效果差很多实测纹波会明显变大。3.4 电源去耦、地平面和25MHz时钟的行走路线PHY的地处理有讲究。模拟地和数字地通常不建议用“切岛”方式搞成两套完全独立的GND那样反而会在磁珠两端形成电位差。常见做法是使用统一的GND平面模拟电源用磁珠单独从板级电源引入这样既保证回流连续又隔离了电源噪声。去耦电容的摆放有两个层次电源入口处放钽电容或固态电容蓄能电源引脚旁边放陶瓷电容高频去耦。0.1uF电容距离电源引脚超过3mm基本就废了一半这不是玄学是有过孔寄生电感在捣乱。25MHz时钟线是板上最敏感的单端信号之一一定要远离MDI差分对、远离RJ45和变压器、远离电源电感。时钟走线较短时优先包地如果PHY输出125MHz时钟给其他芯片用也是一样处理不要让它和RGMII数据线平行长距离伴行。4. 调试链路从link不up到吞吐减半按顺序查这几处4.1 先确认PHY有没有活着时钟、复位、MDIO读取三步检查板子回来第一件事别急着插网线先用示波器确认25MHz时钟波形是否正常、幅度是否够、频率是否准确再确认复位引脚电平是否符合手册要求。时钟不振、复位被拉死后面全是白查。然后用MDIO工具读取PHY寄存器基本寄存器0x00控制和0x01状态就能看到大部分信息有没有link、协商到多少速率、是否全双工、有没有远端故障。如果读不到数据先查MDC/MDIO波形、上拉电阻、PHY地址是否匹配。MDIO波形能看到就说明PHY活了。用ethtool也能快速看link状态和协商结果比如网口显示1000Mb/s Full说明协商OK。如果显示的是10Mb/s或100Mb/s再看是协商结果还是降速运行降速运行往往和线缆质量、差分信号质量有关。4.2 link反复up/down或协商降速优先怀疑差分信号和变压器Link灯闪是经典故障。如果PHY寄存器显示link状态反复翻转先把网线换成已知好的短网线排除环境因素然后用示波器看MDI差分波形重点看幅值、上升沿和有没有振铃。变压器中心抽头的电压要重点检查。很多PHY需要特定电压配合特定电阻接法中心抽头电压不对信号幅度会严重不足长线直接掉link短线则表现为吞吐极低。国产PHY和国外PHY在中心抽头接法上可能不同替换时要重新看手册。差分走线如果跨了分割、等长差距过大也会表现为link不稳。这类问题在原理图上通常看不出来只能用TDR或者仔细检查PCB走线。4.3 RGMII时序delay很多“高速上不去”的根源在这里RGMII的数据与时钟是中心对齐关系也就是说时钟上升/下降沿应该对准数据位的中心。千兆模式下工作频率125MHz数据窗口只有4ns左右时序裕量很紧。为了实现中心对齐发送侧要在时钟或数据路径上加约2ns延时。具体加在哪一侧主控和PHY可能都支持常见做法是通过PHY寄存器开启TX delay/RX delay或者靠主控内部delay链。如果PCB上数据线和时钟线等长做得好寄存器delay设对RGMII就能稳定工作如果哪一侧都没加delay信号虽然“通”但高速跑不稳时快时慢甚至重传率高企表现为吞吐莫名折半。所以调试时跑吞吐不达标别急着怀疑PHY芯片坏先查RGMII的delay配置。这个功能一般对应PHY的一个寄存器字段MDIO工具直接改观察改善情况。4.4 设备树和驱动侧的PHY配置别让软件背硬件黑锅Linux系统下PHY的硬件信息通过MDIO总线上的设备树节点描述。节点里要配置PHY的MDIO地址和strap设置的PHYAD一致、max-speed、reset GPIO、中断等。如果设备树里地址写错驱动永远找不到PHY。很多PHY驱动会通过读取ID寄存器来识别具体型号国产PHY通常会宣称兼容某些主流型号的驱动但有些兼容性只覆盖基础寄存器特殊功能寄存器地址可能不一样。遇到功能配置不起来先读PHY ID寄存器核对驱动识别结果再决定要不要改驱动或加兼容补丁。调试时建议先用MDIO工具手动读写寄存器把硬件状态摸清楚再上驱动和上层应用。这样能避免软件和硬件互相甩锅也能快速定位是PHY寄存器配置问题还是PCB问题。5. 交付前的原理图评审与选型避坑这些检查项能救你5.1 原理图自查清单电源、strap、悬空脚、去耦电容逐条过交板厂之前我会把原理图按下面这份清单过一遍踩过的坑大多能拦住所有电源引脚是否都有去耦电容位置是否靠近引脚磁珠有没有选错型号电源入口大电容和引脚旁小电容是否齐全复位信号有无上拉/下拉释放时序是否满足手册strap引脚默认电平是否和期望配置一致关键引脚是否预留0欧调整位25MHz晶体负载电容是否匹配1M偏置电阻是否遗漏MDC/MDIO上拉电阻是否齐全、阻值是否符合要求MDI差分对网络命名是否成对TX/RX有没有接反网络变压器中心抽头电压接法是否正确不用的PHY引脚是否按手册处理悬空、接地还是接固定电平RGMII信号是否标注等长约束MDI差分对是否标注阻抗LED指示引脚有没有限流电阻极性是否容易搞反ESD/TVS器件是否放在RJ45侧而不是放在PHY芯片附近5.2 网络变压器、RJ45、晶振这些BOM物料决定量产稳定性网络变压器是千兆网口最容易在BOM环节翻车的物料。同一封装可能有不同匝数比、不同中心抽头电压、不同共模电感参数替换型号必须核对PHY手册要求。带变压器RJ45集成座子虽然省事但散热、隔离距离和共模抑制不如分立变压器稳定工业级产品要谨慎选集成座子。晶振/晶体也容易被“随便选个频率一样的”蒙混过去。无源晶体要看ESR和负载电容有源晶振要看CMOS电平还是LVPECL等还要关注抖动指标。千兆PHY对参考时钟的抖动比较敏感尤其是SGMII模式下时钟抖动直接反映到串行数据上。连接器方面RJ45的金属屏蔽外壳接地时要通过正确的RC网络到系统地不要直接大面积相连否则机壳地噪声会倒灌到板子。板对板或线对板应用时的线缆连接器也要注意屏蔽层处理。5.3 国产千兆PHY替换时硬件和软件各要核对什么这几年国产千兆PHY出货量很大替换时不能只看传统参数。硬件上除了引脚兼容性更要核对strap电阻默认电平是否一致、MDI中心抽头电压是否一致、LED驱动能力是否需要改限流电阻。很多国产PHY电气特性和国外主流芯片相似但内部LDO和IO电平设置不完全一样直接照抄旧原理图容易出问题。软件上国产PHY驱动兼容性大多不错但建议第一次上电时通过MDIO读取ID寄存器确认驱动识别结果再逐项验证自动协商、千兆/百兆/十兆切换、link down事件、环回模式等功能。千万别省这一步直接跑量产程序出了问题很难定位。还有一个细节国产PHY的功耗和发热特性可能和原型号有差异尤其是满载1000BASE-T工作时的耗流电源余量要留足。PCB上的散热焊盘面积和过孔阵列也一样不要因为“原设计已经验证过”就不改示波器实测是最靠谱的验收手段。最后再分享一个小习惯不管PHY选哪家原理图里所有strap引脚我都预留0欧电阻位上下拉方向做成可切换。前期调试时用0欧定死量产时把多余的位删掉或改固定电阻虽然多占一点点空间但能省下大量“配置不对导致link异常”的排查时间。千兆PHY设计说难也难说简单也简单硬件工程师只要把电源、时钟、差分走线和strap配置这四件事守住这块板子基本不会给你出幺蛾子。
返回列表