常见 PHY 接口标准:RGMII、SGMII、QSGMII、XFI
PHY 和 MAC 之间怎么连?这个问题我一开始也晕过。RGMII、SGMII、QSGMII、XFI… 名字长得像,干的活不一样。说白了,就是不同速率、不同距离下的接口选择。今天咱们一个一个捋清楚。
1. RGMII —— 最常用的千兆并口
RGMII 全称 Reduced Gigabit Media Independent Interface。名字里的 “Reduced” 是指比原来的 GMII 减少了引脚数。GMII 要 24 根数据线,RGMII 只用 12 根。怎么做到的?核心一招:DDR 采样——时钟频率 125 MHz,上升沿和下降沿各采一次。
时钟频率:125 MHz
数据位宽:4 位(单沿实际上传 4 位,双沿变 8 位)
速率:1000 Mbps
电平:LVCMOS 1.8V / 2.5V / 3.3V
调试 RGMII 最头疼的就是 时钟与数据的相位对齐。RGMII 标准要求时钟沿与数据边沿对齐(或者说有固定的 90° 偏移),但板级走线差一点就偏了。我遇到过一块板子,RGMII 无论如何 link 不上,用示波器一看,时钟到 PHY 的走线长了 500 mil,数据线短了,结果 setup time 全毁。后来在 MAC 侧打开了 IDELAY 功能,手动调了 tap,问题才解决。
大部分 SoC/MAC 都集成了可编程延迟单元(如 Xilinx IDELAYE2),调试时先把它设为 0,然后在 0~31 tap 范围内扫一遍,找到最佳采样点。
2. SGMII —— 串行千兆链路
SGMII 是 Serial GMII 的缩写。它用一对差分线(TX 一对、RX 一对)代替了 RGMII 的 12 根线。串行速率 1.25 Gbps,实际有效数据 1 Gbps,剩余 250 Mbps 用来传控制信息(比如自协商、链路状态)。
电平标准是 LVDS 或者 CML(各厂家实现略有不同)。但不管哪种,AC 耦合电容是必须的。我曾经见过一个工程师把电容漏了,结果直流偏置直接把 PHY 的接收端拉到了电源轨,芯片发烫。嗯,那是真烧过。
AC 耦合电容通常放在靠近收端,容值 0.1 μF 即可。不要用钽电容,用多层陶瓷电容(MLCC)。放置不当时,串扰和共模噪声会加倍。
SGMII 的另一个关键是 自协商。链路建立需要交换能力信息,一旦时钟抖动过大或信号幅度不足,自协商就会反复失败。我习惯用 MDIO 寄存器读 PHY 的链接状态,0x1 寄存器 bit2 就是 link status,反复读它,看到稳定高电平才算稳了。
3. QSGMII —— 四口合一
QSGMII 就是 Quad SGMII。一个串行差分对可以同时承载 4 个千兆端口的数据。串行速率提高到 5 Gbps。本质上它是个 TDM(时分复用)方案,每个端口在 5G 链路上分到 1.25 Gbps 的带宽。
调试 QSGMII 要特别注意 信号完整性。5 Gbps 的损耗和串扰已经不小了,PCB 走线最好用低损耗材料(如 Megtron 6),走线长度控制在 8 英寸以内。我调过一块背板,QSGMII 线的长度达到了 12 英寸,结果眼图几乎闭合,最后只能降速到 2.5 Gbps 用 SGMII 模式工作。
| 参数 | SGMII | QSGMII |
|---|---|---|
| 串行速率 | 1.25 Gbps | 5 Gbps |
| 端口数 | 1 | 4 |
| 差分对数量 | 1 对(TX+RX) | 1 对(TX+RX) |
| 典型应用 | 单口千兆 | 4 口千兆交换机 |
4. XFI —— 万兆串行接口
XFI 是 10 Gigabit Attachment Unit Interface 的简称。速率 10.3125 Gbps,用于连接 10G PHY 到 MAC 或者 SFP+ 模块。电平标准是 CML(电流模式逻辑),比 LVDS 驱动能力强,但功耗也大。
- AC 耦合电容:2 个 0.1 μF,靠近 SFP+ 端。
- 回波损耗(RL):< 10 dB @ 5 GHz。
- 信道损耗:总损耗 < 25 dB @ 5.15625 GHz。
- 眼图模板:符合 IEEE 802.3ae Clause 52。
XFI 对 PCB 走线长度非常敏感。10 Gbps 信号在 FR4 上每英寸损耗约 1.5~2 dB,所以走线最好控制在 8 英寸以内。我试过用 10 英寸走线,加了两颗预加重电容还是调不过眼图模板。后来改成 6 英寸,一次过。
XFI 的 AC 耦合电容不能离 PHY 太远,否则等效串联电感(ESL)会严重劣化信号。我自己的规则是:电容到 PHY 焊盘间距 < 200 mil,到 SFP+ 连接器焊盘 < 500 mil。
5. 一张图看懂接口选择
下面这张图帮你快速定位:根据你需要的总带宽和端口密度,选对应的 PHY 接口。
6. 各接口参数速查
| 接口 | 速率 | 数据总线 | 时钟频率 | 电平标准 | 典型 PCB 走线建议 |
|---|---|---|---|---|---|
| RGMII | 1 Gbps | 12 根(4×DDR) | 125 MHz | LVCMOS | 等长 ±50 mil |
| SGMII | 1 Gbps | 1 对差分 | 串行 1.25 GHz | LVDS / CML | AC 电容 ≤ 0.1μF |
| QSGMII | 4×1 Gbps | 1 对差分 | 串行 5 GHz | CML | 低损耗材料,< 8 英寸 |
| XFI | 10 Gbps | 1 对差分 | 串行 10.3125 GHz | CML | < 8 英寸,微带线 |
说一千道一万,调 PHY 接口就是调 信号质量。从 RGMII 的板级等长到 XFI 的眼图模板,本质都一样:保证接收端能看清每个 bit。下次遇到 link 不起来的板子,先检查接口类型对应的关键参数,别一上来就怀疑驱动代码。硬件问题,软件解不了。