Files

232 lines
6.9 KiB
Markdown
Raw Permalink Normal View History

2025-12-25 14:21:26 +08:00
---
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>