update
This commit is contained in:
225
zh/docs/dev_doc/protocols/XMOS_EQ_UART_Protocol.md
Normal file
225
zh/docs/dev_doc/protocols/XMOS_EQ_UART_Protocol.md
Normal file
@@ -0,0 +1,225 @@
|
||||
---
|
||||
title: XMOS EQ UART 控制协议与命令集
|
||||
description: EQ 参数配置与控制的 UART 串口通信协议规范,涵盖帧格式、命令集与字段说明,适用于 XU316 等相关产品。
|
||||
keywords: EQ, UART, 串口协议, 通信协议, 命令集, XU316,免开发固件, Phaten Audio
|
||||
---
|
||||
|
||||
|
||||
# XMOS EQ UART 控制协议与命令集
|
||||
--8<-- "common/phaten_xmos_support_img.md"
|
||||
## 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` | 模式值<br>0-5: 预设模式<br>6-8: 用户模式<br>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)<br>`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` | 校验和 |
|
||||
|
||||
## 咨询反馈
|
||||
|
||||
<details>
|
||||
<summary>点击展开咨询反馈表单</summary>
|
||||
|
||||
--8<-- "common/customer_form.md"
|
||||
|
||||
</details>
|
||||
Reference in New Issue
Block a user