update
This commit is contained in:
@@ -26,7 +26,7 @@ search:
|
||||
## 一、协议基础规范 :material-connection:
|
||||
|
||||
### 1.1 底层通信协议
|
||||
|
||||
|
||||
**基于UART (Universal Asynchronous Receiver/Transmitter) 协议**
|
||||
|
||||
| 参数 | 值 |
|
||||
@@ -170,7 +170,7 @@ sequenceDiagram
|
||||
**执行条件**: 启动选项包含0x01(更新基础产品信息)
|
||||
|
||||
**步骤**:
|
||||
|
||||
|
||||
1. XU316发送0x01命令请求读取基础产品信息
|
||||
2. MCU返回新基础产品信息给XU316
|
||||
3. XU316更新并保存配置到内部存储
|
||||
@@ -187,7 +187,7 @@ sequenceDiagram
|
||||
=== "应用固件加载阶段"
|
||||
|
||||
**步骤**:
|
||||
|
||||
|
||||
1. XU316发送0x03命令获取当前输入输出模式
|
||||
2. MCU返回当前模式信息给XU316
|
||||
3. XU316根据返回模式加载对应输入输出模式
|
||||
@@ -225,7 +225,9 @@ sequenceDiagram
|
||||
| 0x24 | xu316发送播放音量 | XU316→MCU |
|
||||
| 0x25 | 发送录音音量 | XU316→MCU |
|
||||
| 0x26 | 切换MCLK | MCU→XU316 |
|
||||
| 0x29 | 报告USB连接状态 | XU316→MCU |
|
||||
| 0x27 | 设置 unmute | MCU→XU316 |
|
||||
| 0x28 | 发送音频格式的时间延迟 | MCU→XU316 |
|
||||
| 0x29 | 报告USB连接状态 | XU316→MCU |
|
||||
|
||||
=== "HID-MCU互相透传命令(0xEE-0xEF)"
|
||||
| 命令字 | 命令描述 | 发送方向 |
|
||||
@@ -237,6 +239,7 @@ sequenceDiagram
|
||||
| 命令字 | 命令描述 | 发送方向 |
|
||||
|:--------:|:---------------------------------------------|:----------:|
|
||||
| 0xF0 | DAC配置选择命令 | MCU→XU316 |
|
||||
| 0xF1 | 获取固件版本命令 | MCU→XU316 |
|
||||
|
||||
!!! note "命令使用说明"
|
||||
1. 所有命令必须遵循基本帧格式规范
|
||||
@@ -307,6 +310,24 @@ sequenceDiagram
|
||||
* 重启原因字段可用于MCU识别XU316重启的具体原因,以便进行不同处理
|
||||
* 当需要更新多项信息时,MCU可将多个选项通过位操作组合在一起
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 00 01 03 06
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的数据 |
|
||||
| 命令字 | 1字节 | `00` | 表示当前命令是“开始启动” |
|
||||
| 数据长度 | 1字节 | `01` | 表示后面紧跟着 1 字节的数据区 |
|
||||
| 启动选项 | 1字节 | `03` | 表示 `0x01` 和 `0x02` 同时生效,也就是既要更新产品基础信息,也要更新上电配置信息 |
|
||||
| 校验和 | 1字节 | `06` | 从 `55` 开始到 `03` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.2.2 读取产品信息(0x01)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -348,6 +369,31 @@ sequenceDiagram
|
||||
CRC: 4字节 (32位CRC校验)
|
||||
```
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 01 3C 20 B1 00 17 20 B1 00 16 50 48 41 54 45 4E 00 00 00 00 00 00 00 00 00 00 58 55 33 31 36 20 44 41 43 00 00 00 00 00 00 00 53 4E 32 34 30 30 30 31 00 00 00 00 00 00 00 00 12 34 56 78 D9
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的数据 |
|
||||
| 命令字 | 1字节 | `01` | 表示当前命令是“读取产品信息” |
|
||||
| 数据长度 | 1字节 | `3C` | 表示后面紧跟着 60 字节的数据区 |
|
||||
| VID1 | 2字节 | `20 B1` | UAC1.0 的 USB VID |
|
||||
| PID1 | 2字节 | `00 17` | UAC1.0 的 USB PID |
|
||||
| VID2 | 2字节 | `20 B1` | UAC2.0 的 USB VID |
|
||||
| PID2 | 2字节 | `00 16` | UAC2.0 的 USB PID |
|
||||
| ManufactureName | 16字节 | `50 48 41 54 45 4E 00 00 00 00 00 00 00 00 00 00` | ASCII 字符串 `PHATEN`,后面不足 16 字节的部分用 `00` 补齐 |
|
||||
| ProductName | 16字节 | `58 55 33 31 36 20 44 41 43 00 00 00 00 00 00 00` | ASCII 字符串 `XU316 DAC`,后面用 `00` 补齐到 16 字节 |
|
||||
| SerialNumber | 16字节 | `53 4E 32 34 30 30 30 31 00 00 00 00 00 00 00 00` | ASCII 字符串 `SN240001`,后面用 `00` 补齐到 16 字节 |
|
||||
| CRC | 4字节 | `12 34 56 78` | 产品基础信息的 32 位 CRC 校验值,这里仅作为示例演示 |
|
||||
| 校验和 | 1字节 | `D9` | 从 `55` 开始到 `78` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.2.3 读取上电配置信息(0x02)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -387,6 +433,29 @@ sequenceDiagram
|
||||
CRC: 4字节 (32位CRC校验)
|
||||
```
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 02 0E 01 00 00 00 00 01 2C 20 30 30 11 22 33 44 6A
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的数据 |
|
||||
| 命令字 | 1字节 | `02` | 表示当前命令是“读取上电配置信息” |
|
||||
| 数据长度 | 1字节 | `0E` | 表示后面紧跟着 14 字节的数据区 |
|
||||
| 默认输入输出模式 | 5字节 | `01 00 00 00 00` | 示例模式数据,具体每个字节的含义由产品规格书定义 |
|
||||
| 静音时间 | 2字节 | `01 2C` | 按大端模式表示 `300ms` |
|
||||
| 麦克风默认音量 | 1字节 | `20` | 示例默认麦克风音量 |
|
||||
| DAC左声道默认音量 | 1字节 | `30` | 示例默认左声道音量 |
|
||||
| DAC右声道默认音量 | 1字节 | `30` | 示例默认右声道音量 |
|
||||
| CRC | 4字节 | `11 22 33 44` | 上电配置的 32 位 CRC 校验值,这里仅作为示例演示 |
|
||||
| 校验和 | 1字节 | `6A` | 从 `55` 开始到 `44` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.2.4 获取当前输入输出模式(0x03)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -415,6 +484,24 @@ sequenceDiagram
|
||||
- XU316会根据返回的模式加载相应的应用固件
|
||||
- 此命令用于设备启动过程中的模式匹配与确认
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 03 05 01 00 00 00 00 0B
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的数据 |
|
||||
| 命令字 | 1字节 | `03` | 表示当前命令是“获取当前输入输出模式” |
|
||||
| 数据长度 | 1字节 | `05` | 表示后面紧跟着 5 字节的模式数据 |
|
||||
| 输入输出模式 | 5字节 | `01 00 00 00 00` | 示例模式数据,具体每个字节的定义由产品规格书决定 |
|
||||
| 校验和 | 1字节 | `0B` | 从 `55` 开始到最后一个模式字节结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.2.5 获取当前用户配置(0x04)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -443,6 +530,29 @@ sequenceDiagram
|
||||
- 在应用固件加载后、应用启动前执行
|
||||
- 应用会根据返回的信息初始化相应参数
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 04 0E 02 00 00 00 00 00 C8 18 28 28 55 66 77 88 00
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的数据 |
|
||||
| 命令字 | 1字节 | `04` | 表示当前命令是“获取当前用户配置” |
|
||||
| 数据长度 | 1字节 | `0E` | 表示后面紧跟着 14 字节的数据区 |
|
||||
| 输入输出模式 | 5字节 | `02 00 00 00 00` | 示例用户当前选择的模式数据,具体每个字节的定义由产品规格书决定 |
|
||||
| 静音时间 | 2字节 | `00 C8` | 按大端模式表示 `200ms` |
|
||||
| 麦克风音量 | 1字节 | `18` | 示例当前麦克风音量 |
|
||||
| DAC左声道音量 | 1字节 | `28` | 示例当前左声道音量 |
|
||||
| DAC右声道音量 | 1字节 | `28` | 示例当前右声道音量 |
|
||||
| CRC | 4字节 | `55 66 77 88` | 用户配置的 32 位 CRC 校验值,这里仅作为示例演示 |
|
||||
| 校验和 | 1字节 | `00` | 从 `55` 开始到 `88` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.2.6 启动完成命令(0x05)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -473,6 +583,23 @@ sequenceDiagram
|
||||
- 包含启动状态信息,告知MCU启动是否成功或遇到问题
|
||||
- 所有后续业务命令只能在此命令发送成功后使用
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 05 00 07
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的确认数据 |
|
||||
| 命令字 | 1字节 | `05` | 表示当前确认的是“启动完成命令” |
|
||||
| 数据长度 | 1字节 | `00` | 表示这是一条纯确认帧,不携带额外数据 |
|
||||
| 校验和 | 1字节 | `07` | 从 `55` 开始到 `00` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
### 3.3 业务控制命令详解
|
||||
|
||||
!!! warning "使用前提"
|
||||
@@ -506,6 +633,23 @@ sequenceDiagram
|
||||
- 通常在状态发生变化时发送,例如音量变化、模式切换等
|
||||
- MCU可根据此信息更新UI显示或调整相关功能
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 20 00 22
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的确认数据 |
|
||||
| 命令字 | 1字节 | `20` | 表示当前确认的是“报告应用状态”命令 |
|
||||
| 数据长度 | 1字节 | `00` | 表示这是一条纯确认帧,不携带额外数据 |
|
||||
| 校验和 | 1字节 | `22` | 从 `55` 开始到 `00` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.2 媒体控制(0x21)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -554,6 +698,23 @@ sequenceDiagram
|
||||
| 0x06 | 快退 | 在当前曲目中快退 |
|
||||
| 0x07 | 静音 | 切换系统静音状态 |
|
||||
|
||||
=== "MCU发送示例"
|
||||
|
||||
```
|
||||
55 AA 03 21 01 02 26
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 发送给 XU316 的命令 |
|
||||
| 命令字 | 1字节 | `21` | 表示当前命令是“媒体控制” |
|
||||
| 数据长度 | 1字节 | `01` | 表示后面紧跟着 1 字节的控制码 |
|
||||
| 控制码 | 1字节 | `02` | 表示“播放/暂停”命令 |
|
||||
| 校验和 | 1字节 | `26` | 从 `55` 开始到控制码结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.3 报告播放音频流格式和类型(0x22)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -582,6 +743,23 @@ sequenceDiagram
|
||||
- 通常在播放开始或格式变化时发送
|
||||
- MCU可根据此信息更新显示,如显示PCM/DSD/MQA/DOP等状态
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 22 00 24
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的确认数据 |
|
||||
| 命令字 | 1字节 | `22` | 表示当前确认的是“报告播放音频流格式和类型”命令 |
|
||||
| 数据长度 | 1字节 | `00` | 表示这是一条纯确认帧,不携带额外数据 |
|
||||
| 校验和 | 1字节 | `24` | 从 `55` 开始到 `00` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.4 设置输入输出模式(0x23)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -610,13 +788,30 @@ sequenceDiagram
|
||||
- 通常由用户操作触发,如按下模式选择按钮
|
||||
- XU316可能需要重启以加载新模式的固件
|
||||
|
||||
=== "MCU发送示例"
|
||||
|
||||
```
|
||||
55 AA 03 23 05 02 00 00 00 00 2C
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 发送给 XU316 的命令 |
|
||||
| 命令字 | 1字节 | `23` | 表示当前命令是“设置输入输出模式” |
|
||||
| 数据长度 | 1字节 | `05` | 表示后面紧跟着 5 字节的模式数据 |
|
||||
| 输入输出模式 | 5字节 | `02 00 00 00 00` | 示例目标模式数据,具体每个字节的定义由产品规格书决定 |
|
||||
| 校验和 | 1字节 | `2C` | 从 `55` 开始到最后一个模式字节结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.5 发送播放音量(0x24)
|
||||
|
||||
=== "命令格式"
|
||||
**XU316返回**
|
||||
**XU316发送**
|
||||
```
|
||||
帧头: 2字节 - 0x55aa
|
||||
版本: 1字节 - 0x03
|
||||
版本: 1字节 - 0x00
|
||||
命令字: 1字节 - 0x24
|
||||
数据长度: 1字节 - 0x02 (即2字节)
|
||||
数据: 2字节
|
||||
@@ -625,10 +820,10 @@ sequenceDiagram
|
||||
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
|
||||
```
|
||||
|
||||
**MCU发送**
|
||||
**MCU返回**
|
||||
```
|
||||
帧头: 2字节 - 0x55aa
|
||||
版本: 1字节 - 0x00
|
||||
版本: 1字节 - 0x03
|
||||
命令字: 1字节 - 0x24
|
||||
数据长度: 1字节 - 0x00
|
||||
数据: 0字节
|
||||
@@ -638,24 +833,41 @@ sequenceDiagram
|
||||
=== "功能说明"
|
||||
- 该命令用于XU316向MCU报告当前播放音量
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 24 00 26
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的确认数据 |
|
||||
| 命令字 | 1字节 | `24` | 表示当前确认的是“发送播放音量”命令 |
|
||||
| 数据长度 | 1字节 | `00` | 表示这是一条纯确认帧,不携带额外数据 |
|
||||
| 校验和 | 1字节 | `26` | 从 `55` 开始到 `00` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
|
||||
#### 3.3.6 发送录音音量(0x25)
|
||||
|
||||
=== "命令格式"
|
||||
**MCU发送**
|
||||
**XU316发送**
|
||||
```
|
||||
帧头: 2字节 - 0x55aa
|
||||
版本: 1字节 - 0x03
|
||||
版本: 1字节 - 0x00
|
||||
命令字: 1字节 - 0x25
|
||||
数据长度: 1字节 - 0x01 (即1字节)
|
||||
数据: 1字节 - 0xFF Mute,0-0dB -127:-127dB
|
||||
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
|
||||
```
|
||||
|
||||
**XU316返回**
|
||||
**MCU返回**
|
||||
```
|
||||
帧头: 2字节 - 0x55aa
|
||||
版本: 1字节 - 0x00
|
||||
版本: 1字节 - 0x03
|
||||
命令字: 1字节 - 0x25
|
||||
数据长度: 1字节 - 0x00
|
||||
数据: 0字节
|
||||
@@ -666,6 +878,23 @@ sequenceDiagram
|
||||
- 该命令用于XU316向MCU报告当前麦克风录音音量
|
||||
- 是预留命令,当前未使用
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 25 00 27
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的确认数据 |
|
||||
| 命令字 | 1字节 | `25` | 表示当前确认的是“发送录音音量”命令 |
|
||||
| 数据长度 | 1字节 | `00` | 表示这是一条纯确认帧,不携带额外数据 |
|
||||
| 校验和 | 1字节 | `27` | 从 `55` 开始到 `00` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.7 切换MCLK(0x26)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -694,6 +923,23 @@ sequenceDiagram
|
||||
- 可切换使用内部时钟或外部时钟
|
||||
- 对于某些需要精确同步的音频应用场景很重要
|
||||
|
||||
=== "MCU发送示例"
|
||||
|
||||
```
|
||||
55 AA 03 26 01 01 2A
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 发送给 XU316 的命令 |
|
||||
| 命令字 | 1字节 | `26` | 表示当前命令是“切换MCLK” |
|
||||
| 数据长度 | 1字节 | `01` | 表示后面紧跟着 1 字节的数据区 |
|
||||
| 数据 | 1字节 | `01` | 表示切换到外部 MCLK;如果是 `00`,则表示切换到内部 MCLK |
|
||||
| 校验和 | 1字节 | `2A` | 从 `55` 开始到最后一个数据字节结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.8 设置 unmute(0x27)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -776,6 +1022,23 @@ sequenceDiagram
|
||||
- 当USB连接状态发生变化时(连接或断开),XU316主动发送此命令
|
||||
- MCU可根据此信息更新UI显示或调整相关功能
|
||||
|
||||
=== "MCU返回示例"
|
||||
|
||||
**命令示例**
|
||||
```
|
||||
55 AA 03 29 00 2B
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 返回给 XU316 的确认数据 |
|
||||
| 命令字 | 1字节 | `29` | 表示当前确认的是“报告USB连接状态”命令 |
|
||||
| 数据长度 | 1字节 | `00` | 表示这是一条纯确认帧,不携带额外数据 |
|
||||
| 校验和 | 1字节 | `2B` | 从 `55` 开始到 `00` 结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
#### 3.3.11 获取固件版本命令(0xF1)
|
||||
|
||||
=== "命令格式"
|
||||
@@ -802,6 +1065,23 @@ sequenceDiagram
|
||||
=== "功能说明"
|
||||
- 获取固件版本
|
||||
|
||||
=== "MCU发送示例"
|
||||
|
||||
```
|
||||
55 AA 03 F1 02 00 00 F5
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 发送给 XU316 的命令 |
|
||||
| 命令字 | 1字节 | `F1` | 表示当前命令是“获取固件版本命令” |
|
||||
| 数据长度 | 1字节 | `02` | 表示后面紧跟着 2 字节的数据区 |
|
||||
| 数据 | 2字节 | `00 00` | 示例中的两个字节保留为 `00`,用于占位 |
|
||||
| 校验和 | 1字节 | `F5` | 从 `55` 开始到最后一个数据字节结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
|
||||
### 3.4 DAC配置选择(0xF0)
|
||||
|
||||
@@ -818,7 +1098,7 @@ sequenceDiagram
|
||||
Byte 1 - 3: reserved
|
||||
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
|
||||
```
|
||||
|
||||
|
||||
**XU316返回**
|
||||
```
|
||||
帧头: 2字节 - 0x55aa
|
||||
@@ -833,6 +1113,24 @@ sequenceDiagram
|
||||
- 测试命令用于MCU想XU316设置DAC配置选择。让XU316通过DAC I2C配置DAC还是MCU自己配置DAC
|
||||
- 此命令为产品特定命令,不是所有产品都支持。具体支持情况请参考产品规格书说明。
|
||||
|
||||
=== "MCU发送示例"
|
||||
|
||||
```
|
||||
55 AA 03 F0 04 00 00 00 00 F6
|
||||
```
|
||||
|
||||
**逐段解析**
|
||||
|
||||
| 字节段 | 长度 | 示例值 | 说明 |
|
||||
|:-------|:-----|:-------|:-----|
|
||||
| 帧头 | 2字节 | `55 AA` | 固定帧头,表示一帧协议数据开始 |
|
||||
| 版本 | 1字节 | `03` | 表示这是 MCU 发送给 XU316 的命令 |
|
||||
| 命令字 | 1字节 | `F0` | 表示当前命令是“DAC配置选择命令” |
|
||||
| 数据长度 | 1字节 | `04` | 表示后面紧跟着 4 字节的数据区 |
|
||||
| Byte 0 | 1字节 | `00` | 表示使能 XU316 通过 I2C 配置 DAC |
|
||||
| Byte 1-3 | 3字节 | `00 00 00` | 预留字节,示例中全部填 `00` |
|
||||
| 校验和 | 1字节 | `F6` | 从 `55` 开始到最后一个数据字节结束,所有字节相加后对 256 取余的结果 |
|
||||
|
||||
### 3.5 HID和MCU通过XU316数据透传命令
|
||||
|
||||
#### 3.5.1 HID通过XU316透传数据给MCU(0xEE)
|
||||
@@ -848,7 +1146,7 @@ sequenceDiagram
|
||||
数据: 57字节 - 由于HID协议限制,必须是57字节透传数据
|
||||
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
|
||||
```
|
||||
|
||||
|
||||
**MCU返回(可以返回多帧)**
|
||||
```
|
||||
帧头: 2字节 - 0x55aa
|
||||
@@ -946,7 +1244,7 @@ sequenceDiagram
|
||||
|-------|----------------------------------------|
|
||||
| 0xFF | 静音(Mute) |
|
||||
| 0x00-0xFE | 音量值,具体映射由应用定义 |
|
||||
|
||||
|
||||
**DAC音量**
|
||||
|
||||
| 值 | 说明 |
|
||||
|
||||
Reference in New Issue
Block a user