RGMII 接口详细说明
1. 什么是 RGMII 接口RGMIIReduced Gigabit Media Independent Interface精简版千兆独立介质接口是主控芯片内部的 MACMedia Access Control媒体访问控制与以太网物理层芯片PHY之间最常用的一种通信接口。它的核心特点在于**“精简Reduced”**早期的千兆接口 GMII 需要 24 根信号线非常占用芯片的引脚和 PCB 走线空间。RGMII 通过引入DDR双沿采样Double Data Rate技术将数据线从 8 根减少到了 4 根数据通道的总引脚数精简到了12 根。1.1 工作原理与时钟频率RGMII 是如何用 4 根数据线跑到千兆速率的关键在于时钟频率和采样方式的动态切换千兆模式1000 Mbps时钟频率为125 MHz。利用时钟的上升沿发送/接收数据的低 4 位Bit 0-3下降沿发送/接收数据的高 4 位Bit 4-7。计算公式125 MHz × 2双沿× 4 bit 1000 Mbps。百兆模式100 Mbps时钟频率降为25 MHz。通常只在时钟的上升沿采样SDR。计算公式25 MHz × 1单沿× 4 bit 100 Mbps。十兆模式10 Mbps时钟频率降为2.5 MHz。单沿采样。计算公式2.5 MHz × 1单沿× 4 bit 10 Mbps。2. RGMII 每一根线的作用详解RGMII 接口标准的 12 根数据线分为**发送端TXMAC 发给 PHY和接收端RXPHY 发给 MAC**两组每组 6 根。此外还有 2 根用于配置和管理的 MDIO 总线信号。2.1 发送端TX 方向从 CPU/MAC 输出给 PHY这部分信号由主控芯片主动输出提供给 PHY 芯片。GTX_CLK(Gigabit Transmit Clock) - 1根方向MAC - PHY作用发送参考时钟。说明主控芯片根据当前协商的网速主动输出 125MHz千兆、25MHz百兆或 2.5MHz十兆的时钟给 PHY用来同步接下来的 TX 数据。注意无论工作在千兆还是百兆都共用这一个物理时钟引脚。TXD[3:0](Transmit Data) - 4根方向MAC - PHY作用发送数据线Data 0 到 Data 3。说明在千兆模式下时钟上升沿传输一个字节的低 4 位下降沿传输高 4 位在百/十兆模式下通常只在上升沿有效。TX_CTL(Transmit Control) - 1根方向MAC - PHY作用发送控制/使能信号。说明为了节省引脚RGMII 把以前的发送使能TX_EN和发送错误TX_ER复用在了一根线上。时钟上升沿代表TX_EN发送使能高电平表示当前 TXD 线上的数据是有效的。时钟下降沿代表TX_EN异或TX_ER。如果主控发现发送数据有误会通过下降沿的电平变化通知 PHY。2.2 接收端RX 方向从 PHY 输入给 CPU/MAC这部分信号由 PHY 芯片从网线端解码后输出给主控芯片。RX_CLK(Receive Clock) - 1根方向PHY - MAC作用接收参考时钟。说明PHY 芯片从网线上的以太网模拟信号中恢复出时钟并输出给 CPU。同样千兆为 125MHz百兆 25MHz十兆 2.5MHz。RXD[3:0](Receive Data) - 4根方向PHY - MAC作用接收数据线Data 0 到 Data 3。说明与发送端对称千兆模式下上升沿传低 4 位下降沿传高 4 位。RX_CTL(Receive Control) - 1根方向PHY - MAC作用接收控制/数据有效信号。说明复用了接收数据有效RX_DV和接收错误RX_ER。时钟上升沿代表RX_DV高电平表示当前 RXD 线上的接收数据有效。时钟下降沿代表RX_DV异或RX_ER。如果 PHY 检测到网线传来的信号有误码如 CRC 校验错会通过下降沿通知 CPU 丢弃这一帧数据。3. 补充管理接口MDIO / MDC虽然严格意义上 RGMII 数据通道只有上述 12 根线但在任何以太网硬件设计中都必然包含以下两根管理总线信号SMISerial Management InterfaceMDC(Management Data Clock) - 1根方向MAC - PHY作用管理数据时钟由 MAC 输出给 PHY通常最高频率为 2.5MHz。MDIO(Management Data Input/Output) - 1根方向双向 (Bidirectional)作用管理数据输入/输出线。工作机制MDC 和 MDIO 相当于以太网的“I2C 总线”。CPU 内部的 MAC 必须通过这两根线去读写 PHY 芯片内部的寄存器。初始化与配置复位后MAC 通过 MDIO 读取 PHY 的状态或者配置 PHY 的工作模式例如强制百兆全双工或开启自动协商 Auto-Negotiation。状态轮询MAC 周期性地通过 MDIO 读取 PHY 的 Link 状态。当网线插上并完成自协商后CPU 会读到 PHY 协商出的速率例如千兆。此时CPU 内部的 MAC 控制器才会将GTX_CLK的频率切换为 125MHz开始千兆数据通信。