分享

了解与MDIO/MDC接口相关的Clause 22 Clause45

 AMS1117LIB 2023-01-08 发布于上海

pannell_1_1102 ()

MDIO 接口

SMI:串行管理接口(Serial Management Interface),也被称作 MII 管理接口(MII Management Interface),包括 MDC 和 MDIO 两条信号线。MDIO 是用来对 PHY 芯片等物理层信息进行操作管理接口。

MDIO 的历史

MDIO 是 Management Data Input/Output 的缩写,有两根线,分别为双向的 MDIO 和单向的 MDC,用于以太网设备中上层对物理层的管理。之所以能够管理这些 PHY 芯片,是因为能够对 PHY 芯片的各类寄存器进行访问和修改。

MDIO 接口最初是由 IEEE RFC802.3 中的22号条款定义的,在最初的定义中,一个单独的 MDIO 接口可以访问 32 个不同的 PHY 设备中的 32 个寄存器,这些寄存器提供状态和控制信息,例如:连接状态、传输速度能力、当前选择的传速、低压消耗时的下电情况、全双工还是半双工、自动协商、错误提示以及反馈信息等等。

为了满足 10G 以太网设备的普及发展,在 IEEE 802.3ae 的45号条款中为 MDIO 接口提供了额外的规范:

1)能够通过 32 个端口(比如可以挂32个PHY)访问 32 个不同设备的 65536 个寄存器;

2)为访问 10G 以太网提供额外的 OP 码和 ST 码,从而可以直接访问寄存器地址;

3)端到端的报错信号;

4)环回模式控制;

5)低压电气标准。

MDIO 数据传输协议

22 号条款


FramePreamble (32bits)Start (2bits)OP Code (2bits)PHYAD (5bits)REGAD (5bits)Turn Around (2bits)Data (16bits)Idle
Read1.......10110A4...A0R4...R0Z0D15.......D0Z*
Write1.......10101A4...A0R4...R010D15.......D0Z*

上图中 * 表示高阻态,这时 MDIO 的状态由一个外部的 1.5KΩ 电阻决定。

Preamble+Start:32bits 的前导码以及 2bit 的开始位。

OP Code:2bits 的操作码,10 表示读,01 表示写。

PHYAD:5bits 的 PHY 地址,一般 PHY 地址从 0 开始顺序编号,例如 6 口 switch 中 PHY 地址为 0-5。

REGAD:5bits 的寄存器地址,即要读或写的寄存器。

Turn Around:2bits 的 TA,在读命令中,MDIO 在此时由 MAC 驱动改为 PHY 驱动,并等待一个时钟周期准备发送数据。在写命令中,不需要 MDIO 方向发生变化,则只是等待两个时钟周期准备写入数据。

Data:16bits 数据,在读命令中,PHY 芯片将读到的对应 PHYAD 的 REGAD 寄存器的数据写到 Data 中,在写命令中,MAC 将要写入对应 PHYAD 的 REGAD 寄存器的值写入 Data 中。

Idle:空闲状态,此时 MDIO 无源驱动,处高阻状态,但一般用上拉电阻使其处在高电平。

帧格式中 PHY 的地址和寄存器的地址都是 5bit,这就限制了 STA 可以连接到的 MMD 的数量。此外,22 号条款仅支持 5V 设备,没有其他的低压选项。

45 号条款


FramePreamble (32bits)Start (2bits)OP Code (2bits)PHYAD (5bits)DEVAD (5bits)Turn Around (2bits)Data (16bits)Idle
Address1.......10000PPPPPEEEEE10A15.......A0Z*
Write1.......10001PPPPPEEEEE10D15.......D0Z*
Read1.......10011PPPPPEEEEEZ0D15.......D0Z*
Read Inc.1.......10010PPPPPEEEEEZ0D15.......D0Z*

上图中 * 表示高阻态,这时 MDIO 的状态由一个外部的 1.5KΩ 电阻决定。

Preamble+Start:32bits 的前导码以及 2bit 的开始位。帧开始标志, 为了区别 CL22,Clause45 的开始标志为比特 “00”。

OP Code:操作码,Clause45 有 4 种操作码,比特 “00” 表示设置当前寄存器地址,比特 “01” 表示写当前寄存器。比特 “10” 表示读当前寄存器,比特 “11” 表示读当前寄存器读完后把当前寄存器的值加 1,用于顺序读。

PRTAD:Port Address,端口地址, 也称物理地址。

DEVAD:器件地址,CL45 新增概念,各值与器件对应如下。

ValueDevice
00000Reserved
00001PMD/PMA
00010WIS
00011PCS
00100PHY XS
00101DTE XS
------------------------

REGAD:用来选 MMD 的 65536 个寄存器中的某个寄存器的地址。

Turn Around:2bits 的 TA,在读命令中,MDIO 在此时由 MAC 驱动改为 PHY 驱动,并等待一个时钟周期准备发送数据。在写命令中,不需要 MDIO 方向发生变化,则只是等待两个时钟周期准备写入数据。

Data:帧的寄存器的数据域,16bits,若为读操作,则为 MMD 送到 STA 的数据,若为写操作,则为 STA 送到 MMD 数据。

Idle:空闲状态,此时 MDIO 无源驱动,处高阻状态,但一般用上拉电阻使其处在高电平。

第 45 号条款的主要变化是如何访问寄存器。在第 22 中,一个单独的帧指定要读或写的地址和数据,同时完成了这些工作。45 号中改变这种范式,第一个地址帧发送到指定的 MMD 和寄存器,然后发送第二帧来执行读或写。

添加这个依次循环访问的好处是 45 条款是向后兼容 22 条款的,允许设备的互操作。其次,通过创建一个框架的登记地址,地址空间从 5 位增加到 16 位,这使得 STA 访问 65536 个不同的寄存器。

为了做到这一点,在数据帧的组成部分进行了一些变化。定义了新的 ST 代码(00),用于标识第 45 号条款的数据帧。运算码扩展到指定地址帧,写帧,读帧,或读和读后增量地址帧。由于寄存器地址不再需要,这个字段被指定目标设备类型的内容代替。扩展后还允许 STA 接入除了 PHY 以外的其他设备。

读第 45 号条款的寄存器操作:

Write Address AAAAAAAAAAAAAAAA to Device VVVVV on Port PPPPP

Read Register From Device VVVVV on Port PPPPP

写第 45 号条款的寄存器操作:

Write Address AAAAAAAAAAAAAAAA to Device VVVVV on Port PPPPP

Write Register To Device VVVVV on Port PPPPP

每个操作都需要执行两个步骤。

如果 STA 只支持 Clause22 访问,但是 PHY 却是 802.3ah PHY

802.3ah PHY 为了能支持 Clause22 STA 的访问。只预留的 Reg 13Reg 14。STA 能通过 Clause22 访问 Reg 13 和 14 间接访问 Clause45 寄存器。

pannell_1_1102 ()

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多