文章目录8.11.0 带 Bank 的 Page 13h模块性能诊断控制概述8.11.1 环回能力通告Byte 1288.11.2 诊断测量能力通告Byte 1298.11.2.1 门控支持情况bit 7-6GatingSupport8.11.2.2 门控结果统计支持bit 5GatingResultsSupported8.11.2.3 周期性更新支持bit 4PeriodicUpdatesSupported8.11.2.4 每通道门控定时器支持bit 3PerLaneGatingTimersSupported8.11.2.5 自动重启门控支持bit 2AutoRestartGatingSupported8.11.3 诊断报告能力通告Byte 1301 FEC 相关错误信息MediaSideFEC / HostSideFEC2 SNR 测量Media / HostSideInputSNRMeasurement3误码计数与总比特数BitsAndErrorsCountingSupported4直接误码率结果BitErrorRatioResultsSupported总结摘要此专栏主要介绍光模块通用管理接口规范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 128CMIS规范根据“环回位于主机侧还是媒体侧”、“被环回信号的流向”这两个分类标准定义了四种不同的环回类型如图 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-6GatingSupport什么是“门控”门控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 5GatingResultsSupported模块经过一个门控周期后会先读取 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 4PeriodicUpdatesSupported这个位告诉主机模块在持续测量期间能不能让主机随时看到进度而不是只能等最后的结果。两种工作模式0b没有周期性更新模块就像一台老式打印机必须等整个测量任务全部完成后才会一次性把结果打印出来。测量过程中你问它“现在测到多少了”它不理你或者只会给你看上次的旧数据。1b支持周期性更新模块就像手机上的下载进度条每隔一小段时间就刷新一次。你可以在测量还在进行的时候通过DiagnosticsSelector选择显示哪个“实时统计”项目看到当前的误码计数、误码率等中间结果而不用等测量结束。刷新速度怎么定如果模块支持周期性更新那多久刷新一次呢主机可以通过另一个控制位UpdatePeriodSelect位于Page 13h: Byte 177: bit 0来设定。这样主机就能根据自己的需要选择快一点的刷新比如每秒一次或慢一点的刷新比如每 10 秒一次在实时性和总线带宽之间做权衡。单次测量怎么启动和停止注释还补充了一个实用场景如果你想做一次单次测量不是周期性重复的可以这样操作Step1启动使能内部的检查器checker模块就开始测量。Step2停止写 ResetErrorInformation 位13h:177.5模块就停止测量并清除之前的计数。8.11.2.4 每通道门控定时器支持bit 3PerLaneGatingTimersSupported这个位告诉主机模块内部的定时测量资源是怎么分配的 有两种两种资源分配模式一种是所有通道共用一个门控定时器另一种是每个通道都有自己独立的门控定时器。8.11.2.5 自动重启门控支持bit 2AutoRestartGatingSupported这个能力位告诉主机模块的定时测量门控测量能不能自动循环测试一轮测完自动开始下一轮而不需要主机反复手动启动。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 / HostSideFECFEC前向纠错是高速光模块里用来纠正传输误码的机制。模块内部通常会集成 FEC 编码器和解码器。MediaSideFEC模块能否报告媒体侧光口侧的 FEC 相关错误信息比如在 FEC 解码之前统计的 PRBS 误码。HostSideFEC模块能否报告主机侧电口侧的 FEC 相关错误信息。通俗理解就像你有一个翻译官FEC他会在内部帮你纠正一些听错的话。这两个位告诉你模块能不能把“翻译官纠正了多少错”这个信息告诉你。如果能主机就能更深入地分析链路质量而不仅仅看最终结果。2 SNR 测量Media / HostSideInputSNRMeasurementSNR信噪比是衡量信号质量的重要指标。主机通过给字段DiagnosticsSelectorPage 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 的诊断控制与能力通告机制涵盖环回、门控、周期性更新及诊断报告能力帮助读者理解光模块性能诊断的底层设计。欢迎有疑问的小伙伴在评论区留言讨论。