媒体无关接口:端口的电气侧 · 电接口:MII 系列与 AUI · 网卡与交换机 · 文档 · CodingBox
CodingBox 文档

媒体无关接口:端口的电气侧

交换机 ASIC 或 NIC 控制器内部的以太网 MAC 与介质(铜缆、光纤、背板)之间,是一个标准化的电气接口。IEEE 把这一族接口称为媒体独立接口(MII):只要对端使用约定的接口,MAC 就不关心它是铜缆 PHY、SFP 笼子还是 400G 模块。以太网每一代都增加了一种接口:10/100 用 MII 和 RMII,千兆用 GMII/RGMII/SGMII,10G 用 XGMII/XAUI/XFI/SFI,此后的所有速率用 AUI 家族(CAUI-4、400GAUI-8、800GAUI-8)。本节从光模块的角度讲解这些接口——到达笼子的是什么、铜缆 SFP 必须模拟什么,以及为什么处于"错误模式"的端口会拒绝一个完全正常的模块。

铜缆 PHY 端口、可插拔光模块和铜缆 SFP 的分层结构 MAC → xMII → PCS → PMA/AUI → PMD

为什么要分层

层位置到下一层的接口
MAC(成帧、地址)交换机 ASIC、NIC 控制器、SoC协调子层 → xMII
PCS(编码:8b/10b、64b/66b、FEC)可插拔模块由 ASIC/控制器实现;铜缆由 PHY 芯片实现PMA
PMA / SerDesASIC SerDes 或 PHY通往模块或介质的 AUI 通道
PMD(激光器、铜缆驱动器)光模块或 PHY 芯片光纤 / 线缆

对于可插拔光模块,PCS 和 SerDes 留在主机侧;模块接收串行通道(SFI、CAUI-4、400GAUI-8)并转换为光信号。对于铜缆,PHY 芯片完成 PCS+PMA+PMD,并通过并行(RGMII)或串行(SGMII)接口与 MAC 通信。铜缆 SFP 把该 PHY 放在模块内部,因此笼子必须向它传送 SGMII 或 1000BASE-X(参见SGMII 与串行千兆)。

接口阶梯

接口速率形式信号传输距离定义标准典型场景
MII10/1004 位并行 @ 2.5/25 MHz16–18cmIEEE 802.3 Cl. 22旧式 MAC ↔ PHY
RMII10/1002 位 @ 50 MHz7–9cmRMII Consortium嵌入式 SoC ↔ PHY
SMII / SS-SMII10/1001 位 @ 125 MHz每端口 2–3cmCisco多端口 PHY
GMII1G(+10/100)8 位 @ 125 MHz24+cmCl. 35MAC ↔ PHY,如今多用于片内
RGMII1G(+10/100)4 位 DDR @ 125 MHz12≤ 10–15 cmHP/Marvell RGMII v1.3/2.0小型交换机/路由器上的 SoC ↔ 铜缆 PHY
TBI / RTBI1G10 位 @ 125 MHz20+cmCl. 36MAC ↔ 外部 SerDes(旧式)
1000BASE-X(SerDes)1G1 通道 1.25 GBd,8b/10b2 对差分线50 cm+Cl. 36/37SFP 笼子在 1G 下传送的内容
SGMII10/100/10001 通道 1.25 GBd,8b/10b2 对(+ 时钟)50 cm+Cisco SGMII v1.8MAC ↔ 铜缆 PHY;MAC ↔ 铜缆 SFP
2500BASE-X2.5GSGMII/1000BASE-X 速率的 1.25 倍:3.125 GBd2 对50 cm事实标准2.5G SFP、PON 棒
QSGMII4 × 1G1 通道 5 GBd2 对50 cmCiscoASIC ↔ 四路铜缆 PHY
USXGMII10M–10G1 通道 10.3125 GBd,64b/66b2 对30 cmCisco/MarvellASIC ↔ mGig PHY;10GBASE-T SFP+
XGMII10G32 位 DDR @ 156.25 MHz74< 7 cmCl. 46片内
XAUI10G4 × 3.125 GBd,8b/10b8 对50 cmCl. 47XENPAK/X2 模块、旧式 PHY
XFI / SFI10G1 × 10.3125 GBd,64b/66b2 对20–30 cmXFP MSA / SFF-8431XFP / SFP+ 笼子
10GBASE-KR10G1 × 10.3125 GBd2 对1 m 背板Cl. 72背板、10GBASE-T PHY
25GAUI25G1 × 25.78 GBd NRZ2 对C2MAnnex 109A/BSFP28 笼子
XLAUI / CAUI-1040G / 100G4 / 10 × 10.3125 GBd8 / 20 对C2C/C2MAnnex 83A/BQSFP+ / CFP、CXP
CAUI-4100G4 × 25.78 GBd NRZ8 对C2MAnnex 83D/EQSFP28 笼子
50GAUI-2 / -150G2 × 26.5625 NRZ / 1 × 26.5625 GBd PAM44 / 2 对C2MAnnex 135B–ESFP56
100GAUI-4 / -2 / -1100G4 × NRZ / 2 × 53 GBd PAM4 / 1 × 106 GBd PAM4—C2MAnnex 135D–G、120GQSFP28(PAM4 变体)、QSFP112
200GAUI-8 / -4 / -2200G8 × 26.5 PAM4 / 4 × 53 / 2 × 106—C2MAnnex 120C–GQSFP56、QSFP112
400GAUI-16 / -8 / -4400G16 × 25 NRZ / 8 × 53 PAM4 / 4 × 106 PAM4—C2MAnnex 120B–GCFP8 / QSFP-DD、OSFP / QSFP112、OSFP
800GAUI-8 / -4800G8 × 106 PAM4 / 4 × 212 PAM4—C2M802.3df / djOSFP、QSFP-DD800 / OSFP224、OSFP-XD

