ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

以太网硬件设计:PHY、网络变压器与PCB Layout避坑指南

以太网硬件设计:PHY、网络变压器与PCB Layout避坑指南

1. 先把问题定义清楚:以太网硬件设计到底在解决什么

1.1 从一块板子跑不通网口说起

我见过太多项目,原理图照着参考设计抄得一字不差,PCB 走线也拉得笔直,结果样板回来插上网线,交换机的灯就是不亮。硬件工程师拿着万用表量了半天,变压器两端都是通的,PHY 的供电也正常,最后发现问题出在 MDIO 总线上拉电阻没装、或者复位时间不够。以太网硬件设计这件事,坑基本都不在“大原理”上,而在于一堆看起来不起眼、但少一个就死活不通的细节。

先把这件事的边界说清楚。以太网硬件设计,指的是在 MAC 控制器和网线之间,把 PHY 芯片、网络变压器、RJ45 连接器、时钟、电源、ESD 防护这一整套东西搭起来,并且保证信号能完整、可靠地跑完这段路。它解决的核心问题其实就三个:信号完整性(100 米双绞线上跑 125MBd 的符号率,眼图不能闭合)、电气隔离(网线那头可能是几十米外的另一台设备,地电位差能到几百伏)、可管理性(链路状态、速率双工、自协商,这些都得能被上层读到)。

这篇文章适合谁看?如果你刚接手第一个带网口的板子,想把原理图和 Layout 一次做对,那这里的过程拆解能直接抄;如果你已经做过几版板子,但每次调试都要折腾两三天才通链路,那问题排查那几节大概能帮你把时间压到半天;如果你只做软件、但经常被叫去“看看是不是硬件问题”,那把 PHY 和变压器之间的关系搞明白,至少能让你甩锅甩得有依据。

我个人的习惯是:动手画原理图之前,先把 PHY 的数据手册从头到尾读一遍,尤其是 Pin Description 和 Application Information 这两章。很多设计事故,手册里其实白纸黑字写着,只是没人看。下面所有内容,都建立在这个前提上。

1.2 MAC、PHY、变压器、RJ45,各管哪一段

这条链路上每一环的职责必须切得清楚,否则出了问题都不知道往哪儿查。

MAC是数字域,负责组帧、CRC 校验、地址过滤、流量控制。它输出的是干净的并行或串行数字信号,比如 RGMII、RMII、SGMII 这几种接口。PHY是把数字信号变成模拟波形的翻译官:发送方向做编码、加扰、驱动;接收方向做均衡、时钟恢复、解码。网络变压器是隔离带和匹配层,隔直流通交流、抑制共模、提供中心抽头偏置。RJ45是机械接口,同时负责把机壳地和线缆共模电压引到该去的地方。

这个分层最关键的一点是:MAC 和 PHY 之间的接口是数字的,PHY 和 RJ45 之间是模拟的。所以所有“跑不通”的问题,第一步永远是判断故障在数字侧还是模拟侧。判断方法很简单:读 PHY 的 BMSR 寄存器,如果自协商完成、Link 位为 1,说明模拟侧和链路对端已经握手成功,问题在 MAC 到 PHY 的接口;如果 Link 位一直是 0,那问题在模拟侧或者对端。这一条是我最常用的分诊手段,一分钟就能把排查范围砍一半。

环节信号类型主要职责出问题的典型现象
MAC ↔ PHY数字(RGMII/RMII/SGMII)并行数据、时钟、使能链路灯亮但 ping 不通,CRC 错包暴涨
PHY 内部混合信号编解码、均衡、时钟恢复自协商失败、速率协商到 10M
PHY ↔ 变压器差分模拟100Ω 差分传输、直流偏置眼图闭合、误码
变压器 ↔ RJ45差分模拟 + 隔离电气隔离、共模抑制EMC 不过、雷击损坏
RJ45 ↔ 线缆差分模拟机械连接、PoE接触不良、插拔后速率降级

1.3 为什么我建议先啃编码方式,再动烙铁

