本文为笔者学习以太网对网上资料归纳整理所做的笔记,文末均附有参考链接,如侵权,请联系删除。
概述
以太网的通信离不开物理层 PHY 芯片的支持,以太网 MAC 和 PHY 之间有一个接口,常用的接口有MII、RMII、GMII、RGMII 等。前面几篇文章中分别介绍了 MII, RMII, GMII。这一篇中来介绍一下 RGMII,介绍 RGMII 之前,这里先看下这几种接口的区别
- MII(Medium Independent Interface,媒体独立接口):MII 支持 10Mbps 和 100Mbps 的操作,数据位宽为 4 位,在 100Mbps 传输速率下,时钟频率为 25Mhz。
- RMII(Reduced MII):RMII 是 MII 的简化版,数据位宽为 2 位,在 100Mbps 传输速率下,时钟频率为 50Mhz。
- GMII(Gigabit MII):GMII 接口向下兼容 MII 接口,支持 10Mbps、100Mbps 和 1000Mbps 的操作,数据位宽为 8 位,在 1000Mbps 传输速率下,时钟频率为 125Mhz。
- RGMII(Reduced GMII):RGMII 是 GMII 的简化版,数据位宽为 4 位,在 1000Mbps 传输速率下,时钟频率为 125Mhz,在时钟的上下沿同时采样数据。在 100Mbps 和 10Mbps 通信速率下,为单个时钟沿采样。
RGMII 介绍
在千兆以太网中,常用的接口为 RGMII 和 GMII 接口。RGMII 接口的优势是同时适用于10M/100M/1000Mbps 通信速率,同时占用的引脚数较少。但 RGMII 接口也有其缺点,就是在 PCB 布线时需要尽可能对时钟、控制和数据线进行等长处理,且时序约束相对也更为严格。
为了节省引脚,开拓者开发板板载的 PHY 芯片采用的接口为 RGMII 接口,下图是 MAC 侧与 PHY 侧
接口的连接。
RGMII 拓扑图
- ETH_RXC:接收数据参考时钟,1000Mbps 速率下,时钟频率为 125MHz,时钟为上下沿同时采样;100Mbps 速率下,时钟频率为 25MHz;10Mbps 速率下,时钟频率为 2.5MHz,ETH_RXC 由 PHY 侧提供。
- ETH_RXCTL(ETH_RX_DV):接收数据控制信号。
- ETH_RXD:四位并行的接收数据线。
- ETH_TXC:发送参考时钟,1000Mbps 速率下,时钟频率为 125MHz,时钟为上下沿同时采样;100Mbps 速率下,时钟频率为 25MHz;10Mbps 速率下,时钟频率为 2.5MHz,ETH_TXC 由 MAC 侧提供。
- ETH_TXCTL(ETH_TXEN):发送数据控制信号。
- ETH_TXD:四位并行的发送数据线。
- ETH_RESET_N:芯片复位信号,低电平有效。
站管理接口
- ETH_MDC:数据管理时钟(Management Data Clock),该引脚对 ETH_MDIO 信号提供了一个同步的时钟。
- ETH_MDIO:数据输入/输出管理(Management Data Input/Output),该引脚提供了一个双向信号用于传递管理信息。
引脚分类
- ETH_RXC、ETH_RXCTL 和 ETH_RXD 为 MAC 接收侧引脚;
- ETH_TXC、ETH_TXCTL 和 ETH_TXD 为 MAC 发送侧引脚;
- ETH_MDC 和 ETH_MDIO 为 MDIO 接口引脚,用于配置 PHY 芯片内部寄存器
- ETH_RST_N 为 PHY 芯片硬件复位信号
1000Mbit/s
RGMII 使用 4bit 数据接口,在 1000Mbps 通信速率下,ETH_TXC 和 ETH_RXC 的时钟频率为 125Mhz,采用上下沿 DDR(Double Data Rate)的方式在一个时钟周期内传输 8 位数据信号,即上升沿发送/接收低4 位数据,下降沿发送/接收高 4 位数据。
ETH_TXCTL 和 ETH_RXCTL 控制信号同样采用 DDR 的方式在一个时钟周期内传输两位控制信号,即上升沿发送/接收数据使能(TX_EN/RX_ DV)信号,下降沿发送/接收使能信号与错误信号的异或值(TX_ERR xor TX_EN、RX_ERR xor RX_DV)。
当 RX_DV 为高电平(表示数据有效),RX_ERR 为低电平(表示数据无错误),则异或的结果值为高电平,因此只有当ETH_RXCTL 和 ETH_TXCTL 信号的上下沿同时为高电平时,发送和接收的数据有效且正确。
100Mbit/s
当 RGMII 工作在 100Mbps 时,ETH_TXC 和 ETH_RXC 的时钟频率为 25Mhz,采用上升沿 SDR(Single Data Rate) 的方式在一个周期内传输 4 位数据。
ETH_TXCTL 和 ETH_RXCTL 控制信号仍采用上下沿 DDR 的传输方式。
10Mbit/s
当 RGMII 工作在 10Mbps 时,ETH_TXC 和 ETH_RXC 的时钟频率为 2.5Mhz,采用上升沿 SDR SDR(Single Data Rate) 的方式在一个周期内传输 4 位数据。
ETH_TXCTL 和 ETH_RXCTL 控制信号也采用 SDR 的传输方式。
RGMII 接口时序
接收端口时序
发送端口时序
参考
- IEEE802.3
- 正点原子 FPGA 开发指南