实现比特完美(Bit-Perfect) 的USB音频
PLL的参考时钟由一个快速前馈一级生成。该级计算出本地晶振震荡源生成所需参考时钟所必需除以的分数因子,然后暗中运行这个除法运算。运算由一个双模前置分频器执行,其除法控制输入由一个△Σ调制器驱动,后者接受一个代表分数分频的输入。
一个噪声整形环路提供一个两级输出,后者代表一个数字的分数部分,我们需要将本地时钟频率除以该数字以获取所需参考频率。有关如何恢复USB时钟的详细解释,请参阅:USB音频系统中可编程时钟的生成和同步。
异步模式
图五:在异步模式中,一个独立的时钟源提供主时钟
在异步模式中,主时钟由一个独立的本地时钟源提供(图5)。该模式可实现研发时间和生产成本所能实现的时钟纯净度。系统拥有两个独立的时钟域。PSoC系列可在芯片内创建独立的时钟域,而且能够灵活地确保UDB与CPU和系统时钟完全异步。
我们还遇到了多个音频速率的支持问题。选择合适的晶振和内置PLL,我们有可能创建一个可实现常用音频频率的频率集。这个神奇的数字就是17.2032 MHz(见下表)。
使用PLL异步模式可提供一个没有锁定和同步问题的低抖动时钟,但该模式给系统的缓冲器管理增加了复杂性。这是因为本地晶振振荡器不一定被锁定到主机认为的48 kHz。微小的频率失配将最终导致上溢/下溢,从而导致音频污染。
为了解决这个问题,USB类别规范提供一个反馈端点,它可用于调节主机数据速率,以匹配输入数据包和I2S输出数据流之间的数据速率。系统计算I2S发出的数据包数量,将其与USB SOF进行对比,然后调节反馈端点的值,以匹配平均数据流。简而言之,主机缩小或扩大数据样本数量,以便让一段时间内的平均速率匹配音频采样率。CY8CKIT-046套件中演示了异步模式USB音频。
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)