很多人觉得编码方式是“协议层的事,硬件不用管”。这个想法在百兆以下勉强成立,在千兆及以上会吃大亏。因为编码方式直接决定了信号的频谱、直流分量和时钟恢复方式,而这三样东西决定了你变压器怎么选、中心抽头怎么接、差分对要不要加匹配。

10BASE-T 用的是曼彻斯特编码,每个比特中间必有一次跳变,好处是接收端可以直接从数据里提取时钟,坏处是占用的带宽是数据率的两倍(10Mbps 数据跑 10MBd 但频谱到 20MHz)。100BASE-TX 用 4B/5B 加 MLT-3,三电平(-1、0、+1)让能量集中在 30MHz 以下,编码效率 80%,符号率 125MBd。1000BASE-T 更狠,四对线全双工同时收发,每对 250Mbps,用 PAM-5 五电平编码,还要做回声消除和串扰抵消,符号率同样是 125MBd——这就是为什么千兆网线的 Cat5e 要求带宽 100MHz,而百兆只要 Cat5。

这个链条往下推:因为 1000BASE-T 是四对线全双工,所以四对线都要接变压器,一对都不能省;因为 PAM-5 有五个电平,任意两对线之间的串扰都会直接损伤判决裕量,所以 PCB 上四对差分线之间的间距要求比百兆严格得多;因为用了回声消除,PHY 内部的模拟前端对中心抽头的偏置精度有要求,所以中心抽头不能随便接一个电容了事。你看,所有 Layout 规则追到根上,都是编码方式决定的。搞明白这一层,那些“阻抗 100Ω±10%”“对内偏差小于 5mil”的规则就不再是需要死记的咒语,而是能自己推导出来的结论。

2. 器件选型:PHY、变压器、连接器怎么挑

2.1 PHY 选型:先定 MAC 接口,再定速率和封装

选 PHY 的顺序千万别搞反。我的顺序是:先看主控 MAC 支持什么接口 → 再定速率等级 → 最后挑封装、功耗和温度等级。

接口这一层,RMII 用 2 根数据线、50MHz 参考时钟,引脚少、成本低,但只能跑百兆,而且 50MHz 时钟要从 MAC 或外部晶振送到 PHY,走线稍长就抖得厉害。RGMII 是千兆最主流的选择,4 位数据 DDR 收发,125MHz 时钟,引脚数量适中,但时序余量很紧,PCB 上必须做等长和延迟补偿,后面会细说。SGMII 是串行差分,跑 1.25Gbps,引脚最少、走线最省事,但 PHY 内部要有 SerDes,成本和功耗都上一个台阶,一般用在多端口或者背板场景。

封装上,QFN 比 LQFP 省面积,但散热焊盘的接地过孔必须打足,否则内部 LDO 会热到保护。功耗要算清楚:一颗千兆 PHY 在满速工作时,1.2V 内核电流可能到 300mA 以上,3.3V IO 也有 100mA 左右,加起来接近 1W。如果板子是密闭壳体,结温很容易顶到 105℃ 以上,这时候就得考虑用低功耗型号或者加导热垫。

还有一个容易被忽略的点:PHY 的地址配置引脚。多数 PHY 用几个上拉/下拉引脚在复位时锁存 PHYAD,用来区分同一 MDIO 总线上的多颗 PHY。这些引脚在复位期间的状态必须确定,如果悬空或者被后级电路拉走,地址就锁错了,软件怎么扫都扫不到。我在原理图上会给这类配置引脚单独标一个注释框,写清“复位期间电平要求”,避免后面有人“优化”掉上下拉。

2.2 网络变压器:集成式和分立式,选错要多花两周

变压器选型主要看三个参数:匝数比、隔离电压、中心抽头接法。

匝数比通常是 1:1(收发合用)或者 1:1 加一个中心抽头。有些型号做成 1:1:1 的三绕组,多出来的一组用于 PoE 供电或者共模反馈注入。如果你不做 PoE,用普通双绕组就够了,别为了“以后可能加”多花钱,多出来的绕组在 PCB 上还得占位置、还得处理端接。

