232 lines
6.9 KiB
Markdown
232 lines
6.9 KiB
Markdown
|
|
---
|
||
|
|
title: 免开发系列固件 EQ HID 控制协议与命令集
|
||
|
|
description: 适用于 免开发固件系列设备的 EQ HID 控制协议,包含报文结构、命令集与字段说明,用于模式切换、参数读写与设备信息获取。
|
||
|
|
keywords: EQ, HID, 控制协议, 命令集, USB HID, XU316,免开发固件, Phaten Audio
|
||
|
|
---
|
||
|
|
--8<-- "common/phaten_xmos_support_img.md"
|
||
|
|
|
||
|
|
# 免开发系列固件 EQ HID 控制协议与命令集
|
||
|
|
|
||
|
|
## 1. 协议基础规范
|
||
|
|
|
||
|
|
### 1.1 底层通信协议
|
||
|
|
基于 USB HID (Human Interface Device) 协议。
|
||
|
|
|
||
|
|
| 参数 | 值 |
|
||
|
|
| :--- | :--- |
|
||
|
|
| Report ID | 0x01 |
|
||
|
|
| 数据包大小 | 64 字节 |
|
||
|
|
| 传输方向 | 双向 (Host <-> Device) |
|
||
|
|
|
||
|
|
### 1.2 报文格式与数据传输
|
||
|
|
|
||
|
|
**通用报文格式**
|
||
|
|
所有命令和响应均遵循以下 Report 结构:
|
||
|
|
|
||
|
|
| 字段 | 字节数 | 说明 |
|
||
|
|
| :--- | :--- | :--- |
|
||
|
|
| Report ID | 1 | 固定为 `0x01` |
|
||
|
|
| 同步头 | 1 | 固定为 `0x77` (作为命令起始标识) |
|
||
|
|
| 命令码 | 1 | 指示具体的操作 (如 `0x8A`) |
|
||
|
|
| 数据区 | 61 | 具体的数据内容 (不足部分通常补0) |
|
||
|
|
|
||
|
|
**数据传输说明**
|
||
|
|
|
||
|
|
* **字节序**:所有多字节数据均采用 **小端模式 (Little Endian)** 传输。
|
||
|
|
* **浮点数**:遵循 IEEE 754 float 格式。
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. 协议命令集
|
||
|
|
|
||
|
|
### 2.1 命令分类概览
|
||
|
|
|
||
|
|
| 命令码 | 命令描述 | 发送方向 | 功能说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| **0x8A** | SET_EQ_MODE | 主机→设备 | 切换当前的 EQ 模式 |
|
||
|
|
| **0x8B** | GET_EQ_MODE | 主机→设备 | 获取当前 EQ 模式信息 (模式号、增益、名称) |
|
||
|
|
| **0x8C** | SET_MODE_GAIN_AND_NAME | 主机→设备 | 设置指定模式的整体增益和名称 |
|
||
|
|
| **0x8D** | SET_EQ_PARAMS | 主机→设备 | 发送单个滤波器的参数 |
|
||
|
|
| **0x8E** | GET_EQ_PARAMS | 主机→设备 | 读取单个滤波器的参数 |
|
||
|
|
| **0x8F** | GET_DEVICE_INFO | 主机→设备 | 获取设备基础信息 (PID, VID, SN等) |
|
||
|
|
| **0x90** | RESET_EQ_PARAMS | 主机→设备 | 复位 EQ 参数 (恢复预设) |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. 基础功能命令详解
|
||
|
|
|
||
|
|
### 3.1 切换 EQ 模式 (0x8A)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x8A` | 命令码 |
|
||
|
|
| 3 | 1 | `Mode` | 模式值<br>0-5: 预设模式<br>6-8: 用户模式<br>9: Bypass |
|
||
|
|
| 4-63 | 60 | `Reserved` | 保留字节 (0x00) |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3.2 获取当前 EQ 模式信息 (0x8B)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x8B` | 命令码 |
|
||
|
|
| 3-63 | 61 | `Reserved` | 保留字节 (0x00) |
|
||
|
|
|
||
|
|
**设备返回 (响应)**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头1 |
|
||
|
|
| 2 | 1 | `0x8B` | 同步头2 (回响命令码) |
|
||
|
|
| 3 | 1 | `Mode` | 当前模式值 |
|
||
|
|
| 4-7 | 4 | `Gain` | 整体增益 (int32, 小端序, 范围 0~-50dB) |
|
||
|
|
| 8-23 | 16 | `Name` | 模式名称 (UTF-8 字符串) |
|
||
|
|
| 24-63 | 40 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3.3 设置模式整体增益和名称 (0x8C)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x8C` | 命令码 |
|
||
|
|
| 3 | 1 | `Mode` | 目标模式值 (0-9) |
|
||
|
|
| 4-7 | 4 | `Gain` | 整体增益 (int32, 小端序) |
|
||
|
|
| 8-23 | 16 | `Name` | 模式名称 (UTF-8 字符串) |
|
||
|
|
| 24-63 | 40 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3.4 发送 EQ 参数 (0x8D)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x8D` | 命令码 |
|
||
|
|
| 3 | 1 | `Mode` | 模式值 (0-9) |
|
||
|
|
| 4 | 1 | `Band` | 滤波器索引 (0-7) |
|
||
|
|
| 5 | 1 | `Type` | 滤波器类型 (见下表) |
|
||
|
|
| 6-9 | 4 | `Freq` | 中心频率 Hz (float, 小端序) |
|
||
|
|
| 10-13 | 4 | `Q` | Q值 (float, 小端序) |
|
||
|
|
| 14-17 | 4 | `BW` | 带宽 Hz (float, 小端序) |
|
||
|
|
| 18-21 | 4 | `Gain` | 增益 dB (float, 小端序) |
|
||
|
|
| 22-63 | 42 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
**滤波器类型码**
|
||
|
|
|
||
|
|
| 代码 | 类型 | 代码 | 类型 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 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 参数 (0x8E)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x8E` | 命令码 |
|
||
|
|
| 3 | 1 | `Mode` | 模式值 (0-9) |
|
||
|
|
| 4 | 1 | `Band` | 滤波器索引 (0-7) |
|
||
|
|
| 5-63 | 59 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
**设备返回 (响应)**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头1 |
|
||
|
|
| 2 | 1 | `0x8E` | 同步头2 (回响命令码) |
|
||
|
|
| 3 | 1 | `Mode` | 模式值 |
|
||
|
|
| 4 | 1 | `Band` | 滤波器索引 |
|
||
|
|
| 5 | 1 | `Type` | 滤波器类型 |
|
||
|
|
| 6-9 | 4 | `Freq` | 中心频率 (float, 小端序) |
|
||
|
|
| 10-13 | 4 | `Q` | Q值 (float, 小端序) |
|
||
|
|
| 14-17 | 4 | `BW` | 带宽 (float, 小端序) |
|
||
|
|
| 18-21 | 4 | `Gain` | 增益 (float, 小端序) |
|
||
|
|
| 22-63 | 41 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3.6 获取设备信息 (0x8F)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x8F` | 命令码 |
|
||
|
|
| 3-63 | 61 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
**设备返回 (响应)**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头1 |
|
||
|
|
| 2 | 1 | `0x8F` | 同步头2 (回响命令码) |
|
||
|
|
| 3-4 | 2 | `PID` | 产品ID (uint16, 小端序) |
|
||
|
|
| 5-6 | 2 | `VID` | 厂商ID (uint16, 小端序) |
|
||
|
|
| 7-22 | 16 | `Product` | 产品字符串 (UTF-8) |
|
||
|
|
| 23-38 | 16 | `Vendor` | 厂商字符串 (UTF-8) |
|
||
|
|
| 39-54 | 16 | `SN` | 序列号字符串 (UTF-8) |
|
||
|
|
| 55-63 | 9 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### 3.7 复位 EQ 参数 (0x90)
|
||
|
|
|
||
|
|
**主机发送**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头 |
|
||
|
|
| 2 | 1 | `0x90` | 命令码 |
|
||
|
|
| 3 | 1 | `Mode` | 模式号 (0-9)<br>`0xFF` 表示复位所有模式 |
|
||
|
|
| 4-63 | 60 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
**设备返回 (响应)**
|
||
|
|
|
||
|
|
| 字节位置 | 长度 | 内容 | 说明 |
|
||
|
|
| :--- | :--- | :--- | :--- |
|
||
|
|
| 0 | 1 | `0x01` | Report ID |
|
||
|
|
| 1 | 1 | `0x77` | 同步头1 |
|
||
|
|
| 2 | 1 | `0x90` | 同步头2 (回响命令码) |
|
||
|
|
| 3 | 1 | `Status` | 状态码 (0x00=成功, 0x01=失败) |
|
||
|
|
| 4-63 | 60 | `Reserved` | 保留字节 |
|
||
|
|
|
||
|
|
## 咨询反馈
|
||
|
|
|
||
|
|
<details>
|
||
|
|
<summary>点击展开咨询反馈表单</summary>
|
||
|
|
|
||
|
|
--8<-- "common/customer_form.md"
|
||
|
|
|
||
|
|
</details>
|