9 CDB命令参考
CDB 命令参考#
CDB 是主机与模块之间进行命令-应答消息交换的可选功能。
CDB 的支持情况在 01h:163 中通告(参见第 8.4.11 节)。
当模块支持 CDB 时,所有已定义 CDB 命令的子集(例如功能查询)是(有条件地)必需的。有关有条件必需命令组的信息,请参见表 9-1。在每个有条件必需的命令组中,还有进一步的按命令信息,说明哪些命令是有条件必需的。
所有其他命令均为可选。
如 01h:163.7-6 所通告,模块可以提供多个 CDB 消息交换实例。
CDB 消息实例通过 CDB 消息交换页的 Bank 地址来区分。
9.1 CDB 命令组概览#
主机与模块之间的单次 CDB 数据交换遵循命令-应答模式。
因此,各个消息交互被称为 CDB 命令(简称,尽管实际上包含命令和关联的响应)。
每种类型的 CDB 交互(CDB 命令)由一个 CDB 命令标识符(CMD ID)标识,该标识符决定了 CDB 数据交换的目的、结构和语义。
表 9-1 CDB 命令组
| CMD ID | 命令组 | 描述 | 组 | 参见 | |
|---|---|---|---|---|---|
| 起始 | 结束 | ||||
| 0000h | 003Fh | 模块命令 | CDB 模块级命令。 | 必需 | 9.3 |
| 0040h | 005Fh | 能力查询 | 查询已通告的 CDB 特性和能力 | 必需 | 9.4 |
| 0060h | 006Fh | - | 保留,用于 Bank 和页的批量读取。 | - | 9.4.6 |
| 0070h | 007Fh | - | 保留,用于 Bank 和页的批量写入。 | - | 9.6 |
| 0080h | 00FFh | - | 保留,用于模块级命令 | - | - |
| 0100h | 011Fh | 固件管理 | CDB 固件管理 | 通告 | 9.7 |
| 0120h | 01FFh | - | 保留 | - | - |
| 0200h | 027Fh | 性能监控 | CDB 性能监控 | 通告 | 9.8 |
| 0280h | 02FFh | 数据记录 | 非易失性数据记录与监控 | 通告 | 9.9 |
| 0300h | 037Fh | - | 保留,用于 BERT 功能 | 9.10 | |
| 0380h | 03FFh | 诊断与调试 | 保留,用于诊断与调试命令 | 通告 | 9.11 |
| 0400h | 04FFh | 安全特性 | 安全相关的 CDB 命令 | 通告 | 9.12 |
| 0500h | 3FFFh | - | 保留 | - | - |
| 4000h | 40FFh | 通用控制集 | 模块定义的、可能与应用相关的控制集中的 SI 参数在 CMIS-VCS 补充文档 [6] 中定义 | 通告 | [6] |
| 4100h | 7FFFh | - | 保留供 OIF 使用。此 CMD ID 范围允许 OIF 在单独的补充文档中定义特定于应用的新消息组。注意:每个组的 CMD ID 范围可以提供额外的保留供 OIF 使用的子范围。 | ||
| 8000h | FFFFh | - | 自定义 |
9.2 通用消息规则#
9.2.1 命令与应答#
一次消息交互由一个主机命令(CMD)和关联的模块响应(REPLY)组成。
主机准备 CMD 参数并触发模块执行 CMD。
模块处理请求的命令并准备 REPLY 头和 REPLY 数据。
当处理完成时,模块设置命令完成标志和命令状态字节,根据所使用的 CDB 实例如下:
- CdbCmdCompleteFlag1 (00h:8.6) 和 CdbStatus1 (00h:37) 用于 CDB 实例 1
- CdbCmdCompleteFlag2 (00h:8.7) 和 CdbStatus2 (00h:38) 用于 CDB 实例 2
这些规则适用于所有 CDB 命令以及后台模式和前台模式处理。
9.2.2 多 CDB 实例的使用#
一次命令-应答消息交互始终使用相同的 CDB 实例(即相同的 Bank 地址)。
对于涉及 CDB 命令序列的协议(如固件下载),每个协议执行绑定到可能的多个 CDB 消息实例中的一个。在不同 CDB 实例上并行或顺序发送协议消息可能导致模块行为未定义。
9.2.3 命令扩展的准备工作#
未来的 CMIS 版本可能会以向后兼容的方式,通过重新定义消息体中先前保留的部分,为现有 CDB 命令添加可选参数(具有向后兼容的默认值)。
尚未确定此类消息定义的更改是否包括更改消息长度。
希望对此类未来命令扩展保持容忍的模块必须避免根据预期检查长度字段。
因此建议这些模块以以下方式对具有意外长度字段的命令做出响应:
- 当接收到较短的消息内容(与字段结构兼容)时,仅处理此内容,并在其余预期字段中假定零值。
- 当接收到较长的消息内容时,仅处理已知长度的内容。
- 在所有情况下,校验码 RPLChckCode 需要根据接收到的长度进行计算。
9.2.4 查询应答扩展的准备工作#
预计在未来 CMIS 版本中,可能会向 CDB 查询命令的 应答 中添加消息内容。
示例:用于检索对象属性的 CDB 命令可能在未来的版本中返回更多属性。
为了向后兼容,此类扩展将始终附加到现有的消息应答体之后,因此长度字段的内容会相应更改。
注意:这是可行的,因为几乎所有应答都将 LPL 或 EPL 中的剩余空间定义为未指定。
因此建议主机以以下方式对具有意外长度字段的消息应答做出响应:
- 当接收到较短的消息内容(与字段结构兼容)时,仅处理此内容。
- 当接收到较长的消息内容时,仅处理已知长度的内容。
- 在所有情况下,校验码 RPLChckCode 需要根据接收到的长度进行计算。
9.3 CDB 模块命令#
表 9-2 CDB 模块命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0000h | Query Status | 模块返回成功状态 (01h) 的 CdbStatus 以及模块的基本状态信息,如密码解锁状态。注意:也可用于检查是否支持 CDB。 | 必需 | 9.3.1 |
| 0001h | Enter Password | 此命令允许主机输入密码。模块报告成功或失败,特别是密码是否被接受或拒绝。注意:也可以通过写入字节 00h:122-125 来输入密码,但此方法缺乏密码是否被接受或拒绝的反馈。 | 通告 | 9.3.2 |
| 0002h | Change Password | 此命令允许主机更改主机密码。模块的应答报告成功或失败,即新主机密码是否已被接受并成功存储到非易失性内存中,或是否存在任何错误。注意:也可以通过写入字节 00h:118-121 来持久更改主机密码,但没有操作是否成功完成的反馈。 | 通告 | 9.3.3 |
| 0003h | - | 保留 | ||
| 0004h | Abort Processing | 中止当前后台操作 | 通告 | 9.3.4 |
| 0005h-001Fh | - | 保留 |
9.3.1 CMD 0000h: Query Status#
此 Query Status 命令可用于检索密码接受状态(如有)并执行 CDB 消息测试。
消息中的 ResponseDelay 时间参数定义了模块在通过断言 CDB 完成标志返回此命令响应之前,由主机指定的延迟。
注意:此延迟插入可用作测试,特别是当模块通过 01h:163.5 通告 CDB 命令在后台处理时。如果在延迟时间内启用了 MCI,CdbStatus 将报告”In Progress”状态,直到延迟时间到期。如果 MCI 被禁用,则 MCI 将 NACK 直到延迟时间结束且 CDB 响应就绪。
返回消息显示当前模块解锁级别。
表 9-3 CDB 命令 0000h: Query Status
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Query Status CMD ID | 0000h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-137 | ResponseDelay | U16。模块响应此命令的可编程延迟(毫秒)。值为 0 表示要求模块尽快响应 | |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在捕获命令 10 000010b: 正在检查/验证命令 10 000011b: 正在执行命令 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | LPL 或 EPL 中 REPLY 消息体的编码长度和校验码。参见表 8-179。 | 2 |
| REPLY 数据 (LPL) | 9Fh | 135 | RPLChkCode | comp. |
| 9Fh | 136 | Length | 此消息载荷的长度(包括此字节) | 2 |
| 9Fh | 137 | Status | 0000 0000b: 模块启动。0000 0001b: 主机密码已接受。1xxx xxxxb: 模块密码已接受。位’x’可能包含自定义信息。模块密码是在密码字段中设置位 31 的密码(参见第 8.2.14 节)。 | |
| 9Fh | 138-255 | - | 无数据返回。模块未修改内容¹ ¹ 未返回的应答消息部分的字节通常为”未指定”。此处使用更强的规范”未修改”,是出于历史原因(保持与先前措辞的向后兼容性)。 |
9.3.2 CMD 0001h: Enter Password#
Enter Password 命令允许主机输入主机密码。
表 9-4 CDB 命令 0001h: Enter Password
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Enter Password CMD ID | 0001h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 4 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | Password | 要输入的密码 | |
| 9Fh | 140-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 01 000110b: 密码错误 – 未被接受 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.3.3 CMD 0002h: Change Password#
Change Password 命令允许主机更改主机密码。
表 9-5 CDB 命令 0002h: Change Password
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头字段 | ||||
| 9Fh | 128-129 | CMDID | Change Password CMD ID | 0002h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 4 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | New password | ||
| 9Fh | 140-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误(例如位 31 被设置)。01 000101b: CdbChkCode 错误 01 000110b: 权限不足,无法更改密码 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.3.4 CMD 0004h: Abort Processing#
Abort 命令允许主机中止任何当前的后台操作。
表 9-6 CDB 命令 0004h: Abort
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Abort Processing CMD ID | 0004h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | FBh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.4 CDB 特性与能力查询命令#
表 9-7 CDB 特性与能力命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0040h | Module Features | 标识在 CMD ID 空间 0000h 到 00FFh 中支持哪些模块级命令。注意这包括本组中的命令。 | 必需 | 9.4.1 |
| 0041h | Firmware Management Features | 标识在 CMD ID 空间 0100h 到 011Fh 中支持哪些固件管理特性。 | 必需 | 9.4.2 |
| 0042h | Performance Monitoring Features | 标识在 CMD ID 空间 0200h 到 02FFh 中支持哪些性能监控和数据监控与记录命令 | 必需 | 9.4.3 |
| 0043h | BERT and Diagnostic Features | 标识在 CMD ID 空间 0300h 到 03FFh 中支持哪些 BERT 和诊断特性 | 必需 | 9.4.4 |
| 0044h | Security Features | 标识在 CMD ID 空间 0400h 到 04FFh 中支持哪些安全相关命令和特性 | 通告 | 9.4.5 |
| 0045h | Externally Defined Features | 标识在受限制的 CMD ID 空间 4000h 到 7FFFh 的专用部分中定义 CDB 消息的哪些 CMIS 补充规范受支持 | 通告 | 9.4.6 |
| 0046h-005Fh | - | 保留 |
9.4.1 CMD 0040h: Module Features#
此命令用于查询支持哪些 CDB 命令。
表 9-8 CDB 命令 0040h: Module Features
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Module Features CMD ID | 0040h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | BFh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 36 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | CDB Flags | 保留用于额外的 CDB 标志。 | 00h |
| 9Fh | 137 | - | 保留 | 00h |
| 9Fh | 138 | CMDs 0000h-0007h | 此 32 字节数组表示 CDB 命令 CMD <i>(标识符 0 ≤ <i> ≤ 255)的支持情况,如下:当字节 <k> = 138+floor(<i>/8) 的位 <j>=<i>mod 8 被设置时,CMD <i> 受支持。注意:先前的 CMIS 版本对于必需命令是否也在此处”通告”存在歧义。为尊重现有实现,不指示必需命令是允许的(但已弃用)。 | |
| 9Fh | 139 | CMDs 0008h-000Fh | ||
| 9Fh | 140 | CMDs 0010h-0017h | ||
| 9Fh | 141 | CMDs 0018h-001Fh | ||
| 9Fh | 142 | CMDs 0020h-0027h | ||
| 9Fh | 143 | CMDs 0028h-002Fh | ||
| 9Fh | 144 | CMDs 0030h-0037h | ||
| 9Fh | 145 | CMDs 0038h-003Fh | ||
| 9Fh | 146 | CMDs 0040h-0047h | ||
| 9Fh | 147 | CMDs 0048h-004Fh | ||
| 9Fh | 148 | CMDs 0050h-0057h | ||
| 9Fh | 149 | CMDs 0058h-005Fh | ||
| 9Fh | 150 | CMDs 0060h-0067h | ||
| 9Fh | 151 | CMDs 0068h-006Fh | ||
| 9Fh | 152 | CMDs 0070h-0077h | ||
| 9Fh | 153 | CMDs 0078h-007Fh | ||
| 9Fh | 154-169 | CMDs 0080h-00FFh | ||
| 9Fh | 170-171 | MaxCompletionTime | U16 所有支持的 CDB 命令的最大 CDB 命令执行时间(毫秒)。注意:如果超时,主机可以发送 CDB Abort 命令。注意:最大可能的 MaxCompletionTime 约为一分钟(65.535 秒)。 | |
| 9Fh | 172-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.2 CMD 0041h: Firmware Management Features#
此命令用于查询支持哪些固件管理特性以及查询命令性能属性。
表 9-9 CDB 命令 0041h: Firmware Management Features
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Firmware Management Features CMD ID | 0041h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | BEh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 18 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | - | 保留 | 0 |
| 9Fh | 137.7 | ImageReadback | 0b = 不支持完整镜像回读 1b = 支持完整镜像回读(参见第 7.3.1 节) | |
| 9Fh | 137.6-4 | - | 保留 | |
| 9Fh | 137.3 | MaxDurationCoding | 0b = 最大持续时间乘数 M 为 1 1b = 最大持续时间乘数 M 为 10 此位编码乘数值 M,用于解释此消息字节 144-153 中通告的最大持续时间 U16 数组中的值:这些通告值乘以 M。 | |
| 9Fh | 137.2 | SkippingErasedBlocks | 0b = 不支持跳过已擦除块 1b = 支持跳过已擦除块 | |
| 9Fh | 137.1 | CopyCmd | 0b = CMD 0108h(复制镜像)不支持 1b = CMD 0108h(复制镜像)支持 | |
| 9Fh | 137.0 | AbortCmd | 0b = CMD 0102h(中止)不支持 1b = CMD 0102h(中止)支持 | 000b |
| 9Fh | 138 | StartCmdPayloadSize | 定义主机必须从供应商交付的二进制固件镜像文件开头提取并在 CMD 0101h(Start)中发送给模块的字节数。 | |
| 9Fh | 139 | ErasedByte | 表示已擦除字节的值。通告此字节的目的是通过允许主机跳过发送仅包含 ErasedByte 值的镜像块来可选地减少下载时间。注意:通常对于 NAND 闪存,已擦除状态为 FFh,对于其他闪存或 EEPROM 技术为 00h。 | |
| 9Fh | 140 | ReadWriteLengthExt | ReadWriteLengthExt = i 指定 READ 或 WRITE 中允许的额外字节八位组数,特别是对于固件管理命令(ID 0100h-01FFh)如下 |
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| EPL: 对于访问多页 EPL 字段,允许的长度扩展为 i 字节八位组(8 字节)。LPL: 对于访问页 9Fh 上的 LPL 字段,允许的长度扩展为 min(i, 15) 字节八位组。这导致 READ 或 WRITE 的最大长度如下 | 值 最大字节数 (EPL) 0: 8 字节(不扩展一般长度限制)i: 8 * (1+ i) 字节 (0 ≤ i ≤ 255) 255: 8 * 256 = 2048 字节 值 最大字节数 (LPL) 0: 8 字节(不扩展一般长度限制)i: 8 * (1+ i) 字节 (0 ≤ i ≤ 15) i: 8 * 16 = 128 字节 (16 ≤ i ≤ 256) 注意:另请参见 CdbReadWriteLengthExtension 字节 01h:164,它为任意 CDB 命令定义了类似的长度扩展。 | |||
| 9Fh | 141 | WriteMechanism | 固件更新支持的机制。00h: 不支持。01h: 支持写入 LPL。10h: 支持写入 EPL。11h: 同时支持写入 LPL 和 EPL。 | |
| 9Fh | 142 | ReadMechanism | 固件读取/回读支持机制。00h: 不支持。01h: 支持通过 LPL 读取。10h: 支持通过 EPL 读取。11h: 同时支持通过 LPL 和 EPL 读取。 | |
| 9Fh | 143 | HitlessRestart | 0: CMD Run Image 导致复位。流量受影响。1: CMD Run Image 可能复位但模块将尽力维护流量和管理状态。数据路径功能不复位。 | |
| 9Fh | 144-145 | MaxDurationStart | U16 CDB Start 命令完成执行的最大时间(M 毫秒),其中 M 由位 137.3 定义 | |
| 9Fh | 146-147 | MaxDurationAbort | U16 CDB Abort 命令完成执行的最大时间(M 毫秒),其中 M 由位 137.3 定义 | |
| 9Fh | 148-149 | MaxDurationWrite | U16 CDB Write 命令完成执行的最大时间(M 毫秒),其中 M 由位 137.3 定义 | |
| 9Fh | 150-151 | MaxDurationComplete | U16 CDB Complete 命令完成执行的最大时间(M 毫秒),M 由位 137.3 定义 | |
| 9Fh | 152-153 | MaxDurationCopy | U16 CDB Copy 命令完成执行的最大时间(M 毫秒),其中 M 由位 137.3 定义 | |
| 9Fh | 154-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.3 CMD 0042h: Performance Monitoring Features#
表 9-10 CDB 命令 0042h: Performance Monitoring Features
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Performance Monitoring Features CMD ID | 0042h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | BDh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 32 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | CMDs 0200h-0207h support | 每个位表示一个掩码。如果位为”1”则表示支持该命令 D0: 支持 CMD 0200h。.. D7: 支持 CMD 0207h。 | |
| 9Fh | 137 | CMDs 0208h-020Fh | 每个位表示一个掩码。如果位为”1”则表示支持该命令 D0: 支持 CMD 0208h。.. D7: 支持 CMD 020Fh。 | |
| 9Fh | 138-151 | CMDs 0210h-027Fh | 位掩码定义支持的命令。 | |
| 9Fh | 152 | CMDs 0280h-0287h | 数据监控命令支持。D0: 支持 CMD 0280h。.. D7: 支持 CMD 0287h。 | |
| 9Fh | 153-167 | CMDs 0288h-02FFh | ||
| 9Fh | 168-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.4 CMD 0043h: BERT and Diagnostics Features#
表 9-11 CDB 命令 0043h: BERT and Diagnostics Features
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头字段 | ||||
| 9Fh | 128-129 | CMDID | BERT and Diagnostics Features CMD ID | 0043h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | BCh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 32 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | CMDs 0300h-0307h support | 每个位表示一个掩码。如果位为”1”则表示支持该命令 D0: 支持 CMD 0300h。.. D7: 支持 CMD 0307h。 | |
| 9Fh | 137 | CMDs 0308h-030Fh | 每个位表示一个掩码。如果位为”1”则表示支持该命令 D0: 支持 CMD 0308h。.. D7: 支持 CMD 030Fh。 | |
| 9Fh | 138-151 | CMDs 0310h-037Fh | 位掩码定义支持的命令。 | |
| 9Fh | 152 | CMDs 0380h-0387h | 数据监控命令支持。D0: 支持 CMD 0380h。.. D7: 支持 CMD 0387h。 | |
| 9Fh | 153-167 | CMDs 0388h-03FFh | ||
| 9Fh | 168-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.5 CMD 0044h: Security Features and Capabilities#
表 9-12 CDB 命令 0044h: Security Features and Capabilities
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Security Features and Capabilities CMD ID | 0044h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 50 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | CMD 0400h-0407h support | 每个位表示一个掩码。如果位被设置,则支持相应的命令 D0: 支持 CMD 0400h。.. D7: 支持 CMD 0407h | |
| 9Fh | 137-167 | CMD 0408h-04FFh | 定义支持命令的位掩码。 | 0 |
| 9Fh | 168 | NumCertificates | 主机可从模块获取的公共证书数量。设备必须包含单个叶证书,可选地包含一个或多个中间证书,后面可选地跟随一个根证书。对于 X.509 证书,中间证书不是自签名的,根证书是自签名的。NumCertificates <= 4。 | |
| 9Fh | 169 | CertChainSupported | 0: 不支持证书链。模块仅包含叶证书实例 i = 0。1: 模块支持证书链,主机必须在下载证书时指定实例。实例 i = 0 是链的起始,即叶证书,任何实例 i+1 是用于签名证书实例 i 的另一个证书,其中 i < NumCertificates <= 4 | |
| 9Fh | 170 | CertificateFormat | IDevID 证书格式:0: 不支持 1: 自定义 2: X509v3 DER 编码 3-255: 保留 | |
| 9Fh | 171 | - | 保留 | 0 |
| 9Fh | 172-173 | CertificateLength1 | 叶证书 i=0 的长度 | |
| 9Fh | 174-175 | CertificateLength2 | 证书 i=1 的长度,不支持时为 0 | |
| 9Fh | 176-177 | CertificateLength3 | 证书 i=2 的长度,不支持时为 0 | |
| 9Fh | 178-179 | CertificateLength4 | 证书 i=3 的长度,不支持时为 0 |
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| 9Fh | 180 | DigestLength | 所需的消息哈希摘要长度(字节) 0: 不支持 1: 28 字节 (SHA224) 2: 32 字节 (SHA256) 3: 48 字节 (SHA384) 4: 64 字节 (SHA512) 5-255: 保留 | |
| 9Fh | 181 | - | 保留 | 0 |
| 9Fh | 182-183 | SignatureTime | 签名生成的最大时间(毫秒)。在”Set Signature Digest”命令之后,主机必须在”Get Signature”之前等待。 | |
| 9Fh | 184-185 | SignatureLength | 编码/填充(如适用)摘要签名的长度(字节) | |
| 9Fh | 186 | SignatureFormat | 签名格式:0: 不支持 1: 自定义,供应商特定编码 2: 原始二进制字节流 3: DER 编码 4: ECDSA (R,S) 整数对,整数以长度为前缀 5-255: 保留 | |
| 9Fh | 187 | SignaturePadScheme | 签名填充方案:0: 无 1: 自定义 2: PKCS#1 v1.5 3: OAEP 4: PSS 5-255: 保留。注意:建议使用随机化填充 | |
| 9Fh | 188-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.6 CMD 0045h: Externally Defined Features#
表 9-13 CDB 命令 0045h: Externally Defined Features
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头字段 | ||||
| 9Fh | 128-129 | CMDID | Externally Defined Features CMD ID | 0043h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 1 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | SupplementSupport | 位 0 = 0/1: CMIS-VCS 不支持/支持 | |
| 9Fh | 137-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.7 CMD 0050h: Get Application Attributes#
某些模块通告是与应用相关的,特别是在通用可编程模块中。
例如,主机可能无法容纳模块通告的最坏情况功耗,但可能存在功耗较低的应用可供使用。
为允许主机了解与应用相关的属性,可以使用以下命令。
表 9-14 CDB 命令 0050h: Get Application Attributes
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Application Attributes CMD ID | 0050h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-137 | ApplicationNumber | U16 应用编号 15-8: 保留 (0) 7-4: NADBlockIndex (0-15) 或 0 3-0: AppSelCode (1-15) | |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 20 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136-137 | ApplicationNumber | U16: 应用编号 15-8: 保留 (0) 7-4: NADBlockIndex (0-15) 或 0 3-0: AppSelCode (1-15) | |
| 9Fh | 138-139 | MaxModulePower | U16: 当此应用以最坏情况配置选项尽可能多地并行实例化(如适用)时的最坏情况模块功耗。单位: 0.25 W ¹ 当可能且预期存在承载不同应用的混合并行数据路径时,建议主机假设最坏情况应用的整体模块功耗。 | |
| 9Fh | 140-141 | ProgOutputPowerMin | S16: 最小可编程输出功率,单位: 0.01 dBm | |
| 9Fh | 142-143 | ProgOutputPowerMax | S16: 最大可编程输出功率,单位: 0.01 dBm | |
| 9Fh | 144-145 | PreFECBERThreshold | F16: Pre FEC BER VDM 高告警阈值 | |
| 9Fh | 146-147 | RxLOSOpticalPowerThr | S16: RxLOS 告警的光功率阈值 单位: 0.01dBm | |
| 9Fh | 148-149 | RxPowerHighAlarmThr | U16: OpticalPowerRxHighAlarmThreshold 单位: 0.1uW | |
| 9Fh | 150-151 | RxPowerLowAlarmThr | U16: OpticalPowerRxLowAlarmThreshold 单位: 0.1uW | |
| 9Fh | 152-153 | RxPowerHighWarnThr | U16: OpticalPowerRxHighWarningThreshold 单位: 0.1uW | |
| 9Fh | 154-155 | RxPowerLowWarnThr | U16: OpticalPowerRxLowWarningThreshold 单位: 0.1uW | |
| 9Fh | 156-255 | - | 无数据返回。内容未指定。 | undef. |
9.4.8 CMD 0051h: Get Interface Code Description#
SFF_8024 [5] 提供了主机和媒体接口的接口 ID 代码及描述性属性,这些对于标准化接口是众所周知的,但对于供应商定义的自定义接口则是未知的。
为允许主机为所有应用(包括使用自定义接口的应用)构建描述性选择列表,可以使用此命令从模块查询这些描述性属性。
支持此命令的模块建议返回所有支持的接口类型的信息,而对于所有支持的自定义接口则必须这样做。
表 9-15 CDB 命令 0051h: Get Interface Code Description
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Interface Code Description CMD ID | 0051h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL | 3 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-137 | InterfaceID | U16: HostInterfaceID 或 MediaInterfaceID 15-8: 保留 (0) 7-0: InterfaceID | |
| 9Fh | 138 | InterfaceLocation | 0: 媒体侧 1: 主机侧 | |
| 9Fh | 139-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 92 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136-137 | InterfaceID | 未修改的 CMD 数据 | |
| 9Fh | 138 | InterfaceLocation | 未修改的 CMD 数据 | |
| 9Fh | 139 | - | 保留(用于下方 X16 字段的对齐) | 0 |
| 9Fh | 139-154 | InterfaceName | ASCII[16]: 简称 | |
| 9Fh | 155-202 | InterfaceDescription | ASCII[48]: 描述和规范引用 | |
| 9Fh | 204-205 | InterfaceDataRate | F16: 应用比特率(Gb/s) | |
| 9Fh | 206-207 | InterfaceLaneCount | U16: 并行通道数 | |
| 9Fh | 208-209 | LaneSignalingRate | F16: 通道信号速率(GBd) | |
| 9Fh | 210-225 | Modulation | ASCII[16]: 通道调制格式 | |
| 9Fh | 226-227 | BitsPerSymbol | U16: 每通道调制符号的比特数 | |
| 9Fh | 228-255 | - | 无数据返回。内容未指定。 | undef. |
9.5 ID 0060h-006Fh CDB 批量读取命令#
表 9-16 CDB 批量读取命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0060h-006Fh | - | 保留 |
9.6 ID 0070h-007Fh CDB 批量写入命令#
表 9-17 CDB 批量写入命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0070h-007Fh | - | 保留 |
9.7 CDB 固件管理命令#
使用 CDB 进行固件管理是一个可选功能。
有关模块固件作为多个固件组件的潜在聚合体以及聚合固件版本标识的背景,请参见第 8.2.9 节。
表 9-18 CDB 固件下载命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0100h | Get Firmware Info | 当主机发出此命令时,模块返回模块中所有可现场更新固件的请求固件信息。 | 必需 | 9.7.1 |
| 0101h | Start Firmware Download | 主机发出此命令以启动固件更新。模块可以完全擦除目标或仅确认并准备模块固件进行任何适当的更新,或在每个数据块到达时动态擦除。成功后,主机可以使用命令代码 0103h-0107h 开始发送固件镜像。条件:支持 CMD 103h、104h、105h、106h 中的任何一个 | 有条件 | 9.7.2 |
| 0102h | Abort Firmware Download | 如果已发出 FW Start,则中止固件下载。通告:CMD 0041h, 9Fh.137.0 | 通告 | 9.7.3 |
| 0103h | Write Firmware Block LPL | 使用此命令,主机下载先前存储在 LPL 区域中的固件镜像块。模块将该固件镜像块传输到非易失性存储。注意:从主机到模块的每个镜像块传输都由 CDB 命令块校验和覆盖;此校验和不确保镜像已正确传输到非易失性存储。通告:CMD 0041h, 9Fh.141 | 通告 | 9.7.4 |
| 0104h | Write Firmware Block EPL | 使用此命令,主机下载先前存储在 EPL 页中的固件镜像块。模块将该固件镜像块传输到非易失性存储。通告:CMD 0041h, 9Fh.141 | 通告 | 9.7.5 |
| 0105h | Read Firmware Block LPL | 主机可以使用此命令读回最近写入非易失性存储的固件镜像。模块将镜像从非易失性存储复制到 LPL 页。从模块到主机的固件镜像传输由 CDB 命令块校验和覆盖,但此校验和不确保镜像已正确地从非易失性存储传输到 LPL 页。通告:CMD 0041h, 9Fh.142 | 通告 | 9.7.6 |
| 0106h | Read Firmware Block EPL | 主机可以使用此命令读回最近写入非易失性存储的固件镜像。模块将镜像从非易失性存储复制到 EPL 页。从模块到主机的固件镜像传输由块校验和覆盖,但此校验和不确保镜像已正确地从非易失性存储传输到 EPL 页。通告:CMD 0041h, 9Fh.142 | 通告 | 9.7.7 |
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0107h | Complete Firmware Download | 当整个固件镜像已通过 LPL 或 EPL 页写入,或在失败后停止下载时,主机发出此命令。如果未发出此命令,即使镜像已正确加载到非易失性存储,固件也无法运行。当主机发出此命令时,模块验证与镜像关联的校验和。条件:支持 CMD 103h、104h、105h、106h 中的任何一个 | 有条件 | 9.7.8 |
| 0108h | Copy Firmware Image | 当模块中给定子系统支持多个镜像时,此命令使模块将镜像从一个非易失性存储位置复制到另一个位置。假设复制固件镜像命令包含模块固件的验证过程以确保复制的镜像有效。复制固件镜像命令之后不需要调用 CDB 完成固件镜像命令 0107h。通告:CMD 0041h, 9Fh.137.1 | 通告 | 9.7.9 |
| 0109h | Run Firmware Image | 此命令用于启动和运行选定的镜像。此命令将控制从当前运行的固件转移到启动的选定固件。它可用于在固件版本之间切换,或执行当前运行固件的重启。条件:支持 CMD 103h 或 CMD 104h | 有条件 | 9.7.10 |
| 010Ah | Commit Firmware Image | 主机使用此命令提交运行中的镜像,以便模块在未来的启动中从此镜像引导。假设主机有一段时间运行新固件并”接受”新固件。在此期间,如果发生复位,将运行先前提交的镜像。当主机发出此命令时,模块将标记一个非易失性存储位置用于未来的模块复位之后。只能提交正在运行的镜像。这是为了避免提交”坏”镜像。条件:支持 CMD 103h 或 CMD 104h | 有条件 | 9.7.11 |
| 010Bh - 011Fh | - | 保留 |
9.7.1 CMD 0100h: Get Firmware Info#
此命令返回驻留在模块中的固件版本和固件默认运行镜像。固件镜像 A、B 以及工厂或引导固件镜像版本。
注意:有关通过版本三元组(主修订号、次修订号、构建号)唯一标识整个固件聚合体的语义预期,请参见第 8.2.9 节。
表 9-19 CDB 命令 0100h: Get Firmware Info
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Firmware Info CMD ID | 0100h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | Feh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-178 | 110 |
| 9Fh | 135 | RPLChkCode | 参见表 8-178 | comp. |
| 9Fh | 136 | FirmwareStatus | 指示固件状态的位掩码。Bank A 中的镜像:位 0: 运行状态 位 1: 管理状态 位 2: 有效性状态 位 3: 保留 Bank B 中的镜像:位 4: 运行状态 位 5: 管理状态 位 6: 有效性状态 位 7: 保留 编码如下:运行状态:1 = 正在运行,0 = 未运行 管理状态:1=已提交,0=未提交 有效性状态:1 = 无效,0 = 有效 注意:有效的零编码保持与 CMIS 4.0 的向后兼容性 根据表 7-4,代码 00h、04h、40h、44h 表示正在运行引导加载程序或工厂镜像(如支持)。详细描述参见第 7.3.1.4 节。 | |
| 9Fh | 137 | ImageInformation | 位 0: 9Fh:138-173 中的固件镜像 A 信息 位 1: 9Fh:174-209 中的固件镜像 B 信息 位 2: 9Fh:201-245 中的工厂或引导镜像信息 | |
| 9Fh | 138 | ImageAMajor | 镜像 A 固件主修订号 | |
| 9Fh | 139 | ImageAMinor | 镜像 A 固件次修订号 | |
| 9Fh | 140-141 | ImageABuild | 镜像 A 固件构建号 | |
| 9Fh | 142-173 | ImageAExtraString | 附加信息 | |
| 9Fh | 174 | ImageBMajor | 镜像 B 固件主修订号 | |
| 9Fh | 175 | ImageBMinor | 镜像 B 固件次修订号 | |
| 9Fh | 176-177 | ImageBBuild | 镜像 B 固件构建号 | |
| 9Fh | 178-209 | ImageBExtraString | 附加信息 | |
| 9Fh | 210 | FactoryBootMajor | 工厂或引导镜像固件主修订号 | |
| 9Fh | 211 | FactoryBootMinor | 工厂或引导镜像固件次修订号 | |
| 9Fh | 212-213 | FactoryBootBuild | 工厂或引导镜像固件构建号 | |
| 9Fh | 214-245 | FactoryBootExtraStr | 附加信息 | |
| 9Fh | 246-255 | - | 无数据返回。内容未指定 | undef. |
9.7.2 CMD 0101h: Start Firmware Download#
模块可以擦除整个镜像或仅准备更新固件。此命令的持续时间取决于主机写入的命令载荷。完整擦除镜像可能需要几秒钟。
表 9-20 CDB 命令 0101h: Start Firmware Download
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Start firmware download process CMD ID | 0101h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | comp. |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | ImageSize | U32 要下载到模块中的固件镜像大小。这应该是文件大小,包括在此消息中作为供应商数据发送的 LPL 字节。 | Var. |
| 9Fh | 140-143 | - | 保留 | 0 |
| 9Fh | 144-255 | VendorData | U8[112] 供应商可以在 Start Firmware Download 命令中发送最多 112 字节的信息。建议交付的二进制文件具有最多 112 字节的头部,发送给模块。此字段中的信息可由供应商用于拒绝不正确的文件(二进制文件)并防止向模块加载不正确的固件。 | |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 |
9.7.3 CMD 0102h: Abort Firmware Download#
中止固件更新过程。
仅支持单个镜像的模块不应实现此命令并相应通告。
表 9-21 CDB 命令 0102h: Abort Firmware Download
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Abort Firmware Download CMD ID | 0102h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | FCh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.7.4 CMD 0103h: Write Firmware Block LPL#
通过 LPL 下载一个固件镜像块。
表 9-22 CDB 命令 0103h: Write Firmware Block LPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Write Firmware Block LPL CMD ID | 0103h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0000h |
| 9Fh | 132 | LPLLength | FirmwareBlock 字段中固件块的实际长度 + 4。 | Comp. |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | BlockAddress | U32 此数据块在提供的镜像文件中的起始字节地址减去”Start Command Payload Size”的大小。参见第 7.3.1.2 节。 | |
| 9Fh | 140-255 | FirmwareBlock | U8[116] 一个固件镜像块。实际需要的长度可能短于可用的 FirmwareBlock 字段大小。此块的实际长度在字节 132(LPLLength)中定义,见上文。 | |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.7.5 CMD 0104h: Write Firmware Block EPL#
通过 EPL 下载一个固件镜像块。
表 9-23 CDB 命令 0104h: Write Firmware Block EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Write Firmware Block EPL CMD ID | 0104h |
| 9Fh | 130-131 | EPLLength | FirmwareBlock 字段中固件块的长度,可能跨多个页。 | Comp. |
| 9Fh | 132 | LPLLength | LPL 长度 | 4 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | BlockAddress | U32 此数据块在提供的镜像文件中的起始字节地址减去”Start Command Payload Size”的大小。参见第 7.3.1.2 节。 | |
| 9Fh | 140-255 | - | 无数据传递。内容未指定。 | undef. |
| CMD 数据 (EPL) | A0h-Afh | 128-255 | FirmwareBlock | 最多 2048 字节。实际长度在 EPLLength 中指定 |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
| REPLY 数据 (EPL) | A0h-Afh | 128-255 | - | 无数据返回。内容未指定。 |
9.7.6 CMD 0105h: Read Firmware Block LPL#
从非易失性存储中指示的块通过 LPL 上传一个固件镜像块。
注意:隐式读取的镜像是最近写入的镜像。
表 9-24 CDB 命令 0105h: Read Firmware Block LPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Read Firmware Block LPL CMD ID | 0105h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 6 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | BlockAddress | U32 此数据块在提供的镜像文件中的起始字节地址减去”Start Command Payload Size”的大小。参见第 7.3.1.2 节。 | |
| 9Fh | 140-141 | Length | U16 在此命令中从指示地址开始读回到 LPL 的字节数。 | |
| 9Fh | 142-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | var. |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136-139 | Address of block | U32 固件镜像中数据块的基地址 | |
| 9Fh | 140-255 | ImageData | U8[116]: 最多 116 字节 |
9.7.7 CMD 0106h: Read Firmware Block EPL#
从非易失性存储中指示的块通过 EPL 上传一个固件镜像块。
注意:隐式读取的镜像是最近写入的镜像。
表 9-25 CDB 命令 0106h: Read Firmware Block EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Read Firmware Block EPL CMD ID | 0106h |
| 9Fh | 130-131 | EPLLength | EPL 长度 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 6 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-139 | BlockAddress | U32 此数据块在提供的镜像文件中的起始字节地址减去”Start Command Payload Size”的大小。参见第 7.3.1.2 节。 | |
| 9Fh | 140-141 | Length | U16 在此命令中从指示地址开始读回到 EPL 的字节数。 | |
| 9Fh | 142-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | Variable |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136-255 | - | LPL 未使用。内容未指定 | undef. |
| REPLY 数据 (EPL) | A0h-Afh | 128-255 | ImageData | U8[128]: 最多 128 字节。实际长度在 RPLLength 中指定 |
9.7.8 CMD 0107h: Complete Firmware Download#
当主机发出此命令时,模块验证完整的固件镜像,然后返回成功或失败(可能是校验和失败)。
注意:此命令也可用于中止固件下载。模块检测到不完整的下载并预期返回失败。
表 9-26 CDB 命令 0107h: Complete Firmware Download
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Complete Firmware Download CMD ID | 0107h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | F7h |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.7.9 CMD 0108h: Copy Firmware Image#
Copy Firmware Image 是固件下载命令中的可选命令,可在固件更新过程中使用。
注意:此命令通常用于写入闪存的两个镜像相同的系统中,因此如果主机希望镜像 A 和 B 相同,它只需告诉模块从运行中的已提交镜像复制到未提交的备份镜像。
表 9-27 CDB 命令 0108h: Copy Firmware Image
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Copy Firmware Image CMD ID | 0108h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 1 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | Copy Direction | ABh: 将镜像 A 复制到镜像 B BAh: 将镜像 B 复制到镜像 A | |
| 9Fh | 137-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 6 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136-139 | Length | U32 已复制的字节数 | |
| 9Fh | 140 | CopyDirection | ABh: 镜像 A 已复制到镜像 B BAh: 镜像 B 已复制到镜像 A | |
| 9Fh | 141 | CopyStatus | 00h : 复制成功 01h : 复制失败 | |
| 9Fh | 142-255 | - | 无数据返回。内容未指定。 | undef. |
9.7.10 CMD 0109h: Run Firmware Image#
主机使用此命令从模块内部固件组运行选定的镜像。
例如,固件更新后,此命令可用于切换到新的固件版本。主机可以使用 CMD 0100h 来确定活动和非活动固件版本。
执行 Run Image 命令可能对高速流量是无中断的、非破坏性的或最小破坏性的。
复位期间模块及其控制环路瞬态行为取决于供应商和技术。
Run Firmware Image 命令成功执行的最大持续时间与使用 ResetS 转换信号的常规重启相同。
注意:此持续时间主要由 tMgmtInit 时序参数控制。假设到 Reset 状态的转换时间可以忽略不计。
表 9-28 CDB 命令 0109h: Run Firmware Image
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Run FW Image CMD ID | 0109h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 4 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | - | 保留 | 0 |
| 9Fh | 137 | ImageToRun | 00h = 影响流量的复位到非活动镜像。01h = 尝试无中断复位到非活动镜像 02h = 影响流量的复位到正在运行的镜像。03h = 尝试无中断复位到正在运行的镜像 | |
| 9Fh | 138-139 | DelayToReset | U16 指示从接收到此命令到发生复位的延迟(毫秒),从 CDB 完成标志被设置时开始计算(如果未设置 CDB 后台模式则从 NACK 清除时开始)。注意:当 DelayToReset 为 0 时,模块可能在主机读取 CdbStatus 消息之前复位。 | |
| 9Fh | 140-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | |
| 9Fh | 136-255 | - | 无数据返回。内容未指定 | undef. |
9.7.11 CMD 010Ah: Commit Firmware Image#
提交是将”正在运行”的镜像设置为模块复位退出时使用的镜像的过程。换句话说,已提交的镜像将运行,并且预期在任何复位(包括看门狗)后都是”好”的固件版本。
此命令用于在固件更新过程之后切换已提交的镜像,当新固件正在运行且主机已确定新固件正常工作时。
注意:Commit Image 仅提交当前正在运行的镜像。如果可以提交非运行镜像,则可能会提交坏版本并在下次模块复位后尝试运行。
注意:此命令没有特定的最大持续时间通告,假设其微不足道,大约相当于将管理信息写入非易失性内存的时间(tWRITE)。
表 9-29 CDB 命令 010Ah: Commit Image
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Commit Image CMD ID | 010Ah |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定 | undef. |
9.8 CDB 性能监控命令#
表 9-30 CDB 性能监控命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0200h | Control PM | 通用性能监控控制 | 必需 | 9.8.1 |
| 0201h | Get PM Feature Information | 关于可选 PM 支持的通告。 | 必需 | 9.8.2 |
| 0202h-020Fh | - | 保留 | ||
| 0210h | Get PM Module LPL | 使用 LPL 获取模块级 X16 PM | 通告 | 9.8.3 |
| 0211h | Get PM Module EPL | 使用 EPL 获取模块级 X16 PM | 通告 | 9.8.3 |
| 0212h | Get PM Host Side LPL | 使用 LPL 获取特定通道的主机侧 X16 PM | 通告 | 9.8.4 |
| 0213h | Get PM Host Side EPL | 使用 EPL 获取特定通道的主机侧 X16 PM | 通告 | 9.8.4 |
| 0214h | Get PM Media Side LPL | 使用 LPL 获取特定通道的媒体侧 X16 PM | 通告 | 9.8.5 |
| 0215h | Get PM Media Side EPL | 使用 EPL 获取特定通道的媒体侧 X16 PM | 通告 | 9.8.5 |
| 0216h | Get PM Data Path LPL | 使用 LPL 获取特定数据路径的 X16 PM | 通告 | 9.8.6 |
| 0217h | Get PM Data Path EPL | 使用 EPL 获取特定数据路径的 X16 PM | 通告 | 9.8.6 |
| 0218h-0219h | - | 保留 | ||
| 0220h | Get Data Path RMON Statistics | 使用 LPL 获取数据路径 RMON 统计 | 通告 | 9.8.7 |
| 0221h-0229h | - | 保留 | ||
| 0230h | Control Data Path SEW Histogram | 控制 FEC 符号错误权重直方图 | 通告 | 9.8.8 |
| 0231h | Get Data Path SEW Histogram | 获取 FEC 符号错误权重直方图 | 通告 | 9.8.9 |
| 0232h | Control Data Path SEW Stats max | 控制最大 FEC 符号错误权重统计 | 通告 | 9.8.10 |
| 0233h | Get Data Path SEW Stats max | 获取最大 FEC 符号错误权重统计 | 通告 | 9.8.11 |
| 0234h-027Fh | - | 保留 |
下表提供了可通过 CDB 命令检索的 PM 可观测对象概览。
有关 VDM 可观测对象 ID,请参见表 8-170。
表 9-31 CDB 性能监控可观测对象交叉引用
| PM 组 | 实例 | CDB ID: 类型和可观测对象 | 单位 | 对应可观测对象 |
|---|---|---|---|---|
| Module | 1 | 0: S16 模块温度 1: S16 Vcc 2: S16 Aux1Mon 3: S16 Aux2Mon 4: S16 Aux3Mon | 1/256 °C 100 uV 参见 à 参见 à 参见 à | 0:00h:14-15 0:00h:16-17 0:00h:18-19 0:00h:20-21 0:00h:22-23 |
| Host Side | 每通道(跨 Bank) | 0: U16 主机侧通道 SNR 1: F16 主机侧 PAM4 LTP 2: F16 主机侧 Pre-FEC BER | 1/256 dB 1/256 dB | VDM ID 6 VDM ID 8 n/a |
| Media Side | 每媒体通道(跨 Bank) | 0: U16 Tx 激光器偏置 1: U16 Tx 光功率 2: U16 Rx 光功率 3: S16 每通道激光器温度 | 0.1 uW 2uA * x 0.1 uW 1/256 °C | 0-3:11h:170-185 0-3:11h:154-169 0-3:11h:186-201 VDM ID 4 |
| Data Path | 每数据路径(跨 Bank) | 0: F16 媒体侧帧错误 (FERC) 1: F16 媒体侧 Pre-FEC BER -: U16 媒体侧 SEW max -: F16 主机侧帧错误 (FERC) -: F16 主机侧 Pre-FEC BER -: U16 主机侧 SEW max | VDM ID 23 VDM ID 15 VDM ID 33 VDM ID 24 VDM ID 16 VDM ID 34 |
9.8.1 CMD 0200h: Control PM#
控制 CDB 性能监控行为及其与 20h-2Fh 中通用诊断监控的关系。
本节详述用于提取 PM 数据记录(如最小值、平均值、最大值)的消息。
注意:除非另有说明,2 字节、4 字节或 8 字节值以大端格式编码,即最低字节地址存储字的最高有效字节。
表 9-32 CDB 命令 0200h: Control PM
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Control PM CMD ID | 0200h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 4 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136.1-7 | - | 保留 | |
| 9Fh | 136.0 | LinkMode | 0b: PM 对象独立 1b: PM 对象与 20h-2Fh 相同(已链接)当 PM 对象被链接时,意味着 20h-2Fh 中的 PM 数据与 CDB Get PM 命令返回的 PM 记录基于相同的对象。这也意味着使用任一方法在 20h-2Fh 中清除统计信息也会清除 CDB 中的统计信息。 | 0 |
| 9Fh | 137 | - | 保留 | 0 |
| 9Fh | 138.1-7 | - | 保留。设为 0。 | |
| 9Fh | 138.0 | ClearAllStatistics | 0b: 无操作 1b: 尽力方式同时清除所有 Bank 中所有通道的所有可观测对象的所有统计信息(最小值、平均值、最大值) | 0 |
| 9Fh | 139 | - | 保留 | 0 |
| 9Fh | 140-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 0 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | 0 |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.8.2 CMD 0201h: Get PM Feature Information#
标识模块支持 CMD 0210h 到 0217h 中定义的哪些 PM 监控器。
表 9-33 CDB 命令 0201h: Get PM Feature Information
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get PM Feature Information CMD ID | 0201h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | FCh |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 4 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136 | HostSideMonitors | 位 0: Bool: 主机侧 SNR 监控器可用 位 1: Bool: 主机侧 LTP 监控器可用 | X |
| 9Fh | 137 | MediaSideMonitors | 位 0: Bool: 媒体侧 SNR 监控器可用 位 1: Bool: 媒体侧 LTP 监控器可用 | X |
| 9Fh | 138 | - | 保留 | 0 |
| 9Fh | 139 | - | 保留 | 0 |
| 9Fh | 140-255 | - | 无数据返回。内容未指定。 | undef. |
9.8.3 CMD 0210h/0211h: Get Module PM LPL/EPL#
此命令收集与模块整体相关的性能监控可观测对象。
表 9-34 CDB 命令 0210h/0211h: Get Module PM LPL/EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Module PM using LPL CMD ID Get Module PM using EPL CMD ID | 0210h 0211h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 5 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136.7 | ClearOnRead | 0b: 返回选定的 PM 数据 1b: 返回选定的 PM 数据然后重置其统计信息 | |
| 9Fh | 136.1-6 | - | 保留 | |
| 9Fh | 136.0 | RecordType | 0b: 返回 6 字节 PM 记录(最小值、均值、最大值)1b: 返回 8 字节 PM 记录(附加”当前”值) | |
| 9Fh | 137 | Observables | 位 0: 模块温度 位 1: Vcc 位 2: Aux1 位 3: Aux2 位 4: Aux3 位 5-7: 保留 | |
| 9Fh | 138 | - | 保留 | |
| 9Fh | 139 | - | 受限制(OIF) | |
| 9Fh | 140 | - | 自定义 | |
| 9Fh | 141-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | comp. |
| REPLY 数据 (LPL) (CMD 0210h) | 9Fh | 135 | RPLChkCode | 参见表 8-179 |
| 9Fh | 136-255 | LPL PM 数据(最多 120 字节) | 一个可观测对象的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:使用 LPL 最多可返回 15 到 20 条记录,取决于请求的 PM 记录长度。PM 记录的序列与 Observables 字段中置位位的序列相同,按升序排列。 | |
| REPLY 数据 (EPL) (CMD 0211h) | A0h 到 AFh | 128-255 | EPL PM 数据(最大字节数取决于可用 EPL 页) |
9.8.4 CMD 0212h/0213h: Get PM Host Side LPL/EPL#
此命令收集与各个主机通道相关的性能监控可观测对象。
表 9-35 CDB 命令 0212h/0213h: Get PM Host Side LPL/EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get PM Host Side LPL CMD ID Get PM Host Side EPL CMD ID | 0212h 0213h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 20 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136.7 | ClearOnRead | 0b: 返回选定的 PM 数据 1b: 返回选定的 PM 数据然后重置其统计信息 | |
| 9Fh | 136.1-6 | - | 保留 | |
| 9Fh | 136.0 | RecordType | 0b: 返回 6 字节 PM 记录(最小值、均值、最大值)1b: 返回 8 字节 PM 记录(附加”当前”值) | |
| 9Fh | 137-139 | - | 保留。将来如果需要支持超过 32 通道的模块,可在此定义起始/停止/增量通道。 | |
| 9Fh | 140-143 | Lanes | U32 Lanes 是指示哪些主机通道存在的位掩码,其中位 i 代表通道 i+1 | |
| 9Fh | 144 | Observables | 位 0: 主机侧通道 SNR 位 1: 主机侧 PAM4 LTP 位 2: 主机侧 Pre-FEC BER¹ 位 3-7: 保留 ¹ 由于 FEC 解码通常跨越数据路径的通道,模块可以选择假设数据路径所有通道上估计的 pre-FEC BER 相同,或拒绝请求为不支持。 | |
| 9Fh | 145-147 | - | 保留 | |
| 9Fh | 148-151 | - | 受限制(OIF) | |
| 9Fh | 152-155 | - | 自定义 | |
| 9Fh | 156-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | comp. |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| REPLY 数据 (LPL) (CMD 0212h) | 9Fh | 136-255 | LPL PM 数据(最多 120 字节) | 一个 PM 可观测对象的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:使用 LPL 最多可返回 15 到 20 条记录,取决于请求的 PM 记录长度。PM 记录的序列与 Observables 字段中置位位的序列相同,按升序排列。 |
| REPLY 数据 (EPL) (CMD 0213h) | A0h 到 AFh | 128-255 | EPL PM 数据(字节数取决于可用页) | 一个可观测对象的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:最大记录数取决于 EPL 的大小和请求的 PM 记录长度。数据在 EPL 页之间连续,PM 记录的序列与 Observables 字段中置位位的序列相同,按升序排列。 |
9.8.5 CMD 0214h/0215h: Get PM Media Side LPL/EPL#
此命令收集与各个媒体通道相关的性能监控可观测对象。
表 9-36 CDB 命令 0214h/0215h: Get PM Media Side LPL/EPL
| 页 | 字节 | 字段名(类型) | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID (U16) | Get PM Media Side LPL CMD ID Get PM Media Side EPL CMD ID | 0214h 0215h |
| 9Fh | 130-131 | EPLLength (U16) | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 20 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136.7 | ClearOnRead | 0b: 返回选定的 PM 数据 1b: 返回选定的 PM 数据然后重置其统计信息 | |
| 9Fh | 136.1-6 | - | 保留 | |
| 9Fh | 136.0 | RecordType | 0b: 返回 6 字节 PM 记录(最小值、均值、最大值)1b: 返回 8 字节 PM 记录(附加”当前”值) | |
| 9Fh | 137-139 | - | 保留用于超过 32 通道的模块。 | |
| 9Fh | 140-143 | Lanes | U32 Lanes 是指示哪些媒体通道存在的位掩码,其中位 i 代表通道 i+1。 | |
| 9Fh | 144 | Selected PM data | 位 0: 媒体侧 SNR 位 1: 媒体侧 PAM4 LTP 位 2-7: 保留 | |
| 9Fh | 145 | Selected PM data | 位 0: Tx 激光器偏置 位 1: Tx 功率 位 2: Rx 功率 位 3: 每通道激光器温度 位 4-7: 保留 | |
| 9Fh | 146-147 | 保留 | ||
| 9Fh | 148-151 | 受限制(OIF) | ||
| 9Fh | 152-155 | 自定义 | ||
| 9Fh | 156-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | comp. |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| REPLY 数据 (LPL) (CMD 0214h) | 9Fh | 136-255 | LPL PM 数据(最多 120 字节) | 一个可观测对象的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:使用 LPL 最多可返回 15 到 20 条记录,取决于请求的 PM 记录长度。PM 记录的序列与 Observables 字段中置位位的序列相同,按升序排列。 |
| REPLY 数据 (EPL) (CMD 0215h) | A0h 到 AFh | 128-255 | EPL PM 数据(最大字节数取决于可用 EPL 页) | 一个 PM 参数的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:最大记录数取决于 EPL 的大小和请求的 PM 记录长度。数据在 EPL 页之间连续,PM 记录的序列与 Observables 字段中置位位的序列相同,按升序排列。 |
9.8.6 CMD 0216h/0217h: Get Data Path PM LPL/EPL#
此命令收集与数据路径相关的性能监控可观测对象。
表 9-37 CDB 命令 0216/0217h: Get Data Path PM LPL/EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get PM Data Path LPL CMD ID Get PM Data Path EPL CMD ID | 0216h 0217h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 20 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136.7 | ClearOnRead | 0b: 返回选定的 PM 数据 1b: 返回选定的 PM 数据然后重置其统计信息 | |
| 9Fh | 136.1-6 | - | 保留 | |
| 9Fh | 136.0 | RecordType | 0b: 返回 6 字节 PM 记录(最小值、均值、最大值)1b: 返回 8 字节 PM 记录(附加”当前”值) | |
| 9Fh | 137-139 | - | 保留用于超过 32 通道的模块。 | |
| 9Fh | 140-143 | DataPaths | U32 DataPaths 是指示哪些数据路径存在的掩码,其中位 i 代表 DataPathID(最低通道号)为 i+1 的数据路径 | |
| 9Fh | 144 | Observables | 位 0: 媒体侧帧错误计数 (FERC) 位 1: 媒体侧 Pre-FEC BER 位 2-7: 保留 | |
| 9Fh | 145-147 | - | 保留 | |
| 9Fh | 148-151 | - | 受限制(OIF) | |
| 9Fh | 152-155 | - | 自定义 | |
| 9Fh | 156-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | comp. |
| 使用 LPL 返回的数据路径通道 PM (0216h) | 9Fh | 135 | RPLChkCode | 参见表 8-179 |
| 9Fh | 136-255 | LPL PM 数据(最多 120 字节) | 一个可观测对象的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:使用 LPL 最多可返回 15 到 20 条记录,取决于请求的 PM 记录长度。PM 记录数据的序列与 Observables 字段中置位位的序列相同,按升序排列。 | |
| 使用 EPL 返回的数据路径通道 PM (0217h) | A0h 到 AFh | 128-255 | EPL PM 数据(最大字节数取决于可用 EPL 页) | 一个可观测对象的 PM 记录由 6 或 8 字节组成:X16 最小值 X16 平均(均值)值 X16 最大值 X16 当前值(如果请求)注意:最大记录数取决于 EPL 的大小和请求的 PM 记录长度。数据在 EPL 页之间连续,PM 记录的序列与 Observables 字段中置位位的序列相同,按升序排列。 |
9.8.7 CMD 0220h: Get Data Path RMON Statistics#
表 9-38 CDB 命令 0220h: Get Data Path RMON Statistics
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Data Path RMON Statistics CMD ID | 0220h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136.7 | ClearOnRead | 0b: 返回选定的 PM 数据 1b: 返回选定的 PM 数据然后重置其统计信息 注意:强烈建议使用原子读取-重置-恢复(即无间隙)计数。 | |
| 9Fh | 136.7-1 | - | 保留 | 0 |
| 9Fh | 136.0 | MonitorLocation | 0: 媒体侧,Rx 方向 1: 主机侧,Tx 方向 | |
| 9Fh | 137 | DPID | U8: 感兴趣数据路径的数据路径 ID。 | |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 参见表 8-179 | 120 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | comp. |
| 9Fh | 136-141 | FrameCount | U48: 饱和计数器 | |
| 9Fh | 142-147 | OctetCount | ||
| 9Fh | 148-153 | BadFrameCount | ||
| 9Fh | 154-159 | BadOctetCount | ||
| 9Fh | 160-165 | MulticastCount | ||
| 9Fh | 166-171 | BroadcastCount | ||
| 9Fh | 172-177 | Packets64B | ||
| 9Fh | 178-183 | Packets64to127B | ||
| 9Fh | 184-189 | Packets128to255B | ||
| 9Fh | 190-195 | Packets256to511B | ||
| 9Fh | 196-201 | Packets512to1023B | ||
| 9Fh | 202-207 | Packets1024to1518B | ||
| 9Fh | 208-211 | PacketsLargeNonJumbo | U32: 饱和计数器 | |
| 9Fh | 212-215 | PacketsJumbo | ||
| 9Fh | 216-219 | BadMulticastCount | ||
| 9Fh | 220-223 | BadBroadcastCount | ||
| 9Fh | 224-227 | BadPackets64B | ||
| 9Fh | 228-231 | BadPackets64to127B | ||
| 9Fh | 232-235 | BadPackets128to255B | ||
| 9Fh | 236-239 | BadPackets256to511B | ||
| 9Fh | 240-243 | BadPackets512to1023B | ||
| 9Fh | 244-247 | BadPackets1024to1518B | ||
| 9Fh | 248-251 | BadPacketsLargeNonJumbo | ||
| 9Fh | 252-255 | BadPacketsJumbo |
9.8.8 CMD 0230h: Control FEC Symbol Error Weight Histogram#
此命令为给定数据路径的给定 FEC 位置重置、启动或停止给定类型的 FEC 纠错统计。
表 9-39 CDB 命令 0230h: Control FEC Symbol Error Weight Histogram
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Control FEC Symbol Error Weight Histogram CMD ID | 0230h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | DPID | U8: 要监控的数据路径的数据路径 ID。 | |
| 9Fh | 137.0 | DecoderLocation | 0: 媒体侧 1: 主机侧 | |
| 9Fh | 137.2-1 | Command | 0: 重置(清除统计)1: 启动(清除统计并开始收集)2: 停止(停止收集) | |
| 9Fh | 137.7-3 | - | 保留: 0 | |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | LPL 或 EPL 中 REPLY 消息体的编码长度和校验码。参见表 8-179 |
| 9Fh | 135 | RPLChkCode | comp. | |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.8.9 CMD 0231h: Get FEC Symbol Error Weight Histogram#
此命令提供给定数据路径的符号错误权重(每 FEC 帧的符号错误纠正数)直方图,FEC 解码器位于媒体侧或主机侧。
统计收集应已提前启动,以获取有效的当前数据。此命令可以在未停止统计的情况下运行。
表 9-40 CDB 命令 0231h: Get FEC Symbol Error Weight Histogram
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get FEC Symbol Error Weight Histogram CMD ID | 0231h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | DPID | U8: 感兴趣数据路径的数据路径 ID | |
| 9Fh | 137.0 | DecoderLocation | 0: 媒体侧 1: 主机侧 | |
| 9Fh | 137.7-1 | - | 保留: 0 | 0 |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | LPL 或 EPL 中 REPLY 消息体的编码长度和校验码。参见表 8-179 | 120 |
| 9Fh | 135 | RPLChkCode | comp. | |
| 9Fh | 136 | - | 未修改的 CMD 参数 | |
| 9Fh | 137 | - | 未修改的 CMD 参数 | |
| 9Fh | 138 | CorrectionCapability | U8 每码字可纠正的 FEC 符号数 | |
| 9Fh | 139 | - | 保留(填充对齐) | |
| 9Fh | 140-145 | UncorrectableCount | U48: 不可纠正的 FEC 帧数 | |
| 9Fh | 146-151 | ErrorWeight0Count | U48: 无错误的 FEC 帧数 | |
| 9Fh | 152-157 | ErrorWeight1Count | U48: 具有 1 个纠正符号的 FEC 帧数 | |
| 9Fh | 158-163 | ErrorWeight2Count | U48: 具有 2 个纠正符号的 FEC 帧数 | |
| 9Fh | 164-169 | ErrorWeight3Count | U48: 具有 3 个纠正符号的 FEC 帧数 | |
| 9Fh | 170-175 | ErrorWeight4Count | U48: 具有 4 个纠正符号的 FEC 帧数 | |
| 9Fh | 176-181 | ErrorWeight5Count | U48: 具有 5 个纠正符号的 FEC 帧数 | |
| 9Fh | 182-187 | ErrorWeight6Count | U48: 具有 6 个纠正符号的 FEC 帧数 | |
| 9Fh | 188-193 | ErrorWeight7Count | U48: 具有 7 个纠正符号的 FEC 帧数 | |
| 9Fh | 194-199 | ErrorWeight8Count | U48: 具有 8 个纠正符号的 FEC 帧数 | |
| 9Fh | 200-205 | ErrorWeight9Count | U48: 具有 9 个纠正符号的 FEC 帧数 | |
| 9Fh | 206-211 | ErrorWeight10Count | U48: 具有 10 个纠正符号的 FEC 帧数 | |
| 9Fh | 212-217 | ErrorWeight11Count | U48: 具有 11 个纠正符号的 FEC 帧数 | |
| 9Fh | 218-223 | ErrorWeight12Count | U48: 具有 12 个纠正符号的 FEC 帧数 | |
| 9Fh | 224-229 | ErrorWeight13Count | U48: 具有 13 个纠正符号的 FEC 帧数 | |
| 9Fh | 230-235 | ErrorWeight14Count | U48: 具有 14 个纠正符号的 FEC 帧数 | |
| 9Fh | 236-241 | ErrorWeight15Count | U48: 具有 15 个纠正符号的 FEC 帧数 | |
| 9Fh | 242-247 | ErrorWeight16Count | U48: 具有 16 个纠正符号的 FEC 帧数 | |
| 9Fh | 248-253 | HighErrorWeightCount | U48: 具有 17 个或更多纠正符号的 FEC 帧 注意:此收集桶用于(有限地)支持具有更高符号纠错能力的 FEC 方案。 | |
| 9Fh | 254-255 | BER | F16: 通过计数(或估计)已计入错误权重直方图的符号错误中的比特错误确定的 Pre-FEC BER,不包括不可纠正 FEC 帧中发生的未知比特错误。 |
9.8.10 CMD 0232h: Control Max FEC Symbol Error Weight#
此命令为给定数据路径的给定 FEC 位置重置、启动或停止给定类型的 FEC 纠错统计。
表 9-41 CDB 命令 0232h: Control Max FEC Symbol Error Weight
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Control Max FEC Symbol Error Weight CMD ID | 0232h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | DPID | U8: 要监控的数据路径的数据路径 ID。 | |
| 9Fh | 137.0 | DecoderLocation | 0: 媒体侧 1: 主机侧 | |
| 9Fh | 137.2-1 | Command | 0: 重置(清除统计)1: 启动(清除统计并开始收集)2: 停止(停止收集) | |
| 9Fh | 137.7-3 | - | 保留 | 0 |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | LPL 或 EPL 中 REPLY 消息体的编码长度和校验码。参见表 8-179 |
| 9Fh | 135 | RPLChkCode | 0 | |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.8.11 CMD 0233h: Get Max FEC Symbol Error Weight#
此命令为所有数据路径提供每帧最大 FEC 符号纠正数高水位标记,针对每个数据路径的第一个通道报告。
统计收集应已提前启动,以获取有效的当前数据。此命令可以在未停止统计的情况下运行。
表 9-42 CDB 命令 0233h: Get Max FEC Symbol Error Weight
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Max FEC Symbol Error Weight CMD ID | 0233h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | - | 保留 | 0 |
| 9Fh | 137.0 | DecoderLocation | 0: 媒体侧 1: 主机侧 | |
| 9Fh | 137.7-1 | - | 保留 | 0 |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | LPL 或 EPL 中 REPLY 消息体的编码长度和校验码。参见表 8-179 |
| 9Fh | 135 | RPLChkCode | comp. | |
| 9Fh | 136 | - | 未修改 | |
| 9Fh | 137 | - | 未修改的 CMD 参数 | |
| 9Fh | 138-139 | CorrectionCapability | U16 每 FEC 帧可纠正的 FEC 符号数 | |
| 9Fh | 140-141 | MaxErrorWeightDPID1 | U16 MaxErrorWeightDPID <DPID> := 在 DPID = <DPID> 的数据路径上观察到的最大 FEC 符号错误权重,如果不存在该数据路径则为零。当存在不可纠正的 FEC 帧时,应报告超过 CorrectionCapability 的值。 | |
| 9Fh | 142-143 | MaxErrorWeightDPID2 | ||
| 9Fh | 144-145 | MaxErrorWeightDPID3 | ||
| 9Fh | 146-147 | MaxErrorWeightDPID4 | ||
| 9Fh | 148-149 | MaxErrorWeightDPID5 | ||
| 9Fh | 150-151 | MaxErrorWeightDPID6 | ||
| 9Fh | 152-153 | MaxErrorWeightDPID7 | ||
| 9Fh | 154-155 | MaxErrorWeightDPID8 | ||
| 9Fh | 156-255 | - | 无数据返回。内容未指定。 | undef. |
9.9 CDB 数据监控与记录命令#
表 9-43 CDB 数据监控与记录命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0280h | Data Monitoring and Recording Controls | 必需 | 9.9.1 | |
| 0281h | - | 保留(用于通告) | 9.9.2 | |
| 0282h-02FFh | - | 保留 | ||
| 0290h | Temperature Histogram | 可选 | 9.9.3 | |
| 0291h-02FFh | - | 保留 |
9.9.1 CMD 0280h: Data Monitoring and Recording Controls#
表 9-44 CDB 命令 0280h: Data Monitoring and Recording Controls
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Data Monitoring Controls CMD ID | 0280h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 4 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | - | 保留 | 0 |
| 9Fh | 137 | - | 保留 | 0 |
| 9Fh | 138.1-7 | - | 保留。设为 0 | |
| 9Fh | 138.0 | ClearAllStatistics | 0b: 无操作。1b: 尽力方式同时清除所有通道的所有监控可观测对象的所有统计信息(最小值、平均值、最大值)。 | 0 |
| 9Fh | 139 | - | 保留 | 0 |
| 9Fh | 140-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | 参见表 8-179 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | |
| 9Fh | 136-255 | - | 无数据返回。内容未指定。 | undef. |
9.9.2 CMD 0281h: Data Monitoring and Recording Advertisement#
保留用于 CMD 0280-029Fh 中定义的特性的通告。
表 9-45 CDB 命令 0281h: Data Monitoring and Recording Advertisements
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | 0281h | |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | 7Ch |
| 9Fh | 134 | RPLLength | undef. | |
| 9Fh | 135 | RPLChkCode | undef. | |
| CMD 数据 (LPL) | 9Fh | 136-255 | - | |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | 参见表 8-179 |
| 9Fh | 135 | RPLChkCode | 参见表 8-179 | |
| 9Fh | 136-255 | - |
9.9.3 CMD 0290h: Temperature Histogram#
这是模块的可选功能,在非易失性内存中跟踪模块在定义的温度区间内运行的秒数,从上次主机或用户清除温度直方图开始。
采样间隔和模块写入非易失性内存的间隔取决于模块。为了不丢失直方图数据,主机可以在从插槽中移除模块之前发送命令将当前直方图保存到 NVR。
内部时钟的时序精度不在此定义。
表 9-46 CDB 命令 0290h: Temperature Histogram
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Temperature Histogram CMD ID | 0290h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 1 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| 9Fh | 135 | RPLChkCode | undef. | |
| CMD 数据 (LPL) | 9Fh | 136 | SubCommands | 位 0: 保留 位 1: 将当前直方图保存到 NVR(主机触发)位 2: 返回直方图(10°C 区间)位 3-6: 保留 位 7: 清除温度直方图(应为 NV) |
| 9Fh | 136-255 | - | 无数据传递。内容未指定。 | undef. |
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | LPL 或 EPL 中 REPLY 消息体的编码长度和校验码。参见表 8-179 |
| 9Fh | 135 | RPLChkCode | comp. | |
| 9Fh | 136 | SubCommands | 主机写入值的回显 | |
| 9Fh | 137 | NHoursToNextWrite | 0: 模块不指示距下次写入 NVR 的小时数。1-254: 温度直方图将在此指定小时数内写入 NVR。注意:取决于设备技术使用,NVR 写入可能需要由主机触发。255: NVR 写入需要由主机触发。如果模块自主写入 NVR,某些操作可能共享 EEPROM 或闪存设备,并可能导致较小的微控制器在自主写入进行时停止响应 MCI。 | |
| 9Fh | 138-139 | - | 保留 | 0 |
| 9Fh | 140-143 | TotalSeconds | U32 温度直方图累积的总时间(秒) | |
| 9Fh | 144-147 | TenDegBinBelowM5 | U32 温度低于 -5°C 的总运行秒数。 | |
| 9Fh | 148-151 | TenDegBin0 | U32 温度区间 [-5, 5)°C 的总运行秒数 | |
| 9Fh | 152-155 | TenDegBin10 | U32 温度区间 [5, 15)°C 的总运行秒数 | |
| 9Fh | 156-159 | TenDegBin20 | U32 温度区间 [15, 25)°C 的总运行秒数 | |
| 9Fh | 160-163 | TenDegBin30 | U32 温度区间 [25, 35)°C 的总运行秒数 | |
| 9Fh | 164-167 | TenDegBin40 | U32 温度区间 [35, 45)°C 的总运行秒数 | |
| 9Fh | 168-171 | TenDegBin50 | U32 温度区间 [45, 55)°C 的总运行秒数 | |
| 9Fh | 172-175 | TenDegBin60 | U32 温度区间 [55, 65)°C 的总运行秒数 | |
| 9Fh | 176-179 | TenDegBin70 | U32 温度区间 [65, 75)°C 的总运行秒数 | |
| 9Fh | 180-183 | TenDegBin80 | U32 温度区间 [75, 85)°C 的总运行秒数 | |
| 9Fh | 184-187 | TenDegBinAbove85 | U32 温度高于 85°C 的总运行秒数 | |
| 9Fh | 188-255 | - | 无数据返回。内容未指定。 | undef. |
9.10 CDB PRBS BERT 命令#
另请参见使用页 13h-14h 可用的特性。
表 9-47 CDB BERT 命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0300h | - | 保留用于 PRBS 相关能力 | ||
| 030xh | - | 保留用于 PRBS 生成器配置、启用和禁用 | ||
| 030xh | - | 保留用于 PRBS 错误注入器 | ||
| 030xh | - | 保留用于 PRBS 检测器(检查器)配置、启用和禁用 | ||
| 030xh | - | 保留用于 PRBS 错误计数 | ||
| 030xh | - | 保留用于 PRBS BER | ||
| 030xh-037Fh | - | 保留 |
9.11 CDB 诊断与调试命令#
表 9-48 CDB 诊断与调试命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0380h | Loopbacks | 保留用于环回 | 通告 | 9.11.1 |
| 0390h | - | 保留用于 PAM4 直方图 | ||
| 03A0h | - | 保留用于眼图监控器 |
9.11.1 CMD 0380h: Loopbacks#
基本环回模式可通过页 13h 和 14h 支持的特性使用。
此 CDB 命令保留用于额外的环回能力。
表 9-49 CDB 命令 0380h: Loopbacks
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Loopbacks CMD ID | 0380h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | 7Ch |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | - | undef. | |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 进行中 10 000001b: 正在处理命令,CMD 已捕获 10 000010b: 正在处理命令,CMD 正在检查 10 000011b: 正在处理命令,CMD 正在执行 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000010b: 参数范围错误或不支持 01 000101b: CdbChkCode 错误 | |
| REPLY 头和数据 (LPL) | 9Fh | 134 | RPLLength | 空应答消息体。参见表 8-179 |
| 9Fh | 135 | RPLChkCode | 0 | |
| 9Fh | 136-255 | - | undef. |
9.12 CDB 安全相关命令#
与安全命令相关的模块能力在 CMD 0044h 的应答中通告(参见第 9.4.5 节)。
安全相关命令可能携带较大的载荷,如证书或签名。根据通告的模块能力,安全相关命令和应答消息通过 LPL(必要时分段为多个命令)或 EPL(完整数据在一次 CDB 交互中传输)交换。
当数据需要分段时,需要发出多个具有递增段索引的命令调用来传输或收集和重新组装所有段。主机可以从通告或给定的数据长度和已知的最大段长度推导出所需的段数。
由于模块可能在证书发放链中托管多个证书,因此需要区分链中的证书实例。这通过实例索引完成,其中叶证书由索引值 0 标识。
表 9-50 CDB 安全相关命令概览
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0400h | Get IDevID Certificate in LPL | 以通告的格式(X.509 v3 或自定义)读取模块的初始设备标识(IDevID)证书的(段),或其证书链中选定元素的(段)。IDevID 证书可以是由主机信任的根 CA 直接颁发的端点证书,或者是最多 4 个证书的发放链中的叶证书,其中最高一个由主机信任的根 CA 颁发。注意 RSA 3072 位叶证书约 1200 字节,RSA 4096 位证书约 1500 字节(不含扩展)。其他算法中使用的较小密钥(和签名)会产生较小的证书。除非使用具有证书链和/或扩展的大密钥,否则 CDB EPL 2048 字节预计不会成为问题。 | 通告 | 9.12.3 |
| 0401h | Get IDevID Certificate in EPL | 此命令变体在单个应答中检索整个证书(不分段)。EPL 页数必须容纳最大的证书。 | 通告 | |
| 0402h | Set Digest To Sign given in LPL | 提供要由模块签名的随机消息的摘要(指纹)。注意:这实现了挑战-应答交互的挑战部分,其中主机创建随机消息,然后应用对通告的 DigestLength(由 CMD 0044h 返回)具有特征的哈希函数来创建模块必须签名的消息摘要(指纹)。CMD 0044h SignatureTime 指示完成签名操作所需的最大时间。 | 通告 | |
| 0403h | Set Digest To Sign given in EPL | 此命令变体在单个 CMD 中传输要签名的消息摘要(不分段)。EPL 页数必须足以容纳最大的消息摘要。 | 通告 | |
| 0404h | Get Digest Signature in LPL | 读取模块对最近提供的要签名的摘要的签名。注意:这实现了挑战-应答交互的应答部分,允许模块向主机证明它拥有与提供的模块证书关联的私钥。签名的编码由 CMD 0044h SignatureFormat 定义。签名算法在模块证书中指定。重复的 Get Digest Signature 命令将返回相同的签名,直到发出新的 Set Digest To Sign 命令。 | 通告 |
| ID | 命令标题 | 描述 | 类型 | 章节 |
|---|---|---|---|---|
| 0405h | Get Digest Signature in EPL | 此命令变体在单个 CMD 中检索完整的摘要签名。EPL 页数必须足以容纳最大的签名。 | 通告 | |
| 0406h-04FFh | - | 保留用于额外的安全相关命令 | 通告 |
表 9-51 安全命令的详细返回状态码
| 值 | 符号 | 描述 |
|---|---|---|
| 0000h | OK | 命令成功完成 |
| 0001h | COMMUNICATION_ERROR | 一般内部通信错误 |
| 0002h | UNEXPECTED_ERROR | 一般非特定错误 |
| 0010h | USER_COMMAND_DATA_ERROR | 一般命令数据错误 |
| 0011h | USER_NO_DIGEST_ERROR | 签名请求之前未提供摘要 |
| 0012h | USER_NOT_READY_ERROR | 处理期间的签名请求 |
| 0020h | SEC_INVALID_PRIVATE_KEY | 无效的私钥 |
| 0021h | SEC_INVALID_PUBLIC_KEY | 证书中无效的公钥 |
| 0022h | SEC_DEVICE_NOT_FOUND | 安全设备不存在或未运行 |
| 0023h | SEC_DEVICE_READ_ERROR | 安全设备读取错误 |
| 0024h | SEC_DEVICE_WRITE_ERROR | 安全设备写入错误 |
| 1000h-1FFFh … | - | 自定义返回码 |
9.12.1 模块认证概述#
以下是模块认证的高级消息交换图。
图 9-1 模块认证流程
9.12.2 CMD 0400h: Get Initial Device ID Certificate in LPL#
表 9-52 CDB 命令 0400h: Get Initial Device ID Certificate in LPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Initial Device ID Certificate CMD ID in LPL | 0400h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 2 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | CertificateIndex | U8: 标识要获取的证书实例索引,叶证书(CertificateIndex = 0)或链中的另一个证书(0 < CertificateIndex < 4)。 | |
| 9Fh | 137 | SegmentIndex | U8: 主机始终从 SegmentIndex=0 开始读取证书,如果模块应答在 RPLLength 中指示需要重复调用,则发出递增 SegmentIndex 的进一步命令。注意:证书的总字节长度已从通过 CMD 044h 检索的 CertificateLen* 字段中获知 | |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 返回的 LPL 字节数,如表 8-179 所述。 | |
| 9Fh | 135 | RPLChkCode | 如表 8-179 所述的校验码。 | |
| 9Fh | 136-137 | ReturnStatus | U16: 详细返回状态(参见表 9-51) | |
| 9Fh | 138 | SegmentIndex | U8: 返回的段索引;应与 CMD 数据中的值相同 | |
| 9Fh | 139-255 | CertificateSegment | U8[117]: 请求的证书段。最后一段可能较短(RPLLength-3 < 117 字节),剩余字节未定义。 |
9.12.3 CMD 0401h: Get Initial Device ID Certificate in EPL#
注意:此命令的应答同时使用 LPL 和 EPL。
表 9-53 CDB 命令 0401h: Get Initial Device ID Certificate in EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Initial Device ID Certificate CMD ID in EPL | 0401h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 长度 | 1 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | CertificateIndex | U8: 标识要获取的证书实例索引,叶证书(CertificateIndex = 0)或链中的证书(0 < CertificateIndex < 4)。 | |
| 9Fh | 137-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 用于证书的 EPL 页数按表 8-179 中的指定编码。 | |
| 9Fh | 135 | RPLChkCode | 如表 8-179 所述的校验码。 | |
| 9Fh | 136-137 | ReturnStatus | U16: 详细返回状态(参见表 9-51) | |
| 9Fh | 138-139 | CertificateLength | U16: 请求的证书写入 EPL 的实际长度(字节),如果 EPL 页不足则为 0。注意:预期的证书字节长度已从通过 CMD 044h 检索的 CertificateLen* 字段中获知 | |
| REPLY 数据 (EPL) | A0h-AFh | 128-255 | CertificateData | U8[128]: 跨越一个或多个 EPL 页(根据需要)的完整证书。最后一个 EPL 页可能仅部分使用(CertificateLength mod 128 字节),剩余字节未定义。 |
9.12.4 CMD 0402h: Set Digest To Sign given in LPL#
表 9-54 CDB 命令 0402h: Set Digest To Sign given in LPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Set Digest To Sign CMD ID given in LPL | 0402h |
| 9Fh | 130-131 | EPLLength | EPL 未使用。 | 0. |
| 9Fh | 132 | LPLLength | 给定签名摘要长度(字节)(另见 CMD 0044h DigestLength)。 | comp. |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136-255 | Digest Data | U8[120]: 要由模块签名的摘要。实际摘要长度取决于用于创建摘要的哈希函数,在 LPLLength 中给出 | |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 返回的 LPL 字节数,如表 8-179 所述。 | 2 |
| 9Fh | 135 | RPLChkCode | 如表 8-179 所述的校验码。 | |
| 9Fh | 136-137 | ResultStatus | U16: 详细返回状态(参见表 9-51) | |
| 9Fh | 138-255 | - | 无数据返回。内容未指定。 | undef. |
9.12.5 CMD 0403h: Set Digest To Sign given in EPL#
注意:此命令的应答使用 LPL,而要签名的消息摘要在 EPL 中提供。
表 9-55 CDB 命令 0403h: Set Digest To Sign given in EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Set Digest To Sign CMD ID given in EPL | 0403h |
| 9Fh | 130-131 | EPLLength | 签名(消息)摘要长度(字节)(参见 CMD 0044h DigestLength)。 | comp. |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (EPL) | 9Fh | 135 | RPLChkCode | undef. |
| A0h | 128-255 | Digest Data | U8[128]: 要由模块签名的摘要。实际摘要长度取决于用于创建摘要的哈希函数,在 LPLLength 中给出 | |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 返回的 LPL 字节数,如表 8-179 所述。 | 2 |
| 9Fh | 135 | RPLChkCode | 如表 8-179 所述的校验码。 | |
| 9Fh | 136-137 | ResultStatus | U16: 详细返回状态(参见表 9-51) | |
| 9Fh | 138-255 | - | 无数据返回。内容未指定。 | undef. |
9.12.6 CMD 0404h: Get Digest Signature in LPL#
表 9-56 CDB 命令 0404h: Get Digest Signature in LPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Digest Signature CMD ID in LPL | 0404h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0000h |
| 9Fh | 132 | LPLLength | LPL 长度 | 1 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | 7Ch |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 136 | SegmentIndex | U8: 主机始终从 SegmentIndex=0 开始读取签名,并发出递增 SegmentIndex 的进一步命令。注意:签名的总字节长度已从 CMD 044h SignatureLength 获知,因此主机知道要请求多少段 | |
| 9Fh | 137-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 返回的 LPL 字节数。参见表 8-179。 | |
| 9Fh | 135 | RPLChkCode | 如表 8-179 所述的校验码。 | comp. |
| 9Fh | 136-137 | ReturnStatus | U16: 详细返回状态(参见表 9-51) | |
| 9Fh | 138 | SegmentIndex | U8: 返回的段索引;应与 CMD 数据中的值相同 | |
| 9Fh | 139-255 | SignatureSegment | U8[117]: 请求的签名段。最后一段可能较短(RPLLength-3 < 117 字节),剩余字节未定义。 |
9.12.7 CMD 0405h: Get Digest Signature in EPL#
注意:此命令的应答同时使用 LPL 和 EPL。
表 9-57 CDB 命令 0405h: Get Digest Signature in EPL
| 页 | 字节 | 字段名 | 描述 | 值 |
|---|---|---|---|---|
| CMD 头 | ||||
| 9Fh | 128-129 | CMDID | Get Digest Signature CMD ID in EPL | 0405h |
| 9Fh | 130-131 | EPLLength | EPL 未使用 | 0 |
| 9Fh | 132 | LPLLength | LPL 未使用 | 0 |
| 9Fh | 133 | CdbChkCode | 9Fh:128-132 和 LPL 的校验码。参见表 8-178 | Comp. |
| 9Fh | 134 | RPLLength | 注意:发起方可以填充这些应答字段,以便稍后验证目标在应答中的字段更新。参见表 8-178 | undef. |
| CMD 数据 (LPL) | 9Fh | 135 | RPLChkCode | undef. |
| 9Fh | 138-255 | - | 无数据传递。内容未指定。 | undef. |
| REPLY 状态 | ||||
| 00h | 8.6 或 8.7 | CdbCmdCompleteFlag | 当 CDB 命令完成时由模块设置。 | 1 |
| 00h | 37 或 38 | CdbStatus | 成功时 00 000001b: 成功 失败时 01 000000b: 失败,无特定失败原因 01 000101b: CdbChkCode 错误 | |
| REPLY 头 | ||||
| 9Fh | 134 | RPLLength | 返回签名所用的 EPL 页数按表 8-179 中的指定编码。 | 4 |
| 9Fh | 135 | RPLChkCode | 如表 8-179 所述的校验码。 | comp. |
| 9Fh | 136-137 | ReturnStatus | U16: 详细返回状态(参见表 9-51) | |
| 9Fh | 138-139 | SignatureLength | U16: 请求的签名写入 EPL 的长度(字节),如果 EPL 页不足则为 0。注意:预期的签名字节长度已从通过 CMD 044h 检索的 SignatureLength 字段中获知 | |
| 9Fh | 140-255 | - | 无数据返回。内容未指定。 | undef. |
| REPLY 数据 (EPL) | A0h-AFh | 128-255 | SignatureData | U8[128]: 跨越一个或多个 EPL 页(根据需要)的返回签名数据。最后一个 EPL 页可能仅部分使用(SignatureLength mod 128 字节),剩余字节未定义。 |