目录
- SMI 接口
- 帧格式
- 读时序
- 写时序
- IP 设计
- IP 例化界面
- IP 接口
- IP 验证
SMI 接口
SMI(Serial Management Interface)串行管理接口,也被称作 MII 管理接口(MII Management Interface),包括 MDC 和 MDIO 两条信号线。
-
MDIO 是一个 PHY 的管理接口,用来读写 PHY 的寄存器,以控制 PHY 的行为或获取 PHY 的状态
-
MDC 为 MDIO 提供时钟,由 MAC 端提供
帧格式
名称 | 说明 |
---|---|
Preamble | 由 MAC 发送 32 个连续的逻辑 “1”,同步于 MDC 信号,用于 MAC 与 PHY 之间的同步 |
ST | 帧开始位,固定为 “01” |
OP | 操作码,“10” 表示读,“01” 表示写 |
PHYAD | PHY 的地址,5 bits |
REGAD | 寄存器地址,5 bits |
TA | Turn Around, MDIO方向转换 ① 在写状态下,不需要转换方向,值为 “10” ② 在读状态下,MAC 输出端为高阻态,在第二个周期 PHY 将 MDIO 拉低 |
DATA | 16 bits 数据 |
IDLE | 空闲状态。此状态下 MDIO 为高阻态,由外部上拉电阻拉高 |
读时序
可以看到在 Turn Around状态下,第一个周期 MDIO 为高阻态,第二个周期由 PHY 端拉低。
写时序
IP 设计
IP 例化界面
IP 接口
信号 | 方向 | 说明 |
---|---|---|
smi_mdc_o | output | SMI 时钟信号 |
smi_mdio_i | input | SMI 数据输入信号 |
smi_mdio_o | output | SMI 数据输出信号 |
smi_mdio_t | output | SMI 数据三态使能信号,高电平为输入,低电平为输出 |
smi_reset_o | output | PHY 芯片复位信号,可通过参数设置高有效还是低有效 |
o_reset_done | output | 复位完成指示信号,高电平有效 |
i_wr_en | input | 写使能,高电平有效,在 o_wr_ack 置位时拉低写使能信号结束当前写操作 |
i_phy_addr[4:0] | input | PHY 芯片地址 |
i_reg_addr[4:0] | input | 寄存器地址 |
i_wdata[15:0] | input | 写数据 |
o_wr_ack | output | 写完成响应信号,高脉冲有效 |
i_rd_en | input | 读使能,高电平有效,在 o_rvalid 置位后拉低读使能信号结束当前读操作 |
o_rvalid | output | 读数据有效指示,高脉冲有效 |
o_rdata[15:0] | output | 读数据 |
IP 验证
使用 KSZ9031RNX 芯片进行读写测试,关于 MDIO 接口应该在哪个时钟时刻进行数据更新或者数据采集需要根据使用的 PHY 芯片具体接口时序进行调整。
下图为 KSZ9031RNX 芯片的接口时序,根据芯片手册时序,确定 PHY INPUT 数据在 MDC 下降沿更新,而 PHY OUTPUT 数据在 MDC 下降沿采样。
而且在需要使用 SMI 接口时需确认 PHY 芯片是否需要进行复位操作。