HID设备控制命令¶
命令集定位¶
适用范围
本页收录**仅存在于 USB HID 通道**的设备管理类业务命令(固件升级、重启、EQ段数、升频、EX3D),包结构(64字节、同步头0x77、Report ID 0x01)见 USB HID基础协议;EQ与音效控制类命令(UART/HID 双通道)见 EQ与音效控制命令。
本页内容与各产品规格书「产品控制命令」章节同源维护。EX3D 命令仅适用于 VID 0x20B1、PID 0x80D3(V7.1空间音频专用设备);不同产品固件支持的命令子集可能不同,以产品规格书为准。
命令一览¶
| 命令头 | 命令名称 | 功能 | 适用说明 |
|---|---|---|---|
| 0xA7 | FIRMWARE_UPGRADE_START | 开始固件升级 | |
| 0xA8 | FIRMWARE_UPGRADE_DATA | 传输固件数据块 | 每块57字节 |
| 0xA9 | FIRMWARE_UPGRADE_END | 结束固件升级 | 设备验证镜像完整性 |
| 0xAA | FIRMWARE_UPGRADE_STATUS | 获取升级状态 | |
| 0xAB | FIRMWARE_UPGRADE_ABORT | 中止固件升级 | |
| 0xAC | FIRMWARE_UPGRADE_ERASE | 擦除升级镜像 | |
| 0xAE | DEVICE_REBOOT | 设备重启 | 无响应 |
| 0xB3 | SET_EQ_BAND_COUNT | 设置EQ段数 | 8/16/24/32段,保存Flash |
| 0xB4 | GET_EQ_BAND_COUNT | 获取EQ段数 | |
| 0x80 | SET_UPSAMPLE | 设置采样率升频 | 0=禁用 1=使能 |
| 0x81 | GET_UPSAMPLE | 获取采样率升频状态 | |
| 0xB0 | SET_EX3D_CMD | 发送EX3D设置命令 | 仅 VID 0x20B1/PID 0x80D3 |
| 0xB1 | GET_EX3D_CMD | 读取EX3D命令 | 仅 VID 0x20B1/PID 0x80D3 |
命令详解¶
设置采样率升频 SET_UPSAMPLE(0x80)¶
功能说明: 设置设备采样率升频开关
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0x80 |
| 3 | 1 | upsample | 升频状态(0=禁用升频, 1=使能升频) |
| 4-63 | 60 | reserved | 保留字段(填充0) |
参数说明: - 升频状态:0=禁用升频,1=使能升频
返回值: 无直接返回值。如需确认升频状态,请使用 GET_UPSAMPLE (0x81) 命令读取。
获取采样率升频状态 GET_UPSAMPLE(0x81)¶
功能说明: 读取设备当前采样率升频状态
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0x81 |
| 3-63 | 61 | reserved | 保留字段(填充0) |
响应格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0x81(回显) |
| 3 | 1 | upsample | 当前升频状态(0=禁用, 1=使能) |
| 4-63 | 60 | reserved | 保留字段(填充0) |
开始固件升级 FIRMWARE_UPGRADE_START(0xA7)¶
功能说明: 启动固件升级流程,发送固件大小并获取升级参数
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xA7 |
| 3-6 | 4 | fw_size | 固件大小(字节,uint32, 小端序) |
| 7-63 | 57 | reserved | 保留字段(填充0) |
响应格式(64 字节)(主动上报):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xA7 |
| 2 | 1 | status | 状态码(0x00=成功, 0x01=失败, 0x03=大小无效) |
| 3-6 | 4 | aligned_size | 页对齐后的实际大小(uint32, 小端序) |
| 7-8 | 2 | total_blocks | 总块数(uint16, 小端序) |
| 9-63 | 55 | reserved | 保留字段(填充0) |
传输固件数据块 FIRMWARE_UPGRADE_DATA(0xA8)¶
功能说明: 传输固件数据块,每块固定 57 字节
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xA8 |
| 2-3 | 2 | block_num | 块序号(从0开始,uint16, 小端序) |
| 4 | 1 | data_len | 数据长度(固定57) |
| 5-61 | 57 | data | 固件数据(57字节) |
| 62 | 1 | checksum | Checksum(字节0-61累加 mod 256) |
响应格式(64 字节)(主动上报):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xA8 |
| 2 | 1 | status | 状态码(0x00=成功, 0x04=块号错误, 0x05=Checksum错误) |
| 3-4 | 2 | ack_block | 已确认块序号(uint16, 小端序) |
| 5-63 | 59 | reserved | 保留字段(填充0) |
结束固件升级 FIRMWARE_UPGRADE_END(0xA9)¶
功能说明: 完成固件传输,验证镜像完整性
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xA9 |
| 2-5 | 4 | fw_size | 固件总大小(用于验证,uint32, 小端序) |
| 6-63 | 58 | reserved | 保留字段(填充0) |
响应格式(64 字节)(主动上报):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xA9 |
| 2 | 1 | status | 状态码(0x00=成功, 0x01=失败) |
| 3-63 | 61 | reserved | 保留字段(填充0) |
获取升级状态 FIRMWARE_UPGRADE_STATUS(0xAA)¶
功能说明: 查询升级状态、进度、已接收块数等信息
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAA |
| 2-63 | 62 | reserved | 保留字段(填充0) |
响应格式(64 字节)(主动上报):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAA |
| 2 | 1 | status | 升级状态(0=空闲, 1=准备中, 2=传输中, 3=完成中, 4=已完成, 5=错误, 6=已中止) |
| 3-4 | 2 | received_blocks | 已接收块数(uint16, 小端序) |
| 5-6 | 2 | total_blocks | 总块数(uint16, 小端序) |
| 7-8 | 2 | written_pages | 已写页数(uint16, 小端序) |
| 9-10 | 2 | total_pages | 总页数(uint16, 小端序) |
| 11-14 | 4 | received_bytes | 已传输字节数(uint32, 小端序) |
| 15-18 | 4 | total_bytes | 总字节数(uint32, 小端序) |
| 19 | 1 | error_code | 错误码 |
| 20-63 | 44 | reserved | 保留字段(填充0) |
升级状态枚举: - 0: IDLE (空闲) - 1: PREPARING (准备中) - 2: TRANSFERRING (传输中) - 3: FINALIZING (完成中) - 4: COMPLETED (已完成) - 5: ERROR (错误) - 6: ABORTED (已中止)
中止固件升级 FIRMWARE_UPGRADE_ABORT(0xAB)¶
功能说明: 中止当前升级流程,可选择是否擦除已传输数据
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAB |
| 2 | 1 | erase_flag | 清理标志(0x00=保留数据, 0x01=擦除数据) |
| 3-63 | 61 | reserved | 保留字段(填充0) |
响应格式(64 字节)(主动上报):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAB |
| 2 | 1 | status | 状态码(0x00=成功) |
| 3-63 | 61 | reserved | 保留字段(填充0) |
擦除升级镜像 FIRMWARE_UPGRADE_ERASE(0xAC)¶
功能说明: 擦除 Flash 中现有的升级镜像
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAC |
| 2-63 | 62 | reserved | 保留字段(填充0) |
响应格式(64 字节)(主动上报):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAC |
| 2 | 1 | status | 状态码(0x00=成功) |
| 3-63 | 61 | reserved | 保留字段(填充0) |
设备重启 DEVICE_REBOOT(0xAE)¶
功能说明: 立即重启设备
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | sync_header | 同步头: 0x77 |
| 1 | 1 | cmd_header | 命令头: 0xAE |
| 2-63 | 62 | reserved | 保留字段(填充0) |
响应: 无响应,设备立即重启。
设置EQ段数 SET_EQ_BAND_COUNT(0xB3)¶
功能说明: 设置 EQ 段数,支持 8/16/24/32 段动态切换,控制参与处理的 DSP 核数
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB3 |
| 3 | 1 | band_count | EQ 段数(8/16/24/32) |
| 4-63 | 60 | reserved | 保留字段(填充0) |
EQ 段数定义: - 8: 仅 Core0 参与处理 - 16: Core0 + Core1 参与处理 - 24: Core0 + Core1 + Core2 参与处理 - 32: 全部 4 个 Core 参与处理
设备端处理: - 仅接受 8、16、24、32 四个有效值,其他值拒绝 - 设置后保存到 Flash(独立文件 eq_band_cnt),开机时自动恢复 - 设置后触发参数同步到 tile1,tile1 上未参与处理的 Core 对音频做透传(bypass)
响应格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB3(回显) |
| 3 | 1 | status | 状态码(0x00=成功, 0x01=失败) |
| 4 | 1 | band_count | 当前 EQ 段数(8/16/24/32) |
| 5-63 | 59 | reserved | 保留字段(填充0) |
获取EQ段数 GET_EQ_BAND_COUNT(0xB4)¶
功能说明: 读取当前 EQ 段数
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB4 |
| 3-63 | 61 | reserved | 保留字段(填充0) |
响应格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB4(回显) |
| 3 | 1 | band_count | 当前 EQ 段数(8/16/24/32) |
| 4-63 | 60 | reserved | 保留字段(填充0) |
发送EX3D设置命令 SET_EX3D_CMD(0xB0)¶
功能说明: 发送 EX3D 设置命令,封装所有 EX3D SET 命令,用于空间音频参数设置
适用设备: VID 0x20B1, PID 0x80D3(V7.1空间音频专用设备)
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码(SET 格式) |
| 7-10 | 4 | param1 | int32 参数1(根据命令不同) |
| 11-14 | 4 | param2 | int32 参数2(根据命令不同) |
| 15-18 | 4 | param3 | int32 参数3(根据命令不同) |
| 19-63 | 45 | reserved | 保留字段(填充0) |
支持的 EX3D SET 命令:
| EX3D 命令码 | 命令名称 | 功能描述 |
|---|---|---|
| 0x84 | CMD_SOUND_FIELD | 设置声场模式 |
| 0x87 | CMD_LMT_THRESHOLD | 设置枪声阈值 |
| 0x93 | CMD_EXPAND_GAIN | 设置脚步声增益 |
响应格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0(回显) |
| 3 | 1 | status | 状态码 (0x00=成功, 0x01=失败) |
| 4-7 | 4 | ex3d_cmd | EX3D 命令码(回显) |
| 8-11 | 4 | retval | 返回值(0xFFFFFFFF 表示参数错误) |
| 12-63 | 52 | reserved | 保留字段(填充0) |
读取EX3D命令 GET_EX3D_CMD(0xB1)¶
功能说明: 读取 EX3D 参数,封装所有 EX3D GET 命令,用于空间音频参数读取
适用设备: VID 0x20B1, PID 0x80D3(V7.1空间音频专用设备)
请求格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码(GET 格式) |
| 7-10 | 4 | param1 | uint32 参数1(通道号、索引等) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
支持的 EX3D GET 命令:
| EX3D 命令码 | 命令名称 | 功能描述 |
|---|---|---|
| 0x183 | CMD_ANGLE | 获取空间音频角度参数 |
| 0x184 | CMD_SOUND_FIELD | 获取声场模式 |
| 0x187 | CMD_LMT_THRESHOLD | 获取枪声阈值 |
| 0x18D | CMD_LEVEL | 获取电平 |
| 0x193 | CMD_EXPAND_GAIN | 获取脚步声增益 |
响应格式(64 字节):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1(回显) |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码(回显) |
| 7-10 | 4 | retval1 | uint32 返回值1 |
| 11-14 | 4 | retval2 | uint32 返回值2 |
| 15-18 | 4 | retval3 | uint32 返回值3 |
| 19-63 | 45 | reserved | 保留字段(填充0) |
EX3D子命令详解¶
EX3D 子命令详细说明¶
EX3D 协议说明
以下命令通过 0xB0/0xB1 封装发送,仅适用于 VID 0x20B1, PID 0x80D3 的 V7.1 空间音频设备。
2.3.1 EX3D 命令码格式说明¶
- SET 命令格式:
基础命令码 & ~0x0100(清除第9位) - 例: 设置枪声阈值 = 0x87 & ~0x0100 = 0x87
-
例: 设置脚步声增益 = 0x93 & ~0x0100 = 0x93
-
GET 命令格式:
基础命令码 | 0x0100(设置第9位) - 例: 获取枪声阈值 = 0x87 | 0x0100 = 0x187
- 例: 获取脚步声增益 = 0x93 | 0x0100 = 0x193
2.3.2 声场模式控制(CMD_SOUND_FIELD = 0x84)¶
功能: 设置或获取当前声场模式
应用场景: 切换 FPS Game/RPG Game/3A Game 三种声场效果
SET 命令请求数据包格式 (0xB0 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x84 = CMD_SET(CMD_SOUND_FIELD)) |
| 7-10 | 4 | mode | uint32 用户模式值: 1=FPS Game, 2=RPG Game, 3=3A Game |
| 11-63 | 53 | reserved | 保留字段(填充0) |
用户模式 → 内部 IR 算法映射:
| 用户值 | 含义 | STEREO_EN=1 (IR) | V71_AUDIO_MODE=1 (IR) |
|---|---|---|---|
| 1 | FPS Game | IR_GAME (1) | IR_7_1_GAME (4) |
| 2 | RPG Game | IR_MUSIC (2) | IR_7_1_MUSIC (5) |
| 3 | 3A Game | IR_MOVIE (3) | IR_7_1_MOVIE (6) |
SET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0(回显) |
| 3 | 1 | status | 状态码 (0x00=成功, 0x01=失败) |
| 4-7 | 4 | ex3d_cmd | EX3D 命令码 (0x84,回显) |
| 8-11 | 4 | retval | 返回值(0xFFFFFFFF=索引无效, 其他=成功) |
| 12-63 | 52 | reserved | 保留字段(填充0) |
GET 命令请求数据包格式 (0xB1 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x184 = CMD_GET(CMD_SOUND_FIELD)) |
| 7-63 | 57 | reserved | 保留字段(填充0) |
GET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1(回显) |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x184,回显) |
| 7-10 | 4 | mode | uint32 当前用户模式值 (1=FPS Game, 2=RPG Game, 3=3A Game) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
2.3.3 枪声阈值控制(CMD_LMT_THRESHOLD = 0x87)¶
功能: 设置/获取枪声音效触发阈值
应用场景: FPS Game/3A Game 模式下检测枪声并触发相应音效处理
SET 命令请求数据包格式 (0xB0 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x87 = CMD_SET(CMD_LMT_THRESHOLD)) |
| 7-10 | 4 | threshold | int32 阈值值 (范围: -96 ~ 0 dB) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
SET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0(回显) |
| 3 | 1 | status | 状态码 (0x00=成功, 0x01=失败) |
| 4-7 | 4 | ex3d_cmd | EX3D 命令码 (0x87,回显) |
| 8-11 | 4 | retval | 返回值(0xFFFFFFFF=索引无效, 其他=成功) |
| 12-63 | 52 | reserved | 保留字段(填充0) |
GET 命令请求数据包格式 (0xB1 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x187 = CMD_GET(CMD_LMT_THRESHOLD)) |
| 7-63 | 57 | reserved | 保留字段(填充0) |
GET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1(回显) |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x187,回显) |
| 7-10 | 4 | threshold | int32 当前阈值值 (范围: -96 ~ 0 dB) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
2.3.4 脚步声增益控制(CMD_EXPAND_GAIN = 0x93)¶
功能: 设置/获取脚步声音效增益
应用场景: FPS Game/3A Game 模式下增强脚步声效果
SET 命令请求数据包格式 (0xB0 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x93 = CMD_SET(CMD_EXPAND_GAIN)) |
| 7-10 | 4 | gain | int32 增益值 (范围: 0 ~ 24 dB) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
SET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB0(回显) |
| 3 | 1 | status | 状态码 (0x00=成功, 0x01=失败) |
| 4-7 | 4 | ex3d_cmd | EX3D 命令码 (0x93,回显) |
| 8-11 | 4 | retval | 返回值(0xFFFFFFFF=索引无效, 其他=成功) |
| 12-63 | 52 | reserved | 保留字段(填充0) |
GET 命令请求数据包格式 (0xB1 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x193 = CMD_GET(CMD_EXPAND_GAIN)) |
| 7-63 | 57 | reserved | 保留字段(填充0) |
GET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1(回显) |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x193,回显) |
| 7-10 | 4 | gain | int32 当前增益值 (范围: 0 ~ 24 dB) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
2.3.5 电平获取测试(CMD_LEVEL = 0x8D)¶
功能: 获取各通道电平数据
应用场景: 实时显示音频电平表
GET 命令请求数据包格式 (0xB1 封装):
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1 |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x18D = CMD_GET(CMD_LEVEL)) |
| 7-10 | 4 | count | uint32 通道数量 (1-16) |
| 11-63 | 53 | reserved | 保留字段(填充0) |
GET 命令响应数据包格式:
| 偏移 | 长度 | 字段名 | 描述 |
|---|---|---|---|
| 0 | 1 | report_id | 固定为 0x01 |
| 1 | 1 | sync_header | 同步头: 0x77 |
| 2 | 1 | cmd_header | 命令头: 0xB1(回显) |
| 3-6 | 4 | ex3d_cmd | EX3D 命令码 (0x18D,回显) |
| 7开始 | N | levels | float32[] 各通道电平值数组 |
| ... | ... | ... | 保留字段(填充0) |
典型业务流程¶
固件升级流程¶
- 发送 FIRMWARE_UPGRADE_START 命令(0xA7),发送固件大小
- 设备返回页对齐后大小和总块数
- 循环发送 FIRMWARE_UPGRADE_DATA 命令(0xA8)传输固件数据块
- 传输完成后发送 FIRMWARE_UPGRADE_END 命令(0xA9)结束升级
- 设备验证镜像完整性并返回状态
EX3D 声场模式读取流程¶
适用设备: VID 0x20B1, PID 0x80D3(V7.1空间音频专用设备)
- 发送 GET_EX3D_CMD 命令(0xB1),封装 CMD_SOUND_FIELD (0x184)
- 设备返回当前声场模式 (1=FPS Game, 2=RPG Game, 3=3A Game)
- 根据声场模式更新界面状态
EX3D 声场模式设置流程¶
适用设备: VID 0x20B1, PID 0x80D3(V7.1空间音频专用设备)
- 发送 SET_EX3D_CMD 命令(0xB0),封装 CMD_SOUND_FIELD (0x84) 和目标模式值
- 设备更新内部声场模式状态并返回响应
- 如从 RPG Game 切换到 FPS Game/3A Game,需重新读取 FPS 控制参数
EX3D FPS 控制参数读取流程¶
适用设备: VID 0x20B1, PID 0x80D3(V7.1空间音频专用设备)
- 发送 GET_EX3D_CMD 命令(0xB1),封装 CMD_LMT_THRESHOLD (0x187) 读取枪声阈值
- 发送 GET_EX3D_CMD 命令(0xB1),封装 CMD_EXPAND_GAIN (0x193) 读取脚步声增益
- 设备分别返回当前阈值和增益值

