MAC外设里面的MDC和MDIO
MDC和MDIO是MAC外设中用于管理PHY芯片的串行接口信号线,它们共同构成IEEE 802.3标准定义的SMI(Serial Management Interface),实现MAC对PHY的配置与状态监控。
- MDC(Management Data Clock,管理数据时钟)是由MAC侧产生的时钟信号,为MDIO操作提供同步基准。它是一个非周期性信号,最小周期为400ns(对应最高频率2.5MHz),在上升沿触发数据采样。MDC由MAC主动输出,PHY作为从设备接收该时钟。
- MDIO(Management Data Input/Output,管理数据输入/输出)是一根双向数据线,用于在MAC(STA)和PHY(MMD)之间传输控制信息和状态数据。通过MDIO,MAC可以读写PHY内部寄存器,实现链路状态查询、速率协商、双工模式设置等管理功能。
该接口采用主从架构,支持半双工通信,一个MAC可通过MDIO总线管理最多32个PHY设备。数据帧格式主要分为两种:
- Clause 22:适用于百兆/千兆以太网,支持每个PHY最多32个寄存器。
- Clause 45:增强型协议,用于千兆以上网络,支持访问最多65536个寄存器,并可寻址PHY内部的子模块。
在硬件设计中,MDIO通常需外接上拉电阻(如1.5kΩ)以保证信号完整性,而MDC一般无需上下拉。两者对PCB布局要求较低,无严格等长需求,但应避免长距离走线以减少干扰。
我们以DM9162以太网PHY芯片为例,其PHY Address其有4bit,分别对应RXD[0:3]/PHYAD[0:3]引脚,其在上电复位后锁定Phy Address地址值。
PHY芯片的MD定义的串行标准感觉有点类似I2C的两线制通讯,只不过其已经由MAC外设实现,我们就像读取寄存器一样回读即可。