基于IEEE802.1 5.4/ZigBee的语音通信系统
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技术的广泛应用提供了依据。
评论