隔离电压这个参数,市面上常见的是 1.5kVrms 和 3kVrms 两档。1.5kV 对应的是普通商用环境的加强绝缘要求,3kV 一般用在室外走线或者工业场景。这个数字不是随便标的,它直接对应变压器初次级之间在 PCB 上的爬电距离。1.5kV 通常要求 6mm 以上的电气间隙,3kV 要 8mm 以上,画板的时候这一条隔离带必须完整、不能被任何走线(包括地层)穿越。我见过有人为了省面积,把地平面从变压器底下穿过去,结果 EMC 测试直接挂掉,返工重画。

集成式和分立式的取舍,看项目阶段。集成式(RJ45 内置变压器)省空间、省 Layout 功夫、阻抗一致性有厂家保证,缺点是贵、坏了要连连接器一起换、高度受限。分立式便宜、灵活、维修方便,但隔离带要自己画、差分对要自己控阻抗、共模端接要自己搭。小批量、空间紧张、追求一次做对的产品,我一般直接上集成式;大批量、成本敏感、或者需要特殊端接方案的,才用分立式。

2.3 RJ45、ESD 和指示灯:小器件别省

RJ45 选型看两点:带不带屏蔽壳、带不带 LED。屏蔽壳要接到机壳地而不是数字地,接法是通过 1nF/2kV 电容加 1MΩ 电阻并联到机壳,或者直接螺丝压接。这个接法决定了共模干扰往哪儿泄放,接错了 EMC 会很难看。

ESD 防护这块,差分线上要放低结电容的 TVS 阵列,结电容必须小于 3pF,否则会直接吃掉千兆信号的高频分量,眼图当场闭合。别用普通的 5pF 以上的管子,那玩意儿是给 USB 2.0 用的。共模扼流圈和 TVS 的先后顺序也有讲究:TVS 靠连接器侧,共模扼流圈靠 PHY 侧,让浪涌先被钳位,再被扼流圈抑制高频残余。

指示灯别小看。LED 的限流电阻要根据 PHY 的 LED 引脚驱动能力算,多数 PHY 的 LED 引脚是开漏输出,灌电流能力 10~20mA。假设用 3.3V 供电、红色 LED 压降 1.9V、想要 8mA,那 R=(3.3-1.9)/0.008=175Ω,取 180Ω 标准值。这个电阻装在 LED 的阳极侧还是阴极侧,取决于引脚是灌电流还是拉电流,看手册的 LED 章节,别想当然。

3. 原理图细节:几个必须较真的地方

3.1 中心抽头到底接电源还是接电容

这是以太网硬件设计里最容易出错、后果最严重的一个点,没有之一。

PHY 的差分驱动结构分两类:电流驱动型和电压驱动型。电流驱动型的 PHY,差分对是开漏/开集结构,需要一个直流通路把电流抽走,所以变压器 PHY 侧的中心抽头必须接到一个稳定的直流电源(常见是 3.3V 或 2.5V,具体看手册),并且这个电源要在中心抽头附近放 0.1μF 加 10μF 的去耦。电压驱动型的 PHY,输出是推挽结构,中心抽头不能接电源,只能通过一个 0.1μF 电容接地,给共模电流一个回流路径。

接反的后果:电流驱动型接了电容,差分输出没有直流偏置,波形直接塌掉,链路完全不通;电压驱动型接了电源,输出级被电源短路,轻则功耗异常发烧,重则烧管子。

判断方法:翻手册的“Center Tap”或者“Magnetics”章节,找参考电路图。如果图上中心抽头画的是接 VDD,那就是电流驱动;如果画的是接电容到地,那就是电压驱动。不要凭经验猜,也不要看别人板子怎么接就怎么抄,不同厂家的 PHY 完全可能不一样。我在原理图上会强制写一行注释:“中心抽头接法依据 XX 手册第 X 页,勿改”。

3.2 MDIO/MDC 管理接口:两根线决定你能不能读到芯片

MDIO 是双向数据线,MDC 是时钟,最高 2.5MHz。这两根线看着简单,实际坑不少。

