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


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

8.11.0 带 Bank 的 Page 13h(模块性能诊断控制)概述

Page 13h 和 Page 14h 是可选页面,分别包含模块诊断控制结果状态字段。通俗地讲,Page 13h 和 Page 14h 是一对“兄弟页面”,共同构成模块内置的 “体检系统”。Page 13h 是控制台(发指令)Page 14h 是化验单(看结果)。模块通过位 Page 01h: Byte142: bit 5 来通告是否支持 Page 13h 和 Page 14h(见表 8-40)。

  • 两种诊断方式
    在这里插入图片描述

  • 两种计时方式
    不管是哪种诊断方式,都需要规定测量时长。
    在这里插入图片描述

在这两种模式下,模块还可以提供渐进式更新——比如总测量时间是 10 秒,但每 1 秒就汇报一次当前进度,让主机实时看趋势,不用干等 10 秒。

在这里插入图片描述

8.11.1 环回能力通告(Byte 128)

CMIS规范根据 “环回位于主机侧还是媒体侧”“被环回信号的流向” 这两个分类标准,定义了四种不同的环回类型,如图 8-3 所示。
在这里插入图片描述

  • 开启Host侧环回通常用于测试 光模块与主机板(电信号) 之间的连通性;
  • 开启Media侧环回则是用于测试 光路链路(激光器、光纤)的质量,并能 配合 PRBS 码型进行误码率(BER)测试

模块的环回能力在 Page 13h: Byte 128 中通告(参见表 8-89)。
在这里插入图片描述

8.11.2 诊断测量能力通告(Byte 129)

模块的诊断测量能力在 表 8-90 中进行通告。主要包括:

8.11.2.1 门控支持情况(bit 7-6:GatingSupport)

  • 什么是“门控”:门控(Gating)就是给测量装一个定时开关。比如你想测误码率,需要让模块连续测 10 秒钟。这 10 秒钟的计时,就是门控。Byte 129: bit 7-6 通告模块的门控能力。

    • 不支持门控(00b):模块自己没有计时能力。主机说“开始”,它就开始测;主机说“停”,它才停。测量时长完全由主机控制。
    • 支持门控(01b/10b/11b):模块可以自己定时。你告诉它“测 10 秒”,它会自动开始、自动结束,不用你一直盯着。
  • 三档精度:模块自己掐表,但它的“手表”准不准呢?规范把模块的时间精度分成了三档:

    • 01b:≤ 2 ms,误差不超过 2 毫秒。你让它测 10 秒,实际不会超过 10.002 秒,或者低于 9.998 秒。
    • 10b:≤ 20 ms,误差不超过 20 毫秒。
    • 11b:> 20 ms,误差超过 20 毫秒。

为什么会有误差?
协议文档表 8-90 里的注释里说了,因为“模块固件中的调度抖动”:模块固件里有很多任务要调度,可能刚好在 10 秒时,他正忙着回一条 I2C 命令,等忙完再去停止计数器已经是10.003 秒,已经晚了 3 毫秒。

  • “总比特数”是更准的秒表:虽然模块的时间精度可能不准,但它数出来的比特数是绝对准的。

一句话总结: GatingSupport 告诉你模块能不能自己定时测量,以及定时准不准。如果不准,就用它报告的“总比特数”来精确计算实际测了多久。

8.11.2.2 门控结果统计支持(bit 5:GatingResultsSupported)

模块经过一个门控周期后,会先读取 Page 14h: Byte 128,来决定在 Page 14h: Byte 192-255展示哪个诊断数据(例如 “主机通道1-4的误码计数” 还是 “媒体通道5-8的误码计数” )。而此处的 Page 13h: Byte 129: bit 5 就是通告模块是否具备 “选择展示哪个诊断数据” 这个功能。

  • Byte 129: bit 5 = 0b:不支持。
  • Byte 129: bit 5 = 1b:支持。

8.11.2.3 周期性更新支持(bit 4:PeriodicUpdatesSupported)

这个位告诉主机:模块在持续测量期间,能不能让主机随时看到进度,而不是只能等最后的结果。

  1. 两种工作模式
    • 0b:没有周期性更新
      模块就像一台老式打印机,必须等整个测量任务全部完成后,才会一次性把结果打印出来。测量过程中你问它“现在测到多少了”,它不理你,或者只会给你看上次的旧数据。
    • 1b:支持周期性更新
      模块就像手机上的下载进度条,每隔一小段时间就刷新一次。你可以在测量还在进行的时候,通过 DiagnosticsSelector 选择显示哪个“实时统计”项目,看到当前的误码计数、误码率等中间结果,而不用等测量结束。
  2. 刷新速度怎么定?
    如果模块支持周期性更新,那多久刷新一次呢?主机可以通过另一个控制位 UpdatePeriodSelect(位于 Page 13h: Byte 177: bit 0)来设定。这样主机就能根据自己的需要,选择快一点的刷新(比如每秒一次)或慢一点的刷新(比如每 10 秒一次),在实时性和总线带宽之间做权衡。
  3. 单次测量怎么启动和停止?
    注释还补充了一个实用场景:如果你想做一次单次测量(不是周期性重复的),可以这样操作:
    • Step1:启动:使能内部的检查器(checker),模块就开始测量。
    • Step2:停止:写 ResetErrorInformation 位(13h:177.5),模块就停止测量并清除之前的计数。

