掌握音频协议和标准时间:2011-01-02 17:52:18 来源:今日电子/21ic作者:ADI公司Aseem Vasudev 过去几年里,音频技术取得了巨大进步,特别是在家庭影院和汽车音响市场。
汽车中的传统四扬声器立体声系统正逐渐被多声道多扬声器音频系统所取代。
在印度,带双扬声器立体声系统的电视机现已被带5.1多声道的家庭影院系统所取代。
当今的音频设计挑战在于如何模拟实际的声音并通过各种音频设备进行传送。
声音可以来自任何方向,实际上,我们的大脑能够计算并感知声音的来源。
例如,当战斗机从一点飞到另一点时,它所产生的声音实际上来自无数个位置点。
但是,我们不可能用无数个扬声器来再现这种音频体验。
利用多声道、多扬声器系统和先进的音频算法,音频系统能够惟妙惟肖地模拟真实声音。
这些复杂的音频系统使用ASIC或DSP来解码多声道编码音频,并且运行各种后处理算法。
声道数量越多,意味着存储器和带宽要求越高,这就需要使用音频数据压缩技术来编码并减少所要存储的数据。
这些技术还能用来保持声音质量。
与数字音频一同发展的还有音频标准和协议,其目的是简化不同设备之间的音频数据传输,例如,音频播放器与扬声器之间、DVD播放器与AVR之间,而不必将数据转换为模拟信号。
本文将讨论与音频行业相关的各种标准和协议,同时也会探究不同平台的音频系统结构以及各种音频算法和放大器。
标准和协议S/PDIF标准——该标准定义了一种串行接口,用于在DVD/HD-DVD播放器、AVR和功率放大器等各种音频设备之间传输数字音频数据。
当通过模拟链路将音频从DVD播放器传输到音频放大器时,会引入噪声,该噪声很难滤除。
不过,如果用数字链路代替模拟链路来传输音频数据,问题就会迎刃而解。
数据不必转换为模拟信号就能在不同设备之间传输,这是S/PDIF的最大优势。
该标准描述了一种串行、单向、自备时钟的接口,可互连那些采用线性PCM编码音频采样的消费和专业应用数字音频设备。
它是一种单线、单信号接口,利用双相标记编码进行数据传输,时钟则嵌入数据中,在接收端予以恢复(见图1)。
此外,数据与极性无关,因此更易于处理。
S/PDIF是从专业音频所用的AES/EBU标准发展而来。
二者在协议层上一致,但从XLR到电气RCA插孔或光学TOSLINK的物理连接器发生了改变。
本质上,S/PDIF 是AES/EBU格式的消费型版本。
S/PDIF接口规范主要由硬件和软件组成。
软件通常涉及S/PDIF帧格式,硬件则涉及设备间数据传输所使用的物理连接媒介。
用于物理媒介的各种接口包括:晶体管与晶体管逻辑、同轴电缆(以RCA插头连接的75Ω电缆)和TOSLINK (一种光纤连接)。
图1 S/PDIF双相标记编码流S/PDIF协议——如上文所述,它是一种单线串行接口,时钟嵌入数据之中。
传输的数据采用双相标记编码。
时钟和帧同步信号在接收器端与双相解码数据流一同恢复。
数据流中的每个数据位都有一个时隙。
时隙以一个跃迁开始,并以一个跃迁结束。
如果传输的数据位是“1”,则时隙中间还会增加一个跃迁。
数据位“0”则不需要额外跃迁,跃迁之间的最短间隔称为单位间隔(UI)。
S/PDIF帧格式——首先驱动数据的最低有效位。
每个帧有两个子帧,分别是32个时隙,共64个时隙(见图2)。
子帧以一个前导码开始,后面跟随24位数据,最后以携带用户数据和通道状态等信息的4位结束。
子帧的前4个时隙称为前导码,用于指示子帧和块的开始。
前导码有三个,每一前导码均包含一个或两个持续时间为3UI的脉冲,从而打破双相编码规则。
这意味着,该模式不可能存在于数据流中的其他地方。
每个子帧都以4位前导码开始。
块的开始用前导码“Z”和子帧通道的开始“A”表示。
前导码“X”表示通道“A”子帧的开始(不同于块的开始),前导码“Y”表示通道“B”子帧的开始。
图2 S/PDIF子帧、帧和块格式I2S总线——在当今的音频系统中,数字音频数据在系统内部的各种器件之间传输,例如编解码器、DSP、数字IO接口、ADC、DAC和数字滤波器之间。
因此,为了增强灵活性,必须有一个标准的协议和通信结构。
专为数字音频而开发的I2S总线规范现已被许多IC厂商采用,它是一种简单的三线同步协议,包括如下信号:串行位时钟(SCK)、左右时钟或字选择(WS)以及串行数据。
WS线表示正在进行传输的声道。
当WS为逻辑高(HI)电平时,右声道进行传输;当WS为逻辑低(LO)电平时,左声道进行传输。
发送器以二进制发送数据,首先补足MSB。
几乎所有DSP的串行端口都将I2S作为串行端口模式之一。
音频编解码器也支持这种模式。
采样速率转换器(SRC)——这是音频系统的一个重要组成部分。
采样速率转换既可以通过软件实现,也可以通过一些处理器的片内硬件来支持(见图3)。
它主要用于将数据从一个采用特定采样速率的时钟域转换到另一个采用相同或不同采样速率的时钟域。
图3 采样速率转换过程的四个不同阶段音频可以采用不同采样速率进行编码,其他任务由编解码器完成。
某些情况下需要改变编解码器的主时钟,以支持特定采样速率。
从采用某一采样速率的音频转换为采用不同采样速率的音频时,即时改变主时钟并不是一件容易的事,有时甚至不可能完成,因为需要更改电路板上的硬件。
因此,采样速率转换一般在将数据驱动到编解码器之前执行。
这样,编解码器的采样速率不需要改变,可以保持恒定。
串行端口以采样频率1发送音频数据到另一端的SRC和编解码器,然后以采样频率2从SRC读取音频数据。
SRC分为两种类型:同步SRC和异步SRC。
与同步SRC连接的输出器件为“从机”,与异步SRC连接的器件为“主机”。
“主机”是指驱动SCK和帧同步信号的器件。
SRC利用输出采样速率极高的插值滤波器和零阶保持器(ZOH)将离散时间信号转换为连续时间信号。
插值值被馈送至ZOH,并以Fs out的输出采样频率进行异步采样。
音频系统大多数手持式音频设备支持双声道,并能解码MP3、Ogg、WMA媒体格式。
这些设备大多依赖电池供电。
还有许多手机,其中一些称为“音乐手机”,也属于此类设备。
另一方面,家庭影院系统支持多扬声器、多声道音频,例如,Dolby、DTS和各种其他音频后处理算法(THX、ART、Neo6等)。
便携式音频系统——有些手持式音频系统采用ASIC,有些则采用DSP。
MP3、Ogg和其他媒体文件等音频内容通常存储在高密度存储设备中,如NAND闪存、安全数字(SD)卡、多媒体卡(MMC)和安全数字高容量卡(SDHC)等。
图4显示了与ASIC/DSP的主要系统接口。
SD和MMC还支持串行SPI模式,DSP和各种微控制器/微处理器通常提供此种模式。
某些处理器片内支持这些标准。
利用处理器的其他资源/接口,如并行端口或异步存储器接口等,也可以通过软件实现这些协议。
当然,软件实现方法会增加开销。
对于运行操作系统(OS)或内核的系统,必须使这些接口和驱动程序与OS兼容,而不应依赖中断服务等。
OS环境下可能会引起不可预测的延迟,影响接口时序规格,使得接口不可靠,有时甚至无法工作。
为了确保OS兼容,可能需要使用额外的硬件胶合逻辑。
图4 手持式音频系统框图例如,一个设计示例(见图5)在处理器的外部存储器接口上实现了SD 2.0规范。
数据总线不仅用于数据传输,而且用于与SD卡交换命令和响应。
在SD卡的4位模式下,数据总线的D0至D3信号连接到SD卡的数据线(DAT0至DAT3)。
处理器数据总线的D4用于与SD卡进行命令和响应通信。
由于命令字必须通过CMD信号串行发送,因此一系列8位字形成内部存储器中的帧,使得各个字的D4依次具有命令字的一位。
这种数据重排是通过函数调用在软件中完成。
类似地,软件对接收的状态信息和来往SD卡的实际数据执行数据重排。
SD卡时钟信号自ARE/(读取选通)和AWE/(写入选通)信号获得。
ARE/和AWE/连接到一个具有开集输出的缓冲器的输入端。
AMS3/(异步存储器片选选通)连接到此缓冲器的输出使能引脚。
此缓冲器的输出执行“线与”处理,所产生的信号作为时钟提供给SD 卡。
数据线也通过一个双向缓冲器进行缓冲。
AMS3/驱动缓冲器的输出使能引脚。
要求对缓冲器进行隔离,以便其他异步存储设备也能共享数据总线。
D5驱动双向缓冲器的DIR(方向控制)引脚。
缓冲器两端均需要上拉电阻。
BF-54x等其他一些Blackfin产品提供片内SD支持。
图5 Blackfin BF-527处理器异步存储器接口和并行外设接口上的SD设计文件系统——需要实现FAT16/32来管理存储卡上的音频文件和文件夹。
这些代码与音频解码器代码集成。
解码后的音频数据接着被送至数模转换器(DAC),经过放大后再被送至音频立体声连接器。
与DAC相连的接口通常是串行I2S接口。
DAC配置通过串行外设接口(SPI)或I2C兼容外设来完成。
运行时,可以通过此控制接口改变各种DAC参数,如采样率、增益/音量控制等。
处理器或FPGA从SPI引导ROM/闪存器件进行引导加载。
应用程序下载至其内部存储器后执行。
处理器利用其内部SRAM为IO数据缓冲器存储编码音频帧(从存储介质读取)和解码音频数据(驱动至DAC)。
AVR/家庭影院系统——家庭影院音乐系统通常是多声道音频系统(见图6)。
Dolby 5.1和DTS 5.1是主流多声道音频系统。
DVD播放器通过光纤或同轴电缆S/PDIF接口发送编码音频数据流。
系统利用S/PDIF接收器芯片解码双相标记编码数据,并提供与处理器相连的串行帧接口。
S/PDIF接收芯片通常向处理器提供I2S格式的数据流。
某些处理器片内集成S/PDIF接收器,无须使用外部接收器芯片。
处理器运行自动检测算法来确定数据流类型,如Dolby、DTS或非编码PCM音频流等。
图6 多声道音频系统框图此算法在后台持续运行。
自动检测流程基于IEC61937非线性PCM编码比特流国际标准。
调用主算法,并将主音频解码器算法所需的各种参数正确传递给函数。
解码后的音频数据被复制到已分配的输出缓冲器中。
串行端口用于将此解码音频数据以I2S格式驱动至DAC,然后将模拟信号馈送至功率放大器,最后再馈送至扬声器。
音频算法音频算法可以分为两类:主解码器算法和后处理算法。
主解码器算法包括Dolby、DTS 5.1、DTS 6.1、DTS96/24、AAC等。
后解码或后处理算法包括Dolby ProLogic、Dolby ProLogic II、DTS Neo6、Surround EX、Dolby耳机、Dolby虚拟扬声器、THX、原始环绕声、Dynamic EQ、Delay等。
必须使用高性能信号处理器,而且能执行房间均衡等额外功能。
音频放大器放大器可以分为如下几类:A类、B类、AB类和C类。