应对现代USB音频系统设计的挑战
时间:12-16
来源:互联网
点击:
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或采样率转换器),这样来弥补主时钟精度和质量的差距。然而,这使系统回到这些问题的困扰:费用高,高功耗,元件数目多,或者所有这些都有。此外,音频的“降频技术”使得很长的内存缓冲区不能在任何一个系统里使用,视频图像(甚至是幻灯片)须要为音频调整时间。
USB时钟恢复
最近这个问题的解决方法已经大大简化了,这是通过使用很实用的混合信号器件解决的,它在一颗器件里集成了单片机,可编程数字逻辑、可配置模拟电路。一个典型的例子就是赛普拉斯新的PSoC3系列(可编程片上系统)。
当系统“时钟冲击”发生时,基于微处理器的可编程设计可以很快就会适应,因为新代码和新电路板可以很快跟着变化,这远比更新芯片块多了。然而,有时候有的应用需要专用的外设或处理器支持,可能目前还没有集成这些微处理器。最初解决这个新问题的方案就终结了,因为只是部分组合微处理器和FPGA,PLD或者专用的固定功能芯片(经常只是利用一半)来实现一些专用且必需的功能。结果线路板变大了和BOM便多了,这可能危及这个新市场。
高度可编程片上系统架构提供了一个可供选择的途径。使用这样的器件,只需花费很少的芯片设计努力——往往没有一个具体应用的清晰画面场景——就可以在数字和模拟两方面都创建一个更可配置的,更灵活的结构。数字的灵活性来自于包含的模块(通用数字模块,或UDB),可以独立于主处理器核实现复杂的组合和有序的逻辑功能。还包括了专用协处理器可以用于频繁产生的通用信号处理的任务,例如滤波功能。在模拟方面,由于具备丰富的开关网络和片上资源,可以提高常用的运算放大器和比较器性能,可以提供一系列模拟模块,没有做不到,只有想不到。灵活的多域时钟树更使得其无所不能。
这些通用性器件不能总是符合专用单一功能器件所要求的成本。然而,一旦需要做一些不同的功能,比起那些没有灵活性的拼凑的方案来说,可编程器件通常会提供最具竞争力的BOM成本。产品快速设计-甚至是重新设计 –这都可以保证,在过去的几年里,可编程片上系统已经对电子产品设计做出了重要的贡献。
可编程片上系统已经被实践证明了,它具备所有的要素要求,能够支持完整的现代消费类音频设备所需的USB数字音频能力。可编程数字逻辑,通用时钟能力可以提供一种无需外围器件的方法来生成所需的音频主时钟并快速同步,准确地匹配到USB桢结构。这个解决方案的核心是USB音频时钟恢复过程,其使用的基本配置见图1框图:
问题的本质是,最后的输出设备传送音频到扬声器,耳机或线路输出插座,这需要一个“主时钟”来调整音频转换速度。这个主时钟需要有两个独立的属性: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或采样率转换器),这样来弥补主时钟精度和质量的差距。然而,这使系统回到这些问题的困扰:费用高,高功耗,元件数目多,或者所有这些都有。此外,音频的“降频技术”使得很长的内存缓冲区不能在任何一个系统里使用,视频图像(甚至是幻灯片)须要为音频调整时间。
USB时钟恢复
最近这个问题的解决方法已经大大简化了,这是通过使用很实用的混合信号器件解决的,它在一颗器件里集成了单片机,可编程数字逻辑、可配置模拟电路。一个典型的例子就是赛普拉斯新的PSoC3系列(可编程片上系统)。
当系统“时钟冲击”发生时,基于微处理器的可编程设计可以很快就会适应,因为新代码和新电路板可以很快跟着变化,这远比更新芯片块多了。然而,有时候有的应用需要专用的外设或处理器支持,可能目前还没有集成这些微处理器。最初解决这个新问题的方案就终结了,因为只是部分组合微处理器和FPGA,PLD或者专用的固定功能芯片(经常只是利用一半)来实现一些专用且必需的功能。结果线路板变大了和BOM便多了,这可能危及这个新市场。
高度可编程片上系统架构提供了一个可供选择的途径。使用这样的器件,只需花费很少的芯片设计努力——往往没有一个具体应用的清晰画面场景——就可以在数字和模拟两方面都创建一个更可配置的,更灵活的结构。数字的灵活性来自于包含的模块(通用数字模块,或UDB),可以独立于主处理器核实现复杂的组合和有序的逻辑功能。还包括了专用协处理器可以用于频繁产生的通用信号处理的任务,例如滤波功能。在模拟方面,由于具备丰富的开关网络和片上资源,可以提高常用的运算放大器和比较器性能,可以提供一系列模拟模块,没有做不到,只有想不到。灵活的多域时钟树更使得其无所不能。
这些通用性器件不能总是符合专用单一功能器件所要求的成本。然而,一旦需要做一些不同的功能,比起那些没有灵活性的拼凑的方案来说,可编程器件通常会提供最具竞争力的BOM成本。产品快速设计-甚至是重新设计 –这都可以保证,在过去的几年里,可编程片上系统已经对电子产品设计做出了重要的贡献。
可编程片上系统已经被实践证明了,它具备所有的要素要求,能够支持完整的现代消费类音频设备所需的USB数字音频能力。可编程数字逻辑,通用时钟能力可以提供一种无需外围器件的方法来生成所需的音频主时钟并快速同步,准确地匹配到USB桢结构。这个解决方案的核心是USB音频时钟恢复过程,其使用的基本配置见图1框图:
USB音频系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)