|
摘 要:陆上集群无线电通信(TETRA)系统是欧洲电信标准协会(ETSI)在专用移动通信(PMR)和公共接入移动通信(PAMR)网络领域惟一支持无线数字集群的开放标准,本文主要介绍了该系统中话音编码算法,并讨论了其在DSP上实现的具体流程。 关键词:TETRA;话音编码;ACELP;DSP
Design and Implementation of Speech Codec in TETRA Based on DSP
WU Degang1,DONG Qiuyun2
(1.College of Communication Engineering,PLA University Science and Technology,Nanjing,210007,China; 2.The First Communication Station in Shenyang Military Area,Shenyang,110000,China)
Abstract:TerrestrialTrunked Radio(TETRA)proposed by European Telecommunications Standards Institute(ETSI),is theonly open standard to supportdigitaltrunked radio system in the fieldsofPrivate Mobile Radio(PMR)and PublicAccess Mobile Radio(PAMR).This paperintroduces the algorithm ofthe speech coding in TETRA system,and discuss its implementation based on DSP. Keywords:TETRA;speech coding;ACELP;DSP
1 引 言 TETRA是ETSI制定的一种全新的数字集群系统,他可以提供语音和快速数据传输业务。TETRA集成了移动数据终端、PMR调度电话、蜂窝电话和寻呼机的功能,并且可以直接传送Internet协议报文,支持可视电话功能,而语音又是最主要的业务。无线系统中,带宽是影响语音服务质量最关键的因素,为降低语音传输所要求的带宽,TETRA系统采用代数码激励线性预测编码(ACELP)压缩算法,保证了高质量的语音服务,其编码速率为4.567 kb/s。 ACELP是一种改进型的CELP,继承了传统CELP的主要优点,并克服了其缺点。传统CELP用固定的随机码本来逼近语音信号的余量信号,缺乏灵活性,不能很好地控制码本的频域特性。ACELP采用代数码本结构,不仅降低了码本的存储量和搜索量,还提供了频域控制函数,从而增强了码字的灵活性和多样性,能更好地逼近余量信号,具体算法可参见TETRA标准ETS395-2。
2 系统设计 针对TETRA的话音编码算法实时要求高,运算量 大,核心处理器采用了TI公司的TMS320系列的5409芯片,该芯片主要特点有:速度快,处理能力可达到100 MI/s;低功耗,3 V电压供电,内核电压1.8 V;提供32 kBRAM,16 kBROM;3个多通道自动缓冲串口(McBsp)。 A/D转换芯片采用TI公司的AIC20芯片,完成模拟话音与数字话音的转换工作。由于采用了过采样技术,AIC20可提供高分辨率的A/D,D/A转换;3 V供电,功耗低于30 mW;具有软件可编程寄存器,配置方便,不改变硬件电路,仅改写软件就可满足多种需求。 存储芯片选用Atmel公司的AT49LV001,用于存储程序,DSP加电便可从Flash中引导程序运行。AT49LV001读写电压均为3 V,可大大简化电源设计,存储空间为128 kB,足以存储TETRA的话音编码算法。 2.1 硬件设计 2.1.1 时钟电路设计 这里为5409提供2种时钟电路设计方法: (1)将晶振产生的外部时钟源直接输入到X2/CLKIN引脚,X1悬空。 (2)利用5409内部提供的锁相环(PLL)时钟产生电路将内部时钟倍频或分频得到。 在此采用第二种方法,如图1所示。在X1和X2/CLKIN之间接一个16.384 MHz的晶振,同时将CLKMD1,CLKMD2,CLKMD3通过上拉电阻设置为逻辑0,1,0,即倍频数为5,DSP工作在80 MHz,若需改变DSP的工作频率,可通过软件修改地址0x58的CLKMD寄存器的值设置倍频数。

2.1.2 DSP与Codec接口设计 5409与AIC20接口如图2所示,由DSP的CLKOUT提供MCLK,Codec工作在主模式,SCLK和FS为输出,为DSP提供BCLK和BFS。值得注意的是,由于AIC20有2个采样通道,在与DSP串口连接时,为配合codec的时序,DSP串口需配置成接收2个通道的采样值(即32 b),但只取一个通道的采样值;串口发送时,也要向2个通道发送数据。McBsp中的部分控制比特位配置如下: 
当AIC20工作在主模式时,FS=MCLK/(16×P×N×M),通过设置控制寄存器4可改变P,N,M的值。FS=8 kHz,MCLK=81.92 MHz,取P=8,N=8,M=10。 2.1.3 DSP与存储器接口设计 AT49LV001存储器内部以扇区组织,在对其编程前,必须对相应区域擦除。使用时可根据需要选择扇区擦除或芯片擦除。图3为5409与AT49LV001的接口示意图,AT49LV001的地址总线和数据总线分别接至5409的地址总线和数据总线,5409的地址总线A22~A18悬空,数据总线D15~D8悬空。DS作为使能信号,XF则控制编程状态。应当注意,AT49LV001为8 b存储器,DSP为16 b处理器,所以每存储一条DSP指令需2个存储单元,且高字节在前。

2.2 软件设计 2.2.1 初始化程序 完成DSP的初始化工作,包括设置SWWSR,PMST等寄存器的值;根据需要设置CLKMD寄存器改变倍频数;配置串口。 2.2.2 中断服务程序 中断服务程序主要是串口接收和发送中断。接收中断从Codec的DS脚接收采样数据,放入接收缓冲区MicIn,当接收到30 ms的数据(算法要求),启动编码标志SpeechFlag。当解码程序从Acelp码流中解出话音后,放入发送缓冲区Sout中,然后通过串口发送中断发至Codec。MicIn和Sout均为双缓冲区。 2.2.3 算法设计 编码程序每30 ms执行一次,将240个采样值编成137 b,传递给解码程序,再将解码合成的话音通过音箱放出。在硬件平台上做自环实验,下面给出部分C代码。
 
3 结 语 本文从软件设计和硬件设计两方面介绍了在TMS320VC5409芯片上实现TETRA话音编码算法的具体步骤。通过标准P.862对算法评测,平均MOS得分为3.474。同时,在做抗噪实验时,本算法在10-2误码率下,仍能保持良好的通信质量。
参考文献
[1]ETS300 395 2 Speech CODEC for full-ratetrafficchannel;Part2:TETRACODEC [2]TMS320VC5409Afixed-point digital signal processor. [3]TLV320AIC20 low power, highly-integrated programmable 16 B 26-KSPS dual channel codec. [4]戴明桢,周建江.TMS320C54x DSP结构、原理及应用[M].北京:北京航空航天大学出版社,1999.
|