对讲机可以分为基于模拟通信技术的模拟对讲机和基于数字通信技术的数字对讲机。数字对讲机相对于模拟对讲机具有频谱利用率高、语音质量好、安全系数佳等优点,因此数字对讲机成为了通信业内发展的热点,其应用领域不断扩大。但目前普遍采用的数字对讲机系统仍然存在一些问题:(1)应用外扩语音芯片及搭建复杂的外围电路来对语音进行处理[1-2],既增加了系统实现成本又提高了系统功耗;(2)在语音通信过程中发生语音丢包时未进行有效的处理[1-2],近而影响接收端的语音质量;(3)基本没有一款数字对讲系统专门用于满足一些需要低成本和短距离通信的用户。针对这些问题,本文提出了一种适用于银行营业大厅及一些小型写字楼的低功耗、低成本、短距离、音质优的数字无线对讲系统的设计方案。
1 系统整体设计
目前普遍采用的数字对讲系统,架构较为复杂,其中语音处理模块通常由外围音频放大电路、外扩AD/DA转换模块和语音编码模块3部分组成,如图1所示。
本文设计的数字无线对讲系统架构如图2所示。系统中的微控器和语音处理模块采用的是一款基于Cortex-M0处理器且内置语音处理模块的芯片ISD9160。Cortex-M0是一款32位的ARM处理器,相比于单片机处理速度更快,执行效率更高,更易于调试;而相比于ARM7处理器,在相同的工作时钟频率下,性能更高、代码尺寸更小、价格更低[3]。系统中的语音处理模块集成在微控器中,因此无需外扩语音芯片或搭建复杂的语音电路,使得电路更简单、系统综合价格更低、开发更加快捷、抗干扰能力更强。系统中的无线收发模块采用的是NRF24L01,该芯片不仅工作于2.4 GHz~2.5 GHz全球开放ISM频段,无需申请许可证即可免费使用,而且具有低功耗、多频点和超小型等优点[4]。因此在总体架构上本文设计的数字无线对讲系统相对于目前普遍采用的数字无线对讲系统具有性价比高、功耗低的优点。
2 无线模块
系统设计中NRF24L01与微控器的连接如图3所示,其中CE管脚用于收发模式的转换,IRQ管脚用于中断请求。本系统中,NRF24L01在接收模式下接收到有效的地址和数据时将通过IRQ管脚通知微控制器进行数据接收,在发送模式下,数据发送完毕时也将通过IRQ管脚通知微控制器。采用IRQ中断方式实现数据的收发,使得微控制器在等待接收或发送数据时片内可以进入睡眠模式,降低系统的功耗,延长电池的使用时间。
3 语音处理模块
3.1 语音数据采集与播放
语音信号采集方面,ISD9160微控器内置一个16位的高精度Delta-Sigma A/D 转换器,其输出信噪比可达85 dB以上。语音增益方面不仅内置了PGA(可编程增益放大器)和BOOST模块,提供了-12 dB~+61 dB的可调范围,省去了前端音频放大器的使用,而且还内置了一个ALC(自动电平控制)模块用于音频增益的自动调节,如图4所示。语音信号播放方面,ISD9160微控制器内置了一个Class-D直接喇叭驱动装置,该驱动装置可提供1 W的输出功率,因此无需外置音频放大电路即可满足用户对音量的需求。Class-D功放具有能量转换效率高的特点,其电源实际使用率可达90%以上,从而达到降低功耗的目的。
3.2 语音编码与功耗
本系统采用时分复用的方式实现全双工通信。当采用8 kHz采样率进行采样时,在全双工语音通信过程中,系统需要传输的码率为256 kb/s。如果未对语音数据进行编码,则传输大量语音数据所带来的功耗是不容忽视的。
罗雪松等人提出了采用G.729对语音进行编码[5],编码后的码率为8 kb/s。G.729编码在VoIP上是一种最常用的语音编码方式,但G.729编码需要执行线性预测、开环基音估计、自适应码本搜索等复杂的计算[6],算法复杂度高,在微控制器上运行时CPU使用率高,功耗大。
本系统中采用G.721对语音进行编码,编码后的码率为32 kb/s。G.721算法只需执行自适应差分量化、自适应预测等简单的计算,该算法具有CPU使用率低、压缩比大等优点。
根据TAN等人对功耗的研究[7],建立本系统中语音编解码和传输部分的功率统计模型:
Pa=Pcr+Pcs+Pns+Pnr+Pns(1)
式中Pa表示语音编解码和传输的总功率,Pcr表示处理器核工作时的功率,Pcs表示处理器核睡眠时的功率,Pns表示无线模块发送数据时的功率,Pnr表示无线模块接收数据时的功率,Pns表示无线模块待机时的功率,其中Pns的值很小,因此在功率计算中将忽略这个值。图5给出了语音通话过程中微控制器工作于3.3 V时,分别采用无编码方式、G.721编码、G.729编码时的功率状况。实验结果表明,在本系统中采用G.721编码可以降低语音编解码和传输的总功率,从而降低系统总功率。
3.3 丢包处理
语音处理中的丢包处理技术是指用来恢复和隐藏当发生丢包时所造成的损失的相关技术。目前该技术可以分为两类:一类是如何避免和减少包丢失,这类技术需要发送端的参与才能实现,称之为丢包恢复技术(PLR);另一类是如何对丢包后造成的损失进行隐藏,这类技术不涉及发送端,主要通过语音的特点来进行自我修复,称之为丢包掩蔽技术(PLC)。丢包恢复技术主要分为3种:纠错技术、交织技术和重传技术[8]。与信源无关的丢包掩蔽技术主要分为插入技术和插值技术两类。
NRF24L01无线收发模块采用的是发送应答的模式,该模式与网络中的TCP协议相似,确保了所有数据包传递有序,可以重传。在本系统的设计中,当语音数据传输过程中发生数据包丢失时,首先采用NRF24L01的自动重传功能对语音数据进行重传。因为丢包恢复中的纠错技术和重传技术都是采用冗余数据对丢失的数据包进行恢复,所以在丢包恢复方面本系统不使用纠错技术,而是综合应用了重传技术和交织技术。NRF24L01无线收发模块每次发送的数据包最大为32 B,即采用G.721的压缩率时每个语音帧的大小为8 ms。通过交织技术将每4个连续的语音帧分成16个2 ms语音单元,在发送前将这些语音单元进行重新排列组成4个待发送的数据包,使得4个待发送的数据包中的数据来自不同的语音帧,在接收端将这些语音单元进行重组后恢复原来的顺序,其交织结果如图6所示。丢包掩蔽方面本系统应用了插入技术来减少丢包造成的损失、提高语音的质量。本系统中综合采用了丢包恢复和丢包掩蔽技术,增加了语音可靠性和语音通话距离,测试结果在系统测试部分给出。
4 系统测试
无线通信受环境影响较大,建筑影响、人体影响、金属影响都会导致无线传输距离变短。本文选取无线对讲机通常使用的一些场所进行测试,结果表明在系统中增加丢包处理技术能够提高语音的通信距离,且该语音通信距离足以满足银行营业大厅和小型写字楼内部人员之间的通信需求,如表1所示。
本文以ISD9160为平台,结合NRF24L01无线收发芯片,提出了一种适用于短距离通信的数字无线对讲系统的设计方案。该系统借助ISD9160强大的计算能力和语音功能,实现了语音采集、语音编码、语音通信、语音解码和语音播放等功能。整个系统在通信方面工作于2.4G开放频段;在语音方面采用了单芯片的方式精简了语音电路,即保证了语音质量又降低了系统实现成本。因此,本系统在实现高信噪比的短距离语音通信的同时还具备了低成本、低功耗、语音效果佳的优点,具有很高的实用价值。在下一步的研究中,将利用ISD9160支持语音识别技术的特点为对讲系统增加语音识别的功能,方便用户对对讲机的使用。
参考文献
[1] 冯杰,谢晓明.基于LPC4357的数字对讲机终端设计[J]. 微型机与应用,2013,32(10):29-31.
[2] 刘秀玲.基于ADF7021-V的数字对讲机研究与设计[D]. 武汉:武汉理工大学,2012.
[3] YIU J.The definitive guide to the ARM Cortex-M0[M].Elsevier,2011.
[4] 刘志平,赵国良.基于nRF24L01的近距离无线数据传输[J].应用科技,2008(3):55-58.
[5] 罗雪松,陈向东,石念.基于DSP的数字对讲机语音处理方案的研究[J].微电子学与计算机,2008(6):140-142.
[6] SALAMI R,LAFLAMME C,ADOUL J,et al.Design and description of CS-ACELP:a toll quality 8 kb/s speech coder[J].Speech and Audio Processing,IEEE Transactions on,1998,6(2):116-130.
[7] TAN T K,RAGHUNATHAN A,JHA N K.A simulation framework for energy-consumption analysis of OS-driven embedded applications[J].Computer-Aided Design of Integrated Circuits and Systems,IEEE Transactions on,2003,22(9):1284-1294.
[8] PERKINS C,HODSON O,HARDMAN V.A survey of packet loss recovery techniques for streaming audio[J].Network,IEEE,1998,12(5):40-48.