张朝平段睿潇张 扬(.上海山源电子科技股份有限公司,上海 06;.华中科技大学,湖北 武汉 430074)
WiFi对讲机的设计
张朝平1段睿潇2张 扬2
(1.上海山源电子科技股份有限公司,上海 201612;2.华中科技大学,湖北 武汉 430074)
摘 要:本文介绍了WiFi对讲机的对讲原理、软硬件设计要点以及关键技术,设计出来的WiFi对讲机经测试,完全满足对讲联络的要求,是传统模拟数字对讲机的有力补充。
关键词:对讲机;WiFi通信;测试效果
目前模拟、数字对讲机已经得到了广泛应用,但是,在楼房、厂房等较为分散的有阻挡的区域之间,这些模拟和数字对讲机就失去了作用。现在,以太网和WiFi无线网络已经非常普遍,特别是特大型企业内部的局域网和WiFi无线网络基本上实现了网络全覆盖,在这些企业中,利用现有的有线和无线网络实现对讲通话等工作联络是非常需要的。为此,我们设计了WiFi对讲机,通过WiFi网络来实现远程对讲。
通过MIC采集声音信号并进行A/D转换,MCU对A/D转换过的数字信号进行编码,再把编码后的数据以50ms为一包,按照选择的通道,通过WiFi的组播发送出去。在收到其他对讲机发来的组播数据包后,MCU进行解码,并缓存150ms的语音数据,待缓存满后开始取出缓存的数据进行D/A转换,把语音数据转换成模拟信号,再经功放后接入喇叭,播放出声音。
和传统对讲机一样,WiFi对讲机设置有通道选择旋钮,共16个通道,每一个通道对应一个组播地址,相同组播地址的对讲机能够实现语音数据的相互收发,实现分组对讲。
WiFi无线信号会随着对讲机的移动出现信号飘移,为了使语音播放更流畅,需要对收到的语音数据进行缓存,这样,偶尔出现传输延迟,也不至于引起语音播放的卡顿。缓存时间越长,播放越流畅,但时间过长就会有延迟的感觉。本设计采用150ms的缓存,这样,播放的声音听起来基本感觉不到延迟,而又起到了补偿传输延迟避免卡顿的作用。
无线传输语音数据要尽量少地占用带宽,以便减少传输时间,使MCU能够有丢包重传的处理时间,这就需要对语音数据进行编码和解码。比较ADPCM、G.711、G.721等语音编码,ADPCM编码把语音数据按1∶4的压缩比进行压缩,算法简单,占用MCU时间短,解码后语音质量良好。本设计采用了ADPCM编解码算法。
漫游是移动对讲必须要解决的问题,以便实现对讲机在跨越WiFi路由器时不中断对讲。对讲机中的WiFi模块在检测到连接的路由器的信号强度(RSSI)小于-80DB时,开始检测其他路由器的信号强度,当其他路由器的信号强度大于-70DB时,则立刻连接到信号强度较强的这台路由器。为了更快速地进行路由器连接切换,在部署路由器网络时,所有路由器全部配置成相同的名字(SSID),这样,漫游时,对讲机只检测SSID相同的路由器的信号强度,使路由检测和切换速度大大提高。
图1 硬件构成图
对讲机由WiFi模块、MCU、CODEC编解码、数字功放、MIC、SPEAK、电源部分等组成,其构成框图如图1所示。
选用意法的4系列ARM芯片作为MCU,ARM芯片本身带有128K RAM,完全满足语音数据缓存和WiFi收发所需内存,ARM芯片具有两个SPI,一个与WiFi模块通信,一个与编解码芯片通信,用于收发语音数据,还具有一个I2C接口,该接口与编解码芯片通信,用于对编解码芯片初始化和参数配置。
选用TI公司的内置2W数字功放的编解码(CODEC)芯片AIC3100,该芯片可直接接入MIC和4Ω喇叭。可以通过寄存器设置,进行语音滤波、回音抑制、音量调节等。该芯片的I2C接口用于寄存器配置和语音采集与播放控制,SPI接口用于传输语音数据。
通道选择旋钮驱动MCU上的GPIO,以便MCU检测出选择的通道,MCU检测到所选通道后,通过SPI接口,配置WiFi模块的组播地址,以便实现组内语音数据的组播收发,实现分组对讲功能。
音量调节旋钮接入MCU的一路A/D通道,以便MCU检测出调节的音量,MCU根据测得的音量旋钮的电阻值,通过I2C接口配置CODEC芯片的音量大小,达到音量调节的作用。
WiFi模块选用具备SPI透传接口的低功耗嵌入式模块,天线采用模块自带的板载天线,工作模式选择为STA模式,组播功能开启。
软件系统包括MCU本身初始化、WiFi模块初始化、CODEC芯片初始化、语音采集播放控制、语音数据收发、通道检测、音量检测等环节。
整个软件系统采用UCOSII开源的实时多任务操作系统,分3个任务:按键旋钮扫描任务、语音采集与播放任务、WiFi通信任务。任务间通过消息进行协同操作。
任务划分及任务处理流程图分别如下。图2为任务分配图,图3为协议处理任务流程图,图4为消息处理流程图,图5为语音处理流程图。
把所有与PTT按键、通道选择旋钮、音量调节旋钮、开关机键等硬件相关的检测放在按键旋钮扫描任务中,当发现某个部件状态发生变化时,就向系统发出相应的消息。其他任务检测到该消息时,就做出相应的处理。
语音采集与播放任务主要用来管理MCU与CODEC芯片之间的通信。当收到PTT按下的消息时,就控制CODEC芯片开始进行MIC语音数据的采集,并从CODEC芯片中通过SPI口取出语音流数据,进行编码储存,等到语音数据达到约定的50ms数据时,就向系统发出传输语音数据的消息。另一方面,当收到外部语音数据时,就开始解码并缓存语音数据,当数据达到150ms时,MCU就控制CODEC芯片开始播放收到的语音数据。
WiFi通信任务主要是处理WiFi通信协议并进行双向的语音组播。
图2 任务分配图
图3 协议处理任务流程
图4 其他消息处理流程
图5 语音处理任务流程
对讲机样机做好后,对对讲的流畅性以及漫游特性进行了测试。在一个3000m2的厂房中部署了两台路由器,用4只对讲机进行测试。
把对讲机两两设置成相同的通道,对讲时,不同分组的对讲机可以同时对讲,而不会产生干扰,静止状态时,通话流畅,但在频繁转身时,偶尔会出现声音卡顿现象。
在对讲过程中,从一个路由器附近走向另一个路由,中间大约有一秒钟的卡顿。
整个对讲基本能够顺利进行。
WiFi对讲机能够实现不同区域的远程对讲,是传统模拟或数字对讲机较难实现不同区域远程对讲的有力补充。测试表明,设计的WiFi对讲机从功能和性能上,能够满足对讲联络的要求。
参考文献
[1]卢瑶,宗蓓蓓,胡春涛.远程WiFi技术状态下的手机无线对讲遐想[J].西部广播电视,2015(3):146-146.
中图分类号:TN92
文献标识码:A
Abstract:This paper describes the principle of WiFi interphone, the key point of hardware and software design, and the key technology. The test shows that the WiFi interphone is completely meet the requirements for communication. What is more, the phone is also an addition of traditional analogous and digital interphone.
Keywords:interphone; WiFi communication; test effect