以太网中MDIO协议工作原理与应用
以太网中MDIO协议工作原理与应用
MDIO(SMI)协议是连接以太网MAC和PHY层的关键通信协议,它通过两根信号线实现数据传输和设备管理。本文将详细介绍MDIO协议的工作原理、信号时序以及Clause-22和Clause-45两个版本的差异,帮助读者深入理解这一基础协议。
MDIO协议概述
MDIO协议(SMI协议)是一种类似于I2C的通信协议,但其通信方式有所不同。SMI包含两根信号线:一个MDC时钟线和一个MDIO双向传输的数据线。MDIO最早在IEEE 802.3的第22卷中定义,后来在第45卷中又定义了增强版本的MDIO。该协议主要用于以太网的MAC和PHY层之间,使MAC层器件能够通过读写寄存器来实现对PHY层器件的操作与管理。
在MDIO协议中,产生MDC时钟的设备被称为STA(Station Management Entity),而从设备则被称为MMD(MDIO Management Device)。通常,STA是MAC层器件的一部分,而MMD是PHY层器件的一部分。
MDIO接口特性
MDIO接口包括两条线:MDIO和MDC。其中,MDIO是双向数据线,而MDC是由STA驱动的时钟线。MDC时钟的最高速率一般为2.5MHz,且MDC可以是非固定频率,甚至可以是非周期的。MDIO接口只会在MDC时钟的上升沿进行采样,类似于I2C接口。
协议版本演进
MDIO接口最初由IEEE RFC802.3中的22号条款定义。在最初的定义中,一个单独的MDIO接口可以访问32个不同的PHY设备中的32个寄存器,这些寄存器提供状态和控制信息,例如连接状态、传输速度能力、当前选择的传输速度、低压消耗时的下电情况、全双工还是半双工、自动协商、错误提示以及反馈信息等。
为了满足10G以太网设备的普及发展,在IEEE 802.3ae的45号条款中为MDIO接口提供了额外的规范:
- 能够通过32个端口访问32个不同设备的65536个寄存器;
- 为访问10G以太网提供额外的OP码和ST码,从而可以直接访问寄存器地址;
- 端到端的报错信号;
- 环回模式控制;
- 低压电气标准。
Clause-22与Clause-45对比
比较Clause-22和Clause-45两个版本的差异,我们可以发现Clause-22只有读写两个帧格式,因此单帧即可完成读或写操作。而增强版Clause-45增加了Address帧和Post-read-inc-address(自动增量读),在向下兼容Clause-22的同时,又支持自动增量读操作以及访问寄存器由5位扩展到16位。Clause-45需要两帧完成读或写操作,也就是说STA要先发送Address帧再发送Write or Read or Post-read-inc-address帧。
其中ST域段用来区分是Clause-22(ST=00)还是Clause-45 (ST=01)。
Clause-45各域段解释
- TA (Turn Around):2位转向,在读操作中,MDIO在此时由MAC驱动改为PHY驱动,在第一个TA位,MDIO引脚为高阻状态,第二个TA位,PHY将MDIO引脚拉低,准备发送数据,MAC端此两位设为高阻,若MAC检测到第二位非低电平,表明对方无应答,可通过这个判断是否读取失败;在写操作中,不需要MDIO方向发生变化,MAC固定输出2’b10。
MDIO时序
MDIO时序显示,PHY芯片在MDC上升沿读取数据,并在上升沿给出数据。因此MAC端须在MDC下降沿给出数据,而读取数据在上升沿、下降沿均可。