MII与RMII接口总结1MII接口MII接口称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道,每条信道都有自己的数据、时钟和控制信号。MII接口支持10M和100M数据传输速率;10M速率时,时钟频率为2.5M;100M速率时,时钟频率为25M。MII数据接口总共需要18个信号,其中SMI管理接口使用两个信号:一个是时钟信号MDC,另一个是数据信号MDIO;其余的16个信号用于双向传输数据,传输数据位宽4bit。MII接口分为MAC模式和PHY模式;在FPGA设计时,MAC模式即FPGA作为MAC,控制外部的PHY芯片;PHY模式正好相反。下表为MAC模式下,引脚信号说明;信号名位宽(bit)接口属性说明TX_CLK1input为一个连续的时钟信号(系统启动后就一直存在),是信号TXD、TX_ER和TX_EN的参考时钟,由PHY产生,TX_CLK的频率为数据传输速率的1/4TXD4output在TX_CLK时钟周期内,TX_EN有效时,数据被PHY接收,否则对PHY没有影响TX_ER1output在数据传输过程中,如果TX_ER有效超过一个时钟周期,并且TX_EN有效,则PHY会发出一个或多个错误数据,这些错误数据不是MAC发送的有效数据帧的某些数据或数据帧的定界符数据;TX_EN1output高电平有效,由MAC驱动,用于表示当前数据通道上传输的数据为有效数据;RX_CLK1inputRX_CLK与TX_CLK时钟频率相同,也由PHY产生;为RXD、RX_DV和RX_ER的参考时钟RXD4input在RX_CLK时钟周期内,RX_DV有效,则RXD为有效数据RX_DV1input高电平有效,由PHY驱动,作用相同于TX_EN;RX_ER1input高电平有效,当PHY检测到发送数据有编码错误或MAC无法检测的错误时,使能RX_ER通知协调子层,当RX_DV无效时,此信号不会对协调子层影响;RX_ER还有个用途就是在RX_DV无效时,PHY使能RX_ER一个或多个时钟周期表示有错误载波在通道上,从而在RXD上传输特定是数据值;COL1input冲突检测信号,不需要同步于参考时钟,由PHY根据通道情况输出,只有PHY在半双工模式下有效CRS1input不需要同步于参考时钟,只要通道上存在发送和接收过程,CRS就有效,由PHY输出;CRS只有PHY工作在半双工模式下有效;MDC1outputSMI接口的随路时钟MDIO1I/OSMI双向数据收发,实现对PHY配置寄存器访问MII接口的主要缺点就是信号线很多,完成数据的发送和接收需要14根数据线,故人们设计了新的RMII接口,大大减少了MII接口的数据线。2RMII接口RMII接口(ReducedMediaIndependantInterface),简化媒体独立接口,是简化的MII接口,在数据的收发上比MII接口少了一倍的信号线。RMII接口接收、发送和控制的同步参考时钟REF_CLK是50M,由外部时钟源或MAC提供时钟信号;这与MII接口不同,MII接口的数据发送和接收使用的时钟信号是分开的,且都是由PHY提供。RMII接口支持10M和100M的数据收发速率,在100M数据速率时,在每个时钟周期采样TXD或RXD上的数据信号;在10M数据速率时,要每隔10个时钟周期采样TXD或RXD上的数据信号。RMII数据接口总共需要10个信号,其中SMI管理接口使用两个信号:一个是时钟信号MDC,另一个是数据信号MDIO;其余的8个信号用于双向传输数据,传输数据位宽2bit。RMII接口也分为MAC模式和PHY模式,类似于MII接口;下表为PHY模式下,引脚信号说明;表1RMII接口信号说明信号名位宽(bit)接口属性说明CLK_REF1input收发数据共用的参考时钟,50MTXD2input时钟周期内,在TX_EN有效时,TXD数据有效TX_EN1input高电平有效,用来表示TXD传输的数据为有效RXD2output在时钟周期内,CRS_DV有效时,且MAC检测到接收数据中数据帧交叉前导码‘01’bit时就认为RXD上的数据为有效数据帧的起始,对数据进行采集,否则认为RXD是无效数据,不采集;RX_ER1output数据发送错误标识信号;若发送数据RXD有错,则有效,由PHY输出CRS_DV1output载波与数据有效信号,为MII接口中的CRS和RXDV合并,与时钟信号异步;MDC1inputSMI接口的随路时钟MDIO1I/OSMI双向数据收发,实现对PHY配置寄存器访问3MII接口时序MAC模式下,MII接口时序图如图3-1和图3-2所示。图3-1MII接收数据时序图。在接收数据时,RXD、RX_DV和RX_ER同步于时钟RXC,由PHY输出;RX_DV为高电平时有效,表示RXD上传输的数据有效,MAC根据RX_DV有效,采集RXD数据;CRS由PHY检测通道上有无数据传输,无论收发过程,只要通道上有数据传输,则CRS信号变为高电平。在PHY从通道上接收数据流时,当出现无效的数据编码时,就会RX_ER变为高电平,表示PHY从通道上接收数据时出错。图3-2MII发送数据时序图在发送数据时,TXC时钟信号由PHY产生,TX_EN、TXD和TX_ER同步于时钟TXC,由MAC输出;TX_EN为高电平时,表示TXD上传输的数据为有效数据,PHY根据TX_EN有效,采集TXD数据;CRS信号如接收数据描述中一致;4RMII接口时序PHY模式下,RMII接口时序图,如图4-1和图4-2所示时序图说明:(1)Preamble:数据帧的前导码55(010101….);(2)SFD:数据帧的起始位置D5;(3)Data:数据帧中有效数据;图4-1RMII发送数据时序图在PHY模式下,PHY会从接收通道的数据流中恢复一个时钟信号,与本地时钟REF_CLK会有差异,PHY会使用FIFO消除时钟差;FIFO最少能缓存20bit数据,并在FIFO存储有效数据半满后才会把数据转发到RXD。在PHY模式下,RMII接口的发送部分包括CRS_DV、RXD和RX_ER;其中RXD和RX_ER与参考时钟信号REF_CLK同步;而CRS_DV信号与REF_CLK是异步的;当PHY接收通道检测到载波时,CRS_DV信号变为有效。当CRS_DV有效,接收FIFO中没有正确译码出的数据帧需发送时,RXD总线保持为0;当FIFO中有数据帧需要发送时,由于数据帧的开头是55前导码,故总线上会有‘0101’的数据流,MAC检测到时开始一帧数据的接收。当外部载波信号消失后,CRS_DV变为无效,但仍有数据帧需要发送时,CRS_DV会在下一个时钟周期变为有效,然后再无效再有效;在100Mbit/s(10Mbit/s)时,CRS_DV以25MHz(2.5MHz)的频率在0和1之间跳转,直到数据帧发送完成;图4-2RMII接收数据时序图在PHY模式下,RMII接收信号包括TX_EN和TXD[1:0];与时钟信号REF_CLK同步;TX_EN有效时,TXD上的数据有效,PHY采集接收;对于100M速率时,PHY需要在每个时钟周期都采集TXD上的数据,而在10M速率时,PHY每隔10个时钟周期采集TXD上的数据;相对应的MAC发送的每个数据也会在TXD上保留10个时钟周期。