news 2026/9/10 23:30:40

QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:11 Page 13h IV

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QSFP/QSFP-DD/OSFP 通用管理接口规范(CMIS)解读:11 Page 13h IV

文章目录

  • 8.11.10 时钟与测量控制
    • (1)时钟源设置(Byte 176)
    • (2)全局启动/停止(Byte 177: bit 7,StartStopIsGlobal)
    • (3)重启错误计数(Byte 177: bit 5,ResetErrorInformation)
    • (4)自动重启门控(Byte 177: bit 4,AutoRestartGating)
    • (5)门控测量时间(Byte 177: bit 3-1,MeasurementTime)
    • (6)更新周期选择(Byte 177: bit 0,UpdatePeriodSelect)
    • (7)主机侧 PRBS 码型检查器的时钟源(Byte 178: bit 3-2,HostPRBSCheckerClockSource)
    • (8)媒体侧 PRBS 码型检查器的时钟源(Byte 178: bit 1-0,MediaPRBSCheckerClockSource)
  • 8.11.12 环回控制
  • 8.11.13 诊断掩码
  • 8.11.14 用户自定义码型
  • 总结

摘要:此专栏主要介绍光模块通用管理接口规范(Common Management Interface Specification, CMIS)协议规范 V5.0 的解读。本文主要关注协议文档的 8.11 节关于 Page 13h 的内容。不仅是对文档的简单翻译,还会剖析协议规定背后的深层含义。为了方便与协议文档内容对应,本文的章节编号与协议文档保持一致。

8.11.10 时钟与测量控制

这一节是码型发生器和检查器的“总控面板”说明。前面几节分别讲了主机侧/媒体侧的发生器和检查器怎么用,但还有一些公共的、全局性的控制需要统一管理,比如:

  • 时钟源选择:测试信号该用哪个时钟来驱动?是用模块自己的参考时钟,还是从接收信号里恢复出来的时钟?
  • 测量启动与停止:什么时候开始计数误码?什么时候停止?如何复位计数器?
  • 测量时长控制:是连续测量,还是定时测量(门控)?门控时间多长?
  • 更新周期:测量过程中,多久刷新一次中间结果?

规范还贴心地提供了一些实际配置示例,放在附录 E 里。

(1)时钟源设置(Byte 176)

时钟源有三个,分别是:

  • 内部时钟:模块自带的晶振,稳定、独立,但不一定和实际数据同步。如果只是想快速测一下链路通断,选内部时钟最方便。
  • 参考时钟:来自某个指定通道的外部时钟,通常由系统提供,比内部时钟更精确。
  • 恢复时钟:从实际接收到的数据信号里“提取”出来的时钟,它能完全跟随数据流的节奏,做到完全同步。如果要做环回测试,通常需要从接收信号里恢复时钟,保证收发完全同步,这时选恢复时钟最合适。
  1. 主机侧 PRBS 码型发生器的时钟源(Byte 176: bit 7-4,HostPRBSGeneratorClockSource)
    • 0:所有通道使用内部时钟
    • i=1-8:所有通道使用媒体通道 i 的参考时钟
    • 9-14:保留
    • 15:每个媒体通道或数据路径使用从数据中恢复出来的时钟。
  2. 媒体侧 PRBS 码型发生器的时钟源(Byte 176: bit 3-0,MediaPRBSGeneratorClockSource)
    • 0:所有通道使用内部时钟
    • 1:所有通道使用参考时钟
    • i=2-9:所有通道使用主机通道 i-1 的参考时钟
    • 10-14:保留
    • 15:每个主机通道或数据路径使用从数据中恢复出来的时钟。

(2)全局启动/停止(Byte 177: bit 7,StartStopIsGlobal)

这个位是给多 Bank 模块提供的一个“全局开关”,让主机能够一键同步启动或停止所有 Bank 的测量,而不需要一个一个 Bank 去写。

  1. 背景:多 Bank 带来的同步难题
    对于支持多个 Bank(每个 Bank 对应 8 个通道)的模块。在诊断测量中,启动/停止测量的控制位分布在每个 Bank 的 Page 13h 里。比如:

    • ResetErrorInformation:复位错误信息,在每个 Bank 的 13h:177.5 都有一份,共 4 个实例(对应 Bank 0–3)。
    • HostSideCheckerEnableLane:主机侧检查器使能,在每个 Bank 的 13h:160.0-7 有一组 8 位,共 32 个实例(4 Bank × 8 通道)。
    • MediaSideCheckerEnableLane:媒体侧检查器通道使能,共 32 个实例,地址是每个 Bank 的 13h:168.0-7。

    主机如果想启动所有 Bank 的测量,必须逐个 Bank 去写这些控制位。但 I2C 总线是串行的,写 Bank 0 和写 Bank 1 之间必然有时间差。这就导致不同 Bank 的测量开始时刻不一致,影响同步测量的精度

  2. StartStopIsGlobal 的作用
    这个位就是为解决同步问题而设计的“总开关”:

    • 0b:你写某个 Bank 的启动/停止控制,只影响那个 Bank。其他 Bank 不受影响。
    • 1b:你写任意一个 Bank 的启动/停止控制,模块内部会把它广播到所有支持的 Bank,让所有 Bank 的对应控制同时变化,达到同步启动/停止的效果。

