姚引娣
(西安郵電學(xué)院通信與信息工程學(xué)院,西安 710121)
我國是一個(gè)地質(zhì)災(zāi)難頻發(fā)的國家。地質(zhì)災(zāi)難發(fā)生頻率、強(qiáng)度不僅直接對(duì)人民生命財(cái)產(chǎn)造成巨大損失,而且造成的二次災(zāi)難影響不可忽略,例如,因供電網(wǎng)絡(luò)癱瘓?jiān)斐傻拇竺娣e停電事故進(jìn)而造成社會(huì)的巨大損失[1]。因此,在出現(xiàn)地質(zhì)災(zāi)難時(shí),建立一套緊急通信系統(tǒng)是非常必要和緊迫的。由于地質(zhì)災(zāi)難往往導(dǎo)致常規(guī)通信網(wǎng)絡(luò)設(shè)備失效,目前應(yīng)急通信主要依靠衛(wèi)星電話或?qū)χv機(jī)系統(tǒng)。然而,衛(wèi)星電話設(shè)備費(fèi)用及日常資費(fèi)均偏高,因此一般單位很少配備。而對(duì)講機(jī)[2]只能實(shí)現(xiàn)半雙工通信,即發(fā)起方在說話時(shí)聽不到其它人的語音,而且通信雙方時(shí)常因?yàn)閾屧挾y以順利溝通。如果多人同時(shí)搶話,將造成系統(tǒng)無法正常通信。因此需要一種更好的應(yīng)急通信方案來解決目前的困境。文獻(xiàn)[3]提出一種基于Ad Hoc的語音多播系統(tǒng),文獻(xiàn)[4]提出一種基于SIP協(xié)議的實(shí)時(shí)語音通信,但是它們均需要中心服務(wù)器進(jìn)行處理,系統(tǒng)設(shè)計(jì)復(fù)雜,靈活性差。
針對(duì)以上問題,本文提出一種采用無線Ad Hoc網(wǎng)絡(luò)的嵌入式系統(tǒng)[4-6]。該系統(tǒng)以TI公司的OMAP5912芯片作為核心處理器,以Linux系統(tǒng)作為軟件開發(fā)平臺(tái),通過G729a[7]語音編碼算法節(jié)省頻帶需求,通過動(dòng)態(tài)語音解碼算法實(shí)現(xiàn)多人同時(shí)進(jìn)行通話的目的。
考慮到系統(tǒng)的便攜性,系統(tǒng)采用嵌入式方式進(jìn)行設(shè)計(jì),選用TI公司的OMAP5912作為核心處理器,它在滿足系統(tǒng)處理能力的同時(shí)具有低功耗特點(diǎn)。為了實(shí)現(xiàn)應(yīng)急無線多方通話系統(tǒng),系統(tǒng)重點(diǎn)考慮兩個(gè)關(guān)鍵問題:支持隨時(shí)隨地通信功能和無線多方話音通信功能。
針對(duì)第一個(gè)問題,一般可以采用無線WiFi模塊的嵌入式話音通信方式來實(shí)現(xiàn)隨時(shí)隨地通信需求。采用WiFi模塊組網(wǎng)的系統(tǒng)支持兩種組網(wǎng)模式:基于AP方式的組網(wǎng)模式和基于Ad Hoc方式的組網(wǎng)模式。由于基于AP的組網(wǎng)模式需要一個(gè)中心節(jié)點(diǎn)負(fù)責(zé)轉(zhuǎn)發(fā)和處理系統(tǒng)內(nèi)部各成員之間語音信息,一旦該節(jié)點(diǎn)失效,整個(gè)系統(tǒng)將無法工作。而基于Ad Hoc組網(wǎng)模式的用戶進(jìn)行語音通信不需要中心節(jié)點(diǎn)轉(zhuǎn)發(fā),相互之間地位平等,可以直接進(jìn)行通信。因此,本系統(tǒng)采用基于Ad Hoc的組網(wǎng)模式進(jìn)行無線組網(wǎng)。
針對(duì)第二個(gè)問題,系統(tǒng)需要采用組播方式進(jìn)行設(shè)計(jì)??紤]到在環(huán)境惡劣的條件下系統(tǒng)的帶寬有限,為了容納更多的用戶,需要采用合適的語音編解碼算法以進(jìn)一步降低單個(gè)用戶的帶寬需求,從而提高系統(tǒng)用戶的容量。結(jié)合系統(tǒng)的話音質(zhì)量以及算法的復(fù)雜度設(shè)計(jì),本系統(tǒng)采用G729a語音編碼算法,同時(shí)提出動(dòng)態(tài)多用戶語音解碼算法以滿足多用戶話音通信。
根據(jù)上面的分析,本文分別從系統(tǒng)硬件和軟件進(jìn)行設(shè)計(jì),以達(dá)到多方話務(wù)應(yīng)急通信的目的。
系統(tǒng)結(jié)構(gòu)如圖1所示,包括OMAP5912處理器、耳麥模塊、WiFi網(wǎng)卡、鍵盤和顯示器。其中,OMAP5912負(fù)責(zé)運(yùn)行處理語音編解碼算法、混音技術(shù)、無線組網(wǎng);耳麥模塊負(fù)責(zé)對(duì)話音數(shù)據(jù)的采集和播放;WiFi網(wǎng)卡負(fù)責(zé)完成通信雙方的數(shù)據(jù)交換;小鍵盤負(fù)責(zé)對(duì)系統(tǒng)的控制。顯示屏提供系統(tǒng)狀態(tài)信息。
圖1 系統(tǒng)結(jié)構(gòu)原理圖Fig.1 Schematic diagram of system
耳麥模塊主芯片選用TI公司的AIC23芯片,它提供語音信息模數(shù)轉(zhuǎn)換和數(shù)模轉(zhuǎn)換。本系統(tǒng)采用16位的話音數(shù)據(jù)格式,采樣頻率采用8 KHz。如圖2所示,通過OMAP5912的I2C接口完成對(duì)AIC23的可編程設(shè)置。OMAP5912與AIC23的音頻數(shù)據(jù)通過OMAP5912的MCBSP接口完成。
圖2 AIC23基本電路圖Fig.2 Basic circuit of AIC23
LCD顯示器選用SHARP公司的LQ035Q7DB03,OMAP5912通過專用LCD接口與其連接??紤]到LCD控制模塊輸出的信號(hào)時(shí)序與LQ035Q7DB03的接口不匹配,故用SHARP公司與之配套的LCD驅(qū)動(dòng)芯片LZ9FC22進(jìn)行轉(zhuǎn)換,從而實(shí)現(xiàn)OMAP5912與實(shí)現(xiàn)與LQ035Q7DB03的無縫連接,硬件電路如圖3所示。
圖3 OMAP5912與LCD接口電路圖Fig.3 Interface circuit of OMAP5912 and LCD
系統(tǒng)的無線通信模塊采用基于RT73芯片的無線WiFi網(wǎng)卡,它工作在2.4 GHz的 ISM頻段,負(fù)責(zé)完成各用戶之間語音和數(shù)據(jù)信息的交換。它與CPU之間通信通過USB接口實(shí)現(xiàn)。
系統(tǒng)小鍵盤通過OMAP5912專用8×8 I/O接口與OMAP5912連接,通過微處理器輸入輸出單元(Microprocessor Unit Input/Output,MPUIO)控制完成鍵盤輸入。其中,MPUIO的KBR-LATCH為鍵盤行輸入,KBC-REG為鍵盤列輸出,通過對(duì)這兩個(gè)寄存器進(jìn)行讀寫,可以進(jìn)行行/列的掃描。本設(shè)計(jì)采用中斷和掃描相結(jié)合的方法實(shí)現(xiàn)4×5鍵盤驅(qū)動(dòng),從而有效節(jié)省系統(tǒng)資源,提高使用效率。
本系統(tǒng)軟件平臺(tái)采用Linux2.6.29操作系統(tǒng)。系統(tǒng)主程序結(jié)構(gòu)圖如圖4所示。在完成系統(tǒng)初始化設(shè)置后,先建立基于Ad Hoc的無線組播網(wǎng)絡(luò),然后利用QT界面控制技術(shù)實(shí)現(xiàn)整個(gè)系統(tǒng)的控制和管理。系統(tǒng)按功能模塊可以劃分為語音處理模塊、無線通信模塊、鍵盤處理模塊和圖像顯示模塊。
圖4 系統(tǒng)主程序結(jié)構(gòu)圖Fig.4 Structure of system main program
由于無線通信模塊、鍵盤處理模塊和圖像顯示模塊相對(duì)簡單,這里不一一分析,本文重點(diǎn)研究語音處理模塊的實(shí)現(xiàn)。語音處理包括語音編碼及發(fā)送處理部分和多用戶語音解碼及混音回放兩部分,如圖5所示。語音編碼及發(fā)送處理部分首先將AIC23聲卡采集到的數(shù)據(jù)緩存到buffer單元,然后采用G729a語音編碼算法進(jìn)行語音編碼處理,它以每10 ms(80個(gè)語音樣本)為一個(gè)處理語音幀,對(duì)語音信號(hào)分析并提取各種參數(shù)(線性預(yù)測濾波器參數(shù)、自適應(yīng)碼本和固定碼本的索引、自適應(yīng)碼本增益和固定碼本增益),最后把這些參數(shù)編碼輸出到WiFi發(fā)送緩存空間,由WiFi發(fā)送模塊將數(shù)據(jù)發(fā)送出去??紤]到G729a語音解碼算法在處理每幀語音數(shù)據(jù)時(shí),需要前視后一幀的數(shù)據(jù),如果某個(gè)話路前視的是別的話路的數(shù)據(jù),將影響本話路的編碼,從而破壞每個(gè)話路幀與幀之間的聯(lián)系。故G729a算法一般只適合單一用戶數(shù)據(jù)處理。因此,在實(shí)現(xiàn)多用戶語音解碼及混音回放時(shí)需要改進(jìn)原有G729a語音解碼算法。
圖5 語音編解碼處理流程Fig.5 Flow of voice encoding/decoding processing
考慮到實(shí)際多人語音通信時(shí),同時(shí)說話的人并不多,否則大家都聽不清楚誰說的話。如果系統(tǒng)在語音解碼設(shè)計(jì)部分對(duì)每一個(gè)人都建立解碼通道并進(jìn)行實(shí)時(shí)譯碼,一方面會(huì)增加系統(tǒng)資源開銷,另一方面也會(huì)增加系統(tǒng)CPU的處理負(fù)擔(dān),因此本文提出一種動(dòng)態(tài)多用戶語音解碼算法來達(dá)到支持多用戶實(shí)時(shí)語音解碼目的。
動(dòng)態(tài)多用戶語音解碼算法首先建立多用戶話音處理通道,并完成初始化多通道話音處理參數(shù)工作,然后對(duì)接收到的WiFi數(shù)據(jù)包提取用戶ID信息和語音信息。根據(jù)輸入用戶ID信息判斷當(dāng)前幀是否與前一幀用戶一致,如果一致,則繼續(xù)進(jìn)行語音解碼;如果不一致,先判斷是老用戶信息還是新用戶信息。如果收到語音信息包屬于已創(chuàng)建的用戶,則調(diào)出對(duì)應(yīng)老用戶參數(shù)信息表進(jìn)行解碼;如果屬于新用戶的,則創(chuàng)建新用戶話音解碼通道,然后進(jìn)行話音解碼。完成語音處理后對(duì)現(xiàn)存語音通信用戶進(jìn)行判決處理,如果占用語音譯碼處理通道的用戶一段時(shí)間沒有通話,就釋放該用戶信息,以便接納新的語音通話用戶。
對(duì)于G729a多用戶解碼器輸出的多用戶語音信息,采用混音處理算法進(jìn)行處理,然后通過AIC23聲卡回放,從而實(shí)現(xiàn)多用戶語音通信功能。
系統(tǒng)無線網(wǎng)絡(luò)采用基于Ad Hoc的MOLSR協(xié)議進(jìn)行組網(wǎng)。系統(tǒng)的AIC23聲卡采用16 bit單聲道采樣。這里主要驗(yàn)證系統(tǒng)的組網(wǎng)能力以及語音通信的效果。
為了驗(yàn)證系統(tǒng)的組網(wǎng)能力,先測試系統(tǒng)的吞吐率,它是多用戶語音通信得以實(shí)現(xiàn)的前提。這里采用Netperf軟件進(jìn)行分析,測試表明基于UDP的傳輸速度,兩點(diǎn)間的平均速度可達(dá)3.4 Mbit/s。對(duì)于語音通信而言,基于AIC23芯片的語音通信采樣頻率是8 KHz,采用16 bit單聲道采樣,所需帶寬為128 KHz。而G729a的壓縮率為16∶1,故所需帶寬僅為8 KHz。因此,該無線網(wǎng)卡支持多用戶通信。
然后對(duì)語音音質(zhì)進(jìn)行測試,這里利用由Cooledit2000軟件進(jìn)行分析,如圖6所示,原始語音和采用G729a語音編解碼處理后的語音波形基本一樣,從音質(zhì)效果上看,語音清晰,達(dá)到MOS=4的語音測試水平。
圖6 多用戶G729a語音解碼處理流程圖Fig.6 Flowchart of multi-user G729a voice decoding processing
最后對(duì)系統(tǒng)語音延遲進(jìn)行測試,無線傳輸時(shí)語音數(shù)據(jù)每次發(fā)送4幀數(shù)據(jù),每幀包含10 ms語音數(shù)據(jù),系統(tǒng)整體延時(shí)約為60 ms,聽者基本感覺不到延遲效應(yīng)。
本文設(shè)計(jì)了一套多用戶實(shí)時(shí)語音通信系統(tǒng)。通過動(dòng)態(tài)多用戶語音解碼算法有效解決了多用戶話音處理與用戶容量關(guān)聯(lián)較大的問題,實(shí)現(xiàn)了系統(tǒng)多點(diǎn)對(duì)多點(diǎn)語音實(shí)時(shí)處理。利用WiFi模塊實(shí)現(xiàn)Ad Hoc組網(wǎng)有效地發(fā)揮系統(tǒng)組網(wǎng)快捷、靈活等特點(diǎn),提高了系統(tǒng)的靈活性。利用OMAP5912嵌入式平臺(tái)發(fā)揮了系統(tǒng)低功耗的特點(diǎn),為應(yīng)急通信提供了可靠的保障,系統(tǒng)具有重大的研究價(jià)值與廣闊的應(yīng)用前景。
[1]趙建青,尹項(xiàng)根.廣東110kV電網(wǎng)大面積停電問題的分析及解決方案[J].電力自動(dòng)化設(shè)備,2003,23(8):82-84.ZHAO Jian-qing,YIN Xiang-gen.Analysis and solution to wider area outage of Guangdong 110kV power grid[J].Electric Power Automation Equipment,2003,23(8):82-84.(in Chinese)
[3]Lu Han,Smaldone S,Shankar P,et al.Ad-hoc voicebased group communication[C]//Proceedings of 2010 IEEE International Conference on Pervasive Computing and Communications.[S.l.]:IEEE,2010:190-198.
[4]李振宇,李思敏.一種移動(dòng)Ad hoc網(wǎng)絡(luò)中實(shí)時(shí)語音通信方案的研究[J].電子測量與儀器學(xué)報(bào),2009,23(5):40-45.LI Zhen-yu,LI Si-min.Research of solution for realtime speech communication over mobile Ad hoc network[J].Journal of Electronic Measurement and Instrument,2009,23(5):40-45.(in Chinese)
[5]林小茶,李光,金爽.嵌入式可信計(jì)算機(jī)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2009,30(16):3730-3734.LIN Xiao-cha,LI Guang,JIN Shuang.Study of embedded trusted computer[J].Computer Engineering and Design,2009,30(16):3730-3734.(in Chinese)
[6]孫延嶺,趙雪飛,張紅芳,等.基于AR M 嵌入式系統(tǒng)的微型智能可編程控制器[J].電力系統(tǒng)自動(dòng)化,2010,34(10):101-104.SUN Yan-ling,ZHAO Xue-fei,ZHANG Hong-fang,et al.Micro Intelligent Programmable Logic Controller with AR M Embedded System[J].Automation of Electric Power Systems,2010,34(10):101-104.(in Chinese)
[7]辛杰,鮑長春,賈懋王申,等.改進(jìn)的符合EV-VBR標(biāo)準(zhǔn)的嵌入式寬帶語音編碼器[J].通信學(xué)報(bào),2010,31(6):7-13.XIN Jie,BAO Chang-chun,JIA Mao-shen,et al.Improved embedded wideband speech codec fitting EV-VBR standard[J].Journal on Communications,2010,31(6):7-13.(in Chinese)