ComputerKnowledgeandTechnology电脑知识与技术网络通讯及安全本栏目责任编辑:冯蕾第7卷第31期(2011年11月)第7卷第31期(2011年11月)7基于ZigBee技术的无线语音通信系统设计与实现王芳(东北电力大学信息工程学院,吉林吉林132012)摘要:针对语音传输过程中的丢包问题及AMBE-1000芯片和CC2430芯片的工作原理与特点,设计出了一种基于AMBE-1000和CC2430的无线语音通信系统。系统采用AMBE-1000与CSP1027-S进行语音信号的处理;同时,采用CC2430传输数字化后的语音信号;在整体上,采用AT89C52处理器负责接口之间的数据处理。实现了基于AMBE-1000的低速率语音通信,该文采用改进的多带激励(MBE)算法,能实现可变速率低比特率、高语音音质的语音压缩编码。重点讨论了系统结构、硬件软件设计和协议栈开发等关键问题。说明了在ZigBee网络中进行语音通信的可行性及其发展潜力。关键词:无线语音通信;ZigBee;语音编解码中图分类号:TP93文献标识码:A文章编号:1009-3044(2011)31-7635-03TheDesignandImplementationoftheWirelessVoiceCommunicationSystemBasedonZigBeeWANGFang(InformationEngineeringCollegeofNortheastDianliUniversity,Jilin132012,China)Abstract:ThisarticleintroducesthecharacteristicsandworkingprinciplesofAMBE-1000byDigitalVoiceSystemIncandCC2430byChipconrespectively.ItalsodiscussesanimplementationofthewirelessvoicecommunicationsystembasedonAMBE-1000andCC2430.ThissystemmainlyusesAMBE-1000togetherwithCSP1027-StoprocessdigitalvoiceanduseCC2430totransmitdigitalizedvoicesig⁃nals.AT89C52controllerisadoptedfordatacommunication.ThissystemrealizedavoicecommunicationsystembasedontheAM⁃BE-1000,thischipusestheMBEalgorithmtoobtainlowchangeablecommunicationrate,andhighspeechquality.Thedesignofsystemstructure,hardware,softwareandprotocolswasdiscussedindetail.ThefeasibilityandpotentialofvoicecommunicationonZigBeewasthereforeproved.Keywords:wirelessvoicetransmission;ZigBee;speechencodinganddecoding无线语音传输中,采用ZigBee技术的低速率语音编码技术进行语音传输比语音信号模拟传输有诸多优点[1-3]。语音信号处理是现代通信中不可或缺的组成部分,随着对通信质量要求的越来越高,需要用尽可能低的数码率来获得尽可能好的合成语音质量。本文主要研究的是基于AMBE-1000语音模块在ZigBee技术中的应用,详细阐明了整个系统结构、硬件、软件设计。实验结果表明,该方法较好的解决了在无线ZigBee语音通信传输过程中的丢包问题,使丢包率降到最低,语音通信的效果达到最佳。1系统结构1.1系统图与原理AMBE-1000包括两个独立组成部分:编码器和解码器,如图3所示。编码器接收8kHz抽样语音数据流,在片内实现语音编码(可以是16位、8位A律或8位μ律),由软件控制输出信道数据的速率;解码器则接收信道数据并合成语音数据。编码器和解码器的接口时序是完全异步的。整个系统由语音数据采集单元、语音编解码单元、时钟电路和单片机(AT89C52)组成,如图1所示。模块工作可分为两个过程:压缩过程和解压缩过程。语音的无线传输以MCU微控制器和射频收发模块为核心,辅以外部的放大器、滤波电路、音频编解码器来实现,语音的6个字节数据通过串口发送到CC2430射频模块中,通过无线将数据发送出去实现对讲功能。1.2系统模块之间的接口方式AT89C52控制器和AMBE-1000通讯接口类型可以是并行主动模式、并行被动模式、串行主动模式或串行被动模式。在使用Intel标准总线控制器时,推荐采用并行主动模式。接口方式如图2。2系统的设计与实现2.1硬件设计要点收稿日期:2011-08-09作者简介:王芳(1970-),女,东北电力大学讲师,研究方向为通信技术。图2ZigBee语音通信系统之间的接口方式图1无线语音通信模块框图E-mail:info@cccc.net.cn电脑知识与技术Vol.7,No.31,November2011.635ComputerKnowledgeandTechnology电脑知识与技术本栏目责任编辑:冯蕾网络通讯及安全第7卷第31期(2011年11月)第7卷第31期(2011年11月)72.1.1AMBE-1000的芯片特点及工作原理根据对语音构成的分析,应运而生了多种对音频信号的压缩编码算法,如CELP、RELP、VSELP、MP-MLQ、LPC-10、MBE等,它们通过不同的算法,实现对音频信号的压缩。这些压缩编码算法的压缩率、语音质量各有所长,其中美国DVSI(DigitalVoiceSystemInc)公司提出的先进多带激励AMBE(AdvancedMulti-BandExcitation)压缩编码算法是其中的杰出代表。AMBE是基于MBE技术的低比特率、高质量语音压缩算法,具有语音音质好和编码速率低等优点。AMBE-1000是一款高性能多速率语音编码/解码芯片,语音编码解码速率可以在2400~9600bps之间以50bits的间隔变化,即使在2400bps的时候,仍能保持自然的声音质量和语音可懂度。在芯片内部有相互独立的语音编码单元和解码单元,可同时完成语音的编码和解码任务。并且所有的编码和解码操作都能在芯片内部完成,不需要额外的存储器。这些特性使它非常适合于数字语音通信、语音存储以及其它需要对语音进行数字处理的场合。工作原理如图3。2.1.2CC2430射频模块的特点及硬件设计图CC2430[4-5]具有与ZigBee/802.15.4全兼容的硬件层、物理层。CC2430采用0.18μmC⁃MOS工艺生产;在接收和发射模式下,电流损耗低于27mA或25mA。CC2430的休眠模式和转换到主动模式的超短时间特性,特别适合于那些要求电池寿命非常长的应用场合。CC2430的主要特点如下:高性能和低功耗的8051微控制器核;集成符合IEEE802.15.4标准的2.4GHZ的RF无线电收发机;优良的无线接收灵敏度和强大的抗干扰性;在休眠模式时仅0.9μA的流耗,外部的中断或RTC能唤醒系统、在待机模式时仅0.6μA的流耗;硬件支持CSMA/CA功能;较宽的电压范围(2.0~3.6V);数字化的RSSI/LQI支持和强大的DMA功能;具有电池监测和温度监测功能;集成了14位模/数转换的ADC;集成AES安全协处理器;带有两个强大的支持几组协议的USART以及一个符合IEEE802.15.4.2规范的16位MAC计时器和两个8位计时器。2.1.3语音模块A/D—D/A接口电路设计A/D-D/A芯片的选择对所设计的系统的声音质量起着关键的作用。由于A律或u律压扩芯片在采样时做了压缩以减少位数,从对声音质量的考虑上,建议采用16位线性的芯片。选择芯片时要特别注意信噪及滤波器的频率响应特性。A/D-D/A的硬件接口是很灵活的。时钟和激励信号可以由外部送入也可以由内部产生。给可编程A/D-D/A控制字需要一个额外的接口。2.2软件设计与实现2.2.1ZigBee语音模块之间的标识处理ZigBee设备有两种寻址方式,分别通过64位的地址和16位的网络地址来寻找网络设备。一般来说,IEEE地址是固定的,而网络地址则是在组网时随机分配的。因此要对特定设备通信,必须用IEEE地址,但是在进行语音通信时,为了简化传输数据,一般采用16位网络地址寻址。这就需要在第一次通信时知道IEEE地址的前提下,获取设备的网络地址;以后采用网络地址通信。这部分工作通过Chipcon的ZigBee协议栈实现。程序由于篇幅关系省略。接收数据时,首先射频发射芯片监听信道中的数据,通过判断数据是否发送给该设备。如果是,则读取该数据到接收FIFO,然后触发,通过SPI总线将数据发送到MCU;通过MCU处理,去掉各层的帧头,最后将数据存放到指定语音传输系统硬件电路的缓存区中[6]。2.2.2ZigBee网络拓扑ZigBee网络通常分为星状拓扑、点对点拓扑和网状网络。本系统采用的是星状拓扑结构,在星状拓扑结构中,所有终端设备都与唯一的中央控制设备—PAN协调器通信,终端设备之间的通信通过PAN协调器通信,终端设备之间的通信通过PAN协调器的转发来完成。终端设备可以是通信的起点或者是通信的终点,也可以是两个设备之间通信的转发设备。在星状网络中,PAN协调器一般使用持续供电,而其他设备采用电池供电。星状网络适合家庭自动化、PC机的外设以及个人健康护理等小范围的室内应用。构建星状网络时,最先启动的FFD自认为是PAN协调器,并选定一个与其覆盖区域内的其他PAN不同的标识作为自身的PAN标识。一旦指定了PAN标识,网络协调器就可以把其他FFD和RFD加入到网络中。图3AMBE-1000接口原理图4核心板CC2430原理图图5ZigBee语音模块核心接线图636ComputerKnowledgeandTechnology电脑知识与技术网络通讯及安全本栏目责任编辑:冯蕾第7卷第31期(2011年11月)第7卷第31期(2011年11月)72.2.3AMBE-1000语音模块的程序设计AMBE-1000芯片的数据是以帧为单位,从应用的角度而言,将全帧进行传输可保留全部的状态信息,并使灵活性和功能有所提高;但本系统中,需考虑整个系统性能实现与效果,所以必须重组数据帧。若以全帧的形式进行传输,这些实际上无用的数据也会参与传输,每次传输(20ms次)的数据量将达到34字节,那么每1s需要传递的数据量为:34byte×8bits×50times=13600bits,这样,对于狭窄的信道根本无法进行传输。因此,从节省带宽考虑,必须对帧头和帧尾进行处理,并重组数据帧。为此,在发送程序的第一步先将AMBE-1000每20ms的语音数据存入一个缓冲区,去掉不必要的语音帧帧头、帧尾,得到纯语音数据;第二步再和串口1的数据综合打包,加上系统的帧头、帧尾;最后综合的数据流通过串口2进入各种信道行传输;接收程序反之,先对串口2收到的数据流进行判断:若有语音数据则将语音数据再添加必要的0字节数据和语音帧头、帧尾传给AMBE-1000进行解码;若有串口1的数据,就启动串口1的发送程序。实际上,接收时对音量等的调整操作也是通过在接收时对所加的帧头进行设置而实现的。3ZigBee协议栈移植3.1ZigBee协议架构3.1.1添加一个任务整个协议栈是以一个OS贯穿的,我们要加入自己的应用,语音通信任务ID,在任务中执行,与协议栈实现无缝连接。在协议栈