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,这种高速信号要是电平不匹配,反射噪声都能把信号吃掉。

核心事实:RGMII 信号线(TXD[3:0]、RXD[3:0]、TX_CLK、RX_CLK、TX_CTL、RX_CTL)全部都是 单端信号,参考电压 VREF 由 PHY 或 MAC 芯片内部生成,或者由外部电阻分压提供。

我个人的习惯是:先查芯片手册的 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。

警告:驱动电流越大,信号边沿越陡。但过陡的边沿会引发过冲、下冲、振铃,以及严重的 EMI 问题。我曾经在一个项目上,把驱动电流从 8mA 调到 16mA,结果眼图测试时振铃幅度直接超标 200mV,不得不改回来。

我建议的做法是:

  • 先默认选 8mA,如果 PHY 和 MAC 之间走线长度超过 6 英寸(约 15cm),再考虑提升到 12mA。
  • 用 IBIS 模型做一次 SI 仿真,看看过冲和下冲是否在容限内。
  • 如果条件允许,上板后通过寄存器调节驱动强度,配合示波器看信号质量。

我的经验是,大多数短走线(< 4 英寸)用 4~6mA 就很稳。别一上来就把驱动拉到最满,那不是“留余量”,那是给信号完整性和 EMI 找麻烦。

2.3 上下拉电阻要求:别让管脚悬着

RGMII 接口的上下拉电阻,主要在以下几个场景用到:

  1. 未使用的 TX/RX 数据线:建议通过 10kΩ 电阻下拉到 GND。防止悬空状态下的噪声耦合。
  2. 控制信号(如 TX_CTL、RX_CTL):有些 PHY 芯片要求这些信号内部有弱上下拉。如果芯片手册没写默认状态,我习惯在 PCB 上预留 4.7kΩ ~ 10kΩ 的上下拉电阻位置,调试时按需焊接。
  3. MDC/MDIO 总线:这个不属于 RGMII,但经常一起出现。MDIO 是开漏信号,必须外接 1.5kΩ ~ 4.7kΩ 上拉到 2.5V 或 3.3V。而且上拉电阻要靠近 PHY 侧放置。

嗯,这里要注意,上下拉电阻的阻值不是随便选的。电阻太大,上拉/下拉能力弱,抗噪声差;电阻太小,静态功耗大,还可能拉低信号幅度。10kΩ 是个比较通用的值,上下兼容性好。

小技巧:有些芯片(比如瑞昱的 RTL8211 系列)内置了上下拉电阻,手册里会标一个内部电阻值(比如 50kΩ 上拉)。如果外部再并一个 10kΩ,等效上拉就成了 8.3kΩ。上电时序不同,可能会导致芯片进入错误的工作模式。所以一定要看明白芯片的内部结构,再决定要不要外加。

2.4 接收端阈值:判断 0 和 1 的底线

接收端(MAC 或 PHY)判决信号的依据,就是 VIH 和 VIL 阈值。但这里面有个容易被忽略的点:阈值不一定是对称的。

我记得有一次帮客户排查 RGMII 通信不稳定问题。信号幅度够,眼图也不错,就是偶尔丢包。最后发现是接收端的 VIH 阈值偏高,发送端的 VOH 又偏接近下限。噪声一叠加,接收端就判成 0。

所以我的建议是:

  • 上板后一定要量一下接收端的实际信号幅度,确保 VOH ≥ VIH + 100mV 余量。
  • 如果发现 VOH 偏低,先看是不是驱动电流设小了,再看是不是 PCB 走线阻抗太大导致衰减。
  • 有些 MAC 芯片允许通过寄存器调整输入阈值。这种功能一般用于特殊兼容场景,不建议作为常规手段。

下面是 RGMII 电气特性各要素的关系图,我把它画成了一张流程图,方便你理解这些参数是怎么串起来的。

RGMII 电气特性核心要素 RGMII 电气特性 1. 电平标准 2. 输出驱动电流 3. 上下拉电阻 4. 接收端阈值 VOH / VOL VIH / VIL 4mA / 8mA / 12mA / 16mA 边沿速率 / EMI 4.7kΩ ~ 10kΩ MDC/MDIO 独立上拉 噪声容限 ±100mV 可调阈值寄存器 每个要素都直接影响信号质量、时序余量和 EMI 性能 上板实测前,必须逐一确认 最终目标:确定的电平、稳定的边沿、干净的信号

这张图把前面讲的四个要素串起来了。你会发现,不管是电平标准、驱动电流、上下拉还是接收端阈值,最终都是为了一件事:确保接收端能正确判断每个 bit。任何一个环节出问题,RGMII 通信都可能跑不起来。