第一,MDIO 必须上拉。典型值 1.5kΩ~2.2kΩ 上拉到 PHY 的 IO 电源。不上拉的话,总线空闲时状态不定,某些 MAC 会误判成起始帧,读出来的数据全是乱的。上拉电阻的位置也有讲究,放在 MAC 侧靠源头,不要放在 PHY 侧远端。

第二,MDC 的走线要短、要远离差分对。MDC 是单端信号,虽然频率不高,但边沿陡,容易耦合到相邻的差分对上形成共模干扰。我在 Layout 时会把 MDC/MDIO 和 MDI 差分对之间留至少 3W 的间距,能走内层就走内层。

第三,多 PHY 共总线时,PHYAD 地址必须唯一,而且总线上只能有一个上拉。如果每颗 PHY 附近的 MDIO 都挂一个上拉,并联之后阻值变小,驱动能力不够,波形会塌。

下面这段是读 PHY 寄存器的典型流程,用 C 伪代码示意,实际实现要换成你所用平台的 MDIO 驱动:

/* 读 PHY 寄存器:先写地址帧,再读数据帧 */ uint16_t mdio_read(uint8_t phy_addr, uint8_t reg_addr) { uint16_t cmd = 0x6000; /* ST=01, OP=10(读), 前导码由硬件产生 */ cmd |= (phy_addr & 0x1F) << 10; /* 5 位 PHY 地址 */ cmd |= (reg_addr & 0x1F) << 5; /* 5 位寄存器地址 */ mdio_send_frame(cmd); /* 32 位帧:前导+ST+OP+ADDR+REG+TA */ return mdio_read_data(); /* 读回 16 位数据 */ } /* 上电后必做的三件事 */ void eth_bringup(void) { phy_reset(0); /* 软复位,等待至少 100ms */ mdio_write(0, 0x00, 0x1140); /* BMCR: 自协商使能 + 重启自协商 */ while (!(mdio_read(0, 0x01) & 0x0004)) /* BMSR bit2 = Link Status */ delay_ms(100); /* 自协商最长可能几秒,加超时保护 */ uint16_t physts = mdio_read(0, 0x11); /* 读具体速率双工状态 */ }

注意:BMSR 的 Link 位是“latched low”语义,读一次会把状态清掉,第二次读才是实时值。很多驱动在这里翻车,读一次发现是 0 就报链路断开,其实链路是好的。

3.3 时钟方案:25MHz 晶振不是随手放一个就行

时钟是以太网硬件设计里最容易被低估的部分。PHY 需要一个参考时钟,频率取决于接口:RMII 要 50MHz,RGMII 一般要 25MHz(内部倍频到 125MHz),有些 PHY 支持 25MHz 晶振直接接 XI/XO 引脚。

精度要求通常是 ±50ppm,但这个数字只保证了频率准,不保证抖动小。千兆 PHY 内部 PLL 会把 25MHz 倍频到 125MHz,如果参考时钟的相位抖动(RMS jitter)超过 1ps 量级,恢复出来的时钟就有问题,误码率会明显上升。所以选晶振时不能只看 ppm,还要看相位抖动指标,普通无源晶振的抖动往往比有源晶振大得多。空间允许的话,我倾向于用有源晶振(OSC),虽然贵几毛钱,但抖动指标明确、起振可靠。

负载电容的计算,很多人是抄参考设计。其实公式很简单:

$$C_L = \frac{C_1 \times C_2}{C_1 + C_2} + C_{stray}$$

假设晶振规格 CL=8pF,PCB 杂散电容 C_stray 按 3pF 估,两个负载电容对称取 C1=C2=C,那么 8 = C/2 + 3,得 C=10pF。这个计算说明为什么不能随便拿两个 22pF 焊上去——22pF 会让实际负载电容变成 14pF,频率偏低几十 ppm,室温可能没事,高低温就漂出去了。

晶振的 Layout 要求:紧贴 PHY 的 XI/XO 引脚,走线尽量短,下方铺完整地平面,周围用接地过孔围一圈,禁止任何其他信号穿越。晶振底下那一小块区域,我会把它当成“禁飞区”,连电源走线都要绕开。

3.4 电源、复位和去耦

