以太网 MAC / PHY 与 MII 系列接口(GMII / SGMII / RGMII)

注:本文为 "MII 系列接口" 相关合辑。

中文引文,略作重排。

如有内容异常,请看原文。


以太网------MAC / PHY 与 MII 系列接口规范

1. 以太网硬件分层整体架构

以太网完整数据通路由 MAC 控制器、PHY 物理收发器两段单元首尾对接,两类单元通过 MII 系列标准化接口完成信号交互;DMA 控制器隶属于 CPU,仅参与主机与 MAC 间数据包搬运,不属于 MAC/PHY 链路层级。

1.1 MAC 与 PHY 芯片集成方案

MAC 为纯数字逻辑电路,PHY 包含大量模拟收发电路,受芯片面积、数模混合工艺约束,硬件集成分为三类方案:

  1. CPU 内部同时集成 MAC 与 PHY,商用设备使用占比偏低
  1. CPU 内置 MAC,外部搭配独立 PHY 芯片,消费路由、工业网口主流方案
  1. CPU 无内置 MAC / PHY,采用外置 MAC+PHY 二合一集成芯片,多端口交换机常用方案

1.2 OSI 七层模型分层归属

MAC 归属数据链路层下半区,PHY 完整实现物理层全部子层规范,二者分层对应关系如下:

2. MAC 媒体访问控制子层

2.1 基础定义

MAC(Media Access Control,媒体访问控制)包含硬件控制器、链路协议两层概念,规范由 IEEE 802.3 定义,部署于数据链路层,承担介质访问仲裁、以太网帧封装解封装、传输错误校验功能。

数据链路层拆分为 LLC(逻辑链路控制)子层、MAC 子层;完整网卡芯片同时实现两层逻辑,一侧引出 PCI 总线对接主机,另一侧通过 MII 系列并行/串行接口连接 PHY。

2.2 发送数据处理流程

  1. 接收上层 IP / IPX 等网络层数据包;
  2. 封装标准以太网帧,帧有效长度区间 64 Byte ∼ 1518 Byte 64\ \text{Byte} \sim 1518\ \text{Byte} 64 Byte∼1518 Byte;帧字段包含目标 MAC 地址、源 MAC 地址、协议类型、载荷数据、 4 Byte 4\ \text{Byte} 4 Byte CRC 校验码;
  3. 检测传输信道占用状态,信道空闲时将并行帧数据通过 MII 接口下发至 PHY;
  4. 流控帧等专用控制帧由 MAC 直接识别并执行对应链路调度动作。

2.3 接收数据处理流程

  1. 从 PHY 侧并行接口获取完整帧数据,执行 CRC 完整性校验;
  2. 校验结果无误后剥离帧头、CRC 校验字段,提取上层载荷数据包;
  3. 将数据包向上传递至 LLC 子层,最终交付操作系统网络协议栈与上层应用程序。

2.4 三层与二层地址映射:ARP 协议

ARP 协议完成 IP 地址到 MAC 地址的动态解析,为 MAC 封装帧提供目标二层地址,完整流程规则:

  1. 首次向某一目标 IP 发送数据时,MAC 广播 ARP 请求帧,局域网内全部主机接收该广播帧;
  2. 本机 IP 与请求目标 IP 匹配的主机,回复单播 ARP 响应帧,帧内携带本机 MAC 地址;
  3. 操作系统将 IP-MAC 映射条目存储至本地 ARP 表;
  4. Windows 系统可执行 arp -a 终端指令读取本地 ARP 映射表;
  5. IPX/SPX 等非 IP 网络协议配套独立地址解析机制。

3. PHY 物理层收发器

MAC 输出的数字并行/串行信号无法直接在双绞线、光纤介质传输,PHY 作为 MAC 与外部传输介质的中间转换单元,完成数字信号与线路模拟电平的双向转换,二者为一一配套的上下游模块。

3.1 PHY 内部五层子层架构

自上而下依次串联,完整覆盖 IEEE 802.3 物理层定义:

  1. MII/GMII 介质独立接口子层:对接 MAC 侧标准并行/串行接口;
  2. PCS 物理编码子层:完成 8b/10b 编码、帧同步、自协商逻辑;
  3. PMA 物理介质附加子层:串并转换、时钟提取、信号整形;
  4. PMD 物理介质相关子层:模拟差分驱动、接收均衡;
  5. MDI 介质接口子层:对接 RJ45 网口、光纤光模块。

