作者:mobiledu2502857407 | 来源:互联网 | 2023-09-12 03:46
MII(MediaIndependentInterface)是介质无关接口。MII接口定义了在MAC层和物理层之间传送数据和控制状态等信息的接口,它是10M和100
MII(Media Independent Interface )是介质无关接口。
MII接口定义了在MAC层和物理层之间传送数据和控制状态等信息的接口,它是10M和100M兼容的接口,经过扩展后还可以用于1000M 的MAC层与物理层的接口(GMII接口)。
一、MII接口的信号线
MII接口有18个信号线,所有信号名称都是从MAC层侧说明的,主要包括四个部分。一是从MAC层到物理层的发送数据接口,二是从MAC层到物理层的接收数据接口,三是物理层与MAC层之间状态指示接口,四是MAC层和物理层之间数据管理的MDIO/MDC接口。MII接口的定义如图1所示: 发送时钟(TX-CLK)
发送时钟是由PHY芯片提供并传递给MAC层的一个连接时钟信号。TX-CLK信号向协调子层提供了一个参考时钟,协调子层将与该时钟信号同步驱动TXD,TX-EN和TX-ER信号,以进行数据发送和状态控制。TX-CLK工作于25MHz(对于100Mb/s网络操作)。
发送数据(TXD[3:0])
这一组四个引脚用来传递MAC层芯片的半位元组(4位)发送数据,该数据在发送前将被位于介质上的PHY层芯片进行适当的编码。当TX-EN不活动时RS给出的半位元组数据将被忽略。
发送时钟(TX-CLK)
发送时钟是由PHY芯片提供并传递给MAC层的一个连接时钟信号。TX-CLK信号向协调子层提供了一个参考时钟,协调子层将与该时钟信号同步驱动TXD,TX-EN和TX-ER信号,以进行数据发送和状态控制。TX-CLK工作于25MHz(对于100Mb/s网络操作)。
发送数据(TXD[3:0])
这一组四个引脚用来传递MAC层芯片的半位元组(4位)发送数据,该数据在发送前将被位于介质上的PHY层芯片进行适当的编码。当TX-EN不活动时RS给出的半位元组数据将被忽略。
发送使能(TX-EN)
该信号由MAC层芯片给出,用来表明TXD引脚上给出了有效数据,且应用PHY层芯片将其向网络介质上进行发送。
发送错误(TX-ER)
该信号由MAC层芯片给出,用来向PHY层芯片表明所收到的信号流中有编码错误。在TX-EN处于活动状态的时候,如果TX-ER信号在一个或多个TX-CLK周期内处于活动状态,PHY将负责通过生成一个既不是正常数据也不是定界符信息的任意编码,来在介质上生成一个无效的发送帧。发送帧中错误的相对位置不需要保留。其目的是为了保证接收方的PHY总可以检测到帧中有错误。
接收时钟(RX-CLK)
接收时钟是由PHY层芯片提供并向MAC层芯片传送的一个连接时钟信号。RX-CLK信号向PHY层芯片提供了一个参考时钟,PHY芯片用它来同步驱动RXD,RX_DV和RX_ER信号,以向协调子层回送从介质上译码得到的接收数据和/或状态信息。RX_CLK工作于25MHz(对于100Mb/s)或2.5MHz(对于10Mb/s)。该时钟是由PHY芯片从到来的数据流中恢复出来的。
接收数据(RXD[3:0])
这一组四个引脚用于向MAC层芯片传送PHY芯片从介质上译码得到的接收半位元组数据。当RX_EN不活动时给RS的半位元组数据将被忽略。
接收数据有效(RX_DV)
该信号由PHY给出,用于向MAC表明RXD引脚上给出了从介质上译码得到的有效数据。RX_DV必须在第一个SFD半位元组之前给出,且必须在接收帧CRC的最后一个半位元组之后立即撤销(在RX_CLK的下一个上升沿之前)。
接收错误(RX_ER)
该信号由PHY给出,用于向MAC表明在PHY从介质上接收到的数据中检测到了一个编码错误。它可能是一个非法编码或者是其它PHY可以检测到的错误,这些错误不可能被MAC层芯片检测到。在RX_DV处于活动状态的时候,如果RX_ER信号在一个或多个RX_CLK周期内保持活动,则PHY向RS表明在当前接收帧的某处检测到了一个错误。当给出RX_ER信号且RX_DV处于不活动状态时,RXD[3:0]引脚的值表明是出现了错误载波事件还是一个正常的包间间隔情况。错误载波事件是一种由特定介质的PHY检测到的错误,通常情况下是指在介质上检测到了一个错误的帧头。接收帧中错误的相对位置将不被保留。其目的是为了保证接收方的RS/MAC总可以检测到帧中包含的错误。MAC上的MII实现应当在对帧进行重发时用RX_ER指示来驱动TX_ER,否则就需要其他方法来保证远端的接收器总能检测到在帧中包含的错误。一般情况下这出现在多端口中继器或交换机实现中,在其中实现了重发过程,来确保在通过MII向PHY传递之前生一个无效的传输帧。
载波侦听(CRS)
CRS由PHY给出,用于表明发送或接收介质处于活动状态,并且在发送和接收介质都空闲时撤销。应注意的是活动和空闲的定义是基于PHY是否检测到有效数据包。对于某些特定的介质和相对应的PHY而言,即使是在没有数据包时介质上仍有信号(换句话说,帧间空隙有相应的特定信号)。CRS要求在整个冲突期间给出。CRS和TX_CLK或RX_CLK没有同步关系。
上述是以太网工作于半双工模式的信号关系,在MII口工作于全双方式时不会有冲突也不必载波侦听,但为介绍知识的完整性在此加以简单说明。
冲突(COL)
冲突由PHY给出,用于表明在介质上检测到了冲突状态,并且在冲突情况持续保持不变。COL和TX_CLK或RX_CLK没有同步关系。如前所述当MAC与PHY工作于全双工方式该信号状态变得无意义。
管理数据时钟(MDC)
该时钟由MAC层芯片输出,并用于通过MDIO引脚从PHY中同步输入和输出数据。
管理数据输入输出(MDIO)
这是一个可以向PHY设备输入输出串行数据的双向信号,需要在MII之上给出了一个管理实体,一般在MAC芯片中实现,由管理实体给出的控制和配置数据和MDC同步地在MDIO线上给出,并且被PHY同步采样。由PHY给出状态信息,作为对管理实体读取管理寄存器请求的响应,和MDC同步地在MDIO线上给出,并且被管理实体同步采样。
下面给出了简单的MII接口的时序图: 二、常见的MII连接方式
2.1 MAC-to-PHY的MII连接 此种连接最为常见,由于MII接口的信号名称都是从MAC层侧说明的,所以MAC-to-PHY的MII连接最简单,直接将相应信号连接起来即可,如下图所示。此图未显示MDIO/MDC管理接口的连接,若有需要,可根据前述MII接口的定义来连接。 2.2 MAC-to-MAC的MII连接 此种连接方式常见于MAC与具有MII接口的其他芯片(MAC device)的连接,有时端口扩展也可以通过MAC与MAC的MII连接来实现。此种连接方式,比前面所述的MII-to-PHY的MII连接方式要复杂一些,因为连接的是两个MAC,所以要特别注意各信号的含义和方向,不能简单的对接起来。TXC和RXC对于MAC来说方向都是输入,所以要外接时钟信号,工作于100MHz时需要外接25MHz的时钟信号,而10MHz时需要外接2.5MHz的时钟信号。TXD[3:0]和RXD[3:0]需要交叉连接起来。TXER和RXER对现在很多芯片来说都可以作简单处理,而且有的芯片已省去了该信号。根据前面所述的CRS和COL的定义,将两个TXEN信号通过一个或门即可得到CRS信号,通过一个与门即可得到COL信号。MAC-to-MAC的MII连接,如下图所示。 图5所示的连接方式可以用于全双工和半双工,如果MII口只工作在全双工时不会有冲突也不必载波侦听,则其连接关系要比图5简单,是图5的一种特殊情况。
全双工模式下MAC-to-MAC MII 连接,如图6所示,由于不会有冲突,COL直接接地即可,而CRS可接自发端的TXEN信号。