详情参见:MII、RMII、GMII、RGMII、 SGMII、1000BASE-X、QSGMII、USXGMII、 XGMII、XAUI、SFI 与 AUI 家族。

各接口的位置

设备MAC → …… → 介质
48 口 1G 铜缆交换机ASIC → QSGMII → 四路 PHYPHY → RJ45
小型路由器 / SoC 板卡SoC → RGMII 或 SGMII → PHYPHY → RJ45;或 SoC → 1000BASE-X/SGMII → SFP 笼子
10G/25G 交换机或 NIC 的 SFP+/SFP28 端口ASIC SerDes → SFI / 25GAUI → 笼子模块 → 光纤或 DAC
100G QSFP28 端口ASIC → CAUI-4(4 × 25G) → 笼子模块 → 4 个波长或 4 根光纤
400G QSFP-DD / OSFP 端口ASIC → 400GAUI-8(8 × 50G PAM4) → 笼子模块变速器 → 4 × 100G 光信号
800G OSFP 端口ASIC → 800GAUI-8(8 × 100G PAM4) → 笼子模块 → 8 × 100G(DR8)或 4 × 200G
铜缆 1000BASE-T SFP主机 1000BASE-X 或 SGMII → 模块的 PHYPHY → RJ45
10GBASE-T SFP+主机 SFI(10GBASE-R) → 模块的 PHY(USXGMII 类)PHY → RJ45
多速率 RJ45 交换机端口ASIC → USXGMII → mGig PHY2.5/5/10GBASE-T

PHY 与模块的管理方式

铜缆 PHY 芯片可插拔模块
总线MDIO/MDC(Clause 22:5 位地址,32 个 16 位寄存器;Clause 45:面向 10G+ 的设备/寄存器对)I²C 双线(A0h/A2h,CMIS 页)(双线接口)
链路状态PHY 状态寄存器(寄存器 1),RGMII/SGMII 上的带内状态LOS/LOL 引脚与标志、DDM
Linux 工具mii-tool、phytool、ethtool(PHY 驱动程序)ethtool -m、i2c-dev(NIC 工具)
铜缆 SFP 的特殊之处模块内部的 PHY 可通过 I²C 的第二地址访问(例如基于 Marvell 88E1111 的模块使用 0xAC),或通过厂商页面访问——即 MDIO 隧道—

为什么这与光模块工作相关

  • 笼子的模式。 1G SFP 端口可以处于 1000BASE-X 或 SGMII 模式;铜缆 SFP 在两种模式下行为不同,10/100 客户端只能在 SGMII 模式下工作(或使用隐藏这一差异的模块)(参见SGMII 与串行千兆)。
  • 速率与编码。 模块必须接受主机的通道速率和编码:SFI 为 10.3125 GBd,CAUI-4 为 25.78, 400GAUI-8 为 PAM4——这正是合规代码和 CMIS 应用所声明的内容(参见合规代码)。
  • 谁负责重定时。 SFP+ 模块通常是线性/限幅型,依赖主机均衡;25G+ 模块内置 CDR;PAM4 模块内置 DSP;LPO 模块再次采用线性方式,依赖主机 SerDes (参见CDR、DSP 与 LPO)。
  • 电通道 ≠ 光通道。 400G-FR4 接收 8 条电通道并发出 4 个波长;变速器位于模块内部(参见XGMII、XAUI 与 AUI 家族)。
  • Linux 根据 EEPROM 选择接口。 内核的 SFP 层读取字节 3–10、12 和 36,在 1000BASE-X、 SGMII、2500BASE-X、10GBASE-R 之间做出选择——错误的合规字节会让一个正常的模块以错误的模式链接(参见内存映射)。

延伸阅读

  • MII、RMII、GMII、RGMII —— 并行接口:引脚、时钟、 RGMII 延迟模式、带内状态、通过 MDIO 的 PHY 管理、常见故障。
  • SGMII、1000BASE-X、QSGMII、USXGMII —— 到 PHY 和 SFP 笼子的串行接口:自动协商的差异、铜缆 SFP、100BASE-FX、2.5G、多速率、 Linux 如何选择模式。
  • XGMII、XAUI、XFI/SFI 与 AUI 家族 —— 从 10G 到 800G:通道数、C2C 与 C2M、合规点、OIF CEI 映射、电到光的通道映射、重定时与线性模块。

在 CodingBox 中

CodingBox 显示的字节是模块对其支持的主机接口的声明:合规代码(1000BASE-T → 支持 SGMII/1000BASE-X 的铜缆)、标称比特率、编码字节(8b/10b、64b/66b 或 PAM4)、CDR 位和 CMIS 主机接口 ID。编辑这些字节会改变主机将尝试使用的接口(参见 Check transceiver、 合规代码)。


如果您发现本资料中有不准确之处或错误,请选中相应片段并按 Ctrl+Enter,即可。