该分层体系兼容 IEEE 802.3 10Base-T、100Base-TX 电气传输规范。

3.2 PHY 寄存器与管控逻辑

STA(Station Management Entity,站管理实体,通常集成于 MAC 或主控 CPU)通过 SMI 总线读写 PHY 内部寄存器,实现全部链路管控动作:

  • 可配置项:速率模式、全/半双工、流量控制开关、自动协商使能;
  • 可读取项:链路通断状态、协商速率、双工状态、信号告警标记。

IEEE 802.3 第 22.2.4 章节定义通用基础寄存器组;高速拓展功能、厂商私有特性寄存器分散在标准其他章节,器件专属拓展寄存器需查阅对应芯片数据手册。

3.3 MAC 与 PHY 的绑定关系

  1. 数据通路:MAC 输出帧数据 → MII 系列接口 → PHY 编码转换 → 外部网线;反向接收流程完全对称;
  2. 管控通路:MAC/CPU → SMI(MDC/MDIO) → PHY 寄存器,双向传递控制、状态信息;
  3. 标准互通性:只要 MAC、PHY 同时遵循同一版 IEEE 802.3 接口规范,不同厂商器件可直接配套使用;厂商私有拓展功能需要驱动程序适配。

4. SMI 串行管理总线(MDC / MDIO)

SMI(Serial Management Interface)是 MAC、CPU 与 PHY 之间统一管控通道,全部 MII、RMII、GMII、RGMII、SGMII 接口均复用该双信号线总线,是 MAC-PHY 配对体系内统一的管理媒介。

4.1 信号电气规范

  1. MDC:单向管理时钟,由 STA(MAC/CPU)驱动;最小高低电平保持时长 160 ns 160\ \text{ns} 160 ns,最小完整周期 400 ns 400\ \text{ns} 400 ns,无强制最高、最低工作频率;
  2. MDIO:双向串行数据信号线;STA 在 MDC 时钟沿输出控制读写指令,PHY 在 MDC 时钟沿反馈链路状态寄存器数值。

4.2 总线作用范围

单条 SMI 总线最多挂载 32 路 PHY,通过 PHY 地址区分不同物理收发器;无论并行类 MII/RGMII 还是串行类 SGMII,硬件管控逻辑完全复用 SMI 总线。

5. MII 基础并行接口标准

5.1 接口定位

MII(Media Independent Interface,媒体独立接口)是 IEEE 802.3 定义的初代 MAC-PHY 互联标准,作为后续 RMII / GMII / RGMII 所有衍生接口的基准原型;"媒体独立"代表更换 PHY 传输介质方案时,MAC 硬件逻辑无需重新修改。

5.2 RS 协调子层层级关系

RS(Reconciliation sublayer,协调子层)嵌入 MAC 侧,负责 MAC 内部逻辑信号与 MII 接口电气信号的映射转换,RS、MII、STA 管理实体层级链路如下:

MII 整体分为并行数据收发通道、SMI 管理总线两大模块:

5.3 并行数据通道信号与时序

MII 收发通道完全独立,合计 16 路数据、控制信号,速率仅支持 10 Mbps 10\ \text{Mbps} 10 Mbps、 100 Mbps 100\ \text{Mbps} 100 Mbps:

  1. TX_CLK:PHY 持续输出发送同步时钟; 100 Mbps 100\ \text{Mbps} 100 Mbps 模式频率 25 MHz 25\ \text{MHz} 25 MHz,频率偏差 ± 100 ppm \pm100\ \text{ppm} ±100 ppm,占空比区间 35 % ∼ 65 % 35\% \sim 65\% 35%∼65%;同步 TX_ENTXD<3:0>TX_ER
  2. TX_EN:MAC 输出发送使能,同步 TX_CLK 上升沿;仅该信号有效时 PHY 采样发送数据;
  3. TXD<3:0>: 4 bit 4\ \text{bit} 4 bit 并行发送数据位;
  4. TX_ER:发送错误标记,同步 TX_CLK;硬件闲置时必须下拉接地; 10 Mbps 10\ \text{Mbps} 10 Mbps 低速模式无作用;
  5. RX_CLK:PHY 输出接收同步时钟,电气参数与 TX_CLK 保持一致,时钟源可从接收数据流提取或复用发送参考时钟;
  6. RX_DV:PHY 输出接收数据有效标记;有效时长完整覆盖整帧,起始点不晚于 SFD 帧起始定界符,不包含帧结束分隔符;
  7. RXD<3:0>: 4 bit 4\ \text{bit} 4 bit 并行接收数据位;RX_DV 无效时,PHY 可输出 <1110> 搭配 RX_ER 触发虚假载波告警;
  8. RX_ER:接收错误标记,同步 RX_CLK,功能与 TX_ER 对称;
  9. CRS:载波侦测信号,无需同步时钟;仅半双工传输模式下有效,信道存在收发流量时置高;
  10. COL:冲突检测信号,无需同步时钟;仅半双工传输模式下有效,全双工模式信号行为无标准定义。

5.4 MII 硬件设计短板

并行信号线数量多,端口密度提升后布线开销急剧增加:8 端口交换机占用 112 根走线,16 端口占用 224 根,32 端口占用 448 根;高密度网络设备普遍采用精简衍生接口替代原生 MII。

6. RMII 精简百兆并行接口

6.1 接口定位

RMII(Reduced Media Independent Interface)基于 MII 标准简化引脚,仅兼容 10 Mbps 10\ \text{Mbps} 10 Mbps、 100 Mbps 100\ \text{Mbps} 100 Mbps,无千兆传输能力,面向低成本百兆嵌入式场景。

6.2 时钟与时序规则

全局共用单路 REF_CLK = 50\ \text{MHz} 参考时钟,MAC、PHY 同步同源时钟,省去独立 TX_CLKRX_CLK

  • 100 Mbps 100\ \text{Mbps} 100 Mbps:直接使用 50 MHz 50\ \text{MHz} 50 MHz 时钟采样;
  • 10 Mbps 10\ \text{Mbps} 10 Mbps:内部对 50 MHz 50\ \text{MHz} 50 MHz 时钟 10 分频处理。

单向数据位宽压缩至 2 bit 2\ \text{bit} 2 bit,控制信号同步精简,数据+控制信号线总量仅 7 ∼ 10 7 \sim 10 7∼10 根。

6.3 硬件约束

REF_CLK 振荡器对频率稳定度、相位噪声指标要求严格;优势为引脚资源占用最低,是百兆设备通用方案。

7. GMII 千兆标准并行接口

7.1 接口定位

GMII(Gigabit Media Independent Interface)为 MII 的千兆扩展版本,标准 IEEE 802.3-2000,向下兼容 10 Mbps / 100 Mbps 10\ \text{Mbps}/100\ \text{Mbps} 10 Mbps/100 Mbps,原生支持 1000 Mbps 1000\ \text{Mbps} 1000 Mbps,采用 8 bit 8\ \text{bit} 8 bit 单向并行数据位宽。

7.2 完整信号定义

信号名称 描述 信号方向
GTX_CLK 千兆模式发送基准时钟( 125 MHz 125\ \text{MHz} 125 MHz) MAC → PHY
TX_EN 发送数据使能 MAC → PHY
TX_ER 发送错误标记 MAC → PHY
TXD7:0 8 bit 8\ \text{bit} 8 bit 并行发送数据 MAC → PHY
RX_CLK 接收同步时钟(从输入数据流提取) PHY → MAC
RX_DV 接收数据有效标记 PHY → MAC
RX_ER 接收错误标记 PHY → MAC
RXD7:0 8 bit 8\ \text{bit} 8 bit 并行接收数据 PHY → MAC
CRS 载波侦测(半双工有效) PHY → MAC
COL 冲突检测(半双工有效) PHY → MAC
MDC SMI 管理总线时钟 MAC → PHY
MDIO SMI 双向管理数据 双向

7.3 速率模式区分

  1. 1000 Mbps 1000\ \text{Mbps} 1000 Mbps 千兆模式:MAC 输出 GTX_CLK = 125 MHz,全部收发信号同步该时钟;
  2. 10 / 100 Mbps 10 / 100\ \text{Mbps} 10/100 Mbps 低速兼容模式:PHY 输出 TX_CLK( 2.5 MHz / 25 MHz 2.5\ \text{MHz}/25\ \text{MHz} 2.5 MHz/25 MHz),复用 MII 低速时序规范。

7.4 适用边界

数据线由 MII 的 4 bit 4\ \text{bit} 4 bit 扩展至 8 bit 8\ \text{bit} 8 bit,并行走线总量大幅增加;多用于芯片内部 MAC 与片内 PHY 互联,板级 PCB 布线极少使用。

配套 SMI 寄存器地址区间 0 ∼ 31 0 \sim 31 0∼31,地址 0 ∼ 15 0 \sim 15 0∼15 为 IEEE 标准化通用寄存器, 16 ∼ 31 16 \sim 31 16∼31 开放给厂商自定义拓展功能。

8. RGMII 精简千兆并行接口

8.1 接口定位

RGMII(Reduced Gigabit Media Independent Interface)基于 GMII 压缩引脚,是板载千兆设备使用范围最广的并行接口,完整兼容 10 / 100 / 1000 Mbps 10/100/1000\ \text{Mbps} 10/100/1000 Mbps 三档速率。

8.2 完整信号定义

信号名称 描述 信号方向
TX_CLK 发送同步基准时钟 MAC → PHY
TX_CTL 复合发送控制(TX_EN 与 TX_ER 信号复用) MAC → PHY
TXD3:0 4 bit 4\ \text{bit} 4 bit 并行发送数据 MAC → PHY
RX_CLK 接收同步基准时钟 PHY → MAC
RX_CTL 复合接收控制(RX_DV 与 RX_ER 信号复用) PHY → MAC
RXD3:0 4 bit 4\ \text{bit} 4 bit 并行接收数据 PHY → MAC
MDC SMI 管理总线时钟 MAC → PHY
MDIO SMI 双向管理数据 双向

8.3 速率与时序规则

采用 DDR 双沿采样技术,在不增加数据线的前提下实现千兆带宽:

  1. 1000 Mbps 1000\ \text{Mbps} 1000 Mbps:TX_CLK / RX_CLK = 125 MHz,时钟上升沿传输低 4 bit 4\ \text{bit} 4 bit,下降沿传输高 4 bit 4\ \text{bit} 4 bit;理论带宽 125 MHz × 2 × 4 bit = 1000 Mbps 125\ \text{MHz} \times 2 \times 4\ \text{bit} = 1000\ \text{Mbps} 125 MHz×2×4 bit=1000 Mbps;
  2. 100 Mbps 100\ \text{Mbps} 100 Mbps:TX_CLK / RX_CLK = 25 MHz,仅上升沿单沿采样;
  3. 10 Mbps 10\ \text{Mbps} 10 Mbps:TX_CLK / RX_CLK = 2.5 MHz,仅上升沿单沿采样。

8.4 PCB 布线约束

相比 GMII 大幅缩减并行走线数量;硬件设计必须控制时钟相对数据线延时 1 ∼ 2 ns 1 \sim 2\ \text{ns} 1∼2 ns,常规通过时钟信号线蛇形绕线补偿时序,满足建立、保持时间要求。

9. SGMII 串行差分千兆接口

9.1 接口定位

SGMII(Serial Gigabit Media Independent Interface)采用 SerDes 串并转换技术,将 GMII 并行数据流转为高速差分串行信号,解决并行接口引脚过多、长距离走线干扰问题,兼容 10 / 100 / 1000 Mbps 10/100/1000\ \text{Mbps} 10/100/1000 Mbps 自协商。

9.2 编码与带宽参数

使用 8 b / 10 b 8\ \text{b}/10\ \text{b} 8 b/10 b 直流平衡编码,物理层串行传输速率 1250 Mbps 1250\ \text{Mbps} 1250 Mbps,扣除编码冗余后有效载荷带宽 1000 Mbps 1000\ \text{Mbps} 1000 Mbps。

9.3 完整信号定义

信号名称 描述 信号方向
TX(差分对 TXP / TXN) 串行发送差分数据流 MAC → PHY
RX(差分对 RXP / RXN) 串行接收差分数据流 PHY → MAC
MDC SMI 管理总线时钟 MAC → PHY
MDIO SMI 双向管理数据 双向

9.4 关键传输特性

  1. 时钟嵌入串行数据流,接收端通过内置时钟恢复电路同步时序,无需独立并行时钟走线;
  2. LVDS 差分传输模式,抗电磁干扰能力优于并行接口,支持板内长走线、跨板互联;
  3. 单端口仅两对差分信号线,引脚占用极低,多端口高密度交换机优先选用;
  4. 参考时钟分为两类配置:具备时钟恢复模块的 MAC 可省略发送侧参考时钟;无时钟恢复逻辑的 MAC 需要外部共享基准时钟。

10. XGMII 万兆片内并行接口

10.1 接口定位

XGMII(10-Gigabit Media Independent Interface)为万兆以太网并行互联标准,仅用于芯片内部 MAC 与片内 PHY 直连,不适合板级 PCB 布线。

10.2 基础参数

单向并行数据位宽 32 bit 32\ \text{bit} 32 bit,DDR 双沿采样基准时钟 156.25 MHz 156.25\ \text{MHz} 156.25 MHz,原生支持 10 Gbps 10\ \text{Gbps} 10 Gbps 传输速率。

10.3 硬件局限

收发数据线合计 64 64 64 根,叠加控制、时钟信号线后总走线数量超过 70 70 70 根;板间万兆传输场景由 XAUI、SFI 等串行 SerDes 接口替代。

11. 全系列接口参数对比与选型参考

11.1 统一参数对比表(表格内容左对齐)

接口名称 支持速率 物理传输形式 单向数据位宽 基准时钟规格 MAC↔PHY 典型信号线总数 适用场景 硬件约束
MII 10 / 100 Mbps 10 / 100\ \text{Mbps} 10/100 Mbps 4 bit 4\ \text{bit} 4 bit 并行 4 bit 4\ \text{bit} 4 bit 25 MHz / 2.5 MHz 25\ \text{MHz} / 2.5\ \text{MHz} 25 MHz/2.5 MHz,独立 TX / RX CLK 20 + 20+ 20+ 低速短距调试、老旧设备 走线数量多,无法千兆
RMII 10 / 100 Mbps 10 / 100\ \text{Mbps} 10/100 Mbps 2 bit 2\ \text{bit} 2 bit 精简并行 2 bit 2\ \text{bit} 2 bit 全局单路 50 MHz 50\ \text{MHz} 50 MHz REF_CLK 8 ∼ 10 8 \sim 10 8∼10 低成本百兆嵌入式设备 无千兆支持,时钟精度要求高
GMII 10 / 100 / 1000 Mbps 10 / 100 / 1000\ \text{Mbps} 10/100/1000 Mbps 8 bit 8\ \text{bit} 8 bit 标准并行 8 bit 8\ \text{bit} 8 bit 125 MHz 125\ \text{MHz} 125 MHz(千兆模式) 30 + 30+ 30+ 芯片内部千兆互联 并行走线过多,板级少用
RGMII 10 / 100 / 1000 Mbps 10 / 100 / 1000\ \text{Mbps} 10/100/1000 Mbps 4 bit 4\ \text{bit} 4 bit DDR 精简并行 4 bit 4\ \text{bit} 4 bit(双沿采样等效 8 bit 8\ \text{bit} 8 bit) 125 MHz 125\ \text{MHz} 125 MHz TX_CLK / RX_CLK 12 ∼ 14 12 \sim 14 12∼14 千兆板内短距布线(路由器、网卡) 需严格匹配时钟延时
SGMII 10 / 100 / 1000 Mbps 10 / 100 / 1000\ \text{Mbps} 10/100/1000 Mbps LVDS 差分串行 1 1 1 lane 串行( 8 b / 10 b 8\ \text{b}/10\ \text{b} 8 b/10 b编码) SerDes PLL,参考 125 / 156.25 MHz 125 / 156.25\ \text{MHz} 125/156.25 MHz 4 4 4 根差分信号线(不含管理总线) 高密度交换机、跨板长距互联 内置SerDes模块,高速差分布线
XGMII 10 Gbps 10\ \text{Gbps} 10 Gbps 32 bit 32\ \text{bit} 32 bit 宽并行总线 32 bit 32\ \text{bit} 32 bit 156.25 MHz 156.25\ \text{MHz} 156.25 MHz DDR 70 + 70+ 70+(仅片内) 万兆芯片内部互联 板级布线无实用价值

