资讯详情

资讯详情

千兆以太网PHY硬件设计:RGMII/SGMII、电源时钟与PCB布局要点

1. 千兆以太网PHY到底在做什么硬件设计为什么要提前想清楚1000兆以太网PHY的硬件设计说白了一句话让 MAC 送出来的并行数字信号经过编码、串化、驱动、隔离、变换最终可靠地跑到网线上再原样从网线上收回来。这中间任何一环掉链子表现可能是链路协商不上、1000M 降到 100M、跑大流量丢包、长时间老化偶发误码。做过几块板子的朋友大概都有体会PHY 这东西不像 DDR 那样对布线苛刻到变态但它对电源、时钟、参考平面、端接、防护的“综合素质”要求很高属于那种你不重视它就阴魂不散的类型。我自己带过好几个千兆网口项目从工控板卡到消费级路由也踩过不少弯路。有块板子量产前测试一切正常客户拿去用了三个月开始批退最后定位到是变压器中心抽头的去耦电容选型太激进纹波在高温下恶化导致链路间歇性断开。这类问题原理图上看不出来仿真也未必能复现只能靠对 PHY 工作机制的理解去反推。所以这篇内容想聊的不是“照着手册抄一遍”而是把千兆以太网 PHY 硬件设计里那些真正容易翻车的点一个一个小节拆开讲清楚。适合谁看如果你正在做一块带千兆网口的板子手上有 MAC可以是 MCU、FPGA、SoC 或者专用交换芯片外部挂一颗 PHY那这篇基本就是你要的。如果你还在纠结百兆和千兆怎么选、国产 PHY 芯片能不能用、FPGA 的 SGMII IP 核怎么配后面的章节也会给到具体思路。我会尽量用从业者之间交流的口吻把“为什么这么设计”讲透而不是只丢一堆参数出来。2. 千兆以太网 PHY 的整体架构与选型思路2.1 从 MAC 到 PHY 再到网线信号链路全景先把整条链路捋一遍后面所有设计动作都能对应到某个环节。一颗典型的千兆 PHY内部大致分成这么几块数字侧接口接 MAC、PCS/PMA 层、模拟前端AFE、线路驱动与接收、时钟管理。MAC 侧通常用 RGMII 或 SGMII 跟 PHY 对接PHY 内部把 8bit 数据做 8B/10B 编码、加扰、串化成四对差分信号再经过变压器和 RJ45通过网线跟对端通信。这里有几个关键概念值得先建立起来。1000BASE-T 用的是四对双绞线每对线同时做双向收发靠的是回声消除和自适应均衡。也就是说PHY 的模拟前端要在同一对线上一边发一边收把发出去的信号从接收信号里“减掉”这对模拟电路的要求很高。正因为如此PHY 对电源噪声、时钟抖动、参考地质量异常敏感——你稍微给它点脏电源回声消除的精度就下降误码随之而来。从硬件设计角度看我们真正能控制的就是这几个边界MAC 到 PHY 的接口RGMII/SGMII、PHY 的供电与去耦、时钟源质量、复位时序、PHY 到变压器的差分走线、变压器与 RJ45 的选择、防护与端接。每一块都独立但互相影响。选型阶段如果没想清楚比如选了一颗只有 RGMII 但没做内部延迟的 PHY后期布线就要额外补偿时钟麻烦事就来了。2.2 芯片选型时我重点看的几个硬指标选 PHY别只看价格和封装。我一般会按这几条优先级来筛接口类型、内部延迟支持、电源域数量、时钟方案、封装与散热、参考设计成熟度、供货与替代性。接口类型决定了你 MAC 侧的负担。RGMII 走的是 4bit 数据 控制 时钟引脚少、成本低但 1Gbps 下 125MHz 双沿采样时序紧张PCB 上要严格等长还要处理 TX/RX 时钟延迟。SGMII 走的是 SerDes差分对速率 1.25Gbps抗干扰和走线灵活度更好但需要 MAC 侧有 SerDes 或者 IP 核支持FPGA 用得多。还有 QSGMII、USXGMII 这些多口或更高速的方案端口密集的场景才会考虑。内部延迟支持这一点特别重要。RGMII 标准里其实没规定 PHY 要不要给时钟加延迟导致很多板子出现 MAC 侧采样窗口对不齐的问题。好的 PHY 会提供 RGMII-IDInternal Delay选项通过寄存器或 strapping 引脚配置让 TXC/RXC 相对数据有固定延迟。选型时如果不确认这一点后期可能要靠 PCB 绕线或者调 MAC 时序来补量产一致性很差。电源域数量直接影响 BOM 和布线复杂度。有的 PHY 核心 1.0V、IO 1.8V/2.5V/3.3V 可配、SerDes 单独 1.2V一路都不能少有的做了集成 LDO外围简洁。对于成本敏感项目我会倾向选电源域少、内置稳压的型号但对噪声敏感的高端场景反而愿意用独立 LDO 逐路供给。关于国产百兆/千兆 PHY这几年进步确实明显。选国产替代时我会重点核对三样寄存器兼容性尤其是 RGMII delay 配置、参考原理图是否完整、以及 EMC 测试有没有现成数据。有些型号 pin-to-pin 兼容但寄存器行为有差异直接替换容易翻车最好拿到原厂的应用笔记再动手。提示选型阶段一定要把“这颗 PHY 的 RGMII 是否支持内部延迟”写进选型报告最好让供应商书面确认别等到打板才发现。3. MAC 与 PHY 接口设计的关键细节3.1 RGMII 时序、延迟与走线约束RGMII 是千兆 PHY 里最常用的 MAC 接口。它的特点是数据线 4 根TXD[3:0]/RXD[3:0]控制线 TX_CTL/RX_CTL加一对收发时钟 TXC/RXC总共 14 根信号。1Gbps 时时钟 125MHz数据在时钟双沿传输所以一个时钟周期传 8bit正好对应 GMII 的 8bit 宽度。时序上的核心矛盾在于数据和时钟必须满足建立/保持时间。标准 RGMII 规定数据相对时钟的偏移很小如果 PHY 和 MAC 都没有内部延迟采样点就落在数据跳变附近非常危险。行业里通行的做法是要么 PHY 侧加内部延迟RGMII-ID要么 MAC 侧加二者只加其一绝不两边都加否则偏移翻倍同样采不准。延迟补偿的量级通常是 1.5ns 到 2ns 左右对应到 125MHz 周期8ns里大约四分之一周期。这个数字不是拍脑袋来的而是为了保证采样点落在数据眼图中心。实际调试时我会先用示波器量 TXC 和 TXD 的相位关系确认延迟是否生效再决定要不要动寄存器。PCB 走线方面同一组数据和控制线必须等长一般要求 ±50mil 以内严格的板子会卡 ±25mil。TXC/RXC 时钟线要单独包地尽量短避免跨分割。RGMII 走线虽然速率不算特别高但边沿快仍然是传输线超过一定长度就要考虑端接。经验上超过 3000mil 的 RGMII 走线最好加串联电阻或者做阻抗匹配。注意RGMII 的 4 根数据线不要和时钟线分层走尽量同层同参考平面减少层间过孔带来的延迟差。3.2 SGMII 与 IP 核配置模式的那些坑如果你用的是 FPGASGMII 几乎是绕不开的选择。SGMII 把 GMII 的 8bit 数据串化成 1.25Gbps 的差分信号含 8B/10B 开销实际数据 1Gbps一根收发差分对就搞定走线灵活抗干扰好。这里有个高频踩坑点当 SGMII IP 核与外部 PHY 芯片配合使用时IP 核应该配置成 MAC 模式而不是 PHY 模式。为什么因为 FPGA 里的 IP 核在整条链路里扮演的是 MAC 的角色它发出的是待发送的数据外部 PHY 芯片负责把这些数据编码、串化、送到网线。如果你把 IP 核配成 PHY 模式它就期望对端是 MAC方向就反了链路根本起不来或者表现为能协商但传不了数据。我在一个项目里就遇到过这个当时两边的开发者都以为对方是 PHY结果谁也没起来查了两天才发现是 IP 核模式配反了。判断方法其实简单看谁是“想发数据的一方”谁就是 MAC。FPGA 想发数据那 IP 核就是 MAC 模式外部 PHY 芯片接网线它就是 PHY 模式。这个逻辑理清楚配置就不会错。SGMII 的差分对走线阻抗控制到 100Ω 差分等长要求比 RGMII 严格一般要 ±10mil 以内。交流耦合电容通常放 0.1uF位置靠近接收端。还有一个细节SGMII 的自协商和速率切换要靠 IP 核的寄存器配置别指望硬件自动搞定上电初始化流程里必须写进去。3.3 MDIO/MDC 管理接口别当摆设MDIO/MDC 是 MAC 读写 PHY 寄存器的通道用来配置速率、自协商、读取链路状态、查看误码计数等。很多新手觉得这只是调试接口板子上随便连一下就行结果量产时发现读不到状态排查半天。MDC 是时钟通常由 MAC 提供频率一般不超过 2.5MHz不要图快往高了跑。MDIO 是数据线它是双向的需要上拉电阻典型 1.5kΩ 到 10kΩ具体看 PHY 手册。多颗 PHY 挂在同一组 MDIO/MDC 上时靠 PHYADDR 引脚区分地址地址不要重复strapping 电阻要按手册接准。我的习惯是MDIO/MDC 走线尽量短远离高速差分对避免被干扰导致读写失败。另外在原理图上留出测试点调试时方便接逻辑分析仪抓取寄存器读写时序。很多链路问题最后都是通过读 PHY 的状态寄存器定位的这个接口的价值远超它的成本。接口类型信号数量速率走线难度典型场景RGMII约 14 根125MHz DDR中等需等长MCU/SoC 直连成本敏感SGMII1 对差分收 1 对差分发1.25Gbps较高需阻抗控制FPGA、多口交换QSGMII差分5Gbps高多口密集设计RMII约 9 根50MHz低百兆场景4. 电源、时钟与复位最容易翻车的三件套4.1 多路电源域与去耦设计怎么做才稳PHY 的电源设计是硬件里最容易被低估的部分。一颗典型千兆 PHY 可能有这么几路电核心 1.0V 或 1.1V、数字 IO 1.8V/2.5V/3.3V看 MAC 电平、模拟前端和 SerDes 1.2V、内部 PLL 单独供电。每一路都要干净尤其是模拟和 PLL 部分纹波要求通常几十毫伏以内。先说去耦。常规做法是每个电源引脚旁边放 0.1uF靠近引脚放置回路面积越小越好。模拟和 PLL 电源我会额外加 0.01uF 甚至更小再配 1uF 电解或钽电容做低频储能。别把所有容量都堆在电源入口那样高频去耦就失效了。布局上去耦电容的地过孔要单独打尽量靠近器件地焊盘避免和信号地混在一起形成共阻抗。再说电源来源。噪声敏感的项目我会给模拟和 SerDes 用独立 LDO数字部分用 DCDC 或 LDO 都行。DCDC 的开关频率要避开 PHY 的敏感频段输出纹波控制在合理范围。如果板子空间紧张只能用一颗 DCDC 分多路那至少要保证分路后每路有 LC 滤波。高温老化测试时候要专门盯电源纹波很多偶发断链都是纹波在温度升高后恶化引起的。电源域典型电压噪声敏感度建议供电方式核心1.0V/1.1V中LDO 或 DCDC数字 IO1.8V/2.5V/3.3V低DCDC 或 LDO模拟/AFE1.2V/2.5V高独立 LDOPLL1.2V/1.0V极高独立 LDO RC 滤波4.2 时钟方案与抖动预算千兆 PHY 的时钟源一般是 25MHz 晶振PHY 内部倍频到 125MHz 供 RGMII或者再倍频给 SerDes。有些设计用 125MHz 差分时钟直接输入。无论哪种时钟质量都是链路稳定的前提。我选晶振时会看三个指标频率精度、老化率、相位抖动。对于千兆应用相位抖动通常要求 RMS 小于 1ps 级别具体看 PHY 手册。太便宜的晶振抖动大短期内跑得动长时间或者满流量就出误码。布局上晶振要尽量靠近 PHY 的时钟输入引脚走线短且直下方铺完整地平面周围用包地过孔隔离。晶振的负载电容按手册取值两个电容要对称容差选 5% 以内。晶振下方不要走任何信号尤其是开关电源的走线。还有一个容易忽略的点如果 PHY 和 MAC 共用一个时钟或者从同一个时钟源分频要确认时钟域之间的关系避免出现采样相位漂移。用示波器测时钟眼图看抖动是否在允许范围这一步花不了多少时间但能省掉很多后期扯皮。4.3 复位时序别拍脑袋复位看似简单实则讲究。大部分 PHY 有一个 RESET_N 引脚低电平复位。手册一般会给一个最短复位脉宽比如 10ms 或更长上电后必须保持这段时间才能释放。有些工程师图省事直接把复位接到上电复位芯片上结果脉宽不够PHY 内部寄存器没初始化完就工作了表现为链路时好时坏。我一般的做法是用专用复位芯片或者 MCU 的 GPIO 控制确保上电后先让电源稳定再延时给复位复位保持时间留足余量比如手册要求 10ms我给 50ms。复位释放最好和时钟稳定同步如果 PHY 需要时钟才能完成初始化那就在时钟稳了之后再释放复位。另外strapping 引脚用来配 PHYADDR、RGMII delay、速率模式等的电平是在复位期间锁存的所以上下拉电阻必须接准复位期间不能被干扰。有的板子上电时序不对strapping 引脚在复位前就被拉偏了配置进去就是错的。调试时如果发现配置不对先查 strapping再看寄存器十有八九是这里的问题。5. PCB 布局布线千兆信号的成败全在细节5.1 差分对与阻抗控制PHY 到变压器的四对差分线是千兆以太网硬件里最需要精细处理的走线。阻抗要求 100Ω 差分这个值要和变压器、RJ45、网线的标称阻抗匹配。单端算下来大约 50Ω具体按叠层算。差分对内部两根线要等长一般要求 ±5mil 到 ±10mil越短越好。走线尽量同层、平行、近距离保持差分阻抗恒定。如果必须换层两个过孔要对称最好在旁边加地过孔给返回电流提供路径。交叉、跨分割、直角走线都要避免这些都会破坏差分对的完整性。长度匹配方面四对差分线相互之间也要等长通常要求 ±50mil 以内严格的板子卡 ±25mil。因为 1000BASE-T 的四对线同时收发对间偏斜过大可能影响回声消除。走线总长度没有硬性上限但太长会带来损耗一般控制在几千 mil 以内比较稳妥。参考平面上差分对下方必须是完整的参考地绝不能有一根线悬空在分割区上方。分割会导致返回电流绕路等效阻抗突变反射随之而来。如果板子必须分区域记得在分割处加缝合电容让高频返回电流有路可走。5.2 变压器、RJ45 与 Bob Smith 终端电路变压器网络隔离变压器/磁性元件负责隔离和共模抑制。选型时要看匝比、共模扼流特性、插入损耗、耐压等级。千兆变压器通常集成共模扼流圈能有效抑制共模噪声。变压器中心抽头一般要接去耦电容到地接收侧中心抽头通常接一个电容到地发射侧中心抽头接电源或通过电容到地具体以 PHY 和变压器手册为准。RJ45 要选带屏蔽或者不带屏蔽看应用环境。带屏蔽的网口需要正确的接地策略屏蔽壳一般通过高压电容和电阻接机壳地不是直接连信号地。有些设计直接连信号地导致共模噪声全进板子EMC 一测就爆。Bob Smith 终端是千兆网口的经典电路四对线的每对“空闲端”通过 75Ω 电阻汇到一起再经过一个高压电容通常 1000pF/2kV接到机壳地。它的作用是给共模信号提供泄放路径改善 EMI 表现。这个电路看着简单但电阻精度和电容耐压都要选对电容要能耐住隔离测试电压。注意Bob Smith 终端的地一定要接机壳地而不是信号地这是它发挥作用的前提接错了等于没做。5.3 ESD 与防护设计网口是板子对外最脆弱的接口之一静电、浪涌都从这里进来。防护器件一般放在变压器和 RJ45 之间或者变压器靠近 RJ45 的一侧。选 TVS 时关键指标是结电容——千兆信号频率高结电容太大直接吃掉信号。一般要求单通道结电容在几个 pF 以内越低越好。防护路径要短TVS 到被保护线、TVS 到地的走线都要尽可能短让瞬态电流快速泄放。防护器件的接地要接到机壳地或专门的防护地不能随便接信号地。有的设计防护做了但走线绕了一大圈浪涌还没到 TVS 就先打坏了 PHY那就白做了。另外变压器本身也有一定隔离和耐压能力配合 TVS 能形成多级防护。做过网口的朋友应该知道隔离耐压测试、浪涌测试是必过的防护设计要在原理图阶段就规划好后期补救很被动。6. 常见问题与排查技巧实录6.1 链路协商不上或者降速这是最常见的现象链路灯不亮或者亮了但速率只有 100M。排查顺序我会这样走先量电源和时钟确认 PHY 基本工作条件再读 MDIO 寄存器看链路状态和自协商结果然后量差分信号看有没有正常波形。降速到 100M 的常见原因有几种某对差分线虚焊或走线断裂1000BASE-T 需要四对全通100BASE-TX 只用两对所以坏一对就会降速变压器某路绕组开路PHY 内部某个通道损坏。用万用表测变压器绕组通断用示波器看四对线的收发波形基本能定位。还有一种情况是自协商能力配置不对。有些 PHY 默认只开 100M需要在寄存器里打开千兆能力或者通过 strapping 引脚配置。这种问题一读寄存器就现形了属于配置层面。6.2 满流量丢包与偶发误码链路能起来、能 ping 通但一跑大流量就丢包这种最磨人。原因可能是电源纹波、时钟抖动、阻抗不匹配、回声消除未收敛等。我的排查思路是先在低速率下跑压力测试再切到千兆看丢包是否和速率相关用 PHY 的误码计数寄存器看误码率判断是物理层问题还是上层问题。物理层误码往往和电源、时钟挂钩。我会抓电源纹波看满流量时是否有明显波动测时钟眼图看抖动是否超标检查差分对的阻抗和端接。回声消除未收敛通常需要几秒到几十秒的收敛时间如果是一直丢包那更像硬件问题如果是刚开始丢、后来变好可能是收敛过程属于正常现象。还有一种隐蔽情况是散热。PHY 满负载时温度上升某些器件参数漂移导致误码。可以用热风枪局部加热复现或者做高温老化测试。不少量产问题都是高温下才暴露的。现象可能原因排查手段链路不亮电源/时钟/复位异常量电压、测时钟、读寄存器降速到 100M差分对断线/变压器开路测通断、看波形满流量丢包电源纹波/时钟抖动/阻抗失配抓纹波、测眼图、查阻抗高温偶发断链器件参数漂移/去耦不足高温老化、局部加热复现寄存器读不到MDIO 上拉/地址配置错误查上拉、查 PHYADDR6.3 一个很实用的调试顺序踩了这么多坑我总结出一套相对固定的调试顺序基本能覆盖大多数网口问题。第一步确认电源每一路电压和纹波别跳过。第二步测时钟频率和抖动晶振有没有起振。第三步量复位时序确认脉宽和释放时机。第四步读 MDIO 寄存器看 PHY 是否被正确识别、配置是否符合预期。第五步接网线看链路状态和协商速率。第六步跑流量测试观察丢包和误码计数。这套顺序从下往上逐层排除效率很高比东一榔头西一棒子强多了。另外留好测试点是关键。MDIO/MDC、时钟、复位、差分对附近都留上测试焊盘或者过孔调试时不用飞线。这个习惯我在早期项目里没养成后来吃过亏现在画板子第一件事就是把调试点规划好。7. SGMII IP 核与外部 PHY 联调时的几点经验前面提过 SGMII IP 核要配成 MAC 模式这里再展开一点实际联调的细节。FPGA 侧用 SGMII IP 核接外部 PHY本质上 IP 核是 MACPHY 芯片是物理层。配置时除了模式还要注意几个参数速率要设成 1000M自协商使能选项要和 PHY 侧匹配参考时钟频率要和板上的晶振一致。联调时我一般先用回环测试验证 IP 核本身工作正常再把 PHY 接上。回环测试能排除 IP 核配置和数据通路的问题把问题范围缩小到 PHY 和链路。如果回环通过但接 PHY 不通那问题大概率在 SGMII 差分信号、PHY 配置或者自协商上。SGMII 的差分信号质量也要关注1.25Gbps 的速率对走线和端接有要求。用示波器或者高速探头看信号眼图确认幅度和抖动在范围内。有的板子差分对太长或者阻抗不对IP 核和 PHY 能协商上但误码率高跑一段时间就断。还有一点SGMII 和 RGMII 的切换要设计时就决定别指望后期改。两种接口的走线、端接、IP 核配置完全不同混在一起会增加复杂度。如果 MAC 侧两种都支持我会根据板子布局和速率需求二选一尽量不在一颗 PHY 上同时用两种接口。8. 最后聊聊我在千兆 PHY 硬件设计里的一些体会做千兆以太网 PHY 硬件设计最大的感受是它没有 DDR 那种“参数即真理”的绝对更多是一种综合平衡。电源、时钟、走线、端接、防护每一项都不算特别难但叠加在一起任何一项偷懒都可能在某个环节爆发。我见过太多“原理图没问题、Layout 也没大错就是不稳定的板子”最后查出来往往是一个不起眼的去耦电容、一段没包地的时钟线、或者一个接错地的防护器件。给刚入行的朋友一个建议原理图阶段就把 PHY 手册的“Layout Guidelines”章节通读一遍把里面提到的每一个约束都落实到叠层和约束管理器里别指望 Layout 工程师替你想。调试阶段养成先量电源和时钟的习惯这两个稳了剩下的问题才有排查的基础。真遇到偶发问题别急着改代码先怀疑硬件用高温、满流量、长时间老化去复现把偶发变成必现问题就好解了。至于选型别迷信进口也别盲从国产。把接口类型、内部延迟、电源域、参考设计这几点核对清楚拿得到的样品先做一块验证板跑通再量产。PHY 这东西验证板花的时间绝对比量产翻车后返工省得多。我自己的项目里每一颗新用的 PHY 都会单独做一块最小验证板测完电源、时钟、链路、老化、EMC 预测试确认没问题再上正式板这个流程坚持下来网口相关的量产问题基本清零。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →