之前介绍MII接口时,有介绍过RGMII接口的由来,下面在贴一下:
表8‑7 MII接口介绍
简述 |
Pins |
速率计算 |
|
MII |
基本的100Mbps/10Mbps接口 |
RXD[3:0]、TXD[3:0] TX_ER、TX_EN RX_ER、RX_DV TX_CLK、RX_CLK CRS、COL |
Clock=25MHz or 2.5MHz 数据位宽4bit(一个时钟周期传输4bit数据) 100Mbps=25 MHz *4bit 10Mbps=2.5 MHz *4bit |
RMII |
在MII基础上精简的100Mbps/10Mbps接口; 通过提升Clock频率保持与MII一样的速率; |
RXD[1:0]、TXD[1:0] TX_EN RX_ER CLK_REF CRS_DV |
Clock=50MHz 数据位宽2bit(一个时钟周期传输2bit数据) 100Mbps=50 MHz *2bit 10Mbps是利用10个周期采样一次数据,相当于 10Mbps=50MHz/10*2bit |
SMII |
串行MII 100Mbps/10Mbps接口; 进一步提升Clock频率保持与MII一样的速率; |
RXD[1:0] TXD[1:0] TX_EN RX_ER CLK_REF CRS_DV |
Clock=125MHz 数据位宽1bit(一个时钟周期传输1bit数据) 串行数据帧:一帧10bit(8bit data+2bit control) 计算有效带宽时需要去掉控制位 100Mbps=125 MHz *(8bit/10bit) 10Mbps是利用10个周期采样一次数据,相当于 10Mbps=(125 MHz/10)*(8bit/10bit) |
GMII |
在MII接口基础上提升了数据位宽和Clock频率成为1000Mbps接口 |
RXD[7:0]、TXD[7:0] TX_ER、TX_EN RX_ER、RX_DV GTX_CLK、RX_CLK CRS、COL |
Clock=125MHz 数据位宽8bit(一个时钟周期传输8bit数据) 1000Mbps=125 MHz *8bit |
RGMII |
GMII的简化版本 |
RXD[3:0]、TXD[3:0] TX_EN RX_DV TX_CLK、RX_CLK CRS、COL |
Clock=125MHz 数据位宽4bit(一个时钟周期里,上升沿取TX\RX的0-3bit,下降沿取TX\RX的4-7bit,所以实际还是在一个时钟周期里传输8bit数据) 100 0Mbps=125 MHz *8bit 100Mbps=25 MHz *8bit 10Mbps=2.5MHz *8bit |
SGMII |
串行GMII,在此基础上提升了时钟频率达到1000Mbps |
RXD[0]、TXD[0] RX_CLK |
Clock=125MHz 数据位宽1bit(一个时钟周期传输1bit数据) 串行数据帧:一帧10bit(8bit data+2bit control) 计算有效带宽时需要去掉控制位 1000Mbps=125 0MHz *(8bit/10bit) |
RGMII是GMII的简化版本,发送端信号:TXD[3:0]、 TX_CLK、TX_EN,接收端信号:RX_DV、RXD[3:0]、RX_CLK,当Clock=125MHz,数据位宽4bit(一个时钟周期里,上升沿取TX\RX的0-3bit,下降沿取TX\RX的4-7bit,所以实际还是在一个时钟周期里传输8bit数据),1000Mbps=125 MHz *8bit、100Mbps=25 MHz *8bit、10Mbps=2.5MHz *8bit。
其实从实现方式看,很容易看出RGMII传输/收取数据的方式和DDR的方式类似,所以下面会针对这方面详细介绍。
8.5.1.1 RGMII信号定义及时序
RGMII 使用 4bit 数据接口采用上下沿 DDR( Double Data Rate)的方式在一个时钟周期之内传输 8bit数据信号,即上升沿发送或接收数据的低 4 位[3:0],下降沿发送或接收数据的高 4 位[7:4]。
发送端:
TXC:发送数据信号和控制信号对应的同步时钟信号( 125M、 25M、 2.5M)
TXD[3:0]:发送数据信号, 4bit 位宽
TX_CTL:发送控制信号
发送端信号时序如下图所示。
图8‑18 RGMII发送端信号时序(来源88E1512datasheet,下同)
一般的 PHY 芯片都支持两种 RGMII 发送端口的时序关系。一种称为非延时模式,如下图所示:
图8‑19 RGMII发送端非延时模式(来源88E1512datasheet,下同)
即要满足时钟信号 TXC 的边沿对准数据信号 TXD[3:0]和控制信号 TX_CTL 有效窗口中心附近的位置,也就是说 TXC 比其他信号存在 2ns( 90°相位)(2ns来源:当 RGMII 接口工作于 1000M 速率时, TXC 和RXC 时钟信号都为 125MHz,那么单个接口的数据率便等同于 250Mbps,单个信号的有效数据窗最大为 4ns。)左右的延时。
另一种为延时模式,如下图所示。
图8‑20 RGMII发送端延时模式(来源88E1512datasheet,下同)
这种时序要求 TXC 的边沿不其发送的数据 TXD 和控制信号 TX_CTL 边沿对齐,所有信号具有相同的相位。
一般来说,大部分 PHY 芯片默认都是采用正常时序模式,可通过 MDIO 接口设置寄存器,或者芯片特殊功能引脚将其配置为延时模式。
接收端:
RXC:接收数据信号和控制信号对应的同步时钟信号( 125M、 25M、 2.5M)
RXD[3:0]:接收数据信号,4bit 位宽
RX_CTL:接收控制信号
接收端信号的时序如下图所示。
图8‑21 RGMII接收端信号时序
同理接收端也有非延时和延时模式,原理同上,时序图如下。
图8‑22 RGMII接收端非延时模式(来源88E1512datasheet,下同)