处理器/DSP
当前移动电话以方便、快捷的通话特点已经成为人们的日常生活品之一。然而,它需要基站支持。如果处于基站覆盖区外,用户就很难进行通信。并且它一般只适合两个用户之间通信,这难以适用于应急通信或临时会议等应用场合。针对这一问题,本文提出一种采用Wi-Fi(Wireless Fidelity,无线保真)传输技术的嵌入式系统。它利用Ad-Hoc进行自组织组网,实现多人同时进行通话的目的。该系统不需要专用基站,从而解决移动电话需要专网的不足。
1 系统设计思想
无线多方通话系统是指在同一个系统中允许多人同时进行对话,它不同于常规对讲机。对讲机只能实现半双工通信,即发起方在说话时,听不到其他人的语音。通信双方时常因为抢话而难以顺利沟通。如果多人同时抢话,将造成系统无法正常通信。
为了实现无线多方通话,需要解决两个关键问题:无线局域网的建立、系统语音通信的方法。无线局域网可以采用基于AP方式的组网和基于Ad-Hoc方式的组网。基于AP方式的组网需要选择一个中心节点,它负责转发和处理下面各成员之间的语音信息。然而,如果该节点失效,整个网络就会瘫痪,而基于Ad-Hoc方式的网络内各用户地位均等,各用户在彼此覆盖范围可以建立对等的通信关系直接通信。考虑到系统的便携性和实用性,系统采用基于Ad-Hoc方式进行无线组网。
在建立无线局域网后,可以采用RTP协议实现简单的点对点语音通话。为了实现多方话务系统,还需要采用组播方式。由于无线局域网的有效带宽有限,为了容纳更多的用户,需要采用合适的语音编解码算法以降低各自带宽的需求。语音编码一般分为三种类型:波形编码、参数编码和波形参数混合编码。波形编码的语音自然度高,但是压缩效率比较差,常在32 kbps以上。参数编码特点是语音压缩效率高,但是自然度比较差,能够在极低速率进行编码。而波形参数混合编码结合了以上两者的长处,代表算法有G.723、G.729等,能在4~16 kbps的速率上进行高质量的语音合成。考虑到算法的复杂度和对语音的需求,这里选用适合嵌入式应用的G729a算法。接收方接收到多个用户的语音信息后先进行相应的语音解码,然后采取混音技术实现实时接听多人话音。
考虑到系统的便携性以及系统开发的难易程度,选择Linux2.6操作系统作为软件开发平台,以TI的OMAP5912作为中央处理器,利用无线网卡组建Ad-Hoc网络,利用Qt技术实现图形界面显示和系统控制。最终完成在局域网内进行多方话务通信的功能。
2 系统硬件设计
本系统结构如图1所示。该无线局域网内有N个用户,其中N的取值范围为[2,253]。每个用户的系统架构相同,它包括语音采集/播放模块、触摸屏、无线网卡、中央处理单元和电源模块。
2.1 中央处理器与语音采集/播放模块之间通信
这里选用TI公司的低功耗处理芯片OMAP5912,它采用ARM9+DSP55X的双核构架。而声卡主芯片选用TI公司的AIC23芯片,该芯片是一款高性能的立体声语音编解码器,提供模/数转换和数/模转换,数据格式支持16/20/24/32,采样频率支持[8 kHz,96 kHz]范围内可调。如图2所示,AIC23的可编程设置通过OMAP5912的I2C接口完成。AIC23的音频数据通过与OMAP5912的MCBSP接口相连完成数字化音频输入/输出,而AIC的耳麦输入/输出接口相对简单,利用该电路可以完成自身语音的采集和还原其他用户传来语音信息。
2.2 中央处理器与触摸屏之间通信
考虑到图像的直观性和操控的灵活性,选用三星公司的LTV350QV_FOE触摸屏,它采用320×240像素液晶输出方式。对液晶的控制是通过专用芯片ADS7843来完成的。图3所示是OMAP5912与ADS7843的接口电路图。OMAP5912通过MCSI接口来实现与ADS7843的命令、数据的串行输入/输出,并通过将KB.CX引脚复用成GPIO,然后实现PENIRQ与BUSY信号的中断触发。
2.3 无线通信模块与OMAP之间通信
系统的无线通信模块采用基于RT2571芯片的802.11无线网卡,它工作在2.4 GHz的ISM工作频段,负责完成各用户之间语音和数据信息的交换。它与CPU之间通信是通过USB接口实现。
整个系统以超声波发射和接收电路为核心进行设计,系统采用直接数字频率合成芯片AD9833产生脉冲串,经过功率放大电路驱动超声波换能器,超声波经过悬浊液到达接收换能器,利用92 dB对数放大器AD8307对回波衰减信号进行对数放大,最后由微控制器对数据进行处理得出浓度值。系统还配备了键盘、显示、参数存储、开关量输出、继电器输出、电流输出、UART通信等功能。
3 系统软件设计
本系统软件可以分为3个功能模块:语音信息处理模块、无线通信模块和QT控制模块。其中QT控制模块负责图形界面显示和人机接口控制。为了便于实现系统管理,采用基于Linux操作系统的应用程序开发模式,操作系统则选用Linux2.6.29版本。系统主程序结构如图4所示。
在完成必要的软硬件初始化后,系统进入QT界面控制程序,QT界面控制程序负责两大功能:
①语音编解码处理。如图5所示,语音信号的处理是通过DSP55X内核完成。它采用双线程处理。线程1负责语音编码处理。此时DSP内核采用双缓存机制保存ARM9送入的本地语音数据。它利用G729a定点编码算法实现对语音的压缩处理,然后送给ARM9内核。线程2负责语音解码处理。ARM接收到的语音数据送入DSP内核后利用多用户解码算法恢复各个用户的语音信息,然后回送给ARM9内核处理。
②无线语音和声卡数据的收发以及混音处理。它由ARM9内核完成。ARM9内核与DSP内核的通信是通过DSP Gateway双核通信机制方式实现,由ARM9内核负责控制。对于语音编码,ARM9负责把AIC23采集的缓存数据写入到DSP的编码器中。编码完的数据放入发送缓存单元,当发送缓冲区放满之后,ARM端就会将数据通过网口发送出去。然后将编码后的数据通过无线网卡发送出去。语音解码与编码过程相反,首先通过无线网卡接收其他用户发送过来的比特流,并提取用户信息,送入DSP端解码,经过解码器解码后,判别当前是否多用户通信,如果是就启动混音程序,再输出至音频接口,变为模拟语音信号播放。
4 系统测试
测试系统采用3块OMAP5912开发板和对应的3块无线网卡。无线网卡选用华硕网卡W167g,采用Ad-Hoc进行组网。针对系统需求,需要测试系统的有效带宽和语音延迟以及音质。
系统的有效带宽是保证多用户语音通话的前提。这里利用Netperf软件进行分析,测试表明基于UDP的传输速度,两点间的平均速度可达3.4 Mbps。
对于语音通信而言,基于AIC23芯片的语音通信采样速度是8 kHz,采用16比特单声道采样,所需带宽为128 kbps。而G729a的压缩率为16:1。故所需带宽仅为8 kbps。因此,该无线网卡支持多用户通信。
然后对语音音质进行测试,这里利用由Cooledit2000软件进行分析,如图6所示,原始语音和采用G729a语音编解码处理后的语音波形虽有所损伤,但基本一样,从音质效果上看,语音清晰,达到MOS=4的语音测试水平。
最后对系统语音延迟进行测试,无线传输时语音数据每次发送4帧数据,每帧包含10 ms语音数据,系统整体延时约为60 ms,听者基本感觉不到延迟效应。
通过以上测试,系统可以正常工作,达到设计目标。
结语
本文设计了一套可供无线局域网内实时语音通信系统,它以OMAP5912作为系统硬件平台,采用QT界面技术进行管理。用户可以方便地进行多人通话。由于采用嵌入式方式进行设计,适合于应急通信和临时移动会议等便携式通信场合。
责任编辑:gt
全部0条评论
快来发表一下你的评论吧 !