打工人日报#20251101
打工人日报#20251101
SMI(MDC/MDIO)总线接口 介绍
SMI(Serial Management Interface,串行管理接口),通常指通过 MDC(Management Data Clock,管理数据时钟)和 MDIO(Management Data Input/Output,管理数据输入 / 输出)两根线实现的总线接口,主要用于管理和配置以太网物理层设备(PHY)
接口组成
- MDC(Management Data Clock):即管理数据时钟线。由 MAC 输出,为 MDIO 提供时钟信号,是非周期性的,不要求提供固定频率的时钟,时钟频率范围为 DC-2.5MHz,最小的时钟周期为 400ns,其上升沿用于触发 MDIO 的读写操作。
- MDIO(Management Data Input/Output):即管理数据输入输出线,是双向的数据线。用于在 MAC 和 PHY 之间传输控制信息和状态信息,实现对 PHY 寄存器的读 / 写操作,只支持一个 MAC 连接最多 32 个 PHY 的连接方式,MAC 作为 master,PHY 作为 slave。
通信协议
- 数据传输协议:数据格式定义在 IEEE 802.3 以太网标准中,具体如下:
- 前导码(Preamble):32bits,全为 1,用于标识数据帧的开始,使接收方能够同步到数据传输的起始位置。
- 开始位(Start):2bits,固定为 01,表示数据帧开始。
- 操作码(OP Code):2bits,10 表示读操作,01 表示写操作。
- PHY 地址(PHYAD):5bits,用于标识目标 PHY 设备,一般从 0 开始顺序编号。
- 寄存器地址(REGAD):5bits,用于指定要读写的 PHY 寄存器。
- 转向位(Turn Around):2bits,在读命令中,MDIO 在此时由 MAC 驱动改为 PHY 驱动,并等待一个时钟周期准备发送数据。在写命令中,不需要 MDIO 方向发生变化,只是等待两个时钟周期准备写入数据。
- 数据(Data):16bits,在读命令中,PHY 芯片将读到的对应 PHYAD 的 REGAD 寄存器的数据写到 Data 中;在写命令中,MAC 将要写入对应 PHYAD 的 REGAD 寄存器的值写入 Data 中。
- 空闲位(Idle):数据传输结束后的空闲状态,此时 MDIO 无源驱动,处于高阻状态,一般用上拉电阻使其处在高电平。
工作流程
- 写操作:MAC 驱动 MDIO 线,按照顺序依次发送前导码、开始位、操作码(写操作 01)、PHY 地址、寄存器地址、转向位(10)和 16 位数据,PHY 在 MDC 时钟上升沿采样并接收数据,完成写操作。
- 读操作:MAC 发送前导码、开始位、操作码(读操作 10)、PHY 地址、寄存器地址,然后将 MDIO 置为高阻态,等待一个时钟周期后,PHY 驱动 MDIO 发送 16 位数据,MAC 在 MDC 上升沿采样接收数据,完成读操作。
应用场景
以太网设备:在以太网网络设备中,SMI 接口广泛应用于 MAC 层芯片与 PHY 芯片之间的通信。无论是网卡、交换机、路由器等设备,只要涉及以太网数据的物理层传输,都可能使用 SMI 接口来配置和监控 PHY 芯片。例如,在一个以太网交换机中,主控芯片(包含 MAC 层功能)通过 SMI 接口与各个端口的 PHY 芯片进行通信,配置 PHY 芯片的工作模式(如全双工 / 半双工、速率等),并获取 PHY 芯片的链路状态、错误统计等信息。
网络测试设备:用于网络测试的仪器,如网络分析仪等,也常使用 SMI 接口与被测设备的 PHY 进行交互,以便精确控制和监测被测设备的物理层参数,进行性能测试和故障诊断。
优缺点
优点
简单性:仅需两根线(MDC 和 MDIO)即可实现通信,硬件设计简单,减少了 PCB 布线的复杂性和成本。
灵活性:支持一条总线上连接多个 PHY 设备,通过设备地址进行区分,便于在一个系统中管理多个以太网物理层设备。
标准化:遵循 IEEE 802.3 等相关标准,具有良好的兼容性,不同厂商的 MAC 和 PHY 设备只要遵循该标准,即可相互通信。
缺点
传输速率有限:由于其设计初衷并非高速数据传输,MDC 时钟频率相对较低,导致数据传输速率受限,不适用于大数据量的快速传输场景。
功能局限性:主要用于 PHY 设备的管理和配置,对于更复杂的设备间通信需求,如高速数据传输、多设备间的复杂交互等,SMI 接口无法满足。
SMI 帧格式 介绍
SMI 帧格式一般包含以下几个部分:
1.前导码(Preamble):32 位,由连续的逻辑‘1’信号组成,用于 MAC 与 PHY 设备建立同步,使 PHY 设备能够识别数据帧的开始,确保后续数据传输的准确性和稳定性。
2.起始符(Start):2 位,固定为‘01’,表示数据帧正式开始,标志着前导码结束,后续操作码等内容的开始。
3.操作码(OP Code):2 位,‘10’表示读操作帧,‘01’表示写操作帧,用来告知 PHY 设备该帧是要进行读操作还是写操作。
4.PHY 地址(PHYAD):5 位,用于标识目标 PHY 设备,MAC 通过这 5 位地址选择与之通信的具体 PHY 芯片,以便进行针对性的操作。
5.寄存器地址(REGAD):5 位,用于指定要读写的 PHY 寄存器,确定对 PHY 设备中的哪个寄存器进行操作。
6.转向位(Turn Around):2 位,在写操作时,MDIO 由 MAC 层芯片控制,输出 “10”;在读操作时,第一比特 MDIO 为高阻态,第二比特由物理层芯片使 MDIO 置 “0”,实现 MAC 和 PHY 之间数据传输方向的切换。
7.数据域(Data):16 位,若为读操作,是 PHY 送到 MAC 层的数据;若为写操作,是 MAC 层送到物理层的数据,承载了 MAC 与 PHY 之间交互的具体内容。
8.空闲位(Idle):帧结束后的空闲状态,此时 MDIO 无源驱动,处于高阻状态,一般通过上拉电阻使其保持高电平,等待下一次数据传输。
阅读
《晚熟的人》
贼指花
究竟谁是贼???

