基于IEEE802.1 5.4/ZigBee的语音通信系统
扫描二维码
随时随地手机看文章
摘要 提出一种基于IEEE802.15.4的无线传输方案,该方案基于Chipcon公司开发的一款符合ZigBee标准的低功耗射频芯片CC2420,设计了以MSP430为处理器、CC2420芯片为无线通信芯片的无线语音通信系统。使用的外围器件少,实现了短距离无线语音传输和方波输出的双向数据传输,并通过正弦波实验进行代码调试,具有成本低、音质好的优点。
关键词 IEEE802.15.4;Zigbee;无线语音通信;双向传输
ZigBee是ZigBee联盟在IEEE802.15.4定义的物理层(PHY)和媒体访问控制层(MAC)基础上指定的一种低速无线个域网(LR-WPAN)技术规范。其主要目标是以简单灵活的协议构建一种布置简易、数据传输可靠、设备成本低、能量消耗小的短距离无线通信网络。ZigBee工作频段灵活,使用的频段分别为2.4 GHz、868 MHz及915 MHz,均为免执照频段;传输速率为250 kbit·s-1,有效传输距离为10~75 m。通过在发射端加功率放大器还可以实现更远距离的通信。ZigBee技术具有多跳传送(Muhi-hop Relay)机制、网络扩展性能好、布设容易以及具有自组织与自修复能力。广泛地应用到库存管理、产品质量控制、工业过程控制、灾害地区监测、生物监测和监督、定位及消防安全等领域。虽然实现语音通信不是ZigBee联盟最初的目标,但是,在许多领域中没有语音通信功能,将使其应用受到较大局限;另一方面,在有紧急需求和不易布置环境下,ZigBee具有其他通信技术难以替代的优势,如能利用ZigBee网络进行语音传输则具有较大的实用价值;同时,在无线传感网络的应用中,声音也是一种传感量,传输采样的声音数据正是声音传感应用的基本要求,所以文中针对IEEE802.15.4/ZigBee的应用环境,并考虑到ZigBee理论通信速率为250 kbit·s-1,实际速率也能满足语音通信要求的情况,提出实现语音通信的研究课题。并且充分利用本方案所选MCU的性能特性,以及较少的外围器件,很好地实现了语音通信。
1 硬件方案
1.1 方案总体架构
该系统总体架构为:语音处理功能远程端MSP430单片机作为发送端时,片上的ADC完成从麦克风采样,把输入的语音信号经过转换后发送,而近程端MSP430片上的DAC则把接收到的数据转化为声音信号再由喇叭播放。方波输出功能的实现则以近程端作为发送端,发送控制命令给远程端,远程端接收到控制命令后,输出占空比可调的方波信号。进而实现半双工通信下的双向通信。数据的收发则通过以CC2420为核心的RF前端完成,外围附加放大与滤波电路。该平台的原理框图如图1所示。
前置放大器完成对咪头微弱信号的放大,以便与ADC的满度测量范围相匹配,提高信噪比;前置低通滤波器滤除高于采样频率1/2的信号,即堆叠信号,以减小语音失真;嵌入式处理器完成数据处理及发送接收;射频收发器CC2420完成数据的收/发,接收/发送该设备的数据,并将数据发送到嵌入式处理器。后置低通滤波器对经过D/A变换的语音信号滤波,还原语音信号。采用低噪声、非斩波稳零的双极性运放设计成二阶有源滤波电路。音频放大器对经过滤波的语音信号放大,提高负载能力,输出到扬声器,最终实现无线语音通信。电路外围元件少,电压增益可调。
1.2 器件选型
MSP430是具有超低功耗特点的16位单片机,方案选用MSP430F168,功耗电流已达到μA级。CPU内核功能强大:16位CPU和高效的RISC指令系统,无外扩的数据地址总线,在8MHz时可达125ns的指令周期,具有16个快速响应中断,能及时处理各种紧急事件。丰富的片内外围功能模块:12位的A/D转换器ADC12内包括采样/保持功能的ADC内核、转换存储逻辑、内部参考电平发生器、多种时钟源、采样及转换时序电路。具有8个外通道和4个内通道,高达采样速率200 kbit·s-1,且具有多种采样方式。两路USART通信串口,可用于UART和SPI模式;片内有精密硬件乘法器、两个16位定时器,其具有48 kB闪存和2 kB的RAM,用于存储采集数据。
射频芯片采用挪威Chipcon公司的CC2420。该芯片具有完全集成的压控振荡器,只需要天线、16 MHz晶振等非常少的外围电路就能工作在ISM免费频带上,工作频率为2.4 GHz。具有2 Mchip·s-1直接扩频序列基带调制解调和250 kbit·s-1的有效数据速率;适合简化功能装置和全功能装置操作:低电流消耗;低电源电压要求。可编程输出功率;独立的128 Byte发射、接收数据缓冲器。芯片具有良好的性能,尤其是极低的电流消耗和封装尺寸,完全满足无线网络设备体积小、功耗小、成本低的设计要求。CC2420只提供一个SPI接口与微处理器连接,通过这个接口完成设置和收发数据工作。许多单片机都集成了SPI控制器,可以方便地与CC2420配合使用。
基于单片机MSP430和无线射频芯片CC2420的SPI通信,通过设计单片机的SPI寄存器驱动CC2420。处理器通过SPI接口访问CC2420内部寄存器和存储区。CC2420与处理器的连接使用SFD、FIFO、FIFOP、和CCA 4个引脚表示收发数据的状态;而处理器通过SPI接口与CC2420交换数据、发送命令等。MSP430F168的SPI是全双工的,因此当通过SIMO向从机发送数据时,SOMI接口同时也在接收数据。
1.3 硬件实现
硬件方案充分利用MSP430片上12位ADC和DAC,从而无需外部语音编码解码器件,系统更加精简。语音传输系统的硬件电路如图2所示。
麦克风放大器及前置低通滤波器电路的工作原理:U1构成的反向放大器提供麦克风放大,其增益由R4和R5决定;R2、R3分压后为U1提供合适的偏置,R1给驻极体话筒提供偏置电压,C2阻止直流成分输入到放大器;一级Sallen-key结构的切比雪夫低通滤波器R8和C5构成一阶低通滤波器,用于ADC的反堆叠滤波。后置滤波器由一级Sallen-key结构的切比雪夫低通滤波器、一级RC低通滤波器和一级电压跟随器U4构成。三级滤波器的截止频率彼此稍有错位,以限制整个滤波电路通带的纹波。整个电路的截止频率设置在3 400 Hz,电压跟随器用于防止电路从输出获得反馈,并提供电流驱动。
在设计音频部分的电路时,考虑到采样率为10 kHz,根据奈奎斯特取样定理,系统的有效取样频率Os必须满足Os≥2ON的规定。在此ON称为奈奎斯特频率而ON称为奈奎斯特率。当采样频率小于奈奎斯特频率时,在接收端恢复的信号失真较大,这是因为存在信号的混迭;当采样频率大于或等于奈奎斯特频率时,恢复信号与原信号基本一致。输入的信号频率最高不能超过5kHz,在输入ADC之前必须加一个低通滤波器,将高于5 kHz的信号加以滤除。
2 软件实现
软件设计主要是基于MSP430F168与CC2420之间的SPI通信。通过设计单片机的SPI寄存器来驱动CC2420,进而设置和读取射频芯片的寄存器值,实现相应的发送和接收功能。
2.1 系统功能实现
远程端对语音数据进行A/D转换并打包发送。为实现语音实时通信,应尽量减少帧间等待时间,以提高有效数据率。为达到最大传输效率,理论上应使用最大载荷打包,但较长的数据帧也更容易被外界干扰信号破坏,同时也增加了语音迟延。综合考虑滤波器的截止频率以及CC2420的节点传输速度,A/D转换采用10 kHz的采样频率,8位分辨率。MSP430的主频为8 MHz,ADC将其8分频,单通道单次转换。定时器B与其时钟同步,每50μs产生一次中断。每两次中断进行一次转换,并将数据读出取高8位。ADC一次采样84个8位信号为一个数据包,这个数据包在被RF发送出去之前由协议栈自动加上一个12Byte的包头。由于CC2420传送速率为250kbit·s-1,所以每传送一个数据包耗时约3.072ms。
近程端将接收到的语音采集数据进行还原。D/A转换时钟设置与A/D转换同步。并且也采用10 kHz的频率。用单片机的定时器A模块,每100μs产生一次中断,在中断中进行一次D/A转换。一个ADC的输入缓冲区或一个DAC的输出缓冲区的大小为84Byte。装满这些缓冲区需要8.4 ms。系统流程图如图3所示。
2.2 发送接收子程序实现
发送端获取了A/D转换的结果,并存储于所开设的缓存中。在发送数据时,将存于缓存的数据,加上网络层MAC层和物理层的帧头,通过SPI总线发送到射频发射芯片的发送FIFO中。为简化传输数据,采用16位短地址寻址而非64位IEEE地址。接收数据时,首先射频发射芯片监听信道中的数据,判断数据是否发送该设备。如果是,则读取该数据到接收FIFO,然后触发,通过SPI总线将数据发送到MCU;通过MCU处理,去掉各层的帧头,最后将数据存放到指定的缓存区中。具体完成发送接收部分的子程序流程如图4所示。
2.3 反向控制与状态切换
在无线通信过程中,无论主机还是分机的CC2420通信模块在某一时刻只能被配置成一种传输模式,即发射模式或接收模式,因此无线信道实质提供了一种半双工通信方式。而在实际当中通话双方不能像对讲机那样采用按键进行发射和接收模式的切换,所以既要保证语音数据的实时性和准确性,又要保证反向控制信号的有效传输,软件的状态切换成为迫切需要解决的问题。
利用如图4所示的收发子程序控制远程端是否输出方波。按键按下,则发送控制命令至远程端,收到控制命令后,运用定时器的比较模式输出方波。从系统考虑,每个通信节点同时具备收发功能。依据CC2420状态机可以方便地进行状态切换,每次发送完毕恢复无线收发模块至接收状态即可。
3 结束语
在系统调试过程中,考虑到语音传输的同步性,避免语音信号无线接收与SPI读取数据的速度RXFIFO使用冲突,接收端采用双缓冲区的设计;另外由于每个节点同时具备收发功能,考虑到半双工的特点,采用语音信号高优先级,只在每次中断检测方波控制信号的方法,既保证了语音信号的实时传输,控制信号又实时有效。由于CC2420没有专用的软件监听包,语音传输信号用正弦波信号模拟,同时反向发射方波输出控制信号。经过调试,最终在D/A输出口,稳定的输出阶梯状正弦波,在喇叭输出口,基本平滑的正弦波。实验证明,该波形无消波失真且波形稳定时,语音传输效果最佳,经测试,传输距离约达到50m。
该系统未使用独立的ADC与DAC,使得成本和功耗更低;利用MSP430的5种省电模式,加上ZigBee技术本身的低功耗、低成本特性,使得在仅用电池供电的情况下有更长的工作时间。系统涉及到通信原理、无线技术、抗干扰技术、软件设计等多种理论和技术,为ZigBee技术的广泛应用提供了依据。