8.11.2.4 每通道门控定时器支持(bit 3:PerLaneGatingTimersSupported)

这个位告诉主机:模块内部的定时测量资源是怎么分配的, 有两种两种资源分配模式:一种是所有通道共用一个门控定时器,另一种是每个通道都有自己独立的门控定时器。
在这里插入图片描述

8.11.2.5 自动重启门控支持(bit 2:AutoRestartGatingSupported)

  • 这个能力位告诉主机:模块的定时测量(门控测量)能不能自动循环测试,一轮测完自动开始下一轮,而不需要主机反复手动启动。
    • Page 13h: Byte 129: bit 4 = 1b:支持。
    • Page 13h: Byte 129: bit 4 = 0b:不支持。
  • 如果支持自动重启测试功能,那么可以在 Page 13h: Byte 177: bit 4 中开启或关闭这个功能。
    • Page 13h: Byte 177: bit 4 = 1b:开启自动重启,模块开始周期性地连续测量。
    • Page 13h: Byte 177: bit 4 = 0b:关闭自动重启,模块完成当前一轮后停止。

字节129的汇总如表8-90所示。
在这里插入图片描述

8.11.3 诊断报告能力通告(Byte 130)

这个字节是模块告诉主机:自己能提供哪些诊断测量结果。主要分四类,分别是FEC 相关错误信息SNR误码计数与总比特数误码率

(1) FEC 相关错误信息(MediaSideFEC / HostSideFEC)

FEC(前向纠错) 是高速光模块里用来纠正传输误码的机制。模块内部通常会集成 FEC 编码器和解码器。

  • MediaSideFEC:模块能否报告媒体侧(光口侧)的 FEC 相关错误信息,比如在 FEC 解码之前统计的 PRBS 误码。
  • HostSideFEC:模块能否报告主机侧(电口侧)的 FEC 相关错误信息。

通俗理解:就像你有一个翻译官(FEC),他会在内部帮你纠正一些听错的话。这两个位告诉你,模块能不能把“翻译官纠正了多少错”这个信息告诉你。如果能,主机就能更深入地分析链路质量,而不仅仅看最终结果。

(2) SNR 测量(Media / HostSideInputSNRMeasurement)

SNR(信噪比) 是衡量信号质量的重要指标。主机通过给字段DiagnosticsSelector(Page 14h: Byte 128)写 06h 值,就能让Page 14: Byte 192-255 显示 SNR 值。这是非侵入式测量,不打断正常业务。

  • MediaSideInputSNRMeasurement:模块是否支持测量从光纤进来的光信号的信噪比。
  • HostSideInputSNRMeasurement:模块是否支持测量从交换机进来的电信号的信噪比。

(3)误码计数与总比特数(BitsAndErrorsCountingSupported)

这个位对应 DiagnosticsSelector 值 02h–05h,这些菜单项提供原始误码计数和总比特数。这个位就是告诉你:模块能不能提供这些原始计数。能,主机就自己算;不能,那就得用别的办法。

为什么有些模块不直接给 BER? 因为计算 BER 需要用误码数除以总比特数。对于 64 位整数,如果模块的处理器没有硬件除法器,做一次 64 位除法可能非常耗时,甚至比测量本身还慢。所以很多模块干脆只提供两个原始数(误码数、总比特数),把除法留给主机去做。

(4)直接误码率结果(BitErrorRatioResultsSupported)

这个位对应 DiagnosticsSelector 值 01h,表示模块是否能直接提供已经算好的 BER。

  • 如果支持,主机读到的是一个浮点数(F16),直接就是误码率;
  • 如果不支持,主机只能用 02h–05h 的原始计数来自己计算。

字节129的诊断报告能力汇总如表8-91所示。
在这里插入图片描述

总结

本文解读了 CMIS V5.0 中 Page 13h 的诊断控制与能力通告机制,涵盖环回、门控、周期性更新及诊断报告能力,帮助读者理解光模块性能诊断的底层设计。欢迎有疑问的小伙伴在评论区留言讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值