简介:面向网络接口电路与网卡硬件设计工程师,围绕裕太微电子 YT8521S 的 RGMII 转 SERDES 应用,梳理其与 WX1860AL4 芯片的对接关系、功能配置和电压配置,可用于方案评估、原理图对照、调试排错,并规避常见接口混淆。压缩包内含 1 个 PDF 文件,约 182KB,便于快速查阅关键连接、器件参数、容差和标注信息。图中给出复位信号由板卡 CPLD 控制或采用 RC 电路实现的思路,并提示上拉建议选择 3.3V;同时强调 SERDES 应连接光笼子,需与 SGMII 区分,否则应修改芯片功能配置。内容还涉及电源去耦、电容电阻选型、高速接口布局布线和信号完整性等要点,且经过实际生产测试,可帮助缩短设计验证周期、减少连线与配置错误。已有 2032 人学习下载,适合需要落地 RGMII/SERDES 硬件方案的工程师参考。
1. RGMII转SERDES:为什么“照着参考图连”仍然会翻车
第一次看到这类参考图的人,多半会有一个朴素判断:MAC 的四根 TX、四根 RX 加上时钟和控制线接到 PHY,PHY 的差分对拉到光笼子,电源按标注给上,链路就该通了。真正在板上调过千兆光口的人会告诉你,事情没这么线性——同一份连接关系,换一批物料、改一个上拉电阻、复位时序差几毫秒,板子就从“link up”变成“灯都不亮”。
真正决定成败的不是连线,而是复位释放那一瞬间,PHY 的 strap 引脚被锁存成了什么配置,以及 RGMII 那 2ns 的采样窗口有没有被两边同时“补偿”到错位。RGMII 转 SERDES 这个组合,把时序契约、IO 电平域、内部稳压器配置三件事压在了一颗芯片上,任何一处理解偏差都会以“链路起不来”这种极不具体的形式回报你。把这几层机制拆开看,参考图上的每一个电阻电容才有意义。
2. RGMII 侧:双沿采样与那 2ns 到底该谁出
2.1 RGMII 的时序契约:125MHz 上的 DDR 采样
RGMII 在千兆速率下的时钟是 125MHz,数据宽度 4bit,靠双沿传输凑出 8bit 等效位宽,也就是 125M × 2 × 4 = 1000Mbps。这个设计本身是为了省引脚——把 GMII 的 24 根线砍到 12 根,代价是时序余量被大幅压缩:一个 125MHz 周期只有 8ns,上升沿和下降沿各要采一次数据,留给建立/保持的窗口按纳秒算。
问题出在时钟和数据的相位关系上。RGMII 规范允许两种模式:时钟与数据边沿对齐(需要外部或内部延迟 2ns 再采样),或者时钟中心对齐(时钟直接落在数据眼中间)。实际芯片几乎都不会让 PCB 去走一段精确的 2ns 蛇形线——2ns 在 FR4 上大约是 30cm 的走线,误差根本控制不住。所以行业惯例是把这段延迟做进芯片:MAC 侧或 PHY 侧提供可配置的内部 delay。
这里就是第一个容易翻车的点:延迟只能有一边加。如果 MAC 配置了 TX delay,PHY 又默认开了 RX 内部 delay,等效于在链路两端各推了一把,采样点直接滑出数据眼。常见的实现思路是先在 PHY 侧固定 delay、MAC 侧关掉,用示波器在 RGMII 线上量一下时钟沿相对数据的位置,再决定要不要动。参考图给的是电气连接,这个配置项藏在 PHY 的扩展寄存器里,图上不会写。
2.2 WX1860AL4 与 YT8521S 的引脚对接关系
从连接关系看,MAC 侧的RGMII_TX_0..3、RGMII_TX_CTL、RGMII_TXC对应 PHY 的发送方向,RGMII_RX_0..3、RGMII_RX_CTL、RGMII_RXC对应接收方向。这里有个命名陷阱值得说清楚:MAC 的“TX”是 PHY 的“RX”,两边方向是相反的,看参考图时如果按名字硬对,很容易把 TX/RX 组接反。图里给出的网络名把两侧都标了出来,就是为了避免这种对错。
控制线TX_CTL在千兆模式下是复合信号:时钟上升沿表示 TX_EN,下降沿表示 TX_ER,两根信息挤在一根线上。这也是 RGMII 省引脚的另一处代价——任何一端把 CTL 当成单纯的有效信号处理,都会在特定帧类型上出现诡异丢包。
管理接口MDC/MDIO是独立于数据通路的,MDC 最高频率通常不超过 2.5MHz,MDIO 是双向开漏,需要上拉。图里给的 4.7K 上拉到 3.3V 是标准做法,这个值不能随意放大:上拉太弱,上升沿变缓,MDC 频率稍高就会采样失败;上拉太强,灌电流增加,低电平 Vol 抬高。4.7K 是在 3.3V 域下兼顾速率和功耗的折中值。
2.3 DVDD_RGMII:被忽略的 IO 电平域
RGMII 的 IO 电压不是固定 3.3V,它可以是 3.3V、2.5V 或 1.8V,取决于 MAC 侧的 IO 域。YT8521S 用DVDD_RGMII这个独立引脚来设定 RGMII 侧的 IO 电平,参考图里明确标注了CFG_LDO[1:0]=2b00时DVDD_RGMII=3.3V。
这个设计的动机是让 PHY 能迁就不同世代的 MAC:老 SoC 的 RGMII 是 3.3V,新一些的 SoC 用 1.8V 降低功耗和噪声。如果DVDD_RGMII供 3.3V 而 MAC 侧是 1.8V IO,接收端会长期承受超额电压,短期能通、长期靠运气;反过来供 1.8V 而 MAC 是 3.3V,则高电平可能达不到 VIH,表现为间歇性误码,尤其温度一高就明显。
这里还有一层:DVDD_RGMII和芯片内部稳压器的关系由CFG_LDO[1:0]决定。内部 LDO 可以产生某档电压供内部使用,也可以被旁路由外部直接供电。配置和实际供电电压必须匹配,否则轻则不工作,重则内部稳压器与外部电源对打。参考图把这一组配置和电压值并排标出来,本质是在提醒:原理图上的电压标注不是建议值,是配置引脚状态的函数。
3. SERDES 侧:为什么它必须是光笼子而不是随便一个差分口
3.1 1000BASE-X 的编码与线速率
SERDES 侧跑的是 1000BASE-X,线速率 1.25Gbps,采用 8b/10b 编码,有效载荷 1Gbps。8b/10b 的作用是保证直流平衡和足够的跳变密度,让接收端的 CDR(时钟数据恢复)能从数据流里恢复时钟——差分对上没有独立的时钟线,时钟信息完全嵌在跳变里。如果一段时间内数据全 0 或全 1,跳变密度不足,CDR 就会失锁。
这解释了一个常见现象:链路空闲时反而容易出问题。以太网用 idle 码流维持跳变,但如果对端没发 idle、或者编码配置错了(比如把 1000BASE-X 配成 SGMII 的编码方式),CDR 就锁不住,表现为“插上光模块但 link 不亮”。8b/10b 的码表是固定的,两端的编码方式必须严格一致,这不是靠自动协商能兜底的。
3.2 SGMII 与 1000BASE-X:长得一样,跑的不是一回事
这是整份参考图里最值得强调的一处区分。SGMII 和 1000BASE-X 物理层都是差分对、都用 8b/10b 一类的编码,看原理图几乎无法分辨,但协议层完全不同:
| 维度 | 1000BASE-X | SGMII |
|---|---|---|
| 速率 | 固定 1.25Gbps 线速率 | 线速率固定 1.25Gbps,但载荷随 10/100/1000M 变化,通过重复字符填充 |
| 管理信息 | 无带内管理 | 带内传递速率与双工信息 |
| 自动协商 | 光口侧通常关闭 | 依赖带内协商或寄存器配置 |
| 典型对接 | 光模块、光笼子 | 另一颗 MAC 的 SGMII 口 |
YT8521S 的 SERDES 侧可以配置成其中一种模式。如果硬件上接的是光笼子、软件却按 SGMII 配,芯片会用 SGMII 的带内协商逻辑去等对端回应答,而光模块那头根本不会回应这套协议,结果就是链路一直停在协商阶段。反过来,接 SGMII 对端却配成 1000BASE-X,则会因为缺少速率信息而固定在一个速率上跑。
参考图明确写了“SERDES 接口应连接至光笼子”,这句话的潜台词是:默认配置是 1000BASE-X 方向。如果项目实际要接 SGMII 设备,改的不只是连接器,还要改 PHY 的功能配置寄存器,两件事必须一起改。
3.3 AC 耦合与差分阻抗:那些 100nF 不是摆设
SERDES 差分对上串的 100nF 电容是 AC 耦合,作用是隔离两端的直流共模电平。光模块和 PHY 的共模偏置电压往往不同,直连会导致接收端偏置被拉偏,严重的会损坏输入端。AC 耦合让直流各自独立,交流信号照常通过。
电容值的选择有个权衡:容值太小,低频分量被衰减,长连 0 或长连 1 的码型会发生基线漂移(baseline wander),CDR 更容易失锁;容值太大,上电时的充放电时间变长,链路建立变慢,而且大封装电容的寄生电感会影响 1.25Gbps 这种速率下的信号完整性。100nF 是 1000BASE-X 应用里被广泛验证的值,配合差分 100Ω 阻抗控制使用。
差分阻抗 100Ω 是另一个不能妥协的点。PCB 上差分对如果按 90Ω 或 110Ω 走,反射系数上升,眼图闭合,短距离可能看不出问题,长距离或高温下误码率立刻恶化。参考图给的是原理连接,阻抗控制在 PCB 规则里,两者必须一起落实。
4. 电源、strap 与复位:复位沿锁存了什么
4.1 CFG_LDO 与内部稳压器的配合逻辑
CFG_LDO[1:0]这两个配置位在参考图中通过LED1/CFG_LDO0、LED2/CFG_LDO1两个引脚设定,和 LED 功能复用。这种复用是引脚数量受限下的典型设计:芯片上电复位时采样这几个引脚的电平作为配置,复位结束后它们转为 LED 驱动输出。
内部稳压器的存在是为了减少外部电源轨数量。以参考图为例,外部只需提供 3.3V,芯片内部的 LDO 产生较低电压供内核使用,同时DVDD_RGMII的电平也可以由这颗 LDO 或外部电源决定。CFG_LDO[1:0]=2b00这组配置对应DVDD_RGMII=3.3V,意思是 RGMII IO 直接用外部 3.3V 域。
常见的实现思路是:先确定 MAC 侧 IO 电压,再反查该电压对应的CFG_LDO编码,最后确认这个编码下内部 LDO 的输出是否与外部实际供电一致。三步里任何一步对不上,都会出现“电压量着是 3.3V,但芯片不工作”的情况——因为芯片内部可能正把 LDO 输出和外部电源顶在一起。
4.2 strap 引脚:复位释放那一刻定终身
LED0/PHYAD0这个引脚同时承担两个职责:复位期间作为 PHY 地址的最低位被采样,复位结束后作为 LED0 输出。参考图里LED0/PHYAD0上电时为低电平,LED1/CFG_LDO0上电时为高电平,这些电平不是随便画的,它们编码了 PHY 地址和 LDO 配置。
这里的关键机制是:采样只发生在复位释放的边沿附近,之后引脚状态变化不影响配置。所以电路设计要保证复位期间这些引脚处于确定的电平,不能有悬空或缓慢爬升的情况。如果上拉电阻太大、或者引脚上挂了较大电容,复位释放时电平还没稳定,芯片就会锁存到一个随机值——表现可能是 PHY 地址变成 0 或 31,MDIO 从此扫不到设备。
4.3 复位电路:CPLD 控制与 RC 电路的取舍
参考图给了两种复位方案:由板卡上的 CPLD 控制G1_RESET_N,或者用 RC 电路自行产生。CPLD 方案的好处是复位时机可控——可以等到所有电源轨都稳定、时钟起振之后再释放复位,还能在异常时主动复位 PHY。RC 方案成本低,但复位脉宽由 R×C 决定,受器件容差和温度影响。
参考图标注了复位信号需要大于 10ms,且上拉建议选 3.3V。10ms 这个数字不是随便给的:PHY 内部有 PLL 需要锁定,有寄存器需要加载默认值,复位脉宽不够会导致内部状态机没走完初始化流程。上拉选 3.3V 而不是其他电压,是因为RESET_N的输入阈值按 3.3V 域设计,上拉到 1.8V 可能落在不确定区。
RC 方案里,如果电容选得太大,复位释放沿变缓,同样会踩到 strap 采样不稳定的坑;选得太小,脉宽不够 10ms。常见的做法是 R 取 10K、C 取 1uF 量级,再留一个 CPLD 控制的 GPIO 并联,量产后用 CPLD 兜底。
5. 避坑与排查:五条从板子上换来的经验
5.1 现象:MDIO 扫不到 PHY,地址 0 到 31 全是 0xFFFF
原因通常有两类。一是PHYAD0在复位释放时电平不确定,芯片锁存了一个非预期地址;二是 MDIO 上拉缺失或阻值过大,读时序里 MDIO 无法被拉高,主机读回全 1。
解决顺序是先量复位期间LED0/PHYAD0的静态电平,确认与预期地址一致;再用示波器看 MDC/MDIO 波形,重点看 MDIO 上升沿是否有明显圆弧。上拉统一用 4.7K 到 3.3V,不要因为“省电”改成 10K 以上。
5.2 现象:RGMII 侧能识别到 PHY,但 ping 大包必丢、小包正常
这是典型的 RGMII 采样窗口偏移。大包连续传输时对时序更敏感,小包靠间隙“撞”过去的概率高。根因多半是 MAC 和 PHY 同时开了内部 delay,或者两边都没开而 PCB 也没做等长。
排查方法是先在 PHY 侧固定一个 delay 配置,MAC 侧关掉对应 delay,用示波器在 RGMII 数据线上量时钟沿与数据跳变的位置关系,确认采样点落在数据眼中心附近。调完再跑一遍 iperf 长包测试,不要只看 ping。
5.3 现象:光模块插上,TX 有光但 link 不亮
先确认 PHY 的 SERDES 模式配置。如果硬件接的是光笼子而寄存器按 SGMII 配,PHY 会等带内协商回应,光模块不会给这个回应,链路就卡住。用 MDIO 读回模式配置寄存器,确认是 1000BASE-X 而不是 SGMII。
另一个常见原因是 AC 耦合电容漏贴或贴错容值。漏贴时直流偏置被拉偏,接收端可能直接饱和;容值贴成 1uF 以上时,上电建立时间变长,表现为“等半分钟才亮”。
5.4 现象:同一份原理图,换了 PCB 厂之后部分板子不通
先怀疑阻抗。SERDES 差分对要求 100Ω,如果板厂按 90Ω 做,反射会让眼图闭合,好板子和坏板子的差别只是走线长度和过孔数量的随机组合。用 TDR 量一下差分阻抗,或者让板厂提供阻抗测试报告。
其次怀疑电源纹波。AVDD33和AVDDL上的去耦如果被省略或远离引脚,1.25Gbps 的开关噪声会通过电源耦合进模拟电路。参考图里给 100nF 和 4.7uF 并联、串磁珠,这套组合是为了在宽频段内保持低阻抗,不能只留大电容。
5.5 现象:复位后 PHY 时好时坏,重新上电有时正常
先看复位脉宽是否真的超过 10ms。RC 电路受电容容差影响,标称 1uF 的电容实际可能是 0.7uF,脉宽直接缩水。用示波器抓RESET_N的下降沿到上升沿时间,不要只看原理图上的 RC 乘积。
再看复位释放时 25MHz 参考时钟是否已经稳定。时钟没起振就释放复位,PHY 内部 PLL 会用错误的参考频率锁定,表现就是时好时坏。参考图标注 25MHz/3.3V/25ppm/CMOS,25ppm 是频率精度要求,普通晶振如果精度不够,在温度变化时会超出以太网的时钟容差。
6. 设计取舍:参考图给的是边界,不是答案
这份参考图真正的价值,不在于它画出了哪些连接,而在于它把几个必须一起考虑的约束并排放在了一张纸上:CFG_LDO的编码和DVDD_RGMII的电压是一组,复位上拉电压和 strap 采样电平是一组,SERDES 接光笼子和 1000BASE-X 配置是一组。任何一组里只改一个变量,另一头就会失衡。
拿复位方案来说,CPLD 控制和 RC 电路不是“哪个更好”的问题,而是阶段问题。打样阶段用 CPLD 能快速迭代复位时序,量产阶段用 RC 降成本,但 RC 的参数必须按最坏容差算,不能按标称值算。我见过把 10K+1uF 当成“10ms 够了”的设计,实际低温下电容容量上升、电阻下降,脉宽跑到 20ms,反而拖慢了整机上电流程。这种取舍没有标准答案,只有测量数据。
SERDES 侧的模式选择也是同理。1000BASE-X 和 SGMII 在硬件上几乎不可区分,但协议行为完全不同,把选择权留给软件配置意味着硬件设计必须为两种可能都留好余量——AC 耦合电容、差分阻抗、光笼子的接地方式,这些在两种模式下要求并不完全一致。参考图默认按光笼子设计,实际上是在替你做了一次取舍:这个项目的主场景是光口。
从那以后,我每次拿到这类 PHY 参考图,都会先做一件事:把所有复用引脚在复位期间的电平列成一张表,对着配置编码逐条核一遍,再去量复位脉宽和电源时序。这张表比任何连线都更能决定板子能不能一次点亮。希望帮到你。
本文还有配套的精品资源,点击获取