数字对讲机中语音编码的研究与DSP实现
2010-09-13陈向东
熊 堃, 陈向东, 葛 林
(西南交通大学 信息科学与技术学院,四川 成都 610031)
0 引言
近年来,数字对讲机一直是通信业内发展的热点,其应用领域不断扩大,在许多工业生产与商业活动中体现着其不可替代的优越性。而无线语音通信作为数字对讲机最基本的通信方式,虽然在通信信息中的比重有所下降,但是仍然是无线通信中的主要成分。现根据数字对讲机中要求实时性高,抗干扰能力强、频谱利用率高等特点,设计了一种用于短距离、低功耗、低成本通信的TDD数字对讲机系统。
1 系统总体设计方案
在 TDD数字对讲机系统的设计中,需要考虑实时性、频谱利用率、功耗及成本等一系问题,根据 TDD数字对讲机的这些设计需要,给出了总体设计方案如图1所示。
图1 系统结构框
系统主要由A/D(D/A)转换模块、语音处理模块、单片机控制电路及射频电路四部分组成。在整个系统设计方案中,采用微处理器MSP430为中心的系统控制模块来完成数据收发和编/解码的控制等工作,对语音数据的处理主要由TMS320VC5509A DSP芯片完成,微处理器MSP430只需对数据以 TDD帧方式封装及控制数据的输入与输出的接口以和设置定时器对接收与发送模式转换进行控制。
在发送过程中,首先由AIC23将模拟语音数字化,输出的信号为16位的PCM编码信号,接着信号进入C5509A芯片做语音编码处理(G.729A编码),然后输出数据通过微处理器MSP430加上头域、尾域、ID域以及命令字节形成数据帧,最后控制射频芯片(CC1100)将数据发送出去;在接收过程中,首先接收来自射频芯片(CC1100)的数据,再将接收的数据帧的同步域、尾域、ID域以及命令字节去除后,数据送至C5509A进行解码处理(G.729A解码),解码输出同样为16位的脉冲编码调制(PCM)编码信号,最后通过AIC23转化成模拟信号。
2 各模块具体设计方案
2.1 A/D(D/A)转换模块
在信号输入/输出端,采用的是TI公司推出的一款高性能立体声音频数模转换编解码器(TLV320AIC23),其内置耳机输出放大器、可编程抗混迭滤波器、开关电容式低通平滑滤波器、sinx/x补偿、数据与控制发送串口、输入和输出都具有可编程的增益调节功能。AIC23采用先进的Σ一△过采样技术。可以在8 kHz至96 kHz的采样率下提供16 bit、20 bit、24 bit和32 bit的采样数据。ADC和 DAC的输出信噪比分别可达 90dB和100 dB。同时。TLV320AIC23还具有很低的功耗(回放模式为 23 mW,节电模式为 15 μw)。上述优点使得 AIC23成为一款十分理想的模拟输入/输出器件[1]。
在本设计中AIC23通过C5509A提供的多通道带缓冲的串行接口McBSP来完成数据的传输,C5509A通过I2C总线对AIC23进行设置,包括设置数据格式、采样率,选择主从模式,控制音量等。AIC23工作在主模式,C5509A工作在从模式,同步时钟信号FS及移位时钟SCLK由AIC23产生。
2.2 语音处理模块
在将模拟信号转换成16位PCM数字信号后,设计通过DSP芯片对输入的数字信号进行语音压缩编码,其目的是为了在有限的信道内进行更多的信息传输,以节约无线信道带宽,同时又能提高系统的抗干扰能力和无线传输距离。
采用的语音压缩编码方式是国际电信联盟 ITU推出的G.729A语音编码算法。该算法在8 kbps传输码率下实现了较好的话音质量,且时延较短,综合了波形编码和参数编码的优点,以自适应预测编码技术为基础,采用了矢量量化、合成分析和感觉加权等技术,能较好的满足无线语音通信的要求,相对于原G.729编码方式其具有更低的编码复杂度,是无线通信中理想的语音压缩编码方式[2]。但是若是在C5509A上直接实现ITU-T提供的源代码,由于编码相对比较复杂,程序没得到有效优化,语音处理延迟将在 100 ms以上,是语音通信所不能接受的,故这里对G.729A编码算法和ITU-T提供的源代码进行了优化。
具体优化步骤如下:
①自适应码书搜索改进:优化开环基音搜索算法的方法可以将语音数据帧中40个偶数点的相关性替代原来的80个采样点的相关性;
②固定码书搜索的改进:码书搜索可由3个多层循环代替原来包含有8个循环的多重循环来实现;
③程序设计的优化:去除不必要的溢出保护,同时通过宏定义的方式来定义大量的基本运算,大大的提高了程序的执行效率。
在完成上述手工优化后,通过CCS提供的C优化器进行优化,优化编译后的代码容量和速度也有相当可观的提升,语音处理延迟有效的降到10 ms以下。
在 DSP芯片的选择上,采用的是 TI公司的TMS320VC5509A DSP处理芯片,它是TMS320VC5509的改进版,主要特点有[3]:具有2个乘法器(MAC,17 bit×17 bit),4个累加器(ACC),两个算术逻辑单元(ALU)(40位,16位各一个),速率最高可达400 MIPS,这大大增强了DSP的运算能力;它还具有1个6通道的DMA接口,1个USB2.0全速接口,1个I2C接口,64K Bytes的DARAM和192K Bytes的SARAM;同时芯片提供了3个McBSP多通道缓冲串口,大大提高了芯片间数据的交换效率;除此之外,C5509A还提供了更为高效的外部存储器接口(EMIF),实现了与外部设备的无缝连接,可使DSP外部存储空间扩大到满足系统要求。基于这款芯片以上的优点,综合价格和芯片面积的各种因素,最终决定采用这款芯片在 TDD数字对讲机上来实现 G.729A语音压缩编码。为了能让语音缓存数据不占用宝贵的片内存储空间和解决上电复位后的程序加载问题,给C5509A分别扩展了容量为128 K×16 bit的SDRAM和512 K×16 bit的片外FLASH存储空间,通过外部存储器接口(EMIF)与C5509A实现无缝连接。DSP程序的流程图如图2所示。
图2 DSP编解码流程
G.729A语音编码算法是基于共轭结构代数码本激励线性预测(CS-ACELP)的,编码速率为8 kb/s。在C5509A芯片上实现时,采用如下的方法:首先将A/D转换后16位的PCM码通过McBSP0口以DMA方式发送至双缓冲的接收缓冲区,每接收一个PCM码就触发一次DMA操作。当接收到80个采样点时触发CPU中断,将这80个采样点作为一帧传至 G.729A主程序经行压缩编码,并将编码后的数据存入McBSP1口得发送缓冲区,与此同时McBSP0口继续采集数据。当发送缓冲区半满后,触发中断,将数据通过串行口发送出去。解码过程与编码过程相反,首先通过McBSP1口以DMA方式接收数据比特流,经过G.729A主程序解码后,输出至 McBSP0口的发送缓冲区,再从 McBSP0口发送至D/A,转换成模拟语音信号。
2.3 MCU控制模块
MCU控制模块主要负责控制射频模块的数据收发,程序的流程以及对数据 TDD帧结构的封装等问题。考虑到性能、功耗和价格等多从因素,决定采用的是 TI公司的MSP430F149单片机作为系统的MCU。MSP430系列单片机是16位低功耗、高性能的混合信号处理器。其核心CPU采用的是16位的RISC处理器,单周期指令模式;电源电压采用1.8~3.6 V低电压,RAM数据保持方式下耗电仅0.1µA,活动模式耗电250µA/MIPS,I/O口漏电电流最大仅50 nA。同时还配有60 KB的Flash ROM和 2 KB的SRAM,两通道串行通信接口,可用于异步(UART)或同步(SPI)模式[4]。
硬件连接上C5509A与MSP430间采用SPI方式通信,C5509A的McBSP1接MSP430的USART1,工作方式采用SPI方式,MSP430工作在主模式,C5509A工作在从模式。主从模式是通过控制寄存器UCTL的MM位来选取。软件设计上,发送过程中MSP430通过串行通信模块USART1接收来自C5509A的语音压缩编码,以80 bit的数据为一帧,加上TDD的头域、尾域、ID域以及命令字节形成98 bit的数据帧,然后通过串行通信模块USART1送至射频模块;接收过程与发射过程相反,去除无用的帧头和帧尾后将数据发送至C5509A解码。
2.4 射频发射及功放模块
射频收发单元选用Chipcon公司的CC1100射频芯片。该芯片是Chipcon公司推出的单片UHF无线发射芯片,芯片体积小,功耗低,数据速率支持1.2~500 kb/s的可编程控制,可以工作在915 MHz、868 MHz、433 MHz、315 MHz四个波段,在所有频段提供-30~10 dBm输出功率,同时支持FSK、GFSK、ASK/OOK和MSK调制方法。CC1100集成了一个高度可配置的调制解调器,支持不同的调制格式,其数据传输率最高可达500 kb/s。通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。在发射状态下,其发射功率可编程调节,其最大发射功率达到10 dBm[5]。MSP430F149与CC1100采用SPI方式通信,MSP430F149工作在主模式,使用USART1模块,CC1100工作在从模式,工作频段为403~425MHz,CC1100的外围电路采用推荐的外围电路配置。
3 结语
以 TMS320VC5509A(DSP)为平台,结合微处理芯片MSP430和射频芯片CC1100,提出了一种TDD数字对讲机的结构设计方案。该系统借助TMS320VC5509A强大的计算功能和丰富的片内外设,实现了语音的压缩编解码功能,同时又方便了芯片间的连接与初始化。整个系统可实现低功耗,高信噪比的短距离无线语音传输,具有成本低,通用性强,可扩展性和可移植性强等特点,因而可以应用到需要短距离无线语音通信的各个领域。
[1] 龚利衡,盛玉霞,唐昆. 数字对讲机语音编解码算法改进与优化[J].通信技术,2009,42(05):77-79.
[2] 柴晓东,袁晓. 基于 DSP的多路数据采集系统的设计[J]. 通信技术,2009,42(07):172-174.
[3] 闫瑞军,高航. TMS320VC5509A在数字对讲机基带系统中的应用[J].大众科技,2008(05):63-64.
[4] 王光. 基于MSP430的在线远程监测的数据采集系统设计[J]. 通信技术,2009,42(08):144-147.
[5] 李丽军,王代华,祖静. 基于 CC1100的无线数据传输系统设计[J].研究与开发,2007,26(12):42-45.
Web安全问答(7)
问:什么叫网站挂马
答:“挂马” 就是黑客入侵了一些网站后,将自己编写的网页木马嵌入被黑网站的主页中,当访问者浏览被挂马页面时,将会被植入木马,黑客便可通过远程控制来实现不可告人的目的。网页木马就是将木马和网页结合在一起,打开网页的同时也会运行木马。最初的网页木马原理是利用IE浏览器的ActiveX控件,运行网页木马后会弹出一个控件下载提示,只有点击确认后才会运行其中的木马。这种网页木马在当时网络安全意识普遍不高的情况下还是有一点使用价值的,但是其缺点是显而易见的,就是会出现ActiveX控件下载提示。当然现在很少会有人去点击那莫名其妙的ActiveX控件下载确认窗口。在这种情况下,新的网页木马诞生了。这类网页木马通常利用了IE浏览器的漏洞,在运行的时候没有丝毫提示,因此隐蔽性极高。
问:如何发现网站挂马
答:服务器被挂马,通常情况下,若出现诸如“弹出页面”,则可以比较容易发现,发现防病毒软件告警之类,则可以发现服务器被挂马;由于漏洞不断更新,挂马种类时刻都在变换,通过客户端的反映来发现服务器是否被挂马往往疏漏较大;正确的做法是经常性的检查服务器日志,发现异常信息;经常检查网站代码,借助于专业的检测工具来发现网页木马会大大提高工作效率和准确度。