PHY 通常有三路电源:数字内核(1.2V 或 1.1V)、数字 IO(3.3V 或 2.5V 或 1.8V)、模拟电源(一般和 IO 同压但独立引脚)。这三路要分别处理。

模拟电源的处理最讲究。我一般用一颗磁珠(600Ω@100MHz)从数字 3.3V 串过去,后面跟 10μF 钽电容加 0.1μF 陶瓷电容。磁珠的作用是隔离高频噪声,但要注意磁珠的额定电流要够,PHY 的模拟电源电流可能到 100mA,选小了会饱和失效。有些设计用 0Ω 电阻代替磁珠,测试阶段方便对比,量产再换成磁珠。

每对电源引脚旁边必须有 0.1μF 去耦,位置在引脚 2mm 以内,过孔直接打到地平面。这话听起来像废话,但我量过太多板子,去耦电容放在离引脚 1cm 远的地方,效果基本等于没放。

复位电路:多数 PHY 的 RESET# 是低有效,要求低电平持续至少 10ms(有些型号要 100ms)。简单的 RC 复位不够可靠,因为上电斜率慢的时候 RC 充电时间会拖得很长,或者电源掉电重启时电容没放干净。我的做法是用一颗专门的复位芯片,或者从主控引一个 GPIO 来控制,软件里明确拉低 20ms 再释放。复位释放后要等至少 100ms 才能访问 MDIO,因为 PHY 内部要加载完配置。

提示:如果板子上有多路电源,务必确认 PHY 的 IO 电源不能早于内核电源上电太多,否则会出现 IO 引脚反灌电流,长期可靠性有隐患。手册里一般有个 Power Sequencing 表,按那个来。

4. PCB Layout:差分走线、阻抗和隔离带

4.1 阻抗怎么算出来,而不是抄一个数

MDI 差分对的差分阻抗要求是 100Ω±10%,这是双绞线的特性阻抗,必须匹配,否则信号在连接器处会反射。

阻抗怎么定?四层板是很常见的结构:顶层信号、第二层地、第三层电源、底层信号。假设顶层到地平面的介质厚度 H=0.2mm,介电常数 Er=4.2,走微带线,线宽 W、间距 S。用常见的阻抗计算工具(或者场求解器)扫一遍,大概会得到:W=0.2mm、S=0.2mm 时差分阻抗在 100Ω 附近。但这只是个起点,实际值受绿油厚度、铜厚、蚀刻偏差影响,必须让板厂给一份他们工艺能力下的叠层和阻抗建议,然后按他们的参数反算线宽。

我自己踩过的坑:设计时按 0.2/0.2 算的,板厂做出来实测 92Ω,因为他们的介质厚度公差是 ±10%。后来改了规则,线上加宽到 0.22mm,同时要求板厂做阻抗测试片,出货附测试报告。这一步多花几十块钱,但能省掉一次改板。

参数目标值常见偏差来源应对
差分阻抗100Ω ±10%介质厚度公差、蚀刻要求板厂提供测试片报告
对内等长偏差 < 5mil走线绕行用蛇形补偿,补偿点靠近源头
对间等长偏差 < 50mil(千兆)布线路径长短不一四对线同时走,统一绕
差分对间距≥ 3W(对与对之间)空间挤压必要时走内层,换层处加回流地孔

4.2 差分走线的几条硬规矩

第一条,差分对必须全程等长、等间距、同层。换层是万不得已才做的事,因为换层意味着参考平面变了,回流路径断了。如果非要换层,换层过孔旁边必须紧挨着打回流地孔,间距小于 1mm。

第二条,参考平面必须完整。差分对下方不能有平面裂缝、不能跨分割。如果下方是电源平面,也可以,但要有完整的回流路径。我见过有人在差分对下方挖了个槽“隔离干扰”,结果阻抗突变,眼图直接裂开。

第三条,对内偏差控制在 5mil 以内,对间偏差控制在 50mil 以内。百兆只有两对线(TX 一对、RX 一对),要求相对宽松;千兆四对线全部参与收发,四对之间的时延差会直接影响回声消除的效果,必须做等长。

