2. RGMII 电气特性:电平标准、输出驱动电流、上下拉电阻要求、接收端阈值
好,咱们开始第 2 章。RGMII 接口的电气特性,说白了就是信号在 PCB 上跑起来时的“规矩”。电压多高、电流多大、上下拉电阻怎么配、接收端怎么判断 0 和 1。这些规矩要是不懂,Layout 布线再好,上板测也是一堆眼图闭合、时序违规的破事。我自己吃过不少这方面的亏,咱们一个个说清楚。
2.1 电平标准:不止是 1.8V 和 3.3V 那么简单
RGMII 有两种主流电平标准:HSTL 和 SSTL。绝大多数商用芯片,比如瑞昱、博通、Marvell 的千兆 PHY,都用的是 HSTL-12(1.2V 或 1.5V 参考电压)或者 SSTL-18(1.8V 参考电压)。
我遇到过不少工程师,上来就按常见的 3.3V LVTTL 做,结果信号反射得一塌糊涂。你想想看,RGMII 跑 125MHz,DDR 双边沿采样,等效频率 250MHz,这种高速信号要是电平不匹配,反射噪声都能把信号吃掉。
我个人的习惯是:先查芯片手册的 DC Characteristics 表。里面会明确标出 VOH、VOL、VIH、VIL。比如 HSTL-12 标准,VREF = 0.6V,VIH 最小要 0.7V,VIL 最大只能 0.5V。这个 0.2V 的噪声容限,说窄不窄,说宽也不宽,关键看你的 Layout 能不能把串扰压下去。
| 标准 | VREF | VOH(min) | VOL(max) | VIH(min) | VIL(max) |
|---|---|---|---|---|---|
| HSTL-12 | 0.6V | VREF + 0.4V | VREF - 0.4V | VREF + 0.1V | VREF - 0.1V |
| SSTL-18 | 0.9V | 1.35V | 0.45V | VREF + 0.125V | VREF - 0.125V |
| LVTTL (3.3V) | N/A | 2.4V | 0.4V | 2.0V | 0.8V |
看这个表,HSTL-12 的输入阈值只差 0.2V,说白了就是信号稍微歪一点,接收端就读错。所以 Layout 上阻抗控制、等长匹配、参考平面一个都不能含糊。
2.2 输出驱动电流:不是越大越好
驱动电流这个事,很多人会忽略。芯片手册里通常会提供 可编程输出驱动强度,比如 4mA、8mA、12mA、16mA。默认值一般是 8mA 或 12mA。
我建议的做法是:
- 先默认选 8mA,如果 PHY 和 MAC 之间走线长度超过 6 英寸(约 15cm),再考虑提升到 12mA。
- 用 IBIS 模型做一次 SI 仿真,看看过冲和下冲是否在容限内。
- 如果条件允许,上板后通过寄存器调节驱动强度,配合示波器看信号质量。
我的经验是,大多数短走线(< 4 英寸)用 4~6mA 就很稳。别一上来就把驱动拉到最满,那不是“留余量”,那是给信号完整性和 EMI 找麻烦。
2.3 上下拉电阻要求:别让管脚悬着
RGMII 接口的上下拉电阻,主要在以下几个场景用到:
- 未使用的 TX/RX 数据线:建议通过 10kΩ 电阻下拉到 GND。防止悬空状态下的噪声耦合。
- 控制信号(如 TX_CTL、RX_CTL):有些 PHY 芯片要求这些信号内部有弱上下拉。如果芯片手册没写默认状态,我习惯在 PCB 上预留 4.7kΩ ~ 10kΩ 的上下拉电阻位置,调试时按需焊接。
- MDC/MDIO 总线:这个不属于 RGMII,但经常一起出现。MDIO 是开漏信号,必须外接 1.5kΩ ~ 4.7kΩ 上拉到 2.5V 或 3.3V。而且上拉电阻要靠近 PHY 侧放置。
嗯,这里要注意,上下拉电阻的阻值不是随便选的。电阻太大,上拉/下拉能力弱,抗噪声差;电阻太小,静态功耗大,还可能拉低信号幅度。10kΩ 是个比较通用的值,上下兼容性好。
2.4 接收端阈值:判断 0 和 1 的底线
接收端(MAC 或 PHY)判决信号的依据,就是 VIH 和 VIL 阈值。但这里面有个容易被忽略的点:阈值不一定是对称的。
我记得有一次帮客户排查 RGMII 通信不稳定问题。信号幅度够,眼图也不错,就是偶尔丢包。最后发现是接收端的 VIH 阈值偏高,发送端的 VOH 又偏接近下限。噪声一叠加,接收端就判成 0。
所以我的建议是:
- 上板后一定要量一下接收端的实际信号幅度,确保 VOH ≥ VIH + 100mV 余量。
- 如果发现 VOH 偏低,先看是不是驱动电流设小了,再看是不是 PCB 走线阻抗太大导致衰减。
- 有些 MAC 芯片允许通过寄存器调整输入阈值。这种功能一般用于特殊兼容场景,不建议作为常规手段。
下面是 RGMII 电气特性各要素的关系图,我把它画成了一张流程图,方便你理解这些参数是怎么串起来的。
这张图把前面讲的四个要素串起来了。你会发现,不管是电平标准、驱动电流、上下拉还是接收端阈值,最终都是为了一件事:确保接收端能正确判断每个 bit。任何一个环节出问题,RGMII 通信都可能跑不起来。