(3)重启错误计数(Byte 177: bit 5,ResetErrorInformation)

ResetErrorInformation位就像诊断测量系统的“暂停/清零”按钮,但它非常巧妙,根据你按下的方向(从 0 到 1,还是从 1 到 0)以及模块的配置不同,会产生不同的效果。

  • 对错误信息的影响:冻结与清零
    想象模块内部有一个计数器,一直在统计误码。DiagnosticsSelector 01h–05h 代表“实时统计”,11h–15h 代表“上一轮门控的结果”。

    1. 按下“暂停”(0b→1b)
      计数器停止累加,当前计数被冻结住。同时,如果模块支持门控统计,它会把这份冻结的当前数据搬运到“上一轮结果”存储区(11h–15h),这样主机就可以读取一个稳定的中间结果。
    2. 按下“复位”(1b→0b)
      计数器清零,重新从 0 开始统计。但“上一轮结果”存储区(11h–15h)不会动,仍然保留之前冻结的值,方便主机之后慢慢读。
  • 对门控定时器的影响:取决于模块是否支持每通道定时器
    门控定时器用来控制测量的时间长度。ResetErrorInformation 的变化同时也会影响这些定时器的启停。

    1. 如果模块只有全局定时器(不支持每通道定时器):这个位控制唯一的一个总定时器。
    • 从 0 到 1:停止总定时器。
    • 从 1 到 0:启动总定时器。
    1. 如果模块支持每通道独立定时器:这个位的含义变成:
    • 为 1:让定时器保持停止。
    • 为 0:启动定时器。
      而且启动或停止的范围由 StartStopIsGlobal 决定:若 StartStopIsGlobal=0,只影响当前 Bank 的通道;若为 1,则影响所有 Bank 的所有通道。

开始

把 ResetErrorInformation 从 0 置为 1:冻结旧数据,停止定时器

配置好码型、通道等

把 ResetErrorInformation 从 1 清为 0:清零计数器,启动定时器,开始新的测量

测量完成后,再把它从 0 置为 1:停止测量,把结果搬到 11h–15h 的“门控结果”区

主机去读取结果

(4)自动重启门控(Byte 177: bit 4,AutoRestartGating)

这位是诊断测量的“循环模式开关”。它决定了一轮定时测量结束后,模块是停下来等主机,还是自动开始下一轮。

  • 0b:单轮模式(测完就停):当门控时间结束时,模块会置位字节 14h:134-135 中的 Gate Complete Flag。模块会更新误码计数结果,并停止误码检测。
  • 1b:自动循环模式(测完立刻再来一轮):当门控时间结束时,模块会置位字节 14h:134-135 中的 Gate Complete Flag。模块会更新误码计数结果,然后立即清除内部误码计数器重启门控定时器,继续统计误码。

注: 在自动重启模式下,主机必须在门控时间结束前读取误码计数结果,以避免结果值被新结果覆盖。

(5)门控测量时间(Byte 177: bit 3-1,MeasurementTime)

测量(门控)时间:在一个定义的测量周期内产生一个完整结果所需的时间。

(6)更新周期选择(Byte 177: bit 0,UpdatePeriodSelect)

这个字段设置的是:在模块进行长时间测量时,主机查看中间进度的频率,就像下载文件时进度条的刷新速度。

  • 作用
    这个位就是控制“每隔多久更新一次中间结果”:
    • 0b:每 1 秒更新一次。主机每秒都能读到最新的误码计数,进度条很平滑,但会占用更多 I2C 读操作。
    • 1b:每 5 秒更新一次。主机每 5 秒才看到一次新数据,更新频率低一些,但也能满足大多数监控需求。
  • 前提条件:模块必须支持周期性更新
    这个字段只有在模块支持周期性更新时才有效。支持与否由能力位 **PeriodicUpdatesSupported(13h:129.4)**通告:
    • 如果该能力位为 1b,说明模块支持在测量期间周期性更新 DiagnosticsSelector 01h–06h 的实时统计结果。这时 UpdatePeriodSelect 才有意义。
    • 如果该能力位为 0b,模块不提供中间更新,主机只能等测量结束读最终结果,UpdatePeriodSelect 设置了也没用。

(7)主机侧 PRBS 码型检查器的时钟源(Byte 178: bit 3-2,HostPRBSCheckerClockSource)

主机侧 PRBS 码型检查器的时钟源可通过该控制寄存器进行配置:
0h:使用来自主机通道/数据路径的恢复时钟
1h:所有通道使用内部时钟
2h:所有通道使用参考时钟
3h:保留

