灵动上下位机通讯协议
-
本协议中的所有数值统一采用十进制或十六进制表示,其中以0x标识的数据为十六进制数,未有标识的数据一律为十进制数;
-
本协议适用于所有购买玄雅·灵动系列产品的用户。
上一次修改时间:2026年9月9日
1. 协议构成
灵系列产品的通讯协议由帧头、指令、功能码、数据长度、数据、校验、帧尾构成,通信波特率为 1000000。
| 字段 | 说明 | 示例/固定值 |
|---|---|---|
| 帧头 | 数据帧的起始位置 | 0xAA(固定) |
| 指令 | 控制指令ID,对应特定控制逻辑或数据格式,便于接收时动态匹配处理流程 | 指令ID |
| 功能码 | 每个指令下的细分功能,各功能对应不同参数 | function |
| 数据长度 | 后续“数据”字段的长度 | length |
| 数据 | 关节的位置、速度、加速度或力矩数据 | data1 ~ dataN |
| 校验 | 对指令ID、功能码、数据长度及全部数据字节计算 CRC32,取低八位;不包含帧头和帧尾 | Check |
| 帧尾 | 数据帧的结束位置 | 0xFF(固定) |
1.1 指令ID与对应功能说明
| 指令ID | 指令功能 |
|---|---|
| 0x01 | 查询机器类型、固件版本、硬件版本及唯一标识码 |
| 0x03 | 机器零点位置设置 |
| 0x04 | 夹爪行程设置 |
| 0x05 | 机器扭矩开关、控制模式及直接电流控制 |
| 0x06 | 关节及夹爪控制、状态获取与力反馈 |
| 0XFE | 机器自检指令 |
2. 指令功能
2.1 查询机器信息指令
指令ID为 0x01,用于查询机器的序列号、硬件版本号和固件版本号。
| 字段 | 取值 |
|---|---|
| 指令 | 0x01 |
| 功能码 | 0x00 |
| 数据长度 | 0x01 |
| 数据 | 0xFE |
| 校验 | 0x23 |
发送帧示例
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x01 | 0x00 | 0x01 | 0xFE | 0x23 | 0xFF |
返回帧示例
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x01 | 0x00 | 0x18 | 0x41 0x44 0x4C 0x53 0x32 0x35 0x31 0x32 0x30 0x35 0x31 0x32 0x33 0x34 0x35 0x36 0x6E 0x00 0x00 0x00 0x62 0x02 0x00 0x00 | 0x92 | 0xFF |
返回帧数据解析
返回帧的数据字段共 24字节(0x18),按顺序分为三部分:
| 颜色 | 字段 | 长度 | 对应字节 |
|---|---|---|---|
| 蓝色 | 序列号 | 16字节 | 0x41 0x44 ... 0x35 0x36 |
| 橙色 | 硬件版本 | 4字节 | 0x6E 0x00 0x00 0x00 |
| 绿色 | 固件版本 | 4字节 | 0x62 0x02 0x00 0x00 |
序列号(16字节)
每个字节为字符的 ASCII 码。以上示例转换为字符串即:ADLS251205123456。
其含义为:产品标识 + 出厂日期 + 序列号尾码,每台机器唯一。
硬件版本(4字节,小端序)
4字节组成一个小端序整数。以上示例:0x6E 0x00 0x00 0x00 → 十进制 110,表示硬件版本 v1.10。
换算方式:
0x6E= 110(十进制),高3字节均为0,故整数值为 110。版本号 = 110 ÷ 100 = 1.10。
固件版本(4字节,小端序)
同理,以上示例:0x62 0x02 0x00 0x00 → 十进制 610,表示固件版本 v6.10。
换算方式:
0x02× 256 +0x62= 512 + 98 = 610(小端序:低字节在前)。版本号 = 610 ÷ 100 = 6.10。
返回帧的校验值因每台机器的序列号不同而不同,属于正常现象。
2.2 机器零点位置设置指令
机器零点位置设置指令ID为0x03,该指令用于设置机器零点位置。该指令会关闭扭矩。
| 字段 | 取值 |
|---|---|
| 指令 | 0x03 |
| 功能码 | 0x00 |
| 数据长度 | 0x01 |
| 数据 | 0xFE |
| 校验 | 0xA8(功能码0x00时) |
功能码说明
| 功能码 | 功能含义 |
|---|---|
| 0x00 | 灵动系列:设置零点位置 |
示例:设置灵动零点位置
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x03 | 0x00 | 0x01 | 0xFE | 0xA8 | 0xFF |
2.3 夹爪行程设置指令
夹爪行程设置指令ID为0x04,该指令用于设置机器夹爪的行程,同时支持查询夹爪行程配置。
| 字段 | 取值 |
|---|---|
| 指令 | 0x04 |
| 功能码 | 0x00、0x01、0x02、0x0E |
| 数据长度 | 0x01 |
| 数据 | 0xFE(指令发送时);行程类型值(查询返回时) |
| 校验 | 0x7F |
功能码说明
| 功能码 | 功能含义 |
|---|---|
| 0x00 | 设置夹爪为50mm行程 |
| 0x01 | 设置夹爪为75mm行程 |
| 0x02 | 设置夹爪为100mm行程 |
| 0x0E | 查询夹爪行程配置 |
示例1:设置夹爪行程为100mm
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x04 | 0x02 | 0x01 | 0xFE | 0x7F | 0xFF |
示例2:查询夹爪行程配置
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x04 | 0x0E | 0x01 | 0xFE | 0x7F | 0xFF |
返回数据说明
查询夹爪行程配置后,返回的数据字段为夹爪的行程类型,对应关系如下:
- 0x00:50mm行程夹爪
- 0x01:75mm行程夹爪
- 0x02:100mm行程夹爪
返回帧示例(以75mm行程为例)
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x04 | 0x0E | 0x01 | 0x01 | 0x7F | 0xFF |
2.4 机器扭矩开关指令
机器扭矩开关指令ID为0x05,该指令用于设置机器的扭矩开关。
| 字段 | 取值 |
|---|---|
| 指令 | 0x05 |
| 功能码 | 0x00 |
| 数据长度 | 0x01 |
| 数据 | 0x00、0x01 |
| 校验 | 0x6F |
数据字段说明
| 数据值 | 含义 |
|---|---|
| 0x00 | 关闭力矩 |
| 0x01 | 开启力矩 |
指令帧示例
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x05 | 0x00 | 0x01 | 0x00 | 0x6F | 0xFF |
2.5 关节及夹爪控制指令
关节及夹爪控制帧的指令ID为 0x06,该指令包含多个功能,下面分别说明。
获取位置和运动状态
- 功能码:
0x00 - 数据:
0xFE - 数据长度:
0x01
发送帧示例:
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x00 | 0x01 | 0xFE | 0x9A | 0xFF |
返回帧示例:
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x00 | 0x0F | 0x02 0x08 0xFB 0x07 0xFB 0x07 0x02 0x08 0xFA 0x07 0x01 0x08 0x03 0x08 0x00 | 0xA9 | 0xFF |
数据格式:关节角度(每个关节2字节) + 夹爪位置(2字节) + 运行状态(1字节),数据低位在前高位在后。
灵动系列:6关节角度 + 夹爪位置 + 运行状态。
运行状态(最后一字节):
| 状态值 | 含义 |
|---|---|
| 0x00 | 空闲 |
| 0x01 | 锁定 |
| 0x10 | 同步 |
| 0x11 | 同步锁定 |
| 0xE1 | 过热状态 |
| 0xE2 | 过热保护 |
获取温度数据
- 功能码:
0x01 - 数据:
0xFE
发送帧示例(灵动Alicia-DL示教臂6个舵机,操作臂10个):
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x01 | 0x01 | 0xFE | 0xAD | 0xFF |
返回帧示例(灵动示教返回6个,操作返回10个):
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x01 | 0x0A | 0x23 0x24 0x23 0x26 0x23 0x26 0x23 0x25 0x24 0x24 | 0x4B | 0xFF |
在温度功能码下,如果数据不为 0xFE,则为设置温度保护最大阈值。示例:设置最大阈值为 100(0x64),默认值为 85:
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x01 | 0x01 | 0x64 | 0xF7 | 0xFF |
获取速度数据
- 功能码:
0x02 - 数据:
0xFE
发送帧示例(灵动Alicia-DL示教臂6个舵机,操作臂10个):
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x02 | 0x01 | 0xFE | 0xF4 | 0xFF |
返回帧示例(灵动示教返回6个,操作返回10个):
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x02 | 0x14 | 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | 0xE9 | 0xFF |
关节、夹爪及状态控制
- 功能码:
0x03 - 数据长度:
0x1C - 数据格式:关节角度 + 速度(每个关节4字节),数据低位在前高位在后
- 灵动系列:6关节角度 + 夹爪位置
示例:控制各关节角度为0度、速度1000,夹爪闭合到一半(0x3E8)。运动速度最高可设为5000,数据先位置角度再速度。夹爪映射范围为 0~1000,1000 为张开到最大量程。
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0x06 | 0x03 | 0x1C | 0x00 0x08 0xE8 0x03 0x00 0x08 0xE8 0x03 0x00 0x08 0xE8 0x03 0x00 0x08 0xE8 0x03 0x00 0x08 0xE8 0x03 0x00 0x08 0xE8 0x03 0xF4 0x01 0xE8 0x03 | 0x6A | 0xFF |
2.6 机器自检指令
指令ID为 0xFE,用于检测舵机是否正常。返回2个字节数据,从低到高每个 bit 位代表舵机ID从低到高的状态,1 为正常,0 为异常。灵动操作臂10个 bit,示教臂6个 bit。
| 字段 | 取值 |
|---|---|
| 指令 | 0xFE |
| 功能码 | 0x00 |
| 数据长度 | 0x03 |
发送帧示例
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0xFE | 0x00 | 0x00 | 0xFE | 0x93 | 0xFF |
返回帧示例(操作臂所有舵机正常)
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
| 0xAA | 0xFE | 0x00 | 0x02 | 0xFF 0x03 | 0x87 | 0xFF |
2.7 设置控制模式(仅力反馈版示教臂)
用于切换力反馈示教臂的位置模式与电流模式。模式切换与扭矩开关是两个独立操作,切换模式不应被视为已经锁定姿态或开启力反馈。
本节及后续 2.8~2.10 节为力反馈版新增功能,仅适用于支持对应协议的 Alicia-DL 力反馈示教臂固件,原版示教臂不支持。查询模式或诊断状态无需先开启力反馈。
| 字段 | 取值 |
|---|---|
| 指令 | 0x05 |
| 功能码 | 0x01 |
| 数据长度 | 0x01 |
| 数据 | 0x00:位置模式;0x01:电流模式 |
数据字段说明
| 数据值 | 模式 | 功能说明 |
|---|---|---|
0x00 | position,位置模式 | 用于位置控制及姿态保持;右键用于锁定 / 解除姿态锁定 |
0x01 | current,电流模式 | 用于电流控制及配套遥操作;右键用于开启 / 关闭力反馈 |
发送帧示例
| 功能 | 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|---|
| 切换位置模式 | 0xAA | 0x05 | 0x01 | 0x01 | 0x00 | 0x58 | 0xFF |
| 切换电流模式 | 0xAA | 0x05 | 0x01 | 0x01 | 0x01 | 0xCE | 0xFF |
返回帧格式
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
0xAA | 0x05 | 0x01 | 0x03 | VERSION REQUESTED_MODE RESULT | CRC32 低八位 | 0xFF |
所有 DATA 偏移均从数据区第一个字节开始,以 0 为起点。
| DATA 偏移 | 字段 | 说明 |
|---|---|---|
| 0 | VERSION | 回包格式版本,当前为 0x01 |
| 1 | REQUESTED_MODE | 原样返回请求模式 |
| 2 | RESULT | 0x00 表示请求已接受;非零表示拒绝或不支持 |
ACK 只表示请求被接受,不表示物理模式切换完成。收到 ACK 后,应使用 0x06 / 0x24 回读,确认当前模式与目标模式一致。非零结果码的细分定义需按交付固件版本核对,不能把超时当成成功。
对应 SDK:set_control_mode()、get_control_mode()。SDK 的遥操作开关复用模式接口,没有额外增加独立的遥操作功能码。
2.8 六轴直接电流控制(仅力反馈版示教臂)
向 J1~J6 下发目标电流,用于电流模式调试。该功能直接接收上位机指定的电流,与根据 Alicia-M 回传力矩生成输出的力反馈功能不同。
本节按配套 SDK 的组帧及回包解析实现编写。当前检查的 STM32 工作区源码尚未包含 0x05 / 0x02 处理,不能据此认定所有标记为 v6.1.8 的固件均已支持。正式发布前需对照最终交付固件完成确认。
| 字段 | 取值 |
|---|---|
| 指令 | 0x05 |
| 功能码 | 0x02 |
| 数据长度 | 0x0C,即 12 字节 |
| 数据 | J1~J6 的六个有符号 16 位整数,小端序,单位 mA |
数据字段说明
| DATA 偏移 | 字段 | 类型 / 单位 |
|---|---|---|
| 0~1 | J1 目标电流 | int16 / mA |
| 2~3 | J2 目标电流 | int16 / mA |
| 4~5 | J3 目标电流 | int16 / mA |
| 6~7 | J4 目标电流 | int16 / mA |
| 8~9 | J5 目标电流 | int16 / mA |
| 10~11 | J6 目标电流 | int16 / mA |
例如,+100 mA 编码为 64 00,-100 mA 编码为 9C FF。正负号表示电流方向。
发送帧格式
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
0xAA | 0x05 | 0x02 | 0x0C | J1~J6 电流,共 12 字节 | CRC32 低八位 | 0xFF |
返回数据说明
配套 SDK 按以下格式解析 ACK,最小 DATA 长度为 4 字节:
| DATA 偏移 | 字段 | 说明 |
|---|---|---|
| 0 | VERSION | ACK 格式版本;固定取值待交付固件确认 |
| 1 | RESULT | 0 表示接受,非零表示拒绝 |
| 2 | ACCEPTED_MASK | bit0~bit5 分别对应 J1~J6,1 表示对应轴被接受 |
| 3 | REFRESH_DEADLINE | 刷新期限,单位为 10 ms;例如 10 表示 100 ms |
返回帧沿用 0xAA / 0x05 / 0x02 / LEN / DATA / CRC / 0xFF 格式。
根据配套 SDK 的接口约定,该命令要求电流模式已生效、扭矩已开启且控制器状态稳定。调用方应根据 ACK 刷新期限持续更新目标,检查实际发送间隔及接受结果,不能认为发送一次即可永久保持输出。
配套 SDK 当前允许输入 -6000~6000 mA,该范围是参数校验范围,不代表每个关节在任意姿态下的允许工作电流;实际输出仍受固件限制和保护状态约束。
对应 SDK:set_direct_current()。
2.9 力反馈开关与状态查询(仅力反馈版示教臂)
用于设置力反馈请求,或查询当前请求及实际生效状态。实际力反馈需与 Alicia-M 操作臂配套使用,并满足同步、有效回传及设备状态要求。
| 字段 | 取值 |
|---|---|
| 指令 | 0x06 |
| 功能码 | 0x20 |
| 数据长度 | 0x01 |
| 数据 | 0x00 关闭请求;0x01 开启请求;0xFE 只读查询 |
发送帧示例
| 功能 | 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|---|
| 关闭力反馈 | 0xAA | 0x06 | 0x20 | 0x01 | 0x00 | 0x61 | 0xFF |
| 开启力反馈 | 0xAA | 0x06 | 0x20 | 0x01 | 0x01 | 0xF7 | 0xFF |
| 查询状态 | 0xAA | 0x06 | 0x20 | 0x01 | 0xFE | 0x7A | 0xFF |
返回帧格式
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
0xAA | 0x06 | 0x20 | LEN | 力反馈状态 | CRC32 低八位 | 0xFF |
当前检查的 STM32 工作区返回 VERSION=0x01、LEN=0x06。配套 SDK 的候选协议说明另有 VERSION=0x02、LEN=0x0A 扩展格式。下表分别说明,最终交付采用哪一版仍待核对;解析时必须检查版本及长度,不能固定读取 10 字节。
版本 1:6 字节 DATA
| DATA 偏移 | 字段 | 说明 |
|---|---|---|
| 0 | VERSION | 0x01 |
| 1 | REQUESTED | 是否请求开启力反馈,0 为关闭、1 为开启 |
| 2 | EFFECTIVE | 力反馈是否实际生效,0 为未生效、1 为生效 |
| 3 | INHIBIT_MASK | 未生效原因位掩码 |
| 4 | SYNC_ACTIVE | 是否处于同步模式 |
| 5 | 保留状态位 | 当前检查的固件固定返回 0,不能用它判断扭矩实际状态 |
版本 2:候选扩展格式,10 字节 DATA
| DATA 偏移 | 字段 | 说明 |
|---|---|---|
| 0 | VERSION | 0x02 |
| 1~4 | 基础状态 | 与版本 1 的 REQUESTED、EFFECTIVE、INHIBIT_MASK、SYNC_ACTIVE 对应 |
| 5 | TORQUE_ENABLED | 控制器记录的扭矩实际使能状态 |
| 6 | TORQUE_REQUESTED | 扭矩请求状态 |
| 7 | TRANSITION | 模式切换阶段,诊断字段 |
| 8 | GRIP_ENABLED_RAW | 握把原始使能状态,诊断字段 |
| 9 | REQUESTED_MODE | 请求模式:0 为位置模式,1 为电流模式 |
未生效原因说明
原因位可同时出现,调用方应按位解析。
| bit | 掩码 | 说明 |
|---|---|---|
| 0 | 0x01 | 未进入遥操作同步模式 |
| 1 | 0x02 | 当前检查固件预留、不置位;不得直接视为机械锁定 |
| 2 | 0x04 | D-M 回传缺失或超时,当前有效样本期限为 30 ms |
| 3 | 0x08 | 硬件故障 |
| 4 | 0x10 | 操作或协议不支持 |
| 5~7 | — | 预留 |
REQUESTED=1 仅表示已请求开启。实际是否生效必须检查 EFFECTIVE,例如回传超时时可能为 REQUESTED=1、EFFECTIVE=0。查询状态无需先开启力反馈。
对应 SDK:set_force_feedback_enabled()、get_force_feedback_state()。
2.10 控制模式与六轴电流诊断(仅力反馈版示教臂)
用于读取当前模式和六轴诊断快照。该接口只读,不会开启力反馈、切换模式或修改扭矩状态。
| 字段 | 取值 |
|---|---|
| 指令 | 0x06 |
| 功能码 | 0x24 |
| 数据长度 | 0x01 |
| 数据 | 0xFE |
发送帧示例
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
0xAA | 0x06 | 0x24 | 0x01 | 0xFE | 0xA6 | 0xFF |
返回帧格式
返回 DATA 长度为 52 字节,完整帧长 58 字节。
| 帧头 | 指令 | 功能码 | 数据长度 | 数据 | 校验 | 帧尾 |
|---|---|---|---|---|---|---|
0xAA | 0x06 | 0x24 | 0x34 | 模式及六轴诊断,共 52 字节 | CRC32 低八位 | 0xFF |
返回数据说明
| DATA 偏移 | 长度 | 字段 | 说明 |
|---|---|---|---|
| 0 | 1 | VERSION | 当前为 0x01 |
| 1 | 1 | APPLIED_MODE | 公开模式值:0 为位置模式,1 为电流模式;其他值视为不支持 |
| 2 | 1 | BLOCKED_MASK | 关节阻塞诊断位,bit0~bit5 对应 J1~J6;实际支持轴随固件变化 |
| 3 | 1 | FEEDBACK_VALID_MASK | 六轴状态反馈有效位,bit0~bit5 对应 J1~J6,不等同于力反馈生效状态 |
| 4~51 | 48 | 六轴诊断数据 | 按 J1~J6 顺序排列,每轴 8 字节 |
每轴数据均为小端序 int16,轴内偏移定义如下:
| 轴内偏移 | 字段 | 单位 | 说明 |
|---|---|---|---|
| 0~1 | 远端力矩目标 | 0.001 N·m | 来自配套操作臂的力矩目标 |
| 2~3 | 请求电流 | 0.001 A | 控制器请求的电流 |
| 4~5 | 输出电流 | 0.001 A | 控制器下发的电流目标 |
| 6~7 | 测量电流 | 0.001 A | 舵机反馈的测量电流 |
例如原始值 300 表示 0.300 A 或 0.300 N·m,具体单位取决于字段。不能把输出电流目标当作实际测量电流。
对应 SDK:get_control_mode()、get_hls_current_diagnostics()。
2.11 力反馈版兼容性说明
- 原有通用指令继续沿用,但位置控制、零位校准等操作仍受当前模式及设备状态限制。
- 模式切换、扭矩开关和力反馈开关分别控制不同状态,不应互相替代。
- 旧固件或非力反馈版设备可能拒绝新功能或不回包,调用方必须处理超时和拒绝结果。
- D-M 配套通信与本页上位机协议不同。上位机通过本页接口设置模式及读取状态,无需构造 D-M 实时力矩帧。
- 本次新增协议仍有 2.8 的固件支持、2.9 的回包版本和部分诊断字段待最终交付固件核对。发布前应据实固定版本对应关系。