基于DSP控制的音频解码系统设计
2014-07-13李孺昕
王 幸,王 林,李孺昕
(中国测试技术研究院 电子研究所,四川 成都 610021)
基于DSP控制的音频解码系统设计
王 幸,王 林,李孺昕
(中国测试技术研究院 电子研究所,四川 成都 610021)
文中以TI公司的C5000系列通用型DSP芯片TMS320VC5509为核心,完成音频解码系统硬件平台的设计与实现,并研究MP3的解码算法以及其在该硬件平台上的实现。整个系统的硬件平台包括DSP核心模块、FLASH存储器、音频CODEC, 电源等模块。该系统通过USB接口与计算机通信,下载MP3格式的数据流,并将其存储在Flash中,然后由DSP读取Flash中的MP3数据流,完成解码工作,并通过CODEC播放。同时可以对DSP进行其他解码算法的软件编程,实现多种数据流格式的音频编、解码,具有很强的软件升级灵活性,还解决了低功耗的问题。
MPEG;音频解码;DSP;低功耗
MPEG(活动图像专家小组)是ISO/IEC组织的一个工作小组,负责制订有关活动图像、音频及其组合的压缩和解压缩处理等方面的技术标准。MPEG-1 Layer3(即MP3)是MPEG-1国际音频标准(ISO/IEC 11172)中的第三层编、解码算法,它具有压缩比高、声音还原质量好、算法复杂度适中等优点,采用这种标准制作的MP3格式的音乐在数字音频的存储、互联网上的多媒体音频传输等领域得到了广泛应用。目前基于专用芯片的音频编解码方案软件升级灵活性不高,基于DSP的音频编解码方案又多基于C54x平台,而解决低功耗的技术方法是值得研究的问题。
基于上述背景,文中提出了基于DSP的音频解码系统的研究与实现这一解决方案。本课题的主要目的是:以TI公司的C5000系列通用型DSP芯片TMS320VC5509为核心,完成系统硬件平台的设计以及MP3的解码算法在该硬件平台上的实现。整个系统的硬件平台包括DSP核心模块、FLASH存储器、音频CODEC, 电源等模块。该系统通过USB接口与计算机通信,下载MP3格式的数据流,并将其存储在Flash中,然后由DSP读取Flash中的MP3数据流,完成解码工作,并通过CODEC播放。同时可以对DSP进行其他解码算法的软件编程,实现多种数据流格式的音频解码,具有很强的软件升级灵活性,还解决了低功耗的问题。
1 硬件平台的总体设计
目前业界对MP3解码系统的解决办法有两个方案:一是使用将解码算法固化到集成电路中去的专用芯片,这些芯片将一些片外资源集成到芯片内部,可以简化MP3解码系统实现所需的片外电路,便于整个系统的开发,但由于其算法固化到芯片内部,不能通过软件升级,而且此类芯片普遍价格偏高。另外一个方案,就是使用通用的DSP来实现MP3解码系统,这种解决方案对设计人员的软硬件技能提出了很高的要求,不过其有很好的升级特性,而且可以更方便的改进和优化解码算法,从而得到更好的音质回放效果,并且和第一种解决方案一样,其功耗比较低。
综合各方面的优劣条件,我们选择了第二种解决方案,即基于通用DSP芯片来实现整个解码系统的硬件平台。其硬件系统实现框图如图1所示。
图1 MP3音频解码系统的实现框图Fig. 1 Block diagram of the realization of MP3 audio decoding system
这个框图大致的画出了解码系统的基本组成部分。在图中,我们采用了512 k的串行EEPROM芯片用于实现bootloader,用CF卡存储MP3音乐及解码程序。核心的处理器采用了TI公司的TMS320VC5509 DSP芯片,考虑到其内部的RAM容量有256 kB,而我们的程序大小为80 kB,因此我们在此设计中没有外扩RAM。
整个硬件平台的工作流程如下:首先通过USB接口,从PC机中复制MP3音乐,拷贝在大容量CF卡中。然后DSP读取CF卡的MP3数据进行解码,还原出PCM信号,再通过DSP的多通道带缓冲串口(McBSP)传送给音频CODEC芯片,最终播放出MP3音乐。
1.1 硬件平台的具体实现
1.1.1 核心DSP芯片介绍
本方案采用的TMS320C55x系列是TI公司推出的继C5000系列C5x、C54x后的新型产品。它采用了增强型的哈佛结构,具有专门的硬件乘法器,使用流水线操作,提供特殊的DSP指令,可用来快速地实现各种数字信号处理算法。为方便实际中的应用,C55X系列DSP具有各自不同的硬件结构,如在片存储器和片上外设等,可根据性价比和不同的应用场合灵活选用。由于采用了高度并行硬件结构、模块化设计,使得C55X系列DSP具有功耗低、速度快等优点。主要用在音频压缩、无线通讯等领域。
与5000系列其他芯片相比,TMS320VC5509以其独有高性能低功耗和低价格特性,使得一推出就受到业内用户的欢迎。
1.1.2 与计算机的接口设计
与计算机的接口设计使用的是当今十分流行的USB接口,实现从计算机下载数据,5509自带的USB接口完全符合USB2.0全速接口标准,可与任何外部微控制器实现高速并行接口(12M比特/秒)。
1.1.3 存储器设计
CF卡被用来存储音乐和数据文件,它通过DSP的外部存储器接口(EMIF)与DSP相连,它工作在True-IDE模式和3.3 V的电压下。我们可以根据系统需要选择任意容量的CF卡。选用Microchip Technology 公司的64 kB的EEPROM 24LC512存放的是启动程序,每当上电时,即将CF卡中的程序调入内存运行。
图2 USB接口连接图Fig. 2 Connection diagram of USB interface
图3 DSP与存储器连接图Fig. 3 Connection diagram of DSP and ROM
24LC512与DSP的接口采用I2C总线通信。I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100 kbps。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如音量等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。其时序图如图4所示。
1.1.4 音频解码接口设计
音频CODEC芯片采用的是TI公司的TLV320AIC23。它的主要作用是将DSP解码后的PCM音频流通过D/A变换,转换成模拟声音信号进行播放。
TLV320AIC23 DSP Codec是德州仪器公司2001年推出的高性能单片立体声编码解码器,数据转换字长16/20/24/32可选,工作电压与TMS320C55xDSP的核心和I/O电压兼容,可实现与C55x DSP串行口的无缝连接,功耗很低,带有的I2C和SPI总线兼容控制接口能使AIC23编码译码器与其他微处理器共同使用。
其主要特点如下:
1)高性能立体声编码解码器:支持8~96 kHz采样频率,90DB ADC, 100DB DAC转换信噪比,1.42~3.6 V内核数字供电电压,2.7~3.6 V模拟供电电压均与C55x DSP兼容。
图4 I2C时序图Fig. 4 Sequence chart of I2C
2)可编程多种串行口数据传输标准:支持I2C和SPI串口数据传输模式,均可以与C55x DSP的McBSP口兼容。
3)内置放大的立体声输入输出(增益可调节),耳机放大模块输出((30 mW) 。
4)低功耗电源管理:录音重放模式下19 mW,备用状态小于150 uW,停止状态小于15 uW。
音频CODEC与DSP的硬件接口电路如图5所示。
图5 DSP与AIC23的接口电路图Fig. 5 Circuit diagram of the connection between DSP and AIC23
由上图我们可以看出,DSP VC5509与AIC23的接口可分成两部分:控制接口部分(McBSPl)和音频数据接口部分(McBSP0)。其中DSP的McBSP 1口完成AIC23的控制部分功能,此控制口配置为常用的SPI接口模式;而McBSP0口完成音频数据的传输功能,此数据口配置为DSP格式。
AIC23的数字音频接口支持4种数据格式:Right-Justified;Left-Justified;I2S格式;DSP格式。控制接口的SPI模式时序以及数字音频接口的DSP模式时序分别如图6和图7所示。
1.1.5 电源模块设计
在电源模块中,我们选用了TI公司的三款芯片,分别是TPS61103, TPS60500 ,TPS73601。其中TPS61103用于将电池输入的1到3 V电压转换为固定的3.3 V,它为DSP的I/O及其他外设供电。TPS60500用于将3.3 V转换为DSP需要的内核电压1.6 V。此系统当通过USB接口与计算机相连时,就可以通过适当的跳线设置不用接电池,TPS73601用于将USB接口提供的5 V电压转换为3.3 V。
图6 DSP与AIC23控制口配置SPI时序图Fig. 6 Sequence chart of SPI configuration of the control of DSP and AIC23
图7 DSP与AIC23数字口配置DSP Mode时序图Fig. 7 Sequence chart of configuration of the control of DSP and AIC23 digital interface
图8 电源模块电路图Fig. 8 Circuit diagram of the power-supply module
2 软件研究及算法实现
2.1 文件系统的实现
由于实现了FAT32文件系统,因此当此系统通过USB连接到PC机时,在Windows操作系统下将看到它作为一个独立的存储器出现,可是通过复制粘贴操作将音乐文件拷贝到CF卡上。
2.2 MP3解码算法的实现
本方案进行软件的开发平台是TI公司的C5000系列的集成开发环境Code Composer Studio 2.0。考虑到MP3解码软件的复杂度和可读性,整个解码软件采用DSP的C语言编写。DSP的C语言具有与标准ANSI C语言相同的语法特点,同时还和DSP硬件相结合,能够直接控制DSP的在片或外围设备资源。随着数字信号处理技术的不断发展,DSP的C语言编译器的编译效率也越来越高,5000系列的C语言编译器效率能达到60%-70%, C6x系列的编译器效率高达80%。因此采用C语言来对DSP进行编程是必然的趋势。
本方案在LIBMAD的基础上对软件进行设计。MAD(LIBMAD)是一个开源的高精度 MPEG 音频解码库,支持MPEG-1(Layer I, Layer II 和 LayerIII)。LIBMAD 提供 24-bit的 PCM 输出,完全是定点计算,非常适合在没有浮点支持的平台上使用。使用LIBMAD 提供的一系列 API,就可以非常简单地实现MP3 数据解码工作。在LIBMAD 的源代码文件目录下的 mad.h 文件中,可以看到绝大部分该库的数据结构和API 等。
表1 libmad中的主要数据结构Tab.1 The main data structure of libmad
MP3解码算法虽然复杂,但是整个解码过程分成各个模块进行,各个模块之间相对比较独立。在整个解码软件的设计过程中,对各个模块采用子函数,各个模块之间的联系就表现为函数的参数传递。整个解码软件由一个主函数控制,调度各个模块的有序运行。
解码软件的程序流程如图9所示。从图中我们可以看到对输入音频流解码先经过帧同步,读入同步头的信息,得到该MP3码流的采样频率、码流速率等参数,并记录现在所解码的MP3码流的帧数。然后获得粒度信息、主信息及定标因子,根据同步头中所得的MP3码流的压缩类型来读取信息,获得对应于各自颗粒中的各自通道的相关参数。
然后对一帧中的两个颗粒进行解码,首先是从比特流中获取每个颗粒对应的定标因子,并对每个颗粒下的数据进行哈夫曼解码,这个哈夫曼解码过程需要32个哈夫曼码表之一来进行解码,可以根据边带信息中含有每个颗粒选择码表的信息来进行选择。经过哈夫曼解码的数据,接下来要经过反量化取样,在这步中,各个子带的数据根据所使用窗的类型,利用在边带信息中获得的参数反量化。接下来就是重排序和立体声处理模块,在这个模块中根据MP3码流所采用的压缩类型来进行相应的处理。
这样当处理完一个颗粒中所有通道的数据后,就可以把这一颗粒已解码好的数据输出到输出缓冲区中,当把下一颗粒的数据解码完毕并输出后,这样一帧数据就解码完成。这帧数据就可以输入到D/A部分进行播放,并将输出缓冲区清空,等待下一帧的解码数据的输入。解码程序一直到在比特流中再也找不到一帧的同步头时,就完成了这一音频流的解码。
下图为解码流程图中几个关键模块。
图9 解码软件流程图Fig. 9 Flow chart of the decoding software
3 结束语
MP3解码算法比较复杂,并且市面上大部分便携式MP3播放器都采用的是硬件解码器,也就是采用专门的音频解码芯片来实现的,然而随着数字信号处理技术的飞速发展,使得采用通用数字信号处理器(DSP)实现这一解码算法成为可能,而且在性价比、低功耗和软件升级灵活性上都优于采用硬件解码方案的mp3播放器,成为未来MP3市场的发展方向。
[1]蒋学鑫.MP3实时编解码系统的研究与开发[D].成都:电子科技大学,2007.
[2]胡智华.基于DSP的音频编解码系统的设计与算法研究[D].武汉:武汉理工大学,2006.
[3]计丹.基于定点DSP的MP3解码系统的设计与实现[D].武汉:华中师范大学,2002.
[4]全浩军,郭继昌,张涛.通用音频解码器验证系统设计与实现[J].电子技术应用,2011(37):92,94+98.
QUAN Hao-jun,GUO Ji-chang,ZHANGTao.Design and implementation of universal verification system for audio decoder[J].The application of electronic technology,2011(37):92,94+98.
[5]高云红,刘志群.基于STM32的多功能音频播放器的设计[J].福建电脑,2012,28(12):108-110.
GAO Yun-hong,LIU Zhi-qun.Multi-function audio player based on the design of STM32[J].Fujian Computer,2012,28(12):108-110.
[6]田学民,张晓境.MP3音频解码解码优化算法[J].电子设计工程,2013(4):146-148.
TIAN Xue-min,ZHANG Xiao-jing.MP3 audio decoding optimization algorithm[J]. Electronic Design Engineering,2013(4):146-148.
[7]Texas Intrument TMS320C55x Code Composer User's Guide[EB/OL].(2004)http://www.ti.com.
[8]Texas Intrument TMS320C55x C Source Debugger User's Guide[EB/OL].(2004)http://www.ti.com.
Design of audio decoding system based on the control of DSP
WANG Xing, WANG Lin,LI Ru-xin
(Electronic Research Institute,National Institute of Measurement and Testing Technology,Chengdu610021,China)
This article has completed the design and realization of the audio decoding system's hardware plane mainly referring to the all-purpose DSP chip of TI Company's C5000 series-TMS320VC5509,researching on MP3's encodingdecoding algorithm and the DSP realization on its hardware plane. The whole system's plane includes minimum system of DSP, FLASH storage, audio CODEC and power, etc. The system downloads the data stream of MP3 format through the communication between USB interface and PC, stores them in FLASH and then reads the MP3 data stream in Flash by DSP, finishes decoding and plays with CODEC.Moreover, the system can also be programmed for other encoding-decoding algorithms for DSP, realizes the audio encoding-decoding for various format of data stream and has a very good flexibility for updating soft, and at the same time solves the problem of lower power consumption.
MPEG; audio decoding; DSP; low power
TN912.16
A
1674-6236(2014)07-0169-05
2013-08-12稿件编号201308081
王 幸(1983—),男,河北怀来人,硕士,助理工程师。研究方向:计量与测试技术。