12 基于FPGA的千兆以太网设计
图2.5 GMII接口连接图
在GMII接口中,它是用8根数据线来传送数据的,发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。GMII接口主要包括四个部分:一是从MAC层到物理层的发送数据接口,二是从物理层到MAC层的接收数据接口,三是从物理层到MAC层的状态指示信号,四是MAC层和物理层之间传送控制和状态信息的MDIO接口。GMII的接口信号在表2.1中列举出。
表2.1GMII接口信号定义
信号名称 方向(相对于描述 控制器) 发送器 GTX_CLK Output 吉比特 TX 信号的时钟信号(125 MHz) TXD[0:7] TX_ER Output Output 被发送数据 GTX_CLK 同步于 发送器错误GTX_CLK (用于破坏一个数据包) TX_EN Output 发送器使能GTX_CLK
第二章 千兆以太网理论基础 13
信号 接收器 RX_CLK Input 接收时钟信 号(从收到的数据中提 取,因此与 GTX_CLK 无关联) RXD[0:7] RX_ER Input Input 接收数据 RX_CLK 接收数据出RX_CLK 错指示 RX_DV Input 接收数据有RX_CLK 效指示 网络状态 COL Input 冲突检测(仅异步 用于半双工状态) CRS Input 信道激活的异步 指示,侦听到接收信号或传送信号(仅用于半双工状态) 管理配置 MDC Output 配置接口时 钟 MDIO 注:
I/O 配置接口 I/O MDC (1)时钟信号GTX_CLK对于MAC来说,此时是Output信号;而对于PHY来说,此时是Input信号。
(2)在千兆速率下,GMII向PHY提供GTX_CLK信号,TXD、TXEN、
14 基于FPGA的千兆以太网设计
TXER信14千兆网络通信系统的FPGA设计实现号与此时钟信号同步。PHY端在信号的上升沿采样,GTX_CLK由MAC驱动。GTX_CLK的时钟频率是数据传输速率的12.5倍,即125MHz。否则,在10/100Mbps速率下,PHY提供TX_CLK时钟信号,其它信号与此信号同步,其工作频率为25MHz(100Mbps网络)或2.5MHz(10Mbps网络)。
(3)同样的,RX_CLK与TX_CLK一样具有相同的要求,所不同的为它是RX_DV,RXD和RX_ER(信号方向是从PHY到RS)的参考时钟,MAC端在时钟的上升沿采样。RX_CLK是由PHY驱动,而PHY可能从接收到的数据中提取时钟RX_CLK,也有可能由一个名义上的参考时钟(TX_CLK)来驱动RX_CLK。
(4)管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个寄存器地址16位。其中前16个已经在“IEEE802.3-2000,22.2.4Management Functions”中规定了用途,其余的则根据各器件自己指定。
2.3.2GMII接口时序特性
在GMII接口中,TX通道参考时钟是GTX_CLK,RX通道参考时钟是RX_CLK,IEEE802.3-2005定义了它们之间的关系,如图2.6中所示。
图2.6 GMII接口信号时序要求
由图2.6可知,标准只定义了TX通道中接收端的Setup时间和Hold时间,即只对TX通道上PHY这一侧的接收特性作了定义,而对TX通道MAC那一侧的发送特性并没有定义。对于器件制造商而言,可对TX通道
第二章 千兆以太网理论基础 15
一侧的MAC的发送特性作适当调整,只要最终的时序满足TX通道上PHY这一侧的接收特性就可以[12]。对RX通道也是同样的道理,器件制造商可对RX通道那一侧的PHY的发送特性作适当调整,只要最终的时序满足RX通道上MAC这一侧的接收特性就可以。
GMII接口的发送时序如图2.7所示,接收时序如图2.8所示。
图2.7GMII信号发送时序
图2.8GMII信号接收时序
2.3.3GMII的管理MDIO接口
GMII的管理MDIO接口,在硬件设计上同MII的管理MDIO接口是一样的。MDIO接口包括两根信号线:MDC和MDIO,通过它,MAC层或其它控制芯片可以访问物理层芯片的寄存器,并通过这些寄存器来对物理层芯片进行控制和管理。
MDIO管理接口的两根信号信解释如下:
MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160ns,最大的正负电平时间无限制。它与TX_CLK和RX_CLK无任何关系。
16 基于FPGA的千兆以太网设计
MDIO:是一根双向的数据线,用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。 MDIO管理接口的数据帧结构顺序如表2.2:
表2.2MDIO管理接口的数据帧结构
PRE READ WRITE
其中,各个数据域的含义如下:
PRE:帧前缀域,为32个连续“1”比特,这个帧前缀域并不是必要的,某些物理层芯片的MDIO操作就没有这个域。
ST:帧开始标志,出现“01”比特表示帧结构开始。
OP:帧操作码,比特“10”表示此帧为一读操作帧,比特“01”表示此帧为一写操作帧。
PHYAD:物理层芯片的地址,5个比特,每个芯片都把自己的地址与这5个比特进行比较,若匹配则响应后面的操作,若不匹配,则忽略掉后面的操作。
REGAD:用来选择物理层芯片的32个寄存器中的某个寄存器的地址。 TA:状态转换域,若为读操作,则第一比特时MDIO为高阻态,第二比特时由物理层芯片使MDIO置“0”。若为写操作,则MDIO仍由MAC层芯片控制,其连续输出“10”两个比特。
DATA:帧的寄存器的数据域,16比特,若为读操作,则为物理层送到MAC层的数据,若为写操作,则为MAC层送到物理层的数据。 IDLE:帧结束后的空闲状态,此时MDIO无源驱动,处于高阻状态,但一般用上拉电阻使其处在高电平,即MDIO引脚需要上拉电阻。
SOManagement Frame Fields PHYAD REGATD A DDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDD Z DATA IDLE Z T P 1…01 1 10 AAAAA 01 AAAAA RRRRZR 0 1…01 1 RRRR1R 0