QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:03 标志、掩码和中断 I

📅 2026/8/12 20:08:55
QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:03 标志、掩码和中断 I
文章目录8.2.3 标志汇总8.2.4 模块级标志8.2.4.1 概述8.2.4.2 字节 81Byte 8 bit 7~6CDB命令完成标志1/22Byte 8 bit 2数据路径固件错误标志3Byte 8 bit 1模块固件错误标志4Byte 8 bit 0模块固件变化标志8.2.4.3 字节 98.2.4.4 字节 108.2.4.5 字节11摘要此专栏主要介绍光模块通用管理接口规范Common Management Interface Specification, CMIS协议规范 V5.0 的解读。本文主要关注协议文档的8.2 小节关于标志、掩码和中断的内容。不仅是对文档的简单翻译还会剖析协议规定背后的深层含义。为了方便与协议文档内容对应本文的章节编号与协议文档保持一致。8.2.3 标志汇总作用CMIS 模块提供了一种非常实用的快速轮询机制。A0h 页的字节 4~7 相当于一个“消息摘要”它汇总了 Page 2Ch、14h、12h 和 11h 中的标志位状态使得主机无需频繁扫描所有页面即可获知模块是否有事件发生。机制汇总位是逻辑“或”运算的结果。只要被它“监控”的某个页面里有任何一个标志位被置位对应的汇总位就会变为 1。主机读取到汇总位为 1 后即可定位到具体页面查找原因。详情参见表 8-7。8.2.4 模块级标志8.2.4.1 概述定义用于报告模块级别的状态变化、运行故障以及受监控对象的阈值越限告警和预警。反映的是整个模块层面的事件而非某个特定通道或存储体Bank。例如模块内部核心电压过高、总功耗异常、外壳温度过高等。报告的内容状态变化模块是否已完成初始化、是否进入低功耗模式、数据路径是否激活等生命周期事件。运行故障指不可恢复的硬件错误例如关键电源轨失效、固件校验错误等致命性故障。阈值越限告警/警告这是数字诊断监控DDM的核心功能。对于每一个被监测的模拟量温度、电压、偏置电流、光功率规范都定义了两套阈值高/低告警Alarm表示参量已超出正常工作范围模块可能已损坏或性能已不达标。高/低警告Warning表示参量偏离了理想值但仍在可工作范围内是预警信号。每个监控量都有对应的告警标志和警告标志。默认状态和清除规则默认状态模块上电并稳定进入 ModuleReady 状态后所有模块级标志应处于清零0 状态。如果此时读到一个标志为 1说明模块存在异常。清除方式当标志位被置1后绝大多数模块级标志是读后清除RO/COR。必须通过读取对应的标志寄存器来清除它们而不能直接写入 0。8.2.4.2 字节 8字节8包含的标志种类较多如下表所示。1Byte 8 bit 7~6CDB命令完成标志1/2定义CDB (Command Data Block)是 CMIS 协议中用于执行复杂管理操作如固件升级、高级诊断、私有命令等的命令接口。主机先向命令缓冲区LPL, Local Payload写入命令和参数然后触发执行最后通过完成标志获知命令结束再去读取响应。CDB 实例 (Instance)一个模块可以支持多个并行的 CDB 通道称为实例。QSFP-DD 支持两个 CDB 实例这允许主机同时执行两个独立的 CDB 命令互不干扰。工作方式命令完成时置位当主机启动一个 CDB 命令后模块固件开始在后台执行。执行结束时CdbCmdCompleteFlag被锁存为 1。触发中断如果该标志未被掩码屏蔽当它从 0 变为 1 时会拉低模块的 INT 引脚向主机发出硬件中断请求。主机可在中断服务程序中读取该标志以响应 CDB 命令的完成。清除方式该标志是锁存型Latching的读后自清除RO/COR。主机通过读取操作获知命令已完成同时该读取操作会导致标志自动清零。因此必须一次性读取并处理。重复读取只会返回 0。Byte 8 bit 5~3 保留。2Byte 8 bit 2数据路径固件错误标志作用DataPathFirmwareErrorFlag专门监测的是 辅助器件Auxiliary Device 内部的固件状态典型代表就是DSP。DSP 负责对高速电信号进行复杂的调制、解调、均衡等处理其内部运行着独立的固件。触发条件当 DSP 或其他类似辅助芯片的内部固件发生崩溃、校验失败、看门狗超时等故障时该标志被置位。清除方式它也是锁存Latched的读后自清除。3Byte 8 bit 1模块固件错误标志作用ModuleFirmwareErrorFlag指示主模块固件的自我监控机制已检测到主模块固件自身发生故障。导致此错误的可能原因有多种例如程序存储器损坏或固件加载不完整。触发条件程序存储器校验Flash CRC 校验固件定期或在上电时计算自身代码区的 CRC与预先存储的校验值对比。如果不一致说明 Flash 中的程序已损坏。看门狗超时如果主固件跑飞或陷入死循环内部看门狗未及时“喂狗”会触发复位或记录错误。固件加载完整性检查在固件升级过程中如果新固件未完整写入或校验失败主固件在启动阶段会检测到映像不完整从而置位该标志。运行时数据区RAM校验某些设计会周期性地校验关键配置数据区防止因电源噪声等导致比特翻转。清除方式它也是锁存Latched的读后自清除。4Byte 8 bit 0模块固件变化标志作用ModuleStateChangedFlag模块状态变化标志用于指示模块状态发生了变化。每当模块状态发生变化该位都会被硬件置为 1并一直保持直到主机读取它读后清除。应用场景故障响应当模块突然从 ModuleReady 跳变到 ModuleFault 时主机可依靠此标志的中断在微秒级时间内感知故障并立即触发保护流程如关闭激光器、上报告警。状态机跟踪在模块初始化或模式切换期间主机可通过此标志得知模块已离开旧状态从而开始轮询新状态无需盲目等待固定的延时。调试与日志结合时间戳记录每次模块状态变化可用于分析模块的生命周期行为。8.2.4.3 字节 98.2.4.4 字节 10CMIS规范在字节10和11中定义了三个辅助监控通道AuxMon。辅助监控通道可由供应商自定义其对应的告警和警告阈值可以在 Page 02h 或其他相关页面中设置。通常监控的对象包括某一路关键核心电压例如 DSP 核电压 0.9V、模拟电压 1.8V激光器偏置电流总和DSP内部温度等8.2.4.5 字节11在字节11中除了辅助监控通道3还有一个用户监控通道也可用于供应商自定义其功能与辅助监控通道相同。字节12为保留字节供应商不可私自使用。字节13为供应商自定义字节供应商可根据自身需求设定此字段的存储信息。综合阅读CMIS规范文档后发现其控制逻辑为“标志、掩码和中断”也就是通过标志来显示模块信息再根据掩码判断该标识是否需要上报主机。若需要上报则光模块通过中断管脚拉高/拉低来提醒主机让主机来查询标志变化信息进而做出下一步管理动作。本文先介绍“标志”这一部分后面几篇文章将会介绍掩码和中断。有疑问的小伙伴可以在评论区留言讨论。