SFF-8472——SFP 诊断
SFF-8472(光模块诊断监测接口)是所有 SFP 类模块的管理规范:SFP、SFP+、SFP28,以及通过扩展代码支持的 SFP56。它脱胎于 SFP MSA(INF-8074)的序列号识别块,逐字节保留了该块,并新增了一个具备实时诊断功能的存储器件。铜缆 SFP、PON 光棒、可调谐 DWDM SFP+ 以及 DAC/AOC 线缆端头都通过本规范呈现自身信息。修订历史和版本字节: 规范版本。
两个存储器地址
主机通过两线接口在两个器件地址上读取模块:
| 地址 | 器件 | 内容 |
|---|---|---|
| A0h | 序列号识别 EEPROM(256 字节,平坦地址) | 身份信息:类型、连接器、合规代码、速率、长度、厂商块、选项、校验和 |
| A2h | 诊断(128 字节 + 分页上半部分) | 阈值、校准常数、实时监测值、状态/控制、标志、用户 EEPROM、厂商页 |
A2h 是否存在由 A0h 字节 92 位 6 声明。默认总线速率为 100 kHz。逐字节表格: 存储器映射速查。
A0h — 五个身份信息块
| 字节 | 块 | 内容 |
|---|---|---|
| 0–2 | 类型 | 标识符(03h = SFP 系列,SFF-8024)、扩展标识符(04h = MOD_DEF 4,存在序列号)、连接器代码 |
| 3–10 | 合规代码 | 10G 以太网、InfiniBand、ESCON、SONET、1G 以太网、光纤通道长度/技术/介质/速率的位域 — 解码见合规代码 |
| 11–19 | 信号与传输距离 | 编码(11)、标称比特率 ×100 Mb/s(12)、RS0/RS1 速率标识符(13,参见速率选择)、链路长度:SMF 单位 km(14)、SMF ×100 m(15)、OM2 ×10 m(16)、OM1 ×10 m(17)、OM4 ×10 m 或铜缆米数(18)、OM3 ×10 m(19) |
| 20–63 | 厂商与校验和 | 厂商名称(20–35)、来自 SFF-8024 的扩展合规代码(36)、IEEE OUI(37–39)、部件号(40–55)、版本(56–59)、波长(nm)或铜缆的线缆合规性/衰减(60–61)、光纤通道速率 2(62)、CC_BASE(63)— 参见厂商字段 |
| 64–95 | 扩展标识 | 选项(64–65)、最大/最小比特率余量百分比(66–67),或当字节 12 = FFh 时字节 66 为以 ×250 Mb/s 表示的速率、序列号(68–83)、日期代码(84–91)、诊断类型(92)、增强选项(93)、SFF-8472 合规版本(94)、CC_EXT(95) |
| 96–127 | 厂商专用 | 由制造商自由使用;通常保存配置信息或签名 |
| 128–255 | 保留 | 为 SFF-8079 应用选择表保留 |
选项字节 64–65
| 字节.位 | 置位时的含义 |
|---|---|
| 64.5 | 高功率等级声明 — 3 级(最高 2.0 W) |
| 64.4 | 已实现分页 — A2h 字节 127 用于选择上层页 |
| 64.3 | 存在重定时器或 CDR |
| 64.2 | 制冷型发射机 |
| 64.1 | 功率等级 2(最高 1.5 W);清零 = 等级 1(1.0 W) |
| 64.0 | 线性接收机输出(例如 10GBASE-LRM) |
| 65.7 | 已实现接收机判决阈值 |
| 65.6 | 可调谐发射机 — 参见可调谐映射 |
| 65.5 | 已实现 RATE_SELECT |
| 65.4 | 已实现 TX_DISABLE |
| 65.3 | 已实现 TX_FAULT |
| 65.2 | LOS 信号取反 |
| 65.1 | 已实现 LOS |
字节 92 — 诊断监测类型
| 位 | 含义 |
|---|---|
| 6 | 已实现数字诊断(A2h) |
| 5 | 内部校准 — A2h 监测值已为物理单位 |
| 4 | 外部校准 — 主机必须应用 A2h 56–91 处的常数 |
| 3 | 接收功率测量方式:1 = 平均功率,0 = OMA |
| 2 | 访问 A2h 前需要地址切换序列(遗留) |
当位 6 置位时,位 5 和位 4 应恰好置位其中一个。两种模式对所见数值的含义: 校准。
字节 93 — 增强选项
位 7 已实现告警/预警标志 · 6 软件 TX_DISABLE 控制 · 5 软件 TX_FAULT 监测 · 4 软件 RX_LOS 监测 · 3 软件 RATE_SELECT · 2 按 SFF-8079 的应用选择 · 1 按 SFF-8431 的软件速率选择。
A2h — 九个诊断块
| 字节 | 块 | 说明 |
|---|---|---|
| 0–39 | 告警和预警阈值 | 5 个监测量 ×(高告警、低告警、高预警、低预警),每项 2 字节,格式与实时值相同 — 阈值与告警 |
| 40–55 | 可选阈值 | 激光器温度和 TEC 电流(制冷型/可调谐模块) |
| 56–91 | 校准常数 | Rx_PWR(4..0) 为 32 位浮点数,Tx_I / Tx_PWR / T / V 的斜率和偏移量;仅当字节 92 位 4 置位时才有意义 |
| 92–94 | 保留 | — |
| 95 | CC_DMI | A2h 字节 0–94 的校验和 — 校验和 |
| 96–105 | 实时监测值 | 温度(96–97)、Vcc(98–99)、Tx bias(100–101)、Tx power(102–103)、Rx power(104–105) |
| 106–109 | 可选监测值 | 激光器温度、TEC 电流 |
| 110–118 | 状态和控制 | 字节 110(见下文)、告警标志 112–113、预警标志 116–117、扩展状态/控制 118(软件 RS1、功率等级状态与选择) |
| 119–126 | 厂商专用 | 在许多基于控制器的模块上实际是密码输入区域(123–126)— 参见写保护类型 |
| 127 | 页选择 | 当 A0h 字节 64 位 4 置位时存在 |
| 128–255 | 上层页 | 00h/01h 页:用户 EEPROM(128–247)和厂商控制(248–255);02h 页:控制功能,即 SFF-8690 可调谐寄存器所在处;其余页为厂商专用 |
监测格式
| 监测量 | 格式 | 单位 |
|---|---|---|
| 温度 | 有符号 16 位 | 1/256 °C |
| Vcc | 无符号 16 位 | 100 µV |
| Tx 偏置电流 | 无符号 16 位 | 2 µA |
| Tx power、Rx power | 无符号 16 位 | 0.1 µW(换算为 dBm:10·log10(µW/1000)) |
换算方法和示例:单位与换算。
字节 110 — 状态/控制
| 位 | 含义 | 访问方式 |
|---|---|---|
| 7 | TX_DISABLE 引脚状态 | 只读 |
| 6 | 软件 TX_DISABLE | 读/写(若字节 93 位 6) |
| 5 | RS1 引脚状态 | 只读 |
| 4 | RS0 引脚状态(速率选择) | 只读 |
| 3 | 软件 RS0 选择 | 读/写 |
| 2 | TX_FAULT 状态 | 只读 |
| 1 | RX_LOS 状态 | 只读 |
| 0 | 数据未就绪(监测功能仍在初始化期间为 1) | 只读 |
铜缆和线缆细节
对于无源和有源铜缆(DAC),字节 60–61 不保存波长:无源线缆时,字节 60 标记 SFF-8431 附录 E 合规性;有源线缆时,相应位标记 FC-PI-4/SFF-8431 限幅或线性合规性。字节 8 位 2–3 标记无源/有源线缆技术,字节 18 携带以米为单位的长度。详见:铜缆以太网与 DAC。
主机实际读取的内容
典型交换机在模块插入时读取 A0h 字节 0–95,校验 CC_BASE 和 CC_EXT,解码标识符、连接器、合规代码和速率,将厂商块与自身策略比对,此后才轮询 A2h 获取 DDM 数据,通常每隔几秒一次。完整流程及其时序: 主机执行的操作。这些字段与实际光学参数不一致,是大多数速率问题 和厂商锁定问题工单的根源。
在 CodingBox 中
CodingBox 读取 A0h 和 A2h(包括声明存在时的分页 A2h),在 EEPROM editor中标注上述表格的每个字段,在写入时重新计算 CC_BASE、CC_EXT 和 CC_DMI,在 DDM 界面应用内部或外部校准,并在 Check transceiver 中显示解码后的身份信息。