好的,各位学员。我们开始第二章的内容。

2. RGMII信号定义与电气特性归纳总结

讲时序之前,我们得先把RGMII接口的“家底”摸清楚。说白了,你得知道每条线是干什么的,它有什么脾气,才能在调试的时候不抓瞎。我见过不少工程师,上来就抱着示波器抓波形,结果连信号名称都没搞对,白白浪费一整天。

这一章,我就带你把这些基本功打扎实。

2.1 RGMII信号组详解

RGMII接口,全称是Reduced Gigabit Media Independent Interface。它之所以叫“Reduced”,就是把传统的GMII接口信号线从24根缩减到了12根。怎么做到的?靠的是时钟双沿采样和数据与控制信号的复用。

咱们先来看看这12根信号具体是哪些:

信号名称 方向 位宽 功能说明
eth_txc 输出 1 发送参考时钟,频率为125MHz(1000Mbps)或25MHz/2.5MHz
eth_tx_ctl 输出 1 发送控制信号,复用TX_EN和TX_ER
eth_txd[3:0] 输出 4 发送数据总线,双沿采样(DDR)
eth_rxc 输入 1 接收参考时钟,由PHY提供
eth_rx_ctl 输入 1 接收控制信号,复用RX_DV和RX_ER
eth_rxd[3:0] 输入 4 接收数据总线,双沿采样

这里有个要点,你需要注意。虽然叫RGMII,但数据总线只有4位。它能在时钟的上升沿和下降沿各传输4位数据,所以一个时钟周期内能传输8位数据,正好满足千兆以太网的需求。

时钟与数据的关系:
对于一个千兆链路,TXC和RXC的频率都是125MHz,周期是8ns。在TXC的上升沿和下降沿,各采样4位数据。那么,数据有效窗口就变成了4ns。这点对于后面的时序分析至关重要。

2.2 时钟与数据的“暧昧”关系

RGMII的时序核心,就是时钟和数据的相位关系。你仔细看RGMII的规范,它要求:时钟沿必须对齐在数据有效窗口的中央。

为什么会这样?这是为了给接收端提供最宽松的建立时间和保持时间。想象一下,数据在时钟沿到来之前就稳定了,而且之后还能稳定一小段时间,这样接收端采样就最可靠。

但实际上,PCB走线、芯片内部的延迟都会导致这个“中央对齐”偏移。这就是我们调试的切入点。

2.2.1 发送端(MAC到PHY)

在发送方向,MAC芯片把数据(TXD)和控制信号(TX_CTL)与发送时钟(TXC)一起送出。按照规范,MAC输出的数据相对于TXC的边沿,应该有一定的延迟。这个延迟通常是TXC周期的50%,也就是4ns。但很多芯片内部已经帮我们做了延迟,所以我建议你先看芯片手册,别盲目相信4ns这个值。

我个人习惯,在新项目上板后,第一件事就是测量TXC到TXD的相位关系。用示波器抓一下,看看数据跳变沿是不是在时钟沿的中间。

2.2.2 接收端(PHY到MAC)

接收方向也是类似的道理。PHY芯片发出的RXC和RXD,同样要求数据相对于时钟沿是中央对齐的。但是,MAC接收端内部往往有一个可编程的延迟链,或者叫IODELAY。这个延迟链就是用来微调时钟或数据的,确保采样点落在数据眼图的正中央。

我的一个调试心得: 接收端时序有问题,80%的情况不是因为信号质量差,而是因为时钟和数据之间的相对延迟(Tskew)没有调对。我建议你优先检查这个Tskew值,而不是盲目地去调阻抗匹配。

2.3 电气特性:信号质量和电压标准

RGMII的电气接口标准是HSTL-12或类似电平标准。典型电压是1.2V或1.8V。一些老旧的芯片可能还用2.5V或3.3V,但这很少见了。

这里有一个常见的坑:电平兼容。我曾经在一个项目中,MAC芯片要求1.8V的RGMII电平,而PHY为了兼容老设计,输出的是3.3V。结果PHY板卡一插上,MAC直接烧了。所以,上电前务必检查VDDIO的电平。

电平标准 典型电压 Vih(最小输入高电平) Vil(最大输入低电平)
3.3V RGMII 3.3V 2.0V 0.8V
2.5V RGMII 2.5V 1.7V 0.7V
1.8V RGMII 1.8V 1.3V 0.5V
1.2V RGMII 1.2V 0.9V 0.4V

你想想看,如果两个芯片电平不匹配,结果要么是接收端识别不了逻辑“1”,要么是过压击穿。所以在设计原理图时,就得把VDDIO管脚的对地并联电容、磁珠都给加上,做好电源滤波。

2.4 RGMII的PCB设计约束

千兆以太网的信号速率是125MHz,但数据切换速率是250Mbps(DDR)。这个速率对于PCB来说,已经属于高速信号范畴了。你的走线必须当作传输线来处理。

  • 阻抗控制:单端阻抗控制在50Ω±10%。如果你用的是差分线(比如LVDS),那是100Ω±10%。但RGMII是单端信号,所以统一走50Ω。
  • 等长匹配:这是RGMII最关键的PCB约束。所有数据信号(TXD/RXD)相对于它们各自的时钟(TXC/RXC),走线长度差要控制在±50mil以内。如果布局空间紧张,至少也要做到±100mil。我见过有项目走线差了300mil,时序完全崩了。
  • 串扰抑制:时钟信号和数据信号之间,要拉开距离。我建议至少保持3W(3倍线宽)的间距。如果PCB层数多,可以把时钟信号包地处理。
  • 参考平面:RGMII信号下面必须是完整的地平面,不能跨分割。跨分割会导致阻抗突变和共模辐射,问题非常棘手。

避坑指南: 我曾经调试一个项目,时钟眼图看着很好,数据眼图却立不起来。查了很久才发现,RGMII信号的返回路径绕了一个大圈,没有紧贴着信号线。后来在参考层上加了一排地过孔,问题才解决。记住,高速信号的返回电流总是在信号线正下方走的。

2.5 本章知识体系图

下面这张图,是我总结的RGMII信号与电气特性的核心关系。记住这个图,你就抓住了RGMII的命脉。

RGMII信号知识体系 RGMII 12线信号组 数据组 (TX[3:0] / RX[3:0]) 控制组 (TX_CTL / RX_CTL) 时钟组 (TXC / RXC) 源同步时钟,中央对齐采样 DDR双沿传输,125MHz基础频率 PCB约束:50Ω阻抗 | 等长 ±50mil | 3W间距 | 完整参考平面 电压标准:1.2V / 1.8V / 2.5V / 3.3V (注意兼容性)

好了,信号定义和电气特性这部分就讲到这里。你把这些基础抓牢了,后续调试时序问题的时候,心里才能有底。