第四条,差分对远离时钟、复位、DC-DC 电感。至少 3W 间距,能走不同层就走不同层。开关电源的电感是强干扰源,我在 Layout 时会把 PHY 和 DC-DC 放在板子的两端,中间用铺地隔开。

4.3 Bob Smith 端接和隔离带:EMC 的命门

Bob Smith 端接是网口共模端接的经典做法:RJ45 的四个空闲引脚(或者变压器次级侧的共模点)各串一个 75Ω 电阻,再并到一起,通过一个 1nF/2kV 电容接到机壳地。这个网络的作用是把线缆上的共模能量引到机壳,同时不影响差模信号。

为什么是 75Ω?因为双绞线的共模特性阻抗大约在 75Ω 附近,用这个值可以做共模匹配,减少共模反射。为什么用电容隔开?因为要防止机壳地上的直流或者工频电流灌进信号地,同时给高频共模噪声一条低阻通路。电容的耐压必须够,2kV 是常规要求。

隔离带的画法:变压器初次级之间、RJ45 和 PHY 之间,要有一条完整的“无铜区”,宽度按前面说的 6mm 或 8mm。这条带子上不能有任何走线、不能有铺铜、不能打过孔。RJ45 的屏蔽壳地和数字地之间可以放一个 1MΩ 电阻并联 1nF 电容,也可以直接通过安装孔压到机壳,具体看结构。

注意:如果产品要过浪涌测试,隔离带上的器件(比如 Y 电容、TVS)必须按加强绝缘选型,普通 0603 电容的爬电距离根本不够,要用专门的安规电容。

5. 调试实录:从灯不亮到眼图合格

5.1 上电第一件事:先确认能不能读到 PHY

板子回来,别急着插网线。第一步是给板子上电,用示波器量三路电源的纹波,确认在规格内;第二步量复位引脚的波形,确认低电平持续时间和释放时刻;第三步才是通过 MDIO 读 PHY 的 ID 寄存器(通常是寄存器 2 和 3)。

读 ID 这个动作价值极高。能读到正确的 ID,说明 PHY 的电源、复位、时钟、MDIO 总线全部正常,问题范围立刻缩小到模拟侧或者 MAC 接口。读不到 ID,那就按电源 → 复位 → 时钟 → MDIO 上拉这个顺序逐个查,不要跳步。

我遇到过最隐蔽的一次:ID 能读到,但读出来的是 0xFFFF 或者全 0。查了半天发现 MDC 的频率太高,软件配置成了 25MHz(把分频系数搞错了),PHY 根本来不及采样。降到 1MHz 立刻正常。所以MDC 频率宁低勿高,调试阶段先降到 1MHz,通了再往上提。

5.2 常见问题速查表

现象可能原因排查方法处理
灯完全不亮,读不到 PHY ID电源缺失、复位未释放、晶振未起振万用表量各路电压;示波器量 XI 引脚补焊、改复位时序、换晶振
ID 能读,Link 一直为 0中心抽头接法错误、变压器虚焊、差分对 P/N 反对照手册查中心抽头;量变压器通断改接法、补焊、对调 P/N
Link 能上,但速率只有 10M差分对阻抗严重偏离、线缆质量问题、自协商被强制换好线试;读自协商结果寄存器修阻抗、检查走线、清强制配置
Link 正常但 ping 丢包严重RGMII 时序余量不足、CRC 错包读错误计数器;示波器量 TXC 与数据相位调整 TX/RX delay、缩短走线
插拔网线后不恢复自协商未重启、复位逻辑缺陷观察插拔时 BMSR 变化软件加链路变化中断处理
EMC 辐射超标隔离带被穿越、Bob Smith 端接缺失近场探头扫频定位补端接、重画隔离带、加共模电感

5.3 RGMII 时序:最容易被忽略的一环

RGMII 的 TX 方向,数据是 DDR 的,在时钟的上下沿都要采样。问题在于,MAC 输出的时钟和数据之间的相位关系,不同厂家定义不一样。有的 MAC 内部已经加了 1.5~2ns 的延迟(TX delay),有的没加;PHY 侧也一样,有的需要外部延迟,有的内部可配。

