简介:这是一份面向硬件工程师与网络接口设计人员的PHY芯片参考设计图,围绕裕太微YT8521S的RGMII转SERDES应用,完整给出与WX1860AL4网卡芯片的互联原理图、YT8521S功能配置及电压配置。资料为单个PDF文件,压缩包大小182KB,内容精炼但覆盖从芯片引脚连接到电源、复位、时钟等关键电路设计要素。复位信号既可由板卡CLPD控制,也可用RC电路实现,上拉建议采用3.3V;SERDES接口需连接至光笼子,与SGMII有明显区别,避免混淆时需要修改功能配置。该设计已通过实际生产测试,元件参数、磁珠/电容选型和布局布线要点均直观呈现。当前已有2030人学习下载,适合从事交换机、网卡或光口模块等高速网络硬件开发的工程师参考复用,可有效降低设计试错成本。
1. 需求与选型:为什么这块板卡需要 RGMII 转 SERDES
做过网络接口卡硬件的人应该都有体会:MAC 侧芯片选好了,PHY 侧却往往要折腾好几轮。某项目里用的主控是 WX1860AL4 这款网卡芯片,它对外提供的是 RGMII 接口,而产品形态偏偏要出光口——也就是说,MAC 和光模块之间必须经过一层 PHY 转换,把并行 RGMII 变成串行 SerDes 差分信号,再送到光笼子里。当时摆在面前的选择不少,但真正敢说“参考设计直接拿来用、已经过生产测试”的并不多。YT8521S 是裕太微电子的一款 RGMII 转 SERDES PHY 芯片,恰好填补了这个位置。
这篇方案梳理的就是基于 YT8521S 的完整硬件电路设计:从 WX1860AL4 的 RGMII 口如何接到 YT8521S,到电源、复位、时钟、MDIO 管理通道怎么搭,再到 SERDES 差分对怎么连光笼子、layout 上有什么讲究。适合正在做网卡、交换机板卡、光口扩展模块的同学直接照搬框架,也适合要评审别人原理图的工程师拿来当检查清单。尤其是“SERDES 接光笼子、别和 SGMII 搞混”这类细节,项目里真的有人踩过坑,后面会专门展开。
2. 总体架构设计:WX1860AL4 与 YT8521S 的接口分工与电源树
2.1 系统链路:RGMII 并行口到 SerDes 光口的完整信号流
从框图上可以很清楚地看到整条链路的分工:WX1860AL4 是 MAC 侧芯片,它输出的 RGMII 信号包括 TX/RX 数据各 4 bit、TX_CLK、RX_CLK、TX_CTL、RX_CTL,以及管理接口 MDC/MDIO。这些信号全部接到 YT8521S 的 MAC 侧,YT8521S 内部完成并行到串行的转换后,从 SerDes_TX/TX 差分对输出到光模块笼子。反向的光信号接收路径则是 SerDes_RX 差分对进入 YT8521S,再解出 RGMII 信号送回 WX1860AL4。
这里要特别强调一个容易想当然的点:YT8521S 的 SerDes 口是给光模块用的,不是给电口用的。设计里光模块直接连接的是光笼子(比如 SFP 笼子),如果你的产品想走电口,那应该考虑的是 SGMII 到电口 PHY 的路线,而不是这套 SerDes 方案。原图上也明确标注了“SERDES 接口应连接至光笼子,与 SGMII 不同,注意不要混淆”。
2.2 电源设计:三路电压的分工与去耦策略
电源树是这套设计里最值得抄作业的部分。从原理图里能提取出三路核心电压:
| 电压域 | 去向 | 典型值 |
|---|---|---|
| VCC_3V3 | YT8521S 数字 IO、LED 上拉、复位上拉 | 3.3V |
| VCC_1V8 | YT8521S 内核/模拟域(由 LDO 输出) | 1.8V |
| DVDD_RGMII | RGMII 接口电平 | 3.3V |
这里有个容易被忽略的配置点:DVDD_RGMII 的电平是通过 CFG_LDO[1:0] 配置引脚在芯片上电时锁存的。原理图上写的是 CFG_LDO[1:0]=2b00,对应 DVDD_RGMII=3.3V。如果你做的是 1.8V 的 RGMII 接口,就需要把这两个引脚的电平组合改掉,同时把 DVDD_RGMII 的供电也调整到 1.8V。另外要注意,CFG_LDO1 和 CFG_LDO0 分别对应原理图上的 LED1/CFG_LDO0、LED2/CFG_LDO1,上电时是高电平,和 LED 指示功能是复用的。
去耦电容的选型也值得照着抄:每个电源引脚附近都放了一颗 100nF/10%/25V 的陶瓷电容,核心电压处再配一颗 4.7uF/10%/25V 的大电容做储能。电源入口处还用了磁珠(BLM118SD220SN21D 和 BLM118SFDB25260SN21D)做隔离,把模拟电源 AVDD33 和数字电源 DVDD 分开,避免数字开关噪声窜到 PHY 的模拟电路里。这个做法在高速 PHY 设计里几乎是标配,但很多初次做板卡的人会为了省几颗料把它省略掉,结果就是眼图质量差、误码率高,还找不到原因。
2.3 时钟方案:25MHz 晶振的选型与精度要求
YT8521S 的参考时钟用的是 25MHz,原理图上标注了“25MHZ/3.3V/25ppm/CMOS”和供应商“晨晶”。这个选择是有讲究的:RGMII 的 TX_CLK 是从 25MHz 倍频出来的,如果晶振精度不够,时钟抖动会直接影响 SerDes 接口的眼图裕量。
选型时三个参数不能妥协:频率 25MHz、精度 25ppm、输出电平 3.3V CMOS。25ppm 这个指标意味着 25MHz 下最大频偏约 625Hz,对应到千兆 SerDes 的 1.25Gbps 速率上,能保证接收端 CDR 不丢锁。如果你的设计里 PHY 和 MAC 共用一个时钟源(比如板上已经有一颗 25MHz 晶振),也可以直接接到 YT8521S 的 XTAL_IN/EXT_CLK 引脚上,原理图里同样预留了 REFCLK_PHY_G1_25M 的走线。这种情况下晶振要靠近 PHY 摆放,走线不超过 500mil,避免时钟信号被其他高速线干扰。
XTAL_IO/EXT_CLK 引脚还有一个隐藏用法:如果这颗 25MHz 时钟不是由晶振产生,而是由板上其他芯片(比如时钟发生器)提供,可以直接从 EXT_CLK 输入,此时晶振的 XTAL_OUT 悬空即可。不过要注意输入时钟的摆率要求,太慢的边沿会导致 PHY 内部时钟质量下降,正规做法是加一个 RC 滤波或缓冲器再送进来。
3. 关键电路模块实现:复位、LED 配置与 MDIO 管理通道
3.1 复位电路:CPLD 控制优先,RC 电路兜底
复位是这颗 PHY 上最容易出问题的地方,原因在于 YT8521S 的配置引脚是在复位释放瞬间采样的。原理图里标注得很清楚:复位信号由板卡上的 CPLD 控制,也可以设计 RC 电路控制;复位信号上拉建议选择 3.3V 电压。
实际项目里我一般这样处理:如果有 CPLD/FPGA 在板上,优先用 CPLD 的 GPIO 控制 RESET_N,这样能精确控制复位释放时序,保证上电顺序正确。如果板卡上没有可编程逻辑器件,就用 RC 电路:一颗 10K 电阻上拉到 VCC_3V3,一颗 1uF 电容到地,时间常数约 10ms,满足 YT8521S 需要的复位低电平时间大于 10ms 的要求。原理图里明确写了“G1_RESET_N A 复位 CPLD 控制,或者设计 RC 电路”,这句话就是这颗 PHY 的复位设计金标准。
另外一个细节:LED2/CFG_LDO1 和 LED1/CFG_LDO0 这两个引脚在复位时也会被采样。原理图里标注“CFG_LDO1 上电时为高电平,LED2 低电平有效”,说明这两个引脚通过 4.7K 电阻上拉到 VCC_3V3,复位采样时读到高电平。如果你想要不同的 LDO 配置,就得改变上拉/下拉电阻的连接方式,而不是简单地在软件里改寄存器。
3.2 LED 与配置引脚复用:上拉电阻决定了启动行为
YT8521S 的 LED0/PHYAD0_G1 引脚比较特殊:它既做 LED 指示,又做 PHY 地址 bit0 的配置。原图里 LED0 串联了 1K 电阻到 LED 灯,同时还通过 R1124 上拉/下拉设置地址。设计时一定要先查数据手册里 PHYAD[2:0] 的采样逻辑——从图里看,PHYAD 的地址默认是 0b000(PHYAD[2:0]=0),这个地址就是 MDIO 访问时的 PHY 地址。
这里有个常见的翻车场景:有人画原理图时直接把 LED 指示和 PHY 地址配置分开处理,结果 LED 串联电阻选得太大,上拉不到位,导致 PHY 上电后地址不对,MDIO 怎么读写都失败。正确的做法是:LED 串联电阻选 1K(限流),配置上拉电阻选 4.7K,两个电阻并联后的逻辑电平才是 PHY 实际采样的值。如果 LED 灯的压降导致高电平低于 VIH 阈值,就得改 LED 的连接方式(比如串到电源和引脚之间,而不是引脚到地之间)。
3.3 MDIO 管理通道:上拉电阻与电平匹配
RGMII_MDC 和 RGMII_MDIO 是配置 PHY 的管理通道。原理图里这两根线都有 4.7K 上拉到 DVDD33_G1,这是标准做法——MDIO 是开漏信号,必须外部上拉才能读。WX1860AL4 侧同样有 MDC/MDIO 引脚,连接关系是 N3_RGMII_MDC 到 N1_RGMII_MDC、N3_RGMII_MDIO 到 N1_RGMII_MDIO。
数据手册里 MDIO 的读写时序是固定的:MDC 高电平期间 MDIO 数据有效。设计上要留意 MDC 的频率,PHY 一般支持最高 12.5MHz 的 MDC,但实际的 MDC 频率取决于 MAC 侧的配置。如果 MDIO 通信不稳定,先检查上拉电阻是否过大(10K 以上在长走线时会有 RC 延迟问题),再检查 MDC 是否有毛刺。我遇到过一次 MDIO 读回全 0 的情况,最后定位是 MDC 走线太长且没有端接,反射导致 PHY 收不到有效时钟边沿。解决方式是让 MDC 走线尽量短,并加 22Ω 串联电阻吸收反射。
# 验证 MDIO 通信的常用操作(以调试串口直接访问为例) # 读寄存器 0x00(基本模式控制寄存器),期望 bit15=0(正常模式) phy_reg_read 0x00 # 返回值应为 0x3900 类似值,表示千兆全双工已配置 # 若读回 0xFFFF 或 0x0000,说明 MDIO 通道有问题这段操作对应的设计含义是:在板卡调试阶段,通过 MDIO 读回基本模式控制寄存器,能确认 PHY 的链路模式和速度配置是否正确。如果 PHY 没有正常复位,读回的值往往是 0xFFFF;如果 MDIO 线路短路或上拉缺失,读回 0x0000。这两种情况在硬件调试时是最高频的故障。
4. 接口设计与信号完整性:RGMII 布线、SerDes 差分对与光笼子连接
4.1 RGMII 接口的等长与串阻设计
RGMII 是并行接口,信号完整性设计的关键是等长约束。原理图上可以数出 12 根关键信号:TX_0~TX_3、TX_CTL、TXC,以及 RX_0~RX_3、RX_CTL、RXC。WX1860AL4 到 YT8521S 之间的走线,数据线按组做等长,组内偏差控制在 50mil 以内,组间(TX 组和 RX 组)偏差控制在 100mil 以内。
RGMII 的时钟信号 TXC/RXC 是 DDR 时序,上升沿和下降沿都采样数据,所以 TXC 到 TX_data 的延时偏差最敏感。原图里用了串阻方案:每个 RGMII 信号串联一个 22Ω 电阻(比如 R1100),目的是抑制振铃。这个做法在 MAC 芯片输出阻抗接近 50Ω、走线阻抗 50Ω 的情况下,能把信号质量调得比较干净。如果你在调试时看到数据线上的过冲超过 10%,优先检查串阻值是否偏小,而不是急着改走线。
一个容易忽略的点:RGMII 的 DVDD_RGMII 电源域要单独走线,不能和数字 IO 的 VCC_3V3 混用——原理图里 RGMII 电源用了 DVDD_RGMII 专用网络,配合磁珠隔离。如果 RGMII 电平是 3.3V,而 MAC 侧 WX1860AL4 的 IO 是 2.5V,就需要额外的电平转换芯片,但本设计里两边都是 3.3V,直接连接即可。
4.2 SerDes 差分对的连接规则:光笼子不是 SGMII
这是整个设计里最要命的一个区别。YT8521S 的 SerDes_TX 和 SerDes_RX 是高速差分对,速率是 1.25Gbps(千兆光口),必须连接到光模块笼子的差分引脚上。而 SGMII 虽然也是串行接口,但它连接的是电口 PHY(比如百兆/千兆变压器),两者协议完全不同。如果把 SerDes 信号接到 SGMII 接口的 PHY 上,结果是完全不通。
原理图上 SerDes_TX_P/N 和 SerDes_RX_P/N 直接标注了“FIBER”和“SFP 笼子”的连接方向。具体实现时,差分对要注意以下几点:
- 差分阻抗 100Ω,走线要严格控制
- 差分对内等长,偏差不超过 5mil
- 远离其他高速信号和时钟,避免串扰
- 在 PHY 和笼子之间加交流耦合电容(0.1uF),位置靠近连接器
如果设计的板卡需要同时支持光口和电口,通常的做法是设计一个复用电路:SerDes 差分对和 SGMII 差分对都从 PHY 引出,通过拨码开关或者 CPLD 配置选择信号路径。但 YT8521S 本身只有 SerDes 接口,想走 SGMII 需要改变 PHY 的配置模式,比如切换为 SGMII 转电口模式。具体切换方法要参考芯片数据手册的功能配置章节,本文的参考设计是纯光口方案,SGMII 的问题不做展开。
4.3 光模块笼子部分的实战布线:回流过孔与电源去耦
光模块笼子(SFP 座子)的电源设计也是容易翻车的环节。笼子本身需要 3.3V 供电,同时还有 Mod_ABS、TX_Disable、TX_Fault、RX_LOS 等控制信号。这些信号要从 PHY 或 CPLD 引出,电平逻辑要和 PHY 的引脚定义对齐。原理图里虽然没有画完整的笼子电路,但 SerDes 连接标注明确写了“连接至光笼子”。
实际项目里我一般在笼子附近放一组 100nF + 10uF 的去耦电容,电容位置尽量靠近笼子的电源引脚。SerDes 差分对从 PHY 出来到笼子,中间不能有 stubs(分支走线),否则会产生反射。如果 PCB 层数允许,差分对走内层带状线,外层用地包裹。回流过孔一定要打在差分对换层位置的旁边,不能隔着很远,否则回流路径被破坏,EMI 测试会很难看。
# 差分对布线检查清单(以 Allegro 或 PADS 为例) 1. 确认差分对网络名含 _P/_N 后缀,便于规则识别 2. 设置差分规则:线宽 4mil,间距 8mil(100Ω 差分阻抗) 3. 对内等长约束:5mil 以内 4. 换层处必须添加回流地过孔 5. SerDes 走线两侧 3W 范围内不走其他信号线 6. 检查交流耦合电容位置是否靠近笼子连接器这个清单是每次评审 SerDes 设计时必跑的检查项。前四项是硬性规定,违反了基本等于返工;后两项是为了信号质量,虽然不会导致完全不通,但会表现为高温下误码率增高、眼图裕量不足,这种问题在功能调试阶段往往发现不了,到了量产测试才暴露。
5. 常见问题排查:从 SGMII 混用、上拉电平到复位时序的避坑指南
5.1 现象:SerDes 口对接光模块后 Link 不起来
原因:最常见的是把 SerDes 接口接到了电口 PHY 或者 SGMII 接口上。很多人看到“串行接口”就想当然地认为一样,实际上 SerDes 是 1.25Gbps 的 8B/10B 编码串行信号,SGMII 也是 1.25Gbps 的串行信号,两者速率相同但协议不同。YT8521S 默认配置是 SerDes 模式,接到 SGMII 电口 PHY 上必然不通。还有一种情况是光模块的速率不匹配——你把千兆光模块插到了实际工作在百兆模式的 SerDes 上,也会 Link 失败。
解决:先确认板卡的设计意图。如果确实要接光笼子,检查 SerDes 差分对是否连到了 SFP 座子上,而不是板上的变压器;如果要做电口设计,回到 YT8521S 的功能配置引脚,把模式切换为 SGMII 模式,并且重新配置 SerDes 接口的电平。原图里已经标注了“SERDES 接口应连接至光笼子,与 SGMII 不同”,这句话要刻在脑门上。
5.2 现象:PHY 地址读不到,MDIO 全部超时
原因:PHYAD[2:0] 配置引脚的上拉/下拉电阻值不对。LED0/PHYAD0_G1 这个引脚是复用的,如果你在 LED 灯上串联了过大电阻(比如 10K),实际上拉能力不足,PHY 上电采样时读到的电平不对,实际的 PHY 地址和预设的不一致。另一个隐蔽原因是复位信号上的干扰毛刺导致 PHY 反复复位,总在错误的时间点采样配置。
解决:把 PHYAD 相关的上拉电阻都按 4.7K 配置,LED 串联电阻单独走 1K。用示波器抓复位信号和 PHYAD 引脚的电平,确认在复位释放前 10ms 内 PHYAD0 的电平稳定。如果板上没有 CPLD 控制复位,RC 电路的时间常数一定要算对——10K + 1uF 是 10ms,PHY 要求复位低电平大于 10ms,这个参数不能减。
5.3 现象:MDIO 读出的寄存器值是 0xFFFF 或 0x0000
原因:0xFFFF 通常是 PHY 未响应,也就是 MDIO 地址不对或者 PHY 没有正常上电复位;0x0000 通常是 MDIO 数据线被拉死,比如某个引脚短路到地,或者 MDIO 上拉了 4.7K 后又被外部强行拉低。
解决:先用万用表量 MDIO/MDC 对地电阻,确认没有短路。再核对 PHYAD[2:0] 的实际电平——用万用表量引脚电压,3.3V 为逻辑 1,0V 为逻辑 0,算出实际地址。最后用示波器抓 MDIO 波形,看读命令发出后 PHY 是否在应答位拉低 MDIO。这套排查流程能定位 90% 以上的 MDIO 通信问题。
5.4 现象:Link 起来但丢包严重,眼图闭合
原因:SerDes 差分对的信号完整性问题,常见于差分走线不等长、换层没有回流地孔、差分对旁边有干扰源。还有一个容易忽略的点:光模块笼子的电源去耦不够,导致光模块供电纹波过大,影响了 SerDes 接收端的灵敏度。
解决:先用示波器(或带眼图功能的示波器)看 SerDes 接收端的眼图,确认眼高眼宽是否满足千兆光口规范。如果眼图明显闭合,重点检查差分走线的等长和回流孔。再用频谱仪或示波器测光模块电源纹波,如果超过 50mV,增加笼子附近的大电容和磁珠隔离。这个问题的排查往往是最耗时的,因为功能上链路是通的,但就是不稳定,属于典型的“信号完整性的玄学”,实际上还是设计细节没做对。
5.5 现象:PHY 工作正常但功耗异常高,芯片发热严重
原因:DVDD_RGMII 电压配置错误。如果芯片的 RGMII 接口实际工作在 1.8V 电平,但你配置成了 3.3V,IO 驱动器的功耗会明显增大;反过来,如果配置成了 1.8V 而供电是 3.3V,可能损伤芯片。另一个原因是 SerDes 输出端的端接阻抗不匹配,反射功率被 PHY 内部吸收,转化为热量。
解决:确认 CFG_LDO[1:0] 的配置组合是否和 DVDD_RGMII 的实际供电电压一致。按原图配置 CFG_LDO[1:0]=2b00,配 3.3V 供电,这个组合不能随意改。如果改了电压配置,必须同时核对所有 RGMII IO 的电平标准,否则对端 MAC 芯片可能读不到正确电平。
6. 验收与调试方法:从原理图审查到硬件实测的完整流程
6.1 原理图阶段:五项强制检查
在投板之前,我习惯把原理图按下面这个顺序过一遍,缺一项都不发出去:
| 检查项 | 判定标准 | 不合格的动作 |
|---|---|---|
| 电源域完整性 | VCC_3V3、VCC_1V8、DVDD_RGMII 全部正确连接 | 修改电源连接,重新评审 |
| 复位时序 | 复位低电平大于 10ms,上拉 3.3V | 改 RC 参数或 CPLD 逻辑 |
| PHY 地址/MDIO | PHYAD 配置电阻正确,MDC/MDIO 有上拉 | 修改电阻网络 |
| SerDes 差分对 | 连接到光笼子,100Ω 差分阻抗,交流耦合 | 修改布线规划 |
| 时钟方案 | 25MHz/25ppm/3.3V,靠近 PHY 摆放 | 调整原理图时钟电路 |
这套检查项是从 YT8521S 参考设计的工程实践中总结出来的,每一项都对应过真实的返工案例。其中 SerDes 连接对象(光笼子还是 SGMII)审查时最容易走神,所以这一项我每次都单独问一句。
6.2 硬件调试阶段:三步定位法
板卡贴片回来之后,调试顺序建议按这个来:
第一步,先量电源。VCC_3V3 和 VCC_1V8 是否正常,纹波是否在允许范围内。如果电源有问题,后续所有调试都没有意义。第二步,量时钟。用示波器确认 YT8521S 的 25MHz 输入是否有稳定波形,频率误差在 25ppm 以内。第三步,量复位。抓复位信号释放瞬间,确认 PHYAD 配置引脚电平稳定。这三步都过了,再进入 MDIO 调试。
# 调试验证步骤 # Step 1: 检查电源电压和纹波 万用表量 VCC_3V3 -> 3.3V ±5% 万用表量 VCC_1V8 -> 1.8V ±5% # Step 2: 确认 25MHz 时钟 示波器通道接 REFCLK_PHY_G1_25M -> 25MHz 方波/正弦波 # Step 3: 确认复位信号 示波器抓 G1_RESET_N -> 低电平 > 10ms 后拉高 # Step 4: MDIO 读 PHY 寄存器 读 0x00 -> 非 0xFFFF/0x0000 即为成功6.3 链路测试与验收标准
MDIO 通了之后,插上光模块和光跳线,连接对端设备,这时看 YT8521S 的 Link 状态寄存器。如果 Link 起来了,可以接着跑业务流量,验证长时间稳定性。验收标准我一般定三条:
- 丢包率:24 小时 ping 大包(1500 字节)丢包率为 0
- 误码率:双端口 iperf 打流 30 分钟,无 CRC 错误计数的增长
- 眼图裕量:SerDes 接收端眼高不低于 400mV,眼宽不低于 0.6UI
这三条是硬件设计的及格线。如果眼图裕量不足但功能正常,也要引起重视——现在的产品可能偶尔出问题,温度一高、电源一波动就原形毕露。这也是我强调 SerDes 走线等长和电源去耦的原因,功能调试通过只是开始,产品稳定性才是设计的目标。
这个项目做完之后,我把这套 YT8521S 的参考设计整理成了两页纸的 checklist,每次画 PHY 相关的板卡都强制先过一遍。从那以后,遇到 RGMII 转光口的设计,我再也没有因为 SGMII 和 SerDes 混淆翻过车。希望这份参考图和解说也能帮你把光口 PHY 的设计一次做对。
本文还有配套的精品资源,点击获取