本文主要分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时本文也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式下的设计方法。
1. MII接口分析
MII接口提供了MAC与PHY之间、PHY与STA(Station Management)之间的互联技术,该接口支持10Mb/s与100Mb/s的数据传输速率,数据传输的位宽为4位。
提到MII,就有可能涉及到RS,PLS,STA等名词术语,下面讲一下他们之间对应的关系。
所谓RS即Reconciliation sublayer,它的主要功能主要是提供一种MII和MAC/PLS之间的信号映射机制。它们(RS与MII)之间的关系如下图:
图1
MII接口的Management Interface可同时控制多个PHY,802.3协议最多支持32个PHY,但有一定的限制:要符合协议要求的connector特性。所谓Management Interface,即MDC信号和MDIO信号。
前面已经讲过RS与PLS的关系,以及MII接口连接的对象。它们是通过MII接口进行连接的,示意图如下图。由图可知,MII的Management Interface是与STA(Station Management)相连的。
MII接口支持10Mb/s以及100Mb/s,且在两种工作模式下所有的功能以及时序关系都是一致的,唯一不同的是时钟的频率问题。802.3要求PHY不一定一定要支持这两种速率,但一定要描述,通过Management Interface反馈给MAC。
图2
下面将详细介绍MII接口的信号定义,时序特性等。由于MII接口有MAC和PHY模式,因此,将会根据这两种不同的模式进行分析,同时还会对RMII/SMII进行介绍。
1.1 MII接口信号定义
MII接口可分为MAC模式和PHY模式,一般说来MAC和PHY对接,但是MAC和MAC也是可以对接的。
以前的10M的MAC层芯片和物理层芯片之间传送数据是通过一根数据线来进行的,其时钟是10M,在100M中,如果也用一根数据线来传送的话,时钟需要100M,这会带来一些问题,所以定义了MII接口,它是用4根数据线来传送数据的,这样在传送100M数据时,时钟就会由100M降低为25M,而在传送10M数据时,时钟会降低到2.5M,这样就实现了10M和100M的兼容。
MII接口主要包括四个部分。一是从MAC层到物理层的发送数据接口,二是从物理层到MAC层的接收数据接口,三是从物理层到MAC层的状态指示信号,四是MAC层和物理层之间传送控制和状态信息的MDIO接口。
MII接口的MAC模式定义:
MII接口PHY模式定义:
1.2 MII接口时序特性
在MII接口中,TX通道参考时钟是TX_CLK,RX通道参考时钟是RX_CLK,802.3-2005定义了它们之间的关系。
图3 Transmit signal timing relationships at the MII
由图3可知,即The clock to output delay shall be a min of 0 ns and a max of 25 ns,参考时钟沿是上升沿。很明显,该Spec只对TX通道上MAC这一侧的发送特性作了定义,而对TX通道PHY那一侧的接收特性并没有定义。IC Vendor可在TX通道那一侧的PHY的接收特性作适当调整,只要最终的时序满足TX通道上MAC这一侧的发送特性就可以。
图4 Receive signal timing relationships at the MII
由图4可知,The input setup time shall be a minimum of 10 ns and the input hold time shall be a minimum of 10 ns,参考时钟沿是上升沿。很明显,该Spec只对RX通道上MAC这一侧的接收特性作了定义,而对RX通道PHY那一侧的发送特性并没有定义。IC Vendor可在RX通道那一侧的PHY的发送特性作适当调整,只要最终的时序满足RX通道上MAC这一侧的接收特性就可以。
1.3 MII信号功能特性
<1>: TX_CLK (transmit clock),TX_CLK (Transmit Clock)是一个连续的时钟信号(即系统启动,该信号就一直存在),它是TX_EN, TXD, and TX_ER(信号方向为从RS到PHY)的参考时钟,TX_CLK由PHY驱动TX_CLK的时钟频率是数据传输速率的25%,偏差+-100ppm。例如,100Mb/s模式下,TX_CLK时钟频率为25MHz,占空比在35%至65%之间。
<2>:对于同样的RX_CLK,它与TX_CLK具有相同的要求,所不同的是它是RX_DV, RXD, and RX_ER(信号方向是从PHY到RS)的参考时钟。RX_CLK同样是由PHY驱动,PHY可能从接收到的数据中提取时钟RX_CLK,也有可能从一个名义上的参考时钟(e.g., the TX_CLK reference)来驱动RX_CLK
<3>:TXD (transmit data),TXD由RS驱动,同步于TX_CLK,在TX_CLK的时钟周期内,并且TX_EN有效,TXD上的数据被PHY接收,否则TXD的数据对PHY没有任何影响。
图5
<4>:TX_ER (transmit coding error),TX_ER同步于TX_CLK,在数据传输过程中,如果TX_ER有效超过一个时钟周期,并且此时TX_EN是有效的,则数据通道中传输的数据是无效的,没用的。注:当TX_ER有效并不影响工作在10Mb/s的PHY或者TX_EN无效时的数据传输。在MII接口的连线中,如果TX_ER信号线没有用到,必须将它下拉接地。
图6
<5>:RX_DV (Receive Data Valid),RXD_DV同步于RX_CLK,被PHY驱动,它的作用如同于发送通道中的TX_EN,不同的是在时序上稍有一点差别:为了让数据能够成功被RS接收,要求RXD_DV有效的时间必须覆盖整个FRAME的过程,即starting no later than the Start Frame Delimiter (SFD) and excluding any End-of-Frame delimiter,如下图7。
图7
<6>:RXD (receive data),RXD由RS驱动,同步于RX_CLK,在RX_CLK的时钟周期内,并且RX_DV有效,RXD上的数据被RS接收,否则RXD的数据对RS没有任何影响。While RX_DV is de-asserted, the PHY may provide a False Carrier indication by asserting the RX_ER signal while driving the value <1110> onto RXD<3:0>。
图8
<7>:RX_ER (receive error),RX_ER同步于RX_CLK,其在RX通道中的作用类似于TX_ER对于TX通道数据传输的影响。
图9
<8>:CRS (carrier sense),CRS不需要同步于参考时钟,只要通道存在发送或者接收过程,CRS就需要有效。The behavior of the CRS signal is unspecified when the duplex mode bit 0.8 in the control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation,即半双工模式信号有效,全双工模式信号无效。
<9>:COL (collision detected),COL不需要同步于参考时钟。The behavior of the COL signal is unspecified when the duplex mode bit0.8 in the control register is set to a logic one(自动协商禁止,人工设为全双工模式), or when the Auto-Negotiation process selects a full duplex mode of operation。即半双工模式信号有效,全双工模式信号无效。
图10
1.4 MII的管理MDIO接口
MDIO接口包括两根信号线:MDC和MDIO,通过它,MAC层芯片(或其它控制芯片)可以访问物理层芯片的寄存器(前面100M物理层芯片中介绍的寄存器组,但不仅限于100M物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。MDIO管理接口如下:
MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160ns,最大的正负电平时间无限制。它与TX_CLK和RX_CLK无任何关系。
MDIO是一根双向的数据线。用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。MDIO管理接口的数据帧结构如:
图11 MDIO管理接口的数据帧结构
帧结构各域的含义如下:
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引脚需要上拉电阻。
MDIO数据帧的时序关系如下:
图12 MDIO数据帧的时序关系
MII接口也有一些不足之处,主要是其接口信号线很多,发送和接收和指示接口有14根数据线(不包括MDIO接口的信号线,因为其被所有MII接口所共享),当交换芯片的端口数据较多时,会造成芯片的管脚数目很多的问题,这给芯片的设计和单板的设计都带来了一定的问题。为了解决这些问题,人们设计了两种新的MII接口,它们是RMII接口(Reduced MII接口)和SMII接口(StreamMII接口)。
这两种接口都减少了MII接口的数据线,不过它们一般只用在以太网交换机的交
换MAC芯片和多口物理层芯片中,而很少用于单口的MAC层芯片和物理层芯片中。RMII接口和SMII接口都可以用于10M以太网和100M以太网,但不可能用于1000M以太网,因为此时时钟频率太高,不可能实现。
1.5 Electrical Character
MII接口的电气特性可以分为Driver characteristics和Receiver characteristics。
针对于Driver characteristics的DC电气特性而言,Spec要求所有MII接口The high (one) logic level output potential Voh shall be no less than 2.40 V at an output current Ioh of –4.0 mA. The low (zero) logic level output potential Vol shall not be greater than 0.40 V at an output current IoLof 4.0 mA。这个就是LVTTL常用的逻辑标准。
针对于Driver characteristics的AC电气特性而言,Drivers must also meet certain ac specifications in order to ensure adequate signal quality for electrically long point-to-point transmission paths. The ac specifications shall guarantee the following performance requirements.
The initial incident potential change arriving at the receiving end of a point-to-point MII signal path plus its reflection from the receiving end of the path must switch the receiver input potential monotonically from a valid high (one) level to Vil ≤ Vil(max)–200 mV, or from a valid low (zero) level to Vih ≥ Vih(min) + 200 mV. Subsequent incident potential changes arriving at the receiving end of a point-to-point MII signal path plus their reflections from the receiving end of the path must not cause the receiver input potential to reenter the range Vil(max) – 200 mV < Vi < Vih(min) + 200 mV except when switching from one valid logic level to the other. Such subsequent incident potential changes result from a mismatch between the characteristic impedance of the signal path and the driver output impedance。
2.RMII接口分析
2.1 RMII接口信号定义
RMII接口(Reduced MII接口)是简化的MII接口。它也分为MAC模式和PHY模式。
RMII接口接收、发送和控制的同步参考时钟REF_CLK是由外部时钟源提供的50MHz信号。这与原来的MII接口不同,MII接口中发送和接收的时钟是分开的,且都是由物理层芯片提供给MAC层芯片。
这里需要注意的是由于数据接收时钟是由外部晶振提供而不是由载波信号提取的,所以在物理层芯片内的数据接收部分要设计一个FIFO,用来协调两个不同的时钟,在发送接收的数据时提供缓冲。物理层芯片的发送部分则不需要一个FIFO,它直接将接收到的数据发送出去就可以了。
CRS_DV是MII中的RXDV 和CRS(Carrier_Sense)两个信号合并而成,当介质不空闲时CRS_DV以和REF_CLK相异步的方式给出。当CRS比RX_DV早结束时(即载波消失而队列中还有数据要传输时),就会出现CRS_ DV在半位元组的边界以25MHz(在100MHz模式下)或2.5MHz(在10MHz模式下)的频率在0、1之间来回切换。因此,MAC能够从CRS_ DV中精确的恢复出RX_DV和CRS,见图14。
RMII接口的MAC模式定义:
RMII接口PHY模式定义:
2.2 RMII接口时序特性
RMII接口的发送部分包括TX_EN(发送使能)和TXD[1:0](发送数据)两类信号线,它们与时钟CLK_REF同步。当MAC层有数据要发送时,TX_EN变为有效,数据便出现在TXD[1:0]上。对于100M速率时,物理层芯片在每个时钟周期都要采样TXD[1:0]上的数据,而在10M速率时,物理层芯片要每隔10个时钟周期采样TXD[1:0]上的数据,而MAC层发送的每个数据会在TXD[1:0]上保留10个周期。发送部分的波形图如下
图13 RMII发送部分的时序关系图
RMII接口的接收部分包括CRS_DV(载波和数据有效)、RXD[1:0](接收数据)、RX_ER(接收出错)三类信号线,其中RXD[1:0]和RX_ER与时钟CLK_REF同步,而CRS_DV信号与时钟是异步的。当物理层接收到有效的载波信号后,CRS_DV信号变为有效,此时如果FIFO中还没有数据,则它会送出全零的数据给RXD[1:0],然后当FIFO中填入有效的数据帧,数据帧的开头是“1010......”交叉的前导码,所以在RXD[1:0]上会出现“01”的比特,MAC层芯片会检测这一过程,从而开始一帧数据的接收。当外部载波信号消失后,CRS_DV会变为无效,但如果FIFO中还有数据要发送时,CRS_DV在下一周期又会变为有效,然后再无效再有效,直到FIFO中数据发送完为止。在接收过程中如果出现无效的载波信号或无效的数据编码,则RX_ER会变为有效,表示物理层芯片接收出错。在100M以太网速率中,MAC层芯片要每个时钟采样一次RXD[1:0]上的数据,在10M以太网速率中,MAC层芯片则每10个时钟周期采样一次RXD[1:0]上的数据,此时物理层芯片接收的每个数据会在RXD[1:0]上保留10个时钟周期。RMII接收部分的波形图如下
图14 接收部分时序关系图
3.SMII接口分析
3.1 SMII接口信号定义
SMII(Serial MII)接口又叫串行MII接口。它包括TXD、RXD、SYNC三类信号线。另外所有的端口共用一个时钟信号CLOCK,此时钟信号是125MHz的,前三类信号都与此时钟同步。为什么用125MHz,是因为数据线里面会传送一些控制信息,后面会有介绍。SYNC是数据收发的同步信号,它每10个时钟周期置1次高电平,指示同步。TXD和RXD上收发的数据和控制信息,它们以10个比特为一组,以SYNC 为高电平来指示一组数据的开始,每一组的数据的含义见后面。可以看出,SMII接口所需的信号线每端口只有3根,比RMII接口(7根)还要少,比MII接口(14根)就更少了。
SMII接口的MAC模式定义:
3.2 SMII接口时序特性
发送部分的波形图如下:
图15 发送部分的时序关系
从波形中可以看出,在SYNC变高后的10个时钟周期内,TXD上依次输出一组10比特的数据即TX_ER、TX_EN、TXD[0:7]。这些数据和控制信息的含义与MII接口中的含义相同,物理层芯片在接收到这些数据和控制信息后做与MII接口相同的处理。在100M速率中,每一组的内容都是变换的,在10M速率中,每一组的数据则要重复10次,物理层芯片采样任何一组都可以。
接收部分的波形图如下:
图16 接收部分的时序关系图
从波形中可以看出,在SYNC变高后的10个时钟周期内,RXD上依次输出一组10比特的数据即CRS、RX_DV、RXD[0:7]。其中CRS和RX_DV的含义与MII接口中的相同。RXD[0:7]的含义则与RX_DV有关,当RX_DV为有效时(为高时),RXD[0:7]上为物理层接收的数据。当RX_DV为无效时(为低时),RXD[0:7]上的数据反映的是物理层状态的信息。其详细内容如下表所示:
图17 SMII接口接收部分信息编码表
当以太网的速率是100M时,每一组的数据都是变化的,当以太网的速率是
10M时,每一组的数据则要重复10次,MAC层芯片只要采样其中任何一次就可以了。对其中的信号,MAC层芯片从SMII接口中获得的信息的处理方式与MII接口的处理方式是一样的。
4. GMII 接口分析
GMII接口提供了8位数据通道,125MHz的时钟速率,从而1000Mbps的数据传输速率。下图定义了RS层的输入输出信号以及STA的信号:
图18 Reconciliation Sublayer (RS) and STA connections to GMII
下面将详细介绍GMII接口的信号定义,时序特性等。由于GMII接口有MAC和PHY模式,因此,将会根据这两种不同的模式进行分析,同时还会对RGMII/TBI/RTBI接口进行介绍。
4.1 GMII接口信号定义
GMII接口可分为MAC模式和PHY模式,一般说来MAC和PHY对接,但是MAC和MAC也是可以对接的。
在GMII接口中,它是用8根数据线来传送数据的,这样在传送1000M数据时,时钟就会125MHz。
GMII接口主要包括四个部分。一是从MAC层到物理层的发送数据接口,二是从物理层到MAC层的接收数据接口,三是从物理层到MAC层的状态指示信号,四是MAC层和物理层之间传送控制和状态信息的MDIO接口。
GMII接口的MAC模式定义:
注意在表7中,信号GTX_CLK对于MAC来说,此时是Output信号,这一点和MII接口中的TX_CLK的Input特性不一致。
GMII接口PHY模式定义:
表8
注意在表8中,信号GTX_CLK对于PHY来说,此时是Input信号,这一点和MII接口中的TX_CLK的Output特性不一致。
4.2 GMII接口时序特性
在GMII接口中,TX通道参考时钟是GTX_CLK,RX通道参考时钟是RX_CLK,802.3-2005定义了它们之间的关系。
图19 GMII signal timing at receiver input
由图19可知,Spec只定义了TX通道和RX通道中接收端Setup时间和Hold时间。很明显,即该Spec只对TX通道上PHY这一侧的接收特性作了定义,而对TX通道MAC那一侧的发送特性并没有定义。IC Vendor可在TX通道那一侧的MAC的发送特性作适当调整,只要最终的时序满足TX通道上PHY这一侧的接收特性就可以。
同样的道理,该Spec只对RX通道上MAC这一侧的接收特性作了定义,而对RX通道PHY那一侧的发送特性并没有定义。IC Vendor可在RX通道那一侧的PHY的发送特性作适当调整,只要最终的时序满足RX通道上MAC这一侧的接收特性就可以。
图20 Setup和Hold Time的值
从图20可以看出,这里有两组setup和hold时间。其中第一组Spec则是根据图21给定的测试电路定义的,即该Spec未考虑PCB上传输线的不匹配等影响。而第二组Spec则是定义了receiver at its input pins的时间要求,它考虑了PCB上传输线的长度不匹配等影响。一般IC Vendor需要按照第二组Spec来设计它们的IC。
(Two sets of setup and hold time parameters are specified in Fig. 20. The first set, tSETUP and tHOLD, applies to the source of a synchronous GMII signal and its clock and is measured using the “GMII Setup and Hold Time Test Circuit,” which has transmission lines with matched propagation delays in the “clock” and“signal” paths. The second set, tSETUP(RCVR) and tHOLD(RCVR), applies to the GMII receiver and specifies the minimum setup and hold times available to the GMII receiver at its input pins. The difference between the two sets of setup and hold time parameters provides margin for a small amount of mismatch in the propagation delays of the “clock” path and the “signal” paths in GMII applications)。
图21 GMII接口Setup和Hold Time测试电路
4.3 GMII信号功能特性:
<1>: GTX_CLK (transmit clock),GTX_CLK (Transmit Clock)是一个连续的时钟信号(即系统启动,该信号就一直存在),它是TX_EN, TXD, and TX_ER(信号方向为从RS到PHY)的参考时钟,PHY端在信号的上升沿采样,GTX_CLK由MAC驱动。GTX_CLK的时钟频率是数据传输速率的12.5,即125MHz。
<2>:对于同样的RX_CLK,它与TX_CLK具有相同的要求,所不同的是它是RX_DV, RXD, and RX_ER(信号方向是从PHY到RS)的参考时钟,MAC端在时钟的上升沿采样。RX_CLK是由PHY驱动,PHY可能从接收到的数据中提取时钟RX_CLK,也有可能从一个名义上的参考时钟(e.g., the TX_CLK reference)来驱动RX_CLK
<3>:GMII接口的发送时序如图22所示,接收时序如图23所示,至于其它信号的功能特性以及在数据传输过程中,不同信号的逻辑变化所代表的意义,这里不再描述,大体上和“MII信号功能特性”一节中描述类似,读者可以参阅802.3-3005的Spec。
图22 GMII信号发送时序
图23 GMII信号接收时序
4.4 GMII的管理MDIO接口:
关于GMII的管理MDIO接口,这里也不再描述,它在硬件设计上同MII的管理MDIO接口一节的描述。
4.5 Electrical Character
GMII接口的电气特性可以分为DC characteristics和AC characteristics。
针对于DC电气特性而言,All GMII drivers and receivers shall comply with the dc parametric attributes specified in Table 35–7. The potential applied to the input of a GMII receiver may exceed the potential of the receiver’s power supply (i.e., a GMII driver powered from a 3.6 V supply driving VOH into a GMII receiver powered from a 2.5 V supply). Tolerance for dissimilar GMII driver and receiver supply potentials is implicit in these specifications.
针对于AC电气特性而言,The GMII ac electrical characteristics are specified in a manner that allows the implementor flexibility in selecting the GMII topologies its devices support and the techniques used to achieve the specified characteristics.
All GMII devices are required to support point-to-point links. The electrical length of the circuit board traces used to implement these links can be long enough to exhibit transmission line effects and require some form of termination. The implementor is allowed the flexibility to select the driver output characteristics and the termination technique and components to be used with its drivers for point-to-point links. Implementors may elect to support other GMII topologies in addition to the point-to-point topology and may specify different termination techniques and components for each supported topology.
Since the output characteristics and output voltage waveforms of GMII drivers depend on the termination technique and the location of the termination components, the ac output characteristics of GMII drivers are not explicitly specified. Rather, the ac characteristics of the signal delivered to a GMII receiver are specified. These characteristics are independent of the topology and termination technique and apply uniformly to all GMII applications.
5. RGMII接口分析
5.1 RGMII接口信号定义:
RGMII接口(Reduced GMII接口)是简化的GMII接口。它也分为MAC模式和PHY模式。
RGMII接口的MAC模式定义:
表9
RGMII接口的PHY模式定义:
表10
由表9~表10可知,RGMII接口相对于GMII接口,在TXD和RXD上总共减少了8根数据线。
5.2 RGMII接口时序特性:
图24 RGMII接口TX通道MAC侧发送特性
虽然RGMII接口中,信号线减半,同时GTX_CLK和RX_CLK还是125MHz,为了达到1000Mbit的传输速率,TXD和RXD信号线上在时钟的上升沿发送GMII接口中的TXD[3:0]/RXD[3:0],在时钟的下降沿发送GMII接口中TXD[7:4]/RXD[7:4],并且信号TX_CTL反映了TX_EN和TX_ER的状态,即在GTX_CLK上升沿发送TX_EN,下降沿发送TX_ER。同样的道理适用于信号RX_CTL,它反映了RX_EN和RX_ER的状态,即在RX_CLK上升沿发送RX_EN,下降沿发送RX_ER。它们具体的关系。具体时序特性如图24~图25。
图25 RGMII接口RX通道PHY侧发送特性