PC机的MPEG-4编码原理
扫描二维码
随时随地手机看文章
USB音频是绝大多数设备中普遍使用的接口,除非是最古老的个人电脑硬件和操作系统。以其鲁棒性连接和数据传输速率,人们可能会认为,在这种接口上传输高质量的音频是很简单的。然而,今天成功的基于USB的音频产品无不是做了大量的芯片和系统方面的工作,需要解决时钟恢复等棘手难题。
问题的本质是,最后的输出设备传送音频到扬声器,耳机或线路输出插座,这需要一个“主时钟”来调整音频转换速度。这个主时钟需要有两个独立的属性:1)它一定是音频采样率的整数倍,这要非常精确(这样当时序错误时,你就不需要舍弃或复制音频样本);2)它的抖动(或者可以说是相位噪声)必须足够低,这样数模转换过程就不会受到影响。这里的挑战是我们要同时满足这两个要求。
困难的一部分来自于这样一个事实:通过USB线的数据流的接收端不知道确切的采样率。事实上,它只能推断理论采样率。更重要的是,这些来自USB线的数据并没有任何形式的时钟。这对比其他大多数串行接口来说是明显的不足,其它串行接口或者有一个发送时钟,或者是构建数据,这样当运行时,总可以从连接上找到一个时钟。
能从USB接口得到的唯一的时钟信息就是,每毫秒特定类型的数据包会发出起始桢,这一个事件可以由接收硬件检测到。根据已知方法,从传输端的系统时钟可以推导出这一毫秒值,原音频采样速率也是同样的(我们后面会简要地讨论一个例外)。
一个简单的解决方法可能是,我们可以把1 kHz时钟放到一个基于PLL的乘法器,根据需要来倍频,以建立音频主时钟,所有的子时钟都基于此。然而,在处理CD音频的系统里,采样频率是44.1kHz,典型的传统音频数模转换器需要的主时钟是256倍,或者11.2896MHz。事实是,在一个单PLL上将输入频率倍频这么大倍数性能肯定不会很好。这正击中了乘法器的要害:环路带宽,参考激励拒绝,和压控振荡器的抖动。更重要的是,在这个案例里,我们需要用不是整数的数来乘1kHz,要完成这个任务就更难了。
层叠式两种相当复杂的乘法器环路会导致要工作在有相位噪声和伪拒绝的情况下。然而,这种方法往往会导致电源消耗很大,这需要高端芯片,还要巧妙的模拟设计。或者这样,宁愿相应变慢来改变时钟频率需求。USB音频链接的名义采样率可能在线路之间迅速改变,要等待将近一秒来稳定,会导致性能不可靠。这种方式最初应用在固定频率的演播室的数字音频连接,在那里成本和尺寸都不重要。
在过去的几年里,有各种不同的创建需要的音频主时钟方式,不再需要受PLL倍频问题的困扰,他们已经集成到了很多专用的芯片组,例如USB音箱、耳机、外部声卡。这些器件做他们所需要的,而不需要在“如果又怎样”能力上花费额外的芯片面积或引脚数。这当然可以使成本下降,这样每个人都很高兴。
但是,如果你的下一代USB接口需求不能在特殊功能芯片上得到满足,你该怎么做?移动设备(如媒体播放器和最新的写字板)都是建立在新平台上的并运行新操作系统的,这就需要越来越规范的USB标准来作为广泛的附件和新增功能的有线连接选择。这些系统中有一些已经整合了USB音频芯片,但不能满足需求,这给器件提供基础功能造成了“打击”。USB音频就是这些小的移动设备要求的越来越多地的功能之一。
从一个移动设备上以数字形式提取音频有几大好处。模拟音频接口不再受到系统声音质量因素的限制。这使得音频系统或播放器配件制造商可以通过他们自己的电路设计使声音性能达到更高的水平。同样重要的是,数字音频链接改进了到TDMA接口的阻抗(丛移动设备蜂窝调制解调器耦合到系统中音频回放部分模拟电路的阻抗)。
市场上有许多集成USB外设的微控制器,但没有一个设计了具有必要的时钟生成和恢复电路,而这些是用来传输高质量音频数据的(这是当前的需求)。有时这个问题是可以解决的,可以使用外部“时钟重启”芯片或更复杂的音频转换器(集成了PLL或采样率转换器),这样来弥补主时钟精度和质量的差距。然而,这使系统回到这些问题的困扰:费用高,高功耗,元件数目多,或者所有这些都有。此外,音频的“降频技术”使得很长的内存缓冲区不能在任何一个系统里使用,视频图像(甚至是幻灯片)须要为音频调整时间。