48 KiB
Executable File
title, status, description, authors, tags, search
| title | status | description | authors | tags | search | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| XU316 USB HiFi解码器免开发产品配置协议 | new | XU316 USB HiFi解码器免开发产品配置协议文档 |
|
|
|
XU316 USB HiFi解码器免开发产品配置协议
--8<-- "common/phaten_xmos_support_img.md"
协议概述 :material-file-document-outline:
!!! abstract "功能定位与范围" 本文档详细描述了XU316 USB HiFi解码器免开发产品与MCU之间通过UART进行通信的配置协议。该协议提供了音频设备配置、状态监控和媒体控制的完整功能集。
一、协议基础规范 :material-connection:
1.1 底层通信协议
基于UART (Universal Asynchronous Receiver/Transmitter) 协议
| 参数 | 值 |
|---|---|
| 波特率 | 115200 bps |
| 数据位 | 8 |
| 奇偶校验 | 无 |
| 停止位 | 1 |
| 数据流控 | 无 |
1.2 帧格式与数据传输
!!! example "通用帧格式" 所有命令和响应均遵循以下帧格式:
| 字段 | 字节数 | 说明 |
|:----------:|:--------:|:-----------------------------------------:|
| 帧头 | 2 | 固定为0x55aa |
| 版本 | 1 | 协议版本号 |
| 命令字 | 1 | 指示帧的功能 |
| 数据长度 | 1 | 后续数据的长度N,不包含最后的校验和字节 |
| 数据 | N | 具体的数据内容 |
| 校验和 | 1 | 从帧头开始按字节求和,结果对256求余 |
!!! warning "数据传输说明" 所有大于1个字节的数据均采用 大端模式 传输。协议中示例数据均以十六进制表示。
1.3 通信机制
1.3.1 确认机制
!!! tip "确认与超时处理" - 所有命令均需对方回复确认 - 默认命令超时时间为300ms,超时后视为通信失败 - 特殊命令可能有不同的超时时间,会在相应命令描述中说明
1.3.2 重试与容错机制
flowchart TD
A[发送命令] --> B{等待响应}
B -->|超时| C[重发命令]
C --> D{重试次数<4?}
D -->|是| B
D -->|否| E[使用默认配置]
B -->|收到响应| F[处理响应]
二、设备启动与初始化 :material-power-plug:
2.1 启动交互流程
sequenceDiagram
participant XU316
participant MCU
participant Flash
rect
Note over XU316,Flash: System Loader固件
rect
Note over XU316,MCU: 上电启动阶段
XU316->>MCU: 发送开始启动命令(0x00)
Note over XU316:
alt 超时未收到响应(最多尝试4次,如果4次都没有收到响应直接进入USB->I2S模式)
XU316->>MCU: 重发送开始启动命令(0x00)
end
MCU-->>XU316: 返回启动选项
Note over XU316: 解析启动选项
end
rect
Note over XU316,Flash: 基础信息更新阶段
alt 启动选项不包含0x01(不更新基础产品信息)
XU316->>Flash: 读取基础产品信息
Flash-->>XU316: 返回基础产品信息
else 启动选项包含0x01(更新基础产品信息)或者从Flash读取数据不完整
XU316->>MCU: 发送读取基础产品信息命令(0x01)
MCU-->>XU316: 返回新基础产品信息
XU316->>Flash: 保存配置
end
end
rect
Note over XU316,Flash: 上电配置获取阶段
alt 启动选项不包含0x02(不更新上电配置)
XU316->>Flash: 读取上电配置
Flash-->>XU316: 返回上电配置数据
else 启动选项包含0x02(更新上电配置)或者从Flash读取数据不完整
XU316->>MCU: 发送获取上电配置命令(0x02)
MCU-->>XU316: 返回新上电配置
XU316->>Flash: 保存新上电配置
end
end
rect
Note over XU316: Loading应用模式阶段
XU316->>MCU: 发送获取当前模式命令(0x03)
MCU-->>XU316: 返回当前模式
Note over XU316: 根据当前模式,loading对应模式
end
end
rect
Note over XU316,MCU: APP运行阶段
XU316->>MCU: 获取当前用户配置命令(0x04)
MCU-->>XU316: 返回当前用户配置
Note over XU316: 初试化APP并应用当前用户配置
XU316->>MCU: 发送启动完成命令(0x05)
MCU-->>XU316: 返回完成命令响应
par 并行处理
loop 状态上报
XU316->>MCU: 状态改变或15S定时发送
end
loop 业务处理
MCU->>XU316: 发送业务指令
XU316-->>MCU: 响应业务指令
end
end
end
2.2 启动流程详细说明
=== "上电启动与选项阶段" 1. XU316启动会发送开始启动命令(命令字0x00) 给MCU,包含: - UAC1.0 VID/PID - UAC2.0 VID/PID - 基础信息CRC - 上电配置信息CRC 2. MCU接收启动命令,检查信息是否需要更新,并发送相应回复 3. XU316等待MCU响应 4. 如果超时未收到响应,XU316重发启动命令最多4次 5. 若仍无响应,则直接加载默认USB配置枚举USB 6. 如有正常响应,XU316解析启动选项
=== "基础信息更新阶段" 执行条件: 启动选项包含0x01(更新基础产品信息)
**步骤**:
1. XU316发送0x01命令请求读取基础产品信息
2. MCU返回新基础产品信息给XU316
3. XU316更新并保存配置到内部存储
=== "上电配置获取阶段" 执行条件: 启动选项包含0x02(更新上电配置)或从Flash读取数据不完整
**步骤**:
1. XU316发送0x02命令请求获取上电配置
2. MCU返回新上电配置给XU316
3. XU316更新并保存配置到内部存储
=== "应用固件加载阶段"
**步骤**:
1. XU316发送0x03命令获取当前输入输出模式
2. MCU返回当前模式信息给XU316
3. XU316根据返回模式加载对应输入输出模式
=== "应用初始化阶段" 步骤:
1. XU316发送0x04命令获取当前用户配置
2. MCU返回当前用户配置给XU316
3. XU316初始化应用并应用相关配置
4. XU316发送0x05命令表示启动完成
5. MCU返回确认响应
三、协议命令集 :material-console:
3.1 命令分类概览
=== "启动与基础命令(0x00-0x0F)" | 命令字 | 命令描述 | 发送方向 | |:--------:|:---------------------------------------------|:----------:| | 0x00 | 开始启动 | XU316→MCU | | 0x01 | 读取产品信息 | XU316→MCU | | 0x02 | 读取上电配置信息 | XU316→MCU | | 0x03 | 获取当前输入输出模式 | XU316→MCU | | 0x04 | 获取当前用户配置 | XU316→MCU | | 0x05 | 启动完成命令 | XU316→MCU |
=== "业务控制命令(0x20-0x2F)" | 命令字 | 命令描述 | 发送方向 | |:--------:|:---------------------------------------------|:----------:| | 0x20 | 报告应用状态 | XU316→MCU | | 0x21 | 媒体控制 | MCU→XU316 | | 0x22 | 报告播放音频流格式和类型 | XU316→MCU | | 0x23 | 设置输入输出模式 | MCU→XU316 | | 0x24 | xu316发送播放音量 | XU316→MCU | | 0x25 | 发送录音音量 | XU316→MCU | | 0x26 | 切换MCLK | MCU→XU316 | | 0x27 | 设置 unmute | MCU→XU316 | | 0x28 | 发送音频格式的时间延迟 | MCU→XU316 | | 0x29 | 报告USB连接状态 | XU316→MCU | | 0x30 | 设置Mute引脚反转 | MCU→XU316 |
=== "HID-MCU互相透传命令(0xEE-0xEF)" | 命令字 | 命令描述 | 发送方向 | |:--------:|:---------------------------------------------|:----------:| | 0xEE | HID发起的通过XU316透传给MCU的命令 | XU316→MCU |
=== "DAC控制指令(0xF0-0xFF)" | 命令字 | 命令描述 | 发送方向 | |:--------:|:---------------------------------------------|:----------:| | 0xF0 | DAC配置选择命令 | MCU→XU316 | | 0xF1 | 获取固件版本命令 | MCU→XU316 |
!!! note "命令使用说明" 1. 所有命令必须遵循基本帧格式规范 2. 每个命令都需要对方回复确认后才视为执行成功 3. 业务控制命令(0x20及以上)仅可在设备启动完成后使用
3.2 基础功能命令详解
3.2.1 开始启动(0x00)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x00 数据长度: 1字节 - 17 数据: 17字节 B0: 重启原因 (0x00上电重启, 0x01切换模式重启, 0xFF其他原因) B1-2: USB Vendor ID (UAC1.0) B3-4: USB Product ID (UAC1.0) B5-6: USB Vendor ID (UAC2.0) B7-8: USB Product ID (UAC2.0) B9-12: 基础信息32bit CRC B13-16: 上电配置信息32bit CRC 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x00
数据长度: 1字节 - 0x1
数据: 1字节
B0: 启动选项
0x00 使用所有的默认信息
0x01 需要更新基础产品信息
0x02 需要更新上电配置信息
0x04 需要更新其他配置信息
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" 1. 该命令在XU316上电或重启后首先发送,用于告知MCU设备已启动 2. XU316将当前存储的产品信息CRC和配置信息CRC发送给MCU 3. MCU通过比对CRC确定是否需要更新XU316中的配置信息 4. MCU在响应中通过启动选项字段告知XU316后续需要执行的操作
=== "使用流程"
mermaid flowchart TB A[XU316启动] -->B[发送0x00命令] B -->C{MCU响应} C -->|超时| D[重发命令] D -->E{重试次数<4?} E -->|是| C E -->|否| F[使用默认配置] C -->|正常响应| G[解析启动选项] G -->|0x01| H[更新基础产品信息] G -->|0x02| I[更新上电配置信息] G -->|0x04| J[更新其他配置信息] G -->|0x00| K[继续启动流程]
=== "注意事项" * 如果MCU无响应,XU316会使用存储的默认配置继续启动 * 重启原因字段可用于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)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x01 数据长度: 1字节 - 0x00 数据: 0字节 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x01
数据长度: 1字节 - 0x3C (60字节)
数据: 60字节 - 产品基础信息,详见数据字段说明
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316获取产品基本信息,如VID/PID、产品名称等 - 执行条件:启动选项中包含0x01标志或产品信息CRC不匹配 - XU316收到此信息后会更新内部存储的产品基础信息
=== "数据结构"
产品基础信息数据结构(60字节):
VID1 (UAC1.0): 2字节 PID1 (UAC1.0): 2字节 VID2 (UAC2.0): 2字节 PID2 (UAC2.0): 2字节 ManufactureName: 16字节 (字符串) ProductName: 16字节 (字符串) SerialNumber: 16字节 (字符串) 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 27 2B F6 44 51
```
**逐段解析**
| 字节段 | 长度 | 示例值 | 说明 |
|:-------|:-----|:-------|:-----|
| 帧头 | 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字节 | `27 2B F6 44` | 产品基础信息的 32 位 CRC 校验值(小端序),这里仅作为示例演示 |
| 校验和 | 1字节 | `51` | 从 `55` 开始到 `44` 结束,所有字节相加后对 256 取余的结果 |
3.2.3 读取上电配置信息(0x02)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x02 数据长度: 1字节 - 0x00 数据: 0字节 - 无数据 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x02
数据长度: 1字节 - 0x0E (即14字节)
数据: 14字节 - 上电配置信息,见4.1-上电配置信息章节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316获取初始上电配置信息 - 执行条件:启动选项中包含0x02标志或上电配置CRC不匹配 - XU316会根据此配置信息设置默认输入输出模式、音量等参数
=== "数据结构"
上电配置信息数据结构(14字节):
默认输入输出模式: 5字节 静音时间: 2字节 (0-65535ms) 麦克风默认音量: 1字节 DAC左声道默认音量: 1字节 DAC右声道默认音量: 1字节 CRC: 4字节 (32位CRC校验)
=== "MCU返回示例"
**命令示例**
```
55 AA 03 02 0E 01 00 00 00 00 01 2C 20 30 30 C1 7A 1E 1A 33
```
**逐段解析**
| 字节段 | 长度 | 示例值 | 说明 |
|:-------|:-----|:-------|:-----|
| 帧头 | 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字节 | `C1 7A 1E 1A` | 上电配置的 32 位 CRC 校验值(小端序),这里仅作为示例演示 |
| 校验和 | 1字节 | `33` | 从 `55` 开始到 `1A` 结束,所有字节相加后对 256 取余的结果 |
3.2.4 获取当前输入输出模式(0x03)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x03 数据长度: 1字节 - 0x00 数据: 0字节 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x03
数据长度: 1字节 - 0x05 (即5字节)
数据: 5字节 - 输入输出模式,见数据字段章节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316在启动时查询当前需要启用的输入输出模式 - 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)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x04 数据长度: 1字节 - 0x00 数据: 0字节 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x04
数据长度: 1字节 - 0xE (即14字节)
数据: 14字节 - 用户配置参数,见4.1-用户配置参数章节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316获取当前用户选择的音量、模式等配置 - 在应用固件加载后、应用启动前执行 - 应用会根据返回的信息初始化相应参数
=== "MCU返回示例"
**命令示例**
```
55 AA 03 04 0E 02 00 00 00 00 00 C8 18 28 28 3A 8A 5B 2E 93
```
**逐段解析**
| 字节段 | 长度 | 示例值 | 说明 |
|:-------|:-----|:-------|:-----|
| 帧头 | 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字节 | `3A 8A 5B 2E` | 用户配置的 32 位 CRC 校验值(小端序),这里仅作为示例演示 |
| 校验和 | 1字节 | `93` | 从 `55` 开始到 `2E` 结束,所有字节相加后对 256 取余的结果 |
3.2.6 启动完成命令(0x05)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x05 数据长度: 1字节 - N 数据: N字节 B0: 启动状态 (0 启动成功,1 模式不匹配,其他值 启动失败) B1-BN: 应用运行参数,见4.1-应用运行参数 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x05
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 此命令表示XU316启动流程已完成,可以开始正常工作 - 包含启动状态信息,告知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 "使用前提" 以下命令仅可在XU316启动完成后(发送0x05命令并收到响应后)使用
3.3.1 报告应用状态(0x20)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x20 数据长度: 1字节 - N 数据: N字节 - 应用运行参数,见4.1-应用运行参数 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x20
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316向MCU报告当前应用状态 - 通常在状态发生变化时发送,例如音量变化、模式切换等 - 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)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0x21 数据长度: 1字节 - 0x01 (即1字节) 数据: 1字节 - 媒体控制命令 0x00 音量+ / Vol Up 0x01 音量- / Vol Down 0x02 播放/暂停 / PLAY/PAUSE 0x03 下一曲 / NEXT 0x04 上一曲 / PREV 0x05 快进 / FORWARD 0x06 快退 / REWIND 0x07 静音 / MUTE 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0x21
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 此命令用于MCU向XU316发送媒体控制指令 - XU316收到指令后会转换为相应的HID命令发送给电脑 - 适用于实现遥控器或物理按键对媒体播放的控制
=== "控制按键映射表" | 控制码 | 功能 | USB HID用途 | |:-----:|:------------------:|:------------------:| | 0x00 | 音量+ | 增加系统音量 | | 0x01 | 音量- | 降低系统音量 | | 0x02 | 播放/暂停 | 控制媒体播放状态 | | 0x03 | 下一曲 | 切换到下一首歌曲 | | 0x04 | 上一曲 | 切换到上一首歌曲 | | 0x05 | 快进 | 在当前曲目中快进 | | 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)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x22 数据长度: 1字节 - 0x02 (即2字节) 数据: 2字节 - 音频流格式和类型,见音频流格式和类型字段 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x22
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316向MCU报告当前音频流的格式和类型 - 通常在播放开始或格式变化时发送 - 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)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0x23 数据长度: 1字节 - 0x05 (即5字节) 数据: 5字节 - 输入输出模式,见输入输出模式字段 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0x23
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 此命令用于MCU要求XU316切换到特定输入输出模式 - 通常由用户操作触发,如按下模式选择按钮 - 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发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x24 数据长度: 1字节 - 0x02 (即2字节) 数据: 2字节 字节1: 左声道 (0xFF Mute, 0-0dB, -127:-127dB) 字节2: 右声道 (0xFF Mute, 0-0dB, -127:-127dB) 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x24
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于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)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x25 数据长度: 1字节 - 0x01 (即1字节) 数据: 1字节 - 0xFF Mute,0-0dB -127:-127dB 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x25
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于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)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0x26 数据长度: 1字节 - 1 数据: 1字节 - 0:内部MCLK,1:外部MCLK 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0x26
数据长度: 1字节 - 0
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 此命令用于XU316控制切换主时钟源 - 可切换使用内部时钟或外部时钟 - 对于某些需要精确同步的音频应用场景很重要
=== "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)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0x27 数据长度: 1字节 - 2 数据: 2字节 - 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0x27
数据长度: 1字节 - 0
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 模式切换时dac的 unmute时间延迟, 单位是毫秒
3.3.9 发送音频格式的时间延迟(0x28)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0x28 数据长度: 1字节 - 2 数据: 2字节 - 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0x28
数据长度: 1字节 - 0
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 发送音频格式的时间延迟
3.3.10 报告USB连接状态(0x29)
=== "命令格式"
XU316发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x00 命令字: 1字节 - 0x29 数据长度: 1字节 - 0x01 (即1字节) 数据: 1字节 - USB连接状态 0x00 USB未连接/断开 0x01 USB已连接 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**MCU返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0x29
数据长度: 1字节 - 0x00
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 该命令用于XU316向MCU报告当前USB连接状态 - 当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 设置Mute引脚反转(0x30)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0x30 数据长度: 1字节 - 0x01 数据: 1字节 B0: 反转标志 0x00 = 正常逻辑(高电平解除静音,低电平静音) 0x01 = 反转逻辑(低电平解除静音,高电平静音) 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0x30
数据长度: 1字节 - 0x01
数据: 1字节
B0: 当前反转标志状态
0x00 = 正常逻辑
0x01 = 反转逻辑
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" 1. 该命令用于设置Mute引脚的输出逻辑反转 2. 当某些硬件设计的Mute逻辑与默认相反时,使用此命令进行适配 3. 配置会自动保存到Flash,断电后保持 4. 设置后立即生效,并返回当前状态
=== "使用场景" - 硬件设计中Mute脚极性与默认相反 - 需要适配不同硬件版本的设备
=== "MCU示例"
**命令示例**
```
55 AA 03 30 01 01 34
```
**逐段解析**
| 字节段 | 长度 | 示例值 | 说明 |
|:-------|:-----|:-------|:-----|
| 帧头 | 2字节 | `55 AA` | 固定帧头 |
| 版本 | 1字节 | `03` | MCU发送给XU316 |
| 命令字 | 1字节 | `30` | 设置Mute引脚反转 |
| 数据长度 | 1字节 | `01` | 1字节数据 |
| 反转标志 | 1字节 | `01` | 0x01=反转逻辑 |
| 校验和 | 1字节 | `34` | 从 `55` 开始到反转标志结束,所有字节相加后对 256 取余的结果 |
3.3.12 获取固件版本命令(0xF1)
=== "命令格式"
MCU发送
帧头: 2字节 - 0x55aa 版本: 1字节 - 0x03 命令字: 1字节 - 0xF1 数据长度: 1字节 - 2 数据: 0字节 - 校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0xF1
数据长度: 1字节 - 0
数据: 3字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 获取固件版本
=== "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)
=== "命令格式"
**MCU发送**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0xF0
数据长度: 1字节 - 4
数据: 4字节
Byte 0:0: 使能I2C配置DAC 1: 禁止I2C配置DAC
Byte 1 - 3: reserved
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
**XU316返回**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0xF0
数据长度: 1字节 - 0
数据: 0字节
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 测试命令用于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)
=== "命令格式"
**XU316发送**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x00
命令字: 1字节 - 0xEE
数据长度: 1字节 - 0x39(57字节), 由于HID协议限制,数据长度必须是57字节
数据: 57字节 - 由于HID协议限制,必须是57字节透传数据
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
**MCU返回(可以返回多帧)**
```
帧头: 2字节 - 0x55aa
版本: 1字节 - 0x03
命令字: 1字节 - 0xEE
数据长度: 1字节 - 0x39(57字节), 由于HID协议限制,数据长度必须是57字节
数据: 57字节 - 由于HID协议限制,必须是57字节透传数据
校验和: 1字节 - 从帧头开始按字节求和,结果对256求余
```
=== "功能说明" - 此命令用于HID通过XU316向MCU发起的的透传数据 - 一般透传的数据是MCU的OTA数据或者把MCU的数据回复给HID
四、数据结构定义 :material-database:
4.1 产品配置数据结构
=== "1. 产品基础信息" | 字段 | 字节数 | 说明 | |--------------------|--------|---------------------------------------------------------| | VID1 | 2 | USB Vendor ID (UAC1.0) | | PID1 | 2 | USB Product ID (UAC1.0) | | VID2 | 2 | USB Vendor ID (UAC2.0) | | PID2 | 2 | USB Product ID (UAC2.0) | | ManufactureName| 16 | USB Manufacture Name (字符串,最大16字节) | | ProductName | 16 | USB Product Name (字符串,最大16字节) | | SerialNumber | 16 | Product Serial Number (字符串,最大16字节) | | CRC | 4 | 对所有字段计算的32-bit CRC校验值 |
!!! tip "CRC使用说明"
MCU可以根据XU316传回的CRC值判断是否需要更新产品基础信息。当CRC不匹配时,应发送完整的产品基础信息。
=== "2. 上电配置信息" | 字段 | 字节数 | 说明 | |-------------------------|--------|-----------------------------------------------| | 默认输入输出模式 | 5 | 见输入输出模式字段说明 | | 静音时间 | 2 | 0-65535(ms) | | 麦克风默认音量 | 1 | 见麦克风音量字段说明 | | DAC左声道默认音量 | 1 | 见DAC音量字段说明 | | DAC右声道默认音量 | 1 | 见DAC音量字段说明 | | CRC | 4 | 对所有字段计算的32-bit CRC校验值 |
=== "3. 应用运行参数" | 字段 | 字节数 | 说明 | |-------------------------|--------|-----------------------------------------------| | 输入输出模式 | 5 | 见输入输出模式字段说明 | | 静音时间 | 2 | 0-65535(ms) | | 麦克风音量 | 1 | 见麦克风音量字段说明 | | DAC左声道音量 | 1 | 见DAC音量字段说明 | | DAC右声道音量 | 1 | 见DAC音量字段说明 | | CRC | 4 | 对所有字段计算的32-bit CRC校验值 |
=== "4. 用户配置参数" | 字段 | 字节数 | 说明 | |-------------------------|--------|-----------------------------------------------| | 输入输出模式 | 5 | 见输入输出模式字段说明 | | 静音时间 | 2 | 0-65535(ms) | | 麦克风音量 | 1 | 见麦克风音量字段说明 | | DAC左声道音量 | 1 | 见DAC音量字段说明 | | DAC右声道音量 | 1 | 见DAC音量字段说明 | | CRC | 4 | 对所有字段计算的32-bit CRC校验值 |
4.2 输入输出模式数据格式
=== "字段位定义"
| 字节 | 功能说明 |
|-----|-----------------------------------------------|
| BYTE 0-BYTE4 | 具体值定义参见产品规格书 |
4.3 控制参数数据格式
=== "重启原因" | 值 | 说明 | |-------|-------------------------------| | 0x00 | 上电重启 | | 0x01 | 切换模式重启 | | 0xFF | 其他原因重启 |
=== "上电模式" | 值 | 说明 | |-------|------------------------------------------------------------| | 0x00 | 默认模式,启动时使用上电配置信息的参数 | | 0x01 | 断电记忆模式,启动时使用从MCU获取的用户配置参数 |
=== "音量控制参数"
**麦克风音量**
| 值 | 说明 |
|-------|----------------------------------------|
| 0xFF | 静音(Mute) |
| 0x00-0xFE | 音量值,具体映射由应用定义 |
**DAC音量**
| 值 | 说明 |
|-------|----------------------------------------|
| 0x00 | 静音(Mute) |
| 0x01-0xFF | 音量值,具体映射由应用定义 |
=== "音频流格式" | 值 | 格式 | 采样率 | |-------|-------------------|-----------------| | 0x00 | AUDIO_44100 | 44.1kHz | | 0x01 | AUDIO_48000 | 48kHz | | 0x02 | AUDIO_88200 | 88.2kHz | | 0x03 | AUDIO_96000 | 96kHz | | 0x04 | AUDIO_176400 | 176.4kHz | | 0x05 | AUDIO_192000 | 192kHz | | 0x06 | AUDIO_352800 | 352.8kHz | | 0x07 | AUDIO_384000 | 384kHz | | 0x08 | AUDIO_705600 | 705.6kHz | | 0x09 | AUDIO_768000 | 768kHz | | 0x0A | AUDIO_1441200 | 1.4112MHz | | 0x0B | AUDIO_1536000 | 1.536MHz | | 0x0C | AUDIO_32000 | 32kHz | | 0x0D | AUDIO_64000 | 64kHz | | 0x0E | AUDIO_128000 | 128kHz | | 0x0F | AUDIO_256000 | 256kHz | | 0x10 | AUDIO_512000 | 512kHz | | 0x11 | AUDIO_DSD_64 | DSD64 | | 0x12 | AUDIO_DSD_128 | DSD128 | | 0x13 | AUDIO_DSD_256 | DSD256 | | 0x14 | AUDIO_DSD_512 | DSD512 | | 0x15 | AUDIO_DSD_1024 | DSD1024 | | 0xFF | AUDIO_NO_USED | 未使用 |
=== "音频类型" | 值 | 类型 | 说明 | |-------|-------------------|-----------------| | 0x00 | PCM | 标准PCM音频 | | 0x01 | DoP | 保留 | | 0x02 | MQA | MQA编码音频 | | 0x03 | MQB | MQB编码音频 | | 0x04 | MQA_Studio | MQA Studio编码 | | 0x05 | DSD Native | DSD编码音频 |
五、咨询反馈
点击展开咨询反馈表单
--8<-- "common/customer_form.md"