结果就是:两边都以为对方加了延迟,或者都以为对方没加,采样点直接落在数据跳变沿上,误码率飙升。解决办法有两个:一是在 PCB 上做时钟线绕线,用走线延迟补偿(1ns 约对应 15cm 的微带线,这个长度在普通板子上很难绕出来,所以一般不现实);二是通过 PHY 的配置寄存器打开或关闭内部 delay。

我的做法是:先看 MAC 手册确认 TX delay 是否可配,再看 PHY 手册确认内部 delay 是否可配,两边只让一边加。调试时把 PHY 的 delay 打开和关闭各测一遍,看哪个丢包少。这一步用示波器看 TXC 和 TXD 的相对位置最直观,理想情况是数据跳变沿落在时钟稳定区的中间。

提示:RGMII 的 RX 方向同理,但 RX 的时钟是 PHY 产生的,延迟补偿通常在 PHY 侧配置。如果两个方向都配错,会出现“能协商上千兆但一传大包就崩”的典型症状。

5.4 眼图和合规测试:量产前的最后一道关

功能通了不代表能量产。以太网物理层有一整套合规测试:输出差分电压、眼图模板、上升下降时间、回波损耗、共模抑制。这些项目在实验室用专用夹具和示波器测,自己在家用普通探头测不准,但可以做定性判断。

定性判断的方法:把示波器接在变压器 PHY 侧的差分对上(用差分探头,或者两个单端探头做数学运算),触发在 125MBd 的符号率上,看眼图张开程度。如果眼图明显不对称、上下沿不一致,通常是中心抽头偏置不对或者差分对阻抗失配;如果眼图整体幅度偏小,可能是变压器匝数比不对或者串联电阻选大了。

合规测试里最容易挂的是共模辐射。因为差分信号本身辐射很小,真正往外跑的是共模电流。抑制共模的三个手段:变压器共模抑制比要够、Bob Smith 端接要做好、机壳地要低阻。如果测出来某个频点超标,先用近场探头定位是网口还是电源线辐射出去的,再针对性加共模电感或者改地结构。

6. 几个我反复验证过的经验

中心抽头这一条,我再强调一次,值得单独占一段。我见过两个项目在这上面翻车,一个是把电压驱动型的 PHY 中心抽头接到了 3.3V,上电后 PHY 发烫、链路时通时断;另一个是电流驱动型接了电容,波形幅度只有正常值的三分之一。两次都是对着参考设计抄错了型号,或者参考设计本身针对的是另一颗 PHY。变压器和 PHY 是一对绑定的搭档,换任何一个都要重新核对中心抽头和匝数比。

关于变压器选型,还有一个隐性指标:插入损耗。数据手册上通常写 1dB 以内,但这个值在 100MHz 附近会明显恶化。千兆网对高频段的要求更高,选型时要看厂家给的插损-频率曲线,别只看一个典型值。便宜的变压器在 80MHz 以上插损可能到 3dB,链路能协商上但长线跑不稳。

关于调试工具,我强烈建议手边常备两样东西:一个能测差分的小探头(或者自制一个 100Ω 端接的测试夹具),一台带眼图分析功能的示波器。有了这两样,很多“玄学问题”能变成可以量化的波形问题。没有的话,至少备一个能显示链路速率和错误计数的交换机,通过读 PHY 的 MIB 计数器(RX CRC 错误、RX 错误、丢包)也能定位大半问题。

最后一个习惯:每块板子留一组测试点。MDI 差分对在变压器 PHY 侧留一对测试焊盘,间距 0.5mm 以内,方便差分探头夹;MDC/MDIO 留测试点;复位和时钟留测试点。这几个焊盘占不了多少面积,但调试时能省下大量找信号的时间。等板子量产了,这些测试点还可以用来做产线快速检测。

硬件这行当,方法论其实不多,大部分时间花在核对和验证上。以太网硬件设计尤其如此,它的每一处“讲究”背后都有一个明确的物理原因,找到那个原因,剩下的就是照着做、做完再量一遍。

返回列表