资源描述
摘 要DSP芯片,也称数字信号处理器,是一种针对数字信号处理而特别设计的微处理器。随着超大规模集成电路技术上取得的突破进展,集成化的DPS数字信号处理器具有体积小、功耗低和运算速度快等诸多优点,因此非常适用于语音信号的压缩处理。目前的DPS芯片以其强大的数据处理功能而在通信和其他信号处理领域得到广泛注意,并已成为开发应用的热点技术。- 0 - / 39近年来,随着多媒体信息技术和网络技术的高速发展,数字语音压缩技术的应用领域越来越广泛,目的是在保证语音一定质量的前提下尽可能降低其编码比特率,便于在有限的传输带宽让出更多的信道来传送图像、文档、计算机文件和其他数据流。为此,国际电信联盟(ITU)推出了G.711标准,即PCM编码调制。具有语音质量高、低延时和稳定性好的优点,可用于数字语音通信领域,具有很高的研究价值。本文首先简要的介绍了语音压缩编码算法的发展进程,以与发展趋势。在着重分析和研究了G.711标准的算法原理的基础上,详细说明了基于高性能DSP(TMS320F2812)的语音压缩编解码系统的实现方法,并针对算法的实时实现出现的运算量大的问题。全文分为四章,第一章概述语音压缩编解码的发展进程、趋势以与课题的主要研究容与意义。第二章分析了语音信号编、解码原理与G.711标准的算法原理和论述了TMS320F2812软、硬件的开发和设计。第三章主要对结果进行讨论与验证。第四章详细的对全文进行了总结。关键词:语音压缩编码,G.711, TMS320F2812。AbstractDSP Processor is designed for real-time digital signal Process.With the great Progresses and a series of break-through in VLSI technologies,integrated DSPs process out soon after. Integrated DSPs Possess many advantages,such as compactness,low Power cost,and high working speed and so on which are mostly suitable in speech signal compressing. Present DSPs are getting more and more attentions in the information field,due to its Powerful signal Processing ability,becoming a hot-point technique in communication and other relating signal nrocessing areas.With the rapid development of Multimedia communication technology and Internet technology, Application of Digital speech Coding is more widely in recent years. Digital speech Coding can reduce rate of bits ,for the purpose of provided more channels to transfer image、document、computer files and other Data stream, but the operation must assure quality of speech. So ITU introduce G.711, a voice compressing criterion, 64kbps rate speech Coding.The criterion have the advantages of high speech quality、low time delay and good stability,which can be applied in the area of digital speech communication and be worth researching highly. First of all the development course and tendency of Speech Compress Coding has been introduced. On the basis of analysis and research to theory of G.711 criterion arithmetic,realization of the algorithm of speech codings system based on TMS320F2812 is narrated .Due to large operation when arithmetic is run in real-time,several methods of optimized codes was put forward .Loaded optimized codes in TMS320F2812 and simulated,the arithmetics performance was comparedWhole paper is made up of three chapters In the first chapter,summarizes the classification、standard and tendency of Speech coding ; in the second chapter,theories of G.711 criterion arithmetic are analyzed: design of hardware and software speech coding,system based on TMS320f2812;in the third chapter the results of the experiment are analyzed; in the last chapter ,the main conclusions of design are summarized. Keywords: Speech Compress Coding,G.711criterion, TMS320F2812.第一章 引 言1.1语音编码的发展进程与现状语音信号处理的研究工作最早可以追溯到1876年贝尔发明的,该发明首次用声电、电声转换技术实现了远距离的语音传输。1939年Dudley研制成功第一个声码器,从此奠定了语音产生模型的基础,这一工作在语音信号处理领域具有划时代的意义。本世纪30年代以前,语音信号的处理与传输均是以模拟的方式进行。1937年A.H.Reeves提出了脉冲编码调制PCM(Pulse Code Modulation)理论开创了语音数字化通信的历程。数字化语音的传输与存储可靠性、抗干扰、速交换、易等各方面都远胜于模拟语音。从最初的64kbps的标准PCM波形编码器到现在4kbps以下的参量编码的声码器,语音压缩编码在几十年里得到迅速发展。语音压缩编码的发展经历了以下几个阶段:波形编码、参量编码与二者相结合的混合编码。此外还有此基础上发展而来的增强多带激励声码器MBE(IMBE)算法。波形编码是将时间域信号直接变换为数字代码,力图使重建语音波形保持原语音信号的波形形状。波形编码的基本原理是在时间轴上对模拟语音按一定的速率抽样,然后将幅度样本分层量化,并用代码表示。解码是相反过程,将接收的数字序列经解码和滤波后恢复成模拟信号。波形编码具有抗噪性能强、语音质量好等优点,但需要较高的数码率,一般为16kbps 64kbps。如果希望有较高的编码质量,当编码速率在下降时,其合成语音的性能会下降得很快。最近,对于波形编码器提出了一些新技术,例如后滤波器、改进激励程序等,使得语音质量有比较大的提高。参数编码又称为声码器技术,它通过对语音信号进行分析,提取参数来对参数进行编码,在接收端能够用解码后的参数重构语音信号。参数编码主要是从听觉感知的角度注重语音的重现,即让解码语音听起来与输入语音是一样而不是保证其波形一样。这种编码方式一般对数码率的要求要比波形编码低很多,但只能达到合成语音的质量(即自然度、讲话者的可识别性都较差的语音),即使码率提高到与波形编码相当时,语音质量也不如波形编码。应用广泛的线性预测LPC(Linear Predictive Coding)声码器是典型的语音参数编码器。最新的参数编码器有正弦变换编码器、波形插编码器等。在保证语音质量的前提下,进一步降低比特率,仍然是语音编码研究的主要焦点。然而,这是一个很复杂的问题,它受多种因素的限制,例如:语音信号所包含的信息容。但是,作为一个速率低限,临界信息速率应该是人理解信号所需要的最小速率,但这是一个还需要继续深入研究的问题。因为有关语音信号的某些信息,人能够感觉到有变化,而编码器却找不到对应的特征参量。反之,有时语音的波形和特征参量变化很大,而人同样可以理解。要达到理论上50bit/s确语音信息率最低限这个目标,对人脑感知信号的过程,必须有更深入的研究。在中国,语音和语言处理技术的研发略晚于国外。中国科学院声学研究所的俞铁城教授应该说是中国最早涉足这一领域的人之一,他于1977年在物理学报发表了全国第一篇关于语音识别的论文。清华大学语音技术中心紧随其后,语音界老前辈方棣棠教授、吴文虎教授于1979年创立语音技术中心(原名语音实验室),现已有27年的历史。随后,全国各地从事这方面研究的机构越来越多,比较著名的有清华大学电子工程系、中国科学院自动化研究所、中国科技大学、中国社会科学院语言研究所(在语音学研究方面,吴宗济先生的起步更早)、大学、工业大学等等。在这些顶尖的学术机构的带动下,中国的语音和语言处理技术得到很大发展,并逐步在国际上引起注意。1.2语音编码技术语音编码的主要功能就是把语音的采样值编码成少量的比特(帧)。而且,在通信过程产生误码、网络抖动和突发传输时,这种方法必须具有健壮性(Robustness)。在接收端,语音帧先被解码为采样值,然后再转换成语音波形。语音编码的目的,是在给定的编码速率下,使得从解码恢复出的重构语音的质量尽可能高。语音编码主要可分为两种:波形编码和参数编码。波形编码就是根据语音的信号波形导出相应的数字编码形式,令在接收端的解码器能恢复出与输信号波形相一致的原始语音。波形编码的基本思路是忠实地再现语音的时域波形。为了降低比特率,波形编码会充分利用相邻抽样点之间的相关性,对差分信号进行编码。波形编码的方法简单,有较好的合成语音质量。但它的码率高,当码低于32kbps的时候音质明显降低。著名的波形编码标准有G.711(64kbps PCM编码调制)和G.726(16/24/32 kbps ADPCM自适应差分脉冲编码调制)。参数编码的原理和设计思想和波形编码完全不同。它根据对人的发声机理的第一章绪论分析,着眼于构造语音生成模型,该模型以一定的精度模拟发声者的声道,接收端根据该模型还原生成发声者的语音。编码器发送的主要信息是语音生成模型的参数,相当于语音的主要特征,而并非语音的波形幅值。参数编码器可以有效地降低编码比特率,目前小于16kbps的低比特率语音编码都采用参数编码。1.3本论文的主要容 随着信息技术的发展,人们对带宽有限的无限通信、信道价格昂贵的卫星通信和军用通信的需求不断增加,各种与语音应用服务相关的新业务不断涌现,要求语音数据能被灵活处理、存储、转发和传送。为了减少存储量和传输速率,需要对语音信号进行编码压缩,因而对语音编码技术的研究和开发受到越来越多研究人员的重视。如何在有限的频带中得到较高的合成语音质量,并且尽可能地降低语音传输速率,就成为了亟待解决的问题。研究人员对国际电信联盟ITU公布的一系列语音编码标准的算法实现上做了大量工作,尤其对一些性能优良的算法。当前,对G.711标准中算法的研究一直在进行,并且取得了很大的成绩,程序得到了很大的优化。但是这些研究更多的是集中在如何减小整个算法的复杂度方面,完全独立在DSP平台上的实现则相对很少。本文主要讨论G.711标准的编码以与其在基于TMS320F2812实时实现的设计与开发。首先简要的介绍了语音压缩编码算法的发展进程,以与发展趋势,然后着重分析和研究了G.711标准的算法原理与结构,详细说明了基于高性能TMS320F2812的语音压缩编解码的实现方法,并针对算法的实时实现出现的运算量大的问题。全文分为四章,第一章概述语音压缩编解码的发展进程、趋势以与课题的主要研究容与意义。第二章分析了语音信号编、解码原理与G.711和论述了TMS320F2812软、硬件的开发和相关技术。第三章主要介绍对系统进行硬件设计。第四章详细介绍系统的软件设计以与对实验结果进行了总结。第二章 相关技术介绍2.1 G.711编解码原理介绍2.1.1 语音的数字化过程 语音的数字化过程是语音传输的基础,是把模拟的语音信号转化为可控制的数字信号的过程其主要操作是将模拟音频信号每隔一定时间间隔截取一段,并将所截取的信号振幅转换成由一组二进制序列表示的离散序列,即数字音频序列。在这一处理过程中,涉与到对模拟音频信号的采样、量化和编码。 (1)取样过程:模拟音频信号是一个在时间上和幅值上都连续的函数f(f)。取样的过程就是在时间上将函数f(1)离散化的过程。一般的取样是按均匀的时间间隔进行的。由于人耳能听到的声音的频率围大致在20Hz-20kHz,因此声音的质量与音频信号的频谱围以与采样时间间隔有关。表2-1 常用的音频取样频率取样频率(khz)811.051622.0544.148量化精度(bit)8816161616数据率(kb/s)6488.4256352.8705.6768从2-1表中可以看出,取样频率越高,数字化后的音频质量越高,存储量也越大,所以使用哪种取样频率要兼顾语音质量和信道容量。(2)量化过程:是将取样值在幅度上再进行离散化处理的过程。所有的取样值可能出现的围被划分成有限多个小阶距(量化步长)的集合,把凡是落入某个量化阶距的取样值都赋予一样的值,即量化值。通常这个量化值是用二进制来表示的。如果量化阶距是一样的,或者说是量化值的分布是均匀的,称之为均匀量化,否则称为非均匀量化。 (3)编码过程:模拟音频信号经过取样、量化后,就要进行编码,即用二进制数表示每个取样的量化值。如果取样值既采取均匀量化,又采取自然二进制表示,这种编码方法就是脉冲编码调制PCM(Pulse Code Modulation)。PCM是一种最简单、最方便的编码方法。经过编码后的数字信号就是数字音频信号。由于PCM是一种未经过压缩的数字音频信号,因此常常将它作为与其他编码进行比较的一种参考信号。表示取样值的二进制的位数为量化位数,它反映各取样值的精度,如4位能表示取样值的16个等级,8位能反映256个等级,其精度为音频信号最大振幅的11256。量化位数越多,量化值越接近于取样值,其精度越高,但要求的信息存储量越大。取样值存储量可用下式表示:v=fBs8式中,v为取样值存储量(bit/s),伪取样频率(kHz),B为量化位数(bit),s为声道数。2.1.2 G.711语音压缩国际标准 G.711是一种工作在8KHz采样率模式下的脉冲编码调制方案,采样值是八位的,按照奈奎斯特法则规定,采样频率必须由高于被采样信号的最大频率成分的2倍,G.711可以编码的频率围是从0到4KHz。G.711可以有两种编码方案:A律和u律。G.711采用8KHz、8位编码值,占用带宽为64kbps。PCM编码需要经过连续的三步:抽样、量化和编码。抽样取决于信号的振幅随时间的变化频率,由于电弧网络的带宽是4KHz的,为了精确地表现语音信号,必须至少采用8KHz的抽样率来取样。量化的任务是由模拟转换成数字的过程,但会引入量化误差,应尽量采用较小的量化间隔来减小这一误差。最后,编码完成的数字化的最后工作,在编码的过程中,应保存信息的有效位,而且算法应利于快速计算,无论是编码还是解码。其中,压扩运算还可以采用两种标准:A律和u律。u律师美国和日本的公认标准,而A律是欧洲采用的标准。我用的是欧洲标准。 一般的,用程序进行A律编码解码有两种方法:一种是直接计算法,这种方法程序代码比较多,时间较慢,但可以节省宝贵的存空间;另一种是查表法,这种方法程序量小,运算速度快,但占用较多的存以存储查找表。A律压扩标准:A律编码的数据对象是12位精度的,它保证了压缩后的数据有5位的精度并存储到一个字节中,其方程如下: F(x)=sgn(x)A|x|/(1+lnA) 0|x|1/A =sgn(x)(1+lnA|x|)/(1+lnA) 1/A|x|1 其中,A为压缩参数取值87.6,x为规格化的12位(二进制)整数。下面是用折线近似逼近的压缩。图2-1 方程曲线示意图表2-2 A律压缩编码图示A律解码方程为:(y)=sgn(y)|y|1+ln(A)/A 0|y|1/(1+ln(A) =sgn(y)/A+Aln(A) 1/(1+ln(A)|y|1表2-3 A律解码示意图2.2 TMS320F2812介绍2.2.1 TMS320F2812的结构与原理TMS320C2000系列是美国TI公司推出的最佳测控应用的定点DSP芯片,其主流产品分为四个系列:C20x、C24x、C27x和C28x。C28x系列的主要芯片种为TMS320F2810和TMS320F2812。两种芯片的差别是:F2812含128K*16位的片Flash存储器。有外部存储器接口,而F2810仅有64K*16位的片Flash存储器,且无外部存储器接口。TMS320F2812的主要特点: (1)采用高性能静态CMOS制造工艺:主频达150MHZ(时钟周期6.67ns),低功耗(150MHz核电压1.9V,135MHz以下核电压1.8V,I/O口电压3.3V),Flash 编程电压为3.3V (2)支持JTAG 边沿扫描 (3)高性能32位CPU:1616和3232乘积累加操作,1616双乘积累加器,程序和数据空间分开寻址(哈佛总线结构),快速中断响应和处理,统一寄存器编程模式,可达4M的线性程序地址,可达4M的线性数据地址,高效的代码转换能力(支持C/C+和汇编语言) (4)片上存储器:有多达128K16的FLASH存储器或有多达128K16的ROM (5)外部存储器接口:有多达1MB的寻址空间,三个独立的片选端 (6)时钟与系统控制:支持动态的改变锁相环(PLL)的频率,片上振荡器 (7)三个外部中断 (8)外部中断扩展(PIE)模块,支持45个外部中断 (9)三个32位的CPU定时器 (10)串口外围设备:串行外部设备接口(SPI),两个串行通信接口(SCIs) (11)12位的ADC,16通道:2个8通道的输入多路选择器,两个采样保持器,单/连续通道转换,快速转换率80ns/12.5MSPS(兆采样每秒),可用两个事件管理器顺序触发8对模数转换 (12)多达56个独立的可编程、多用途通用输入/输出(GPIO)引脚图2-2 C28x功能框图2.2.2 TMS320F2812的存储系统原理图2-3 TMS320F2812的存储器配置与地址映射C28x系列DSP的片存储器包括SARAM、Flash、OTP、BootROM、CSM和中断向量存储器,每种存储器根据其各自的特点分别适合存储不同的容,这里只介绍程序中使用的SARAM、中断向量和外设帧PF部分: 1.片SARAM:单口随机读/写存储器,单个机器周期只能被访问一次。C28x片共有18K16位的SARAM,分别是:(1)0和M1:每块的大小为1K16位,其中M0映射至地址000000H0003FFH,M1映射至地址000400H0007FFH;M0和M1不受CSM模块保护。(2)L0和L1:每块的大小为4K16位,其中L0映射至地址008000H008FFFH,L1映射至地址009000h009FFFh;L0和L1受到代码安全模块CSM的保护。(3)H0:大小为8K16位,映射至地址3F8000H3F9FFFH,H0不受CSM模块保护。 2. 中断向量:图2-3中指出了M0向量、PIE向量、BootROM向量与XINTF向量使能时的条件与各自的映射空间。通过第五章的学习可以知道,当ST1的位VMAP=0时,CPU的中断向量映射至程序存储器0x0000000x00003F,共计64个字;当VMAP=1时,CPU的中断向量映射至程序存储器0x3FFFC00x3FFFFF。3. 外设帧PF:片数据空间映射了3个外设帧 PF0、PF1与PF2,专门作为外设寄存器的映射空间,即除了CPU寄存器之外的所有寄存器均映射到此空间,相应的映射到PF0、PF1或PF2空间。PF0空间大小为2K16位,地址围为0x000800h0x000FFF,直接映射至CPU的存储器总线,可提供16/32位的访问操作;PF1空间大小为4K16位,地址围为0x0060000x006FFF,直接映射至32位外设总线;PF2空间大小为4K16位,地址围为0x0070000x007FFF,直接映射至16位外设总线。PF0、PF1与PF2各寄存器的映射分布情况分别见表2-4、表2-5和表2-6。表2-4 PF0各寄存器的映射分布情况名称地址围大小(16)访问类型器件仿真寄存器0x0008800x0009FF384EALLOW保护保留0x000A000x000B00128Flash寄存器0x000A800x000ADF96EALLOW保护、CSM保护代码安全模块0x000AE00x000AEF16EALLOW保护保留0x000AF00x000B1F48XINTF寄存器0x000B200x000B3F32非EALLOW保护保留0x000B400x000BFF192CPU定时器寄存器0x000C000x000C3F64非EALLOW保护保留0x000C400x000CDF160PIE寄存器0x000CE00x000CFF32非EALLOW保护PIE向量表0x000D000x000DFF256EALLOW保护保留0x000E000x000FFF512表2-5 PF1各寄存器的映射分布情况名称地址围大小(16)访问类型eCAN寄存器0x0060000x0060FF256(12832)部分eCAN控制寄存器为EALLOW保护eCAN寄存器0x0061000x0061FF256(12832)非EALLOW保护保留0x0062000x006FFF3584表2-6 PF2各寄存器的映射分布情况名称地址围大小(16)访问类型保留0x0070000x00700F16系统控制寄存器0x0070100x00702F32EALLOW保护保留0x0070300x00703F16SPI-A寄存器0x0070400x00704F16非EALLOW保护SCI-A寄存器0x0070500x00705F16非EALLOW保护保留0x0070600x00706F16外部中断寄存器0x0070700x00707F16非EALLOW保护保留0x0070800x0070BF64GPIO多路选择寄存器0x0070C00x0070DF32EALLOW保护GPIO数据寄存器0x0070E00x0070FF32非EALLOW保护ADC寄存器0x0071000x00711F32非EALLOW保护保留0x0071200x0073FF736EV-A寄存器0x0074000x00743F64非EALLOW保护保留0x0074400x0074FF192EV-B寄存器0x0075000x00753F64非EALLOW保护保留0x0075400x00774F528SCI-B寄存器0x0077500x00775F16非EALLOW保护保留0x0077600x0077FF160McBSP寄存器0x0078000x00783F64非EALLOW保护保留0x0078400x007FFF19842.2.3 TMS320F2812的中断系统原理中断是由软件或硬件驱动的信号,该信号可以使C28x暂停目前执行的主程序,转而去执行一个中断服务子程序。中断申请通常由外围设备和硬件产生,以向C28x传送数据或从C28x接收数据,如A/D和D/A转换器或其它处理器。中断也可用作标识特殊事件已经发生的信号,如一个定时器已停止计数。F2812的中断可由硬件(中断引脚、外部设备、片外设)或软件(INTR、IFR指令或TRAP指令)触发。由于F2812的中断源多、中断机制复杂,在实际的应用过程中如果中断处理不好,中断程序的运行会产生混乱,而使得系统崩溃。本文结合应用实践,详细分析了F2812的中断系统和中断处理过程.图2-4 C28x的中断源和复用情况图2-4列出了C28x的中断源和复用情况,其中RESET和NMI是非屏蔽中断;XINT1和XINT2为外部中断;定时器1和定时器2预留给操作系统使用,其中断分配给INT13和INT14;也可以选择NMI中断同定时器1复用INT13,其余12个可屏蔽中断直接连接在外设中断扩展模块PIE上,以供外部中断和DSP的外设使用。C28x系列DSP集成了丰富的片上外设,每个外设都会产生一个或多个外设级中断,为了支持这些中断,CPU除了支持16个CPU级的中断外,还使用中断扩展控制器来对外设中断进行仲裁。外设中断扩展模块PIE(The peripheral interrupt expansion block)使得多个中断源复用几个中断输入信号。PIE模块共支持96个不同的中断,这些中断分成12个组,每组又有8个中断,每个组的中断都对应CPU核的12条中断线(INT1INT12)的一条上。96个中断中的每个中断都有自己的中断向量并存放在RAM中,构成了整个系统的中断向量表,可以根据需要对中断向量表进行调整。图2-5 外设中断扩展模块PIE表2-7 PIE中断和CPU中断的对应关系INTx.8INTx.7INTx.6INTx.5INTx.4INTx.3INTx.2INTx.1INT1WAKEINTTINT0ADCINTXINT2XINT1保留PDPINTBPDPINTINT2保留T1OFINTT1UFINTT1CINTT1PINTCMP3INTCMP2INTCMP1INTINT3保留CAPINT3CAPINT2CAPINT1T2OFINTT2UFINTT2CINTT2PINTINT4保留T3PFINTT3UFINTT3CINTT3PINTCMP6INTCMP5INTCMP4INTINT5保留CAPINT6CAPINT5CAPINT4T4OFINTT4UFINTT4CINTT4PINTINT6保留保留MXINTMRINT保留保留SPITXINTASPIRXINTAINT7保留保留保留保留保留保留保留保留INT8保留保留保留保留保留保留保留保留INT9保留保留ECAN1INTECAN0INTSCITXINTBSCIRXINTBSCITXINTASCIRXINTAINT10保留保留保留保留保留保留保留保留INT11保留保留保留保留保留保留保留保留INT 12保留保留保留保留保留保留保留保留由上表知道,MCBSP接口使用INT6的INT6.5和INT6.6中断。2.2.4 MCBSP接口介绍MCBSP的特性:MCBSP是建立在TMS320C2X ,C20X, C5X以与C54X设备上的标准串行口。MCBSP有以下特性: (1)全双工通信方式。(2)双倍缓冲的传送和三倍缓冲的接收,并适用于连续的数据流。(3)对接收和传送采用独立的时钟和帧。(4)128个通道用于传送和接收。(5)多通道选择模块允许和中止每一个通道的传输。(6)用两个16级、32位的FIFO代替DMA(直接存储器存取)。(7)支持A-BIS模式。(8)接口可直接连接于工业标准的多媒体数字信号编解码器、模拟接口芯片以与其他串行连接的A/D和D/A转换器。(9)可产生外部时钟信号和帧的同步信号。(10)采样率产生器可对部采样和帧的同步信号控制进行编程。(11)部时钟和帧的产生可编程。(12)帧同步和数字钟的极性可编程。(13)支持SPI设备。(14)支持部分TI/EI。(15)多种数据位的大小可选择:8、12、16、20、24和32位。(16)选择首先发送/接收高八位或者低八位。图2-6 MCBSP部功能框图C28X的MCBSP模块从属于TI系列的MCBSP。虽然它支持绝大部分MCBSP的应用,但也有一些实现上的限制:不支持CLKS;CLKR/CLKX引脚作为外部移位时钟。表2-8 MCBSP信号总结信号名称 类型 复位状态 说明外部信号外部信号名称CLKXI/O/Z输出发送时钟CLKRI/O/Z输出接收时钟DRI输出接收串行数据DXO/Z高阻发送串行数据FSRI/O/Z输出接收帧同步FSXI/O/Z输出发送帧同步CPU中断信号CPU或FIFO接收中断MRINTCPU或FIFO发送中断MXINRFIFO事件 REVTFIFO接收同步事件 XVETFIFO发送同步事件注:I=输入,O=输出,Z=高阻MCBSP包括数据流路径和控制数据,它们通过7条线连接到外部设备。MCBSP与其接口设备进行数据通信时,通过传输引脚(DX)来发送,通过接收引脚(DR)来接收。时钟形式和帧同步的控制信息通过以下引脚来传递:CLKX(发送时钟)、CLKR(接收时钟)、FSX(发送时钟)、FSR(接收帧同步)。2.3 语音编解码芯片TLV320AIC232.3.1 TLV320AIC23芯片简介TLV320AIC23是TI公司推出的一款高性能立体声音频编解码器,置耳机输出放大器,支持mic和line in二选一的输入方式。输入和输出都具有可编程的增益调节功能。TLV320AIC23的模数转换器(ADC)和数,模转换器(DAC)集成在芯片部采用先进的-过采样技术可以在8kHz至96kHz的采样率下提供16bit、20bit、24bit和32bit的采样数据。ADC和DAC的输出信噪比分别可达90dB和100dB。同时。TLV320AIC23还具有很低的功耗(回放模式为23mW。节电模式为15w)。上述优点使得TLV320AIC23成为一款非常理想的音频编解码器,与TI的DSP系列相配合更是相得益彰。(1)TLV320AIC23详细指标:高品质的立体声多媒体数字语音编解码器,在ADC采用48KHZ采样率时噪音90DB,在DAC采用48KHZ采样率时噪音100DB,1.42V-3.6V核心数字电压:兼容TIF28X DSP核电压,2.7V-3.2V缓冲器和模拟:兼容TI28X DSP核电压,支持8KHZ-96KHZ的采样频率,软件控制通过TIMCBSP接口,音频数据输入输出通过TIMCBSP接口 。(2)TLV320AIC23的管脚介绍:芯片TLV320AIC23一共有28个管脚。表2-9管脚的名称与功能在下表: 引脚功能AGND模拟地AVDD模拟电源供应输入。电压水平是额定3.3VBCLKI2S串行位时钟。在音频主模式,AIC23产生信号并将其发送给DSP芯片。在音频从模式,该信号有DSP芯片产生。BVDD缓冲器供应输入。电压围从2.73.6VCLKOUT时钟输出。这是XTI输入的缓冲版,可使用为XTI频率的1倍或1/2倍,在采速率控制寄存器的第7位控制频率的选择。CS控制输入端口锁存/地址选择。对于SPI控制模式,该输入作为数据锁存控制。对于两线控制模式,该输入定义了器件地址位的第7位DIN对于sigma-delta立体声DAC,I2C格式的串行数据输入DGND数字地DOUT从sigma-delta立体声 DAC,I2C格式的串行数据输出DVDD数字电源输入。电压围从1.43.6VHPGND模拟扬声器放大器接地HPVDD模拟扬声器放大器电源。电源输入围正常是3.3VLHPOUT左部立体声混频放扬声器输出,额定0DB输入水平是1V(方均根值),在1DB阶段提供-736DB的增益LLINEIN左立体声线输入频道。额定0dB输入水平是1V,在1.5DB阶段提供从-34.512DB的增益LOUT左立体声混音频道线输出,额定输出水平是1VLRCINI2S DAC字时钟信号。在音频主模式,AIC23产生帧信号,并将其发送到DSP芯片。在音频从模式,该信号与DSP芯片产生LRCOUTI2S ADC字时钟信号在音频主模式,AIC23产生帧信号,并将其发送到DSP芯片。在音频从模式,该信号与DSP芯片产生。MICBIAS对驻极体传声器偏差调整缓冲的低噪声电压。电压水平是额定AVDD的3/4MICIN对使用驻极体传声器偏差调整缓冲的放大器的输入。如果没有外部阻抗,默认的增益是5MODE串行接口模式。0为I2C模式1为SPI模式NC空脚RLINEIN右立体声线输入频道。额定0dB输入水平是1V,在1.5DB阶段提供从-34.512DB的增益SCLK控制口串行数据时钟对于SPI和两线控制模式,这是串行时钟输入SDIN控制口串行数据输入。对SPI和两线控制模式,这是串行数据输入,也用作复位后的控制协议选择VMID解耦电压输入。为进行噪声滤波,10uF、0.1UF的电容应并行连接到这一引脚XTI/MCLKXTO晶振或者外部时钟的输入。用作AIC23部时钟的导出晶振输出端,连接外部晶体。若XTI连接外部时钟源,则此脚不用(3) 芯片TLV320AIC23的功能结构芯片TLV320AIC23有一个大多数音频解码器所不具有的模拟旁路设置,它能够将模拟信号直接送出去回放,而不经过A/D转换,这对于系统调试非常有用。实际最终的音频输出时模拟音频、经D/A转换的音频和传声器输入3个的叠加,当然也可以通过软件编程实现对音频输出的控制。为了使音频解码器能够正常工作并产生预期的音频效果,必须对相应的寄存器配置。AIC23提供了11个映像寄存器,见下表:表2-10 AIC23配置寄存器地址寄存器地址寄存器0000000左通道音频输入音量控制寄存器0000110电源节省控制寄存器0000001右通道音频输入音量控制寄存器0000111数字音频格式寄存器0000010左通道扬声器音量控制寄存器0001000采样速率控制寄存器0000011右通道扬声器音量控制寄存器0001001数字接口激活寄存器0000100模拟音频通道控制寄存器0001111复位寄存器0000101数字音频通道控制寄存器正是通过表2-10中的11个寄存器芯片TLV320AIC23可以方便的设置具体的音频工作模式和放大倍数等参数,从而更好的为用户所使用。2.3.2 芯片TLV320AIC23的使用该芯片的典型应用是应用在音频模块中。它是使用DSP芯片的MCBSP0通道向AIC23发送控制信息,采用SPI方式。DSP芯片引脚TX1发送数据,FSX1作片选连接AIC23的CS,而CLKX1作为时钟信号连接SCLK。利用DSP芯片的MCBSP1通道作为双向数据传输通道,模拟语音信号经过音频解码器AIC23的处理以数字信号的形式输出,并由MCBSP1传送至DSP芯片。相反,DSP芯片的数字信号可经过MCBSP1传送至AIC23芯片,经过数模转换以语音信号的形式输出。音频处理模块的主要功能有:(1)完成音频信号的初步处理,并与DSP芯片进行数据通信。(2)完成线输入、传声器输入。(3)完成线输出、传声器输出。2.4 DSP程序设计基础2.4.1 集成开发环境CCS介绍CCS(Code Composer Studio)是一个完整的集成开发环境,也是目前使用使用最为广泛的DSP开发软件之一。最早由GO DSP公司为TI的VC6000系列开发,后来TI收购GO DSP,并将CCS扩展到其它系列。所有的TI DSP都可以用CCS开发。但目前只有VC5000和VC6000的CCS中提供DSP/BIOS功能。因为,VC2000系列的CCS中没有DSP/BIOS功能,也称为CC(Code Composer),以示区别。CCS环境特点:集成可视化代码编辑界面,可以方便地直接编写 C、汇编、.h文件、.cmd文件等。集成代码生成工具,包括汇编器、优化的 C编译器和连接器等。具有完整的基本调试工具,可以载入执行文件(.out),查看寄存器窗口、存储器窗口和变量窗口、反汇编窗口等,支持在 C 源代码级进行调试。支持多片 DSP 联合调试。断点工具,支持硬件断点、数据空间读/写断点、条件断点等。探针工具,用于进行算法仿真,数据监视等。剖析工具,用于评估代码执行的时间。数据图形显示工具,可绘制时域/频域波形、眼图、星座图等,并可以自动刷新。提供 GEI 工具,用户可以根据需要编写自己的控制面板/菜单,从而方便直观地修改变量,配置参数。图2-7 CCS窗口TI的DSP开发环境和工具主要包括以下3个方面:(1)代码生成工具(编译器、器、优化C编译器、 转换工具等)(2)系统集成与调试环境与工具(3)实时操作系统2.4.2 基于C语言的DSP程序的基本构成一个最小的C应用程序项目至少包含如下几个文件:(1) 有且必须有一个包含main( )函数的C语言源文件(.c)作为C程序的入口点。系统库初始化完毕后,就把控制权交给main()函数。(2)命令文件:该文件包含了DSP和目标板的存储器空间的定义以与代码段、数据段是如何分配到这些存储空间的。(3)C运行库文件rts2xx.lib:C运行库提供了编译器提供的所有功能,包括初始化语言环境、设置堆栈与提供标准的库函数如printf等。(4)中断向量表文件vectors.asm,这个文件的代码作为中断服务表,必须由迷命令文件分配到0地址,或由ISTP指向的地址。DSP复位后,首先从0地址开始运行,然后跳转到rts2xx.lib库C运行环境的入口点cint00,完成初始化操作,在调用main()函数,执行用户的程序。 当使用标准C语言编程时,其源程序后缀名为.C。CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序,再进一步编译成目标DSP的可执行代码。最后生成的是COFF格式可下载到DSP中运行的文件,其文件后缀为.out。由于只用C语言编程,其中调用的标准C的库函数有专门的库提供,在编译连接时编译系统还负责构建C运行环境。所以用户工程注明使用C的支持库。2.4.3 TMS320C28x的C编程TMS320C28x系列DSP的主要应用在嵌入式控制系统中,为方便用户开发并提高C代码的执行效率,TI公司提供了硬件抽象层的方法来访问外设寄存器,即采用寄存器文件结构和位区定义的形式,以方便访问寄存器与寄存器中的位。使用寄存器文件结构和位区定义访问外设寄存器主要包括以下操作:(1)为外设寄存器的使用创建新的数据类型。(2)将寄存器文件结构变量映射到所使用的第一个寄存器的地址。(3)为指定的外设寄存器增加位区的定义。(4)为访问位区或整个寄存器增加共用体定义。(5)重新编写寄存器文件结构体类型,使其包含位区定义和共用体定义。 定义寄存器文件结构:寄存器文件就是将外设的所有寄存器采用一定的结构体在一个文件中定义,这些寄存器在C/C+中采用一定的结构分组,这就是寄存器文件结构。每个寄存器文件结构在编译时都会直接将外设寄存器映射到相应的存储空间。采用寄存器文件的方法定义寄存器时,低地址的寄存器在结构体的开始位置,高地址的寄存器放在结构体的后面,对于保留的地址空间,则采用不使用的变量保留相应的空间,如rsvd1、rsvd2等。寄存器所占的数据位宽度由数据类型定义,Uint16表示16位,Uint32表示32位。寄存器文件结构的空间分配:外设寄存器都有特定的存储空间映像地址,因此需根据不同的系统配置将其分配到相应的地址空间。可使用#pragma DATA_SECTION伪指令为寄存器文件变量创建一个自定义段,再将该段通过命令文件定位到特定地址中去。 对其余CPU定时器与其它外设模块的寄存器文件结构进行空间分配时,使用一样的方法。增加位区定义操作外设寄存器时,经常需要直接操作寄存器中的特定位,为寄存器增加位区定义则可方便实现对寄存器位的直接操作。在C结构体中列出位区的名称定义位,每个位区定义的名称后面带有一个冒号,后面紧跟相应位的长度。由于在各硬件平台上采用位区定义的方法缺乏通用性,因此在C28x上进行位区定义需遵循如下原则:(1)位区成员在存储空间中从右向左排列,即寄存器的低有效位或第0位存放在位区的第一个位置。(2)编译器限制定义的位区长度最大不超过一个整数大小,位区最长不超过16位。(3)若需要定义的位区大于16位,则在另一个存储空间存放其余的位。共用体的使用:位区定义的方法可方便地对寄存器的位进行操作,但有时也需将整个寄存器作为一个值操作,为此引入共用体使寄存器的各位可以作为一个整体来进行操作。一旦寄存器的位区和共用体定义确定,寄存器文件结构就可以使用共用体的形式来定义。并不是所有的寄存器都需要有位区定义,如定时器计数器TIMERTIM与定时器周期寄存器TIMERPRD等,由于总是对整个寄存器进行访问,这些寄存器使用时就不需要位区定义。第三章 系统硬件设计3.1 硬件设计总体介绍图3-1 语音编解码总体框图如图所示,语音信号即图中所示的模拟信号,经过运算放大器将输入功率放大,输入到TLV320AIC23芯片当中,AIC23是一个高性能的多媒体数字语音编解码器,它的部ADC和DAC转换模块带有完整的数字滤波器,部集成有增益可调的音频输入/输出放大器,无需外部再加功放。输入的模拟信号经过AIC23的音频输入输出放大器再经过AD转换功能变成数字信号,完成信息的采集。从AIC23输出地数据信号通过DSP的McBSP接口再输入到DSP芯片F2812中进行信号处理,F2812对输入的信号进行编码使信号成为可以在信道中传输的码并将这些码元存储起来。然后根据需要将存储起来的码元从存储器中调出来有F2812进行解码处理,经过F2812的DS引脚传送给语音编解码器AIC23,然后由AIC23进行数模转换,输出就听到了声音。3.2 信号输入/输出模块设计信号的输入/输出模块由TLV320AIC23组成。AIC23是通过2812的mcbsp接口来控制和传输音频数据的。语音信号的输入:AIC23通过其中的AD转换采集输入的语音信号,每采集完一个信号后,将数据发送到DSP的McBSP接口上,DSP可以读取到语音数据,每个数据为16位无符号整数,左右通道各有一个数值。 语音信号的输出:DSP可以将语音数据通过McBSP接口发送给AIC23,AIC23的DA器件将他们变成模拟信号输出。图3-2如上图所示,MCBSP包括数据流路径和控制数据,它们通过8条线连接到外部设备。MCBSP与其接口设备进行数据通信时,通过传输引脚(DX)来发送,通过接收引脚(DR)来接收。时钟形式和帧同步的控制信息通过以下引脚来传递:CLKX(发送时钟)、CLKR(接收时钟)、FSX(发送时钟)、FSR(接收帧同步。 AIC23是可编程芯片,部有11个16位寄存器,编程设置这些寄存器可得到所需的采样频率、输入输出增益和传输数据格式等。该控制接口VI有SPI和I2C两种工作模式,由芯片上的MODE引脚进行选择:MODE=O为I2C模式,MODE=I为SPI模式。AIC23的I2C接口地址由引脚的状态决定,=O时地址为0011010,=1时地址为0011011。其中SDIN与SDA为数据线,SCLK与SCL为串行时钟线。选用其中F2812的McBSP0与AIC23进行通信,信号连接如图所示。图中AIC23工作在主模式,时钟信号、DAC和ADC的帧同步信号FSXO和FSRO都由AIC23提供。3.3 时钟模块设计在DSP系统中,时钟电路是处理数字信息的基础,同时它也是产生电磁辐射的主要来源,其性能好坏直接影响到系统是否正常运行,所以时钟电路在数字系统设计中占有至关重要的地位。TI DSP系统中的时钟电路主要有三种:晶体电路、晶振电路、可编程时钟芯片电路。时钟电路设计原则:
展开阅读全文