虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

您现在的位置是:首页 > 技术阅读 >  以太网系列之“SMI接口”

以太网系列之“SMI接口”

时间:2023-06-30

本文主要介绍以太网的SMI接口,包括帧格式、操作流程等。


SMI:Serial Management Interface,也叫MDIO BUS。MDIO是一个以太网控制器的传输协议,广泛用于以太网控制器和PHY之间的数据通讯。

MDIO(Management Data Input/Output),管理数据输入输出总线。它是由IEEE802.3定义的以太网行业标准,它承载着MAC层和物理层通信的重任。MDIO接口包括两根信号线:时钟线MDC,数据线MDIO(双向),MAC层芯片(或其他控制芯片)可以通过它们访问物理层芯片的寄存器,并通过这些寄存器来对物理芯片进行控制和管理。

MDC(Management Data Clock):管理接口的时钟,是一个非周期信号,信号的最小周期为400ns(最快2.5MHz),最小正电平时间和负电平时间为160ns,最大正负电平时间无限制。

MDIO(Management Data Input/Output):是双向的数据线,用来传送MAC层的控制信息和物理层的状态信息。它与MDC时钟同步,在MDC上升沿有效。




1、MDIO帧格式


  • PRE:帧前缀域,为32个连续“1”比特,这帧前缀域不是必需的,某些物理层芯片的MDIO操作就没有这个域。

  • ST:帧开始标识码,为“01”。

  • OP:帧操作码(读写操作),比特“10”表示此帧为一读操作帧,比特“01”表示此帧为一写操作帧。

  • PHYAD:PHY芯片的地址,5个比特,每个芯片都把自己的地址与这5个比特进行比较,若匹配则响应后面的操作,若不匹配,则忽略掉后面的操作。一个系统最多联31个PHY(地址0为保留)。

  • REGAD:用来选择物理层芯片的32个寄存器中的某个寄存器的地址。一个PHY上最多32个寄存器地址(可以使用shadow value技术,访问更多的寄存器)。

  • TA:状态转换域,若为读操作,则第一比特时MDIO为高阻态,第二比特时由物理层芯片使MDIO置“0”。若为写操作,则MDIO仍由MAC层芯片控制,其连续输出“10”两个比特。

  • DATA:帧的寄存器的数据域,16比特,若为读操作,则为物理层送到MAC层的数据,若为写操作,则为MAC层送到物理层的数据。

  • IDLE:帧结束后的空闲状态,此时MDIO无源驱动,处于高阻状态,但一般用上拉电阻使其处在高电平,即MDIO引脚需要上拉电阻。


2、MDIO操作时序



MDIO的工作流程如下:

  • Preamle(PRE):在没有传输数据的空闲状态时,数据线MDIO处于高阻态(由于外部上拉,故一直为1)。

  • Start of Frame(ST):MAC驱动MDIO线,出现一个2bit的开始标识码(01)。

  • Operation Code(OP):MAC驱动MDIO线,出现一个2bit数据来标识是读操作(10)还是写操作(01)。

  • PHY Address(PHYAD):MAC驱动MDIO线,出现一个5bit数据标识PHY的地址,对应该地址的PHY芯片会响应。

  • Reg Address(REGAD):MAC驱动MDIO线,出现一个5bit的PHY芯片寄存器地址(需要读/写的地址)。

  • Turnaround(TA):写操作的话,MAC驱动MDIO线,出现10;读操作的话,MDIO pin of MAC must be put in high-impedance state,在第二个周期,PHY驱动MDIO线,出现0。

  • Data,MDIO串行读出/写入PHY芯片寄存器的数据(16bit)。

  • 最后MDIO恢复成空闲状态(IDLE),同时MDIO进入高阻状态。