Skip to main content
欢迎来到PAWPAW技术文档网站了解更多信息

软件架构

这一部分详细描述了使用lib_xua实现USB音频设备所需的软件架构,以及与之相关的依赖项和其他支持库。

lib_xua为在XMOS设备上开发USB音频产品提供了基础组件。它是构建USB音频系统的关键要素。在图1中列出的lib_xua组件是每个系统都必须具备的。

接下来,我们将逐步介绍每个组件的功能和作用,以帮助您更好地理解lib_xua的架构和使用方式。

组件描述
Endpoint 0提供Endpoint 0的逻辑,处理设备的枚举和控制,包括DFU相关请求。
Endpoint buffer缓冲端点数据包的传输,用于主机和设备之间的音频数据包交换。还可以处理音量控制处理。请注意,目前使用了两个核心。
AudioHub处理通过I2S进行的音频输入/输出,并管理与其他数字音频输入/输出组件之间的音频数据。

图1:所需的XUA组件

此外,还需要低级别的USB I/O,该功能由外部依赖项lib_xud提供。

组件描述
XMOS USB Device Driver (XUD)处理低级别的USB I/O。

图2:额外所需的组件

此外,图3显示了可以从lib_xua内部添加/启用的可选组件。

组件描述
Mixer允许对输入和输出通道进行数字混音。也可以处理音量控制,而不使用解耦器。
Clockgen用于驱动外部频率发生器(PLL),管理内部时钟和来自数字输入的外部时钟之间的切换。
MIDI通过串行UART接口进行MIDI输出和输入。

图3:可选组件

此外,lib_xua还提供了与图4中列出的以下外部依赖项集成的可选支持。

组件描述
S/PDIF Transmitter输出S/PDIF数字音频接口的样本。
S/PDIF Receiver输入S/PDIF数字音频接口的样本(需要clockgen组件)。
ADAT Receiver输入ADAT数字音频接口的样本(需要clockgen组件)。
PDM Microphones从麦克风接收PDM数据,并执行PDM到PCM转换。

图4:外部组件

USB Audio Core Diagram
图5:USB音频核心示意图

图5显示了组件在典型系统中的相互交互方式。绿色圆圈代表具有箭头表示的逻辑核心,表示核心之间的内部通信。每个绿色圆圈都代表逻辑核(一个或多个),其中DFU功能在USB升级以外的场合,并不占用核心。