11.2 接口选型判定逻辑

  1. 速率需求
    • 仅百兆业务:优先 RMII,硬件资源占用最少;
    • 千兆板内短距离布线:优先 RGMII;
    • 千兆高密度端口、跨板长走线:优先 SGMII;
    • 10 Gbps 10\ \text{Gbps} 10 Gbps 及以上:芯片内部使用 XGMII,板间采用 XAUI / SFI 串行接口。
  2. PCB 引脚与布线约束
    • 引脚资源紧张:RMII / RGMII / SGMII;
    • 调试便捷、无引脚限制:MII / GMII。
  3. 传输距离约束
    • 板内短距离( < 10 cm < 10\ \text{cm} <10 cm):全部并行接口均可使用;
    • 跨板、长走线、多干扰环境:SGMII 差分串行传输。

以太网 MAC-PHY 接口标准发布时间

  1. MII

    • 发布标准:IEEE 802.3-1998 第 22 章
    • 定位:初代媒体独立并行接口,支撑 10 / 100 Mb/s,所有衍生接口基准原型。
  2. GMII

    • 发布标准:IEEE 802.3-2000 第 35 章
    • 定位:MII 千兆扩展并行接口,8 bit 位宽,原生支持 1000 Mb/s。
  3. RMII

    • 发布时间:约 2002 年
    • 标准状态:厂商联合规范(National Semiconductor / TI 主导),未纳入 IEEE 802.3
    • 定位:MII 精简百兆接口,2 bit 位宽,仅支持 10 / 100 Mb/s,缩减引脚。
  4. SMII

    • 发布时间:约 2003 年
    • 标准状态:厂商联合规范,未纳入 IEEE 802.3
    • 定位:串行媒体独立百兆接口,早期低速串行方案,市场应用范围极小。
  5. RGMII

    • 发布时间:约 2002 年
    • 标准状态:工业事实标准(HP / Cisco / Broadcom 联合定义),未纳入 IEEE 802.3
    • 定位:GMII 精简千兆并行接口,4 bit + DDR 双沿采样,板级千兆主流并行方案。
  6. SGMII

    • 发布时间:约 2005 年
    • 标准状态:厂商联合规范(Cisco / Broadcom 主导),未纳入 IEEE 802.3
    • 定位:千兆差分串行接口,8b/10b SerDes 编码,解决并行布线引脚过多、EMI 问题。
  7. XGMII

    • 发布标准:IEEE 802.3ae-2002 第 46 章
    • 定位:万兆媒体独立接口,32 bit 数据 + 4 bit 控制,DDR @ 156.25 MHz,用于 MAC 与 XAUI / PCS 之间的片内或短距板级互联。

MII(1998)→ GMII(2000)→ RMII(约 2002)→ RGMII(约 2002)→ SMII(约 2003)→ SGMII(约 2005)→ XGMII(2002)

> :RMII 与 RGMII 发布时间相近(均约 2002 年),RGMII 略晚于 RMII;XGMII 标准发布时间(2002)早于 SGMII(约 2005),但 XGMII 面向万兆,与千兆串行接口不属于同一代际竞争关系。

  1. 标准 vs 事实标准:MII、GMII、XGMII 为 IEEE 802.3 强制标准;RMII、SMII、RGMII、SGMII 为厂商联合定义的工业事实标准,未纳入 IEEE 强制规范,但获得广泛商用支持。
  2. XGMII 的演进 :XGMII 因 74 根信号线(32 bit TX + 32 bit RX + 控制/时钟)布线开销过大,实际板级应用极少,通常被 XAUI(10 Gigabit Attachment Unit Interface)XFI 串行方案替代。XAUI 将 XGMII 的 32 bit 并行数据通过 4 路 3.125 Gb/s 差分对传输。
  3. 并行接口迭代逻辑:MII(百兆基准)→ GMII(千兆扩展)→ RMII(百兆精简)→ RGMII(千兆精简)。
  4. 串行接口迭代逻辑:SMII(百兆串行,未成气候)→ SGMII(千兆串行,主流)→ XAUI / XFI(万兆串行)。
  5. RGMII 时序关键:RGMII 要求发送端时钟相对数据延迟约 1.5 ~ 2.0 ns,确保接收端在数据稳定窗口采样。该延迟可通过 PCB 走线延迟、PHY 内部延迟或 MAC 内部延迟实现。

reference