XMOS EQ UART 控制协议与命令集¶
1. 协议基础规范¶
1.1 底层通信协议¶
基于 UART (Universal Asynchronous Receiver/Transmitter) 协议。
| 参数 | 值 |
|---|---|
| 波特率 | 115200 bps |
| 数据位 | 8 |
| 奇偶校验 | 无 |
| 停止位 | 1 |
| 数据流控 | 无 |
1.2 帧格式与数据传输¶
通用帧格式 所有命令和响应均遵循以下帧格式:
| 字段 | 字节数 | 说明 |
|---|---|---|
| 帧头 | 2 | 固定为 0x55 0xAA |
| 版本 | 1 | 协议版本号 (通常为 0x00) |
| 命令字 | 1 | 指示帧的功能 (如 0x30) |
| 数据长度 | 1 | 后续数据的长度 N |
| 数据 | N | 具体的数据内容 |
| 校验和 | 1 | 从帧头开始按字节求和,结果对 256 求余 (Sum % 256) |
数据传输说明
- 字节序:所有大于1个字节的数据均采用 小端模式 (Little Endian) 传输(注:与XU316标准协议的大端序不同,请以本协议为准)。
- 浮点数:遵循 IEEE 754 float 格式。
2. 协议命令集¶
2.1 命令分类概览¶
| 命令字 | 命令描述 | 发送方向 | 功能说明 |
|---|---|---|---|
| 0x30 | SET_EQ_MODE | 主机→设备 | 切换当前的 EQ 模式 |
| 0x31 | GET_EQ_MODE | 主机→设备 | 获取当前 EQ 模式信息 (模式号、增益、名称) |
| 0x32 | SET_MODE_GAIN_AND_NAME | 主机→设备 | 设置指定模式的整体增益和名称 |
| 0x33 | SET_EQ_PARAMS | 主机→设备 | 发送单个滤波器的参数 (Freq, Q, Gain 等) |
| 0x34 | GET_EQ_PARAMS | 主机→设备 | 读取单个滤波器的参数 |
| 0x35 | RESET_EQ_PARAMS | 主机→设备 | 复位 EQ 参数 (恢复预设) |
3. 基础功能命令详解¶
3.1 切换 EQ 模式 (0x30)¶
主机发送
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x30 | 命令字 |
| Length | 1 | 0x01 | 数据长度 |
| Data | 1 | Mode | 模式值 0-5: 预设模式 6-8: 用户模式 9: Bypass |
| Checksum | 1 | Sum | 校验和 |
设备端处理
- 直接设置当前运行的 EQ 模式。
- 不涉及参数传输或计算。
3.2 获取当前 EQ 模式信息 (0x31)¶
主机发送
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x31 | 命令字 |
| Length | 1 | 0x00 | 无数据 |
| Checksum | 1 | Sum | 校验和 |
设备返回 (响应)
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x31 | 命令字 |
| Length | 1 | 0x15 | 数据长度 (21字节) |
| Data | 1 | Mode | 当前模式值 |
| 4 | Gain | 整体增益 (int32, 小端序, 范围 0~-50dB) | |
| 16 | Name | 模式名称 (UTF-8 字符串) | |
| Checksum | 1 | Sum | 校验和 |
3.3 设置模式整体增益和名称 (0x32)¶
主机发送
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x32 | 命令字 |
| Length | 1 | 0x15 | 数据长度 (21字节) |
| Data | 1 | Mode | 目标模式值 (0-9) |
| 4 | Gain | 整体增益 (int32, 小端序) | |
| 16 | Name | 模式名称 (UTF-8 字符串) | |
| Checksum | 1 | Sum | 校验和 |
设备端处理
- 设置指定模式的增益和名称,自动应用到所有采样率。
3.4 发送 EQ 参数 (0x33)¶
主机发送
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x33 | 命令字 |
| Length | 1 | 0x15 | 数据长度 (21字节) |
| Data | 1 | Mode | 模式值 (0-9) |
| 1 | Band | 滤波器索引 (0-7) | |
| 1 | Type | 滤波器类型 (见下表) | |
| 4 | Freq | 中心频率 Hz (float, 小端序) | |
| 4 | Q | Q值 (float, 小端序) | |
| 4 | BW | 带宽 Hz (float, 小端序) | |
| 4 | Gain | 增益 dB (float, 小端序) | |
| Checksum | 1 | Sum | 校验和 |
滤波器类型码
| 代码 | 类型 | 代码 | 类型 |
|---|---|---|---|
| 0x00 | Bypass | 0x06 | 带阻 (Band Reject) |
| 0x01 | 全通 (All Pass) | 0x07 | 陷波 (Notch) |
| 0x02 | 峰值 (Peak) | 0x08 | 恒定Q (Constant Q) |
| 0x03 | 低通 (Low Pass) | 0x09 | 低架 (Low Shelf) |
| 0x04 | 高通 (High Pass) | 0x0A | 高架 (High Shelf) |
| 0x05 | 带通 (Band Pass) |
3.5 读取 EQ 参数 (0x34)¶
主机发送
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x34 | 命令字 |
| Length | 1 | 0x02 | 数据长度 |
| Data | 1 | Mode | 模式值 (0-9) |
| 1 | Band | 滤波器索引 (0-7) | |
| Checksum | 1 | Sum | 校验和 |
设备返回 (响应)
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x34 | 命令字 |
| Length | 1 | 0x15 | 数据长度 (21字节) |
| Data | 1 | Mode | 模式值 |
| 1 | Band | 滤波器索引 | |
| 1 | Type | 滤波器类型 | |
| 4 | Freq | 中心频率 (float, 小端序) | |
| 4 | Q | Q值 (float, 小端序) | |
| 4 | BW | 带宽 (float, 小端序) | |
| 4 | Gain | 增益 (float, 小端序) | |
| Checksum | 1 | Sum | 校验和 |
3.6 复位 EQ 参数 (0x35)¶
主机发送
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x35 | 命令字 |
| Length | 1 | 0x01 | 数据长度 |
| Data | 1 | Mode | 模式号 (0-9)0xFF 表示复位所有模式 |
| Checksum | 1 | Sum | 校验和 |
设备返回 (响应)
| 字节位置 | 长度 | 内容 | 说明 |
|---|---|---|---|
| Frame Header | 2 | 0x55 0xAA | 固定帧头 |
| Version | 1 | 0x00 | 协议版本 |
| Command | 1 | 0x35 | 命令字 |
| Length | 1 | 0x01 | 数据长度 |
| Data | 1 | Status | 状态码 (0x00=成功, 0x01=失败) |
| Checksum | 1 | Sum | 校验和 |

