SMI接口包括两根信号线:MDC和MDIO,通过它,MAC层
芯片
(或其它控制芯片)可以访问
物理层
芯片的寄存器(前面100M物理层芯片中介绍的
寄存器组
,但不仅限于100M物理层芯片,10M物理层芯片也可以拥有这些寄存器),并通过这些寄存器来对物理层芯片进行控制和管理。SMI管理接口如下:
MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160ns,最大的正负电平时间无限制。它与TX_CLK和RX_CLK无任何关系。
MDIO是一根双向的数据线。用来传送MAC层的控制信息和
物理层
的状态信息。MDIO数据与MDC
时钟同步
,在MDC上升沿有效。MDIO管理接口的
数据帧
结构如:
PRE:帧前缀域,为32个连续“1”比特,这帧前缀域不是必要的,某些
物理层
芯片
的MDIO操作就没有这个域。
OP:帧
操作码
,比特“10”表示此帧为一读操作帧,比特“01”表示此帧为一写操作帧。
PHYAD:
物理层
芯片
的地址,5个比特,每个
芯片
都把自己的地址与这5个比特进行比较,若匹配则响应后面的操作,若不匹配,则忽略掉后面的操作。
REGAD:用来选择
物理层
芯片
的32个
寄存器
中的某个寄存器的地址。
TA:状态转换域,若为读操作,则第一比特时MDIO为高阻态,第二比特时由
物理层
芯片使MDIO置“0”。若为写操作,则MDIO仍由MAC层
芯片
控制,其连续输出“10”两个比特。
DATA:帧的
寄存器
的数据域,16比特,若为读操作,则为
物理层
送到MAC层的数据,若为写操作,则为MAC层送到物理层的数据。
IDLE:帧结束后的空闲状态,此时MDIO无源驱动,处高阻状态,但一般用上拉电阻使其处在高电平,即MDIO引脚需要上拉电阻。
每个包含SMI接口的芯片都包含有一组控制寄存器,用户可以通过控制这组寄存器来达到访问挂载在MDIO总线上phy设备。