(8)媒体侧 PRBS 码型检查器的时钟源(Byte 178: bit 1-0,MediaPRBSCheckerClockSource)

0h:使用来自媒体通道/数据路径的恢复时钟
1h:所有通道使用内部时钟
2h:所有通道使用参考时钟
3h:保留

8.11.12 环回控制

这一章节的内容可以用三个词来概括:前提、内容、权利。

  • 前提:模块的环回能力由表8-89中的Page 13h Byte 128字节通告。主机必须先读这个能力通告,确认模块支持后,再配置。
  • 内容:各个环回控制项如表8-109所示,包括四个字节Page 13h Byte 180-183。这四个字节是模块的“环回开关”。但开关的粒度取决于模块的能力:支持每通道控制就能单独开某一条,不支持就一开全开。能力位在13h:128.0–3
  • 权利:模块有权拒绝主机的命令。如果主机写了模块不支持的模式,模块会拒绝,并且寄存器值保持不变

8.11.13 诊断掩码

表 8-110 为所有诊断标志提供了掩码位。本页上所有掩码位的默认值均为 1(被屏蔽)。诊断标志位于 Page 14h(见表 8-115)。
诊断掩码分为三类,分别对应诊断过程中可能出现的三种重要事件:

  • 门控完成(Gating Complete):当主机设置了一个定时测量(比如“测 10 秒误码”),时间一到,模块就会产生“门控完成”标志,表示这一轮测量结束了,结果已经准备好。这个掩码控制该事件是否触发中断。
  • 码型发生器失锁(Pattern Generator LOL):码型发生器是模块内部产生测试数据的小设备。它需要锁定时钟才能正常工作。如果因为某些原因(比如时钟源异常)锁不住了,就会产生“失锁”标志。这个掩码控制该事件是否触发中断。
  • 码型检查器失锁(Pattern Checker LOL):码型检查器是模块内部检查测试数据的“质检员”。它同样需要锁定时钟。如果锁不住,就没法正确比对数据,于是产生“检查器失锁”标志。这个掩码控制该事件是否触发中断。

8.11.14 用户自定义码型

  • 背景
    在诊断测试中,除了模块内置的标准测试码型(比如 PRBS31、PRBS13Q),有时主机想要发送一段自己定义的特定数据序列来进行测试。这个“用户自定义码型”就是供应商的“私人定制测试码型”。
  • 内容
    表 8-111 最多可以写 32 个音符(224~255 字节)。主机可以把想测试的数据序列填进去。模块不一定能把 32 个音符全唱出来。有些模块可能只能唱 4 个、8 个或 16 个音符。具体能支持多长,要看模块在表 8-96里广告的能力(之前学过 UserPatternLengthSupported 字段)。
  • 工作过程
    主机在用自定义码型前,先要查一下模块最大支持多长,然后再往表 8-111 里写入相应长度的自定义数据,最后让发生器按这个模式发出去测试。

总结

本文解读了 CMIS V5.0 中 Page 13h 的时钟与测量控制、环回控制、诊断掩码及用户自定义码型等关键寄存器,帮助读者理解诊断测试的全局控制机制与配置要点,为光模块调试提供实用参考。欢迎有疑问的小伙伴在评论区留言讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 23:29:56

武汉青山区洗衣机维修推荐,欧米到家解决老旧洗衣机维修和保养需求

前言洗衣机是现代家庭使用频率较高的家电之一,长期运行后容易出现不脱水、不排水、不进水、漏水、异响、无法启动、显示故障代码等问题。尤其武汉地区家庭使用洗衣机频率较高,面对设备突然故障时,选择专业、规范的维修服务非常重要。欧米到家…

作者头像 李华
网站建设 2026/9/10 23:26:44

如何安装 TVBoxOSC:电视盒子管理工具的部署与配置指南

如何安装 TVBoxOSC:电视盒子管理工具的部署与配置指南 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库,用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC TVBoxOSC 是一个面向电视盒子控…

作者头像 李华
网站建设 2026/9/10 23:25:42

关于墨衍 MoGrow 的 15 个常见问题(FAQ 合集)

墨衍 MoGrow 是面向开发者与企业的一站式 AI 数字营销平台,提供 AI 选题创作、多平台一键分发与 SEO & GEO 双端优化。本文把用户最常问的 15 个问题集中回答,便于一次性建立完整认知。 一、产品认知类 1. 墨衍 MoGrow 是什么? 墨衍 MoGr…

作者头像 李华
网站建设 2026/9/10 23:23:43

SpringBoot电竞商城系统架构与高并发实践

1. 项目概述:电竞周边商城的商业与技术价值这个基于SpringBoot的游戏周边商城系统,本质上是一个垂直领域的电商平台,专门服务于快速增长的电竞衍生品市场。根据最新行业报告,全球电竞周边市场规模已突破50亿美元,年增长…

作者头像 李华