提出一種便攜式的無(wú)線通信系統(tǒng),它采用OMAP5912作為系統(tǒng)中央處理器,利用Wi-Fi模塊組建Ad-Hoe無(wú)線網(wǎng)絡(luò),采用G729a編解碼傳輸語(yǔ)音信息,并利用混音技術(shù)實(shí)現(xiàn)多方通話功能。測(cè)試表明,該系統(tǒng)不需要專用基站,可隨時(shí)隨地實(shí)現(xiàn)實(shí)時(shí)語(yǔ)音通信,適合應(yīng)急通信等無(wú)線應(yīng)用場(chǎng)合。
引言
當(dāng)前移動(dòng)電話以方便、快捷的通話特點(diǎn)已經(jīng)成為人們的日常生活品之一。然而,它需要基站支持。如果處于基站覆蓋區(qū)外,用戶就很難進(jìn)行通信。并且它一般只適合兩個(gè)用戶之間通信,這難以適用于應(yīng)急通信或臨時(shí)會(huì)議等應(yīng)用場(chǎng)合。針對(duì)這一問(wèn)題,本文提出一種采用Wi-Fi(Wireless Fidelity,無(wú)線保真)傳輸技術(shù)的嵌入式系統(tǒng)。它利用Ad-Hoc進(jìn)行自組織組網(wǎng),實(shí)現(xiàn)多人同時(shí)進(jìn)行通話的目的。該系統(tǒng)不需要專用基站,從而解決移動(dòng)電話需要專網(wǎng)的不足。
1 系統(tǒng)設(shè)計(jì)思想
無(wú)線多方通話系統(tǒng)是指在同一個(gè)系統(tǒng)中允許多人同時(shí)進(jìn)行對(duì)話,它不同于常規(guī)對(duì)講機(jī)。對(duì)講機(jī)只能實(shí)現(xiàn)半雙工通信,即發(fā)起方在說(shuō)話時(shí),聽不到其他人的語(yǔ)音。通信雙方時(shí)常因?yàn)閾屧挾y以順利溝通。如果多人同時(shí)搶話,將造成系統(tǒng)無(wú)法正常通信。
為了實(shí)現(xiàn)無(wú)線多方通話,需要解決兩個(gè)關(guān)鍵問(wèn)題:無(wú)線局域網(wǎng)的建立、系統(tǒng)語(yǔ)音通信的方法。無(wú)線局域網(wǎng)可以采用基于AP方式的組網(wǎng)和基于Ad-Hoc方式的組網(wǎng)。基于AP方式的組網(wǎng)需要選擇一個(gè)中心節(jié)點(diǎn),它負(fù)責(zé)轉(zhuǎn)發(fā)和處理下面各成員之間的語(yǔ)音信息。然而,如果該節(jié)點(diǎn)失效,整個(gè)網(wǎng)絡(luò)就會(huì)癱瘓,而基于Ad-Hoc方式的網(wǎng)絡(luò)內(nèi)各用戶地位均等,各用戶在彼此覆蓋范圍可以建立對(duì)等的通信關(guān)系直接通信。考慮到系統(tǒng)的便攜性和實(shí)用性,系統(tǒng)采用基于Ad-Hoc方式進(jìn)行無(wú)線組網(wǎng)。
在建立無(wú)線局域網(wǎng)后,可以采用RTP協(xié)議實(shí)現(xiàn)簡(jiǎn)單的點(diǎn)對(duì)點(diǎn)語(yǔ)音通話。為了實(shí)現(xiàn)多方話務(wù)系統(tǒng),還需要采用組播方式。由于無(wú)線局域網(wǎng)的有效帶寬有限,為了容納更多的用戶,需要采用合適的語(yǔ)音編解碼算法以降低各自帶寬的需求。語(yǔ)音編碼一般分為三種類型:波形編碼、參數(shù)編碼和波形參數(shù)混合編碼。波形編碼的語(yǔ)音自然度高,但是壓縮效率比較差,常在32 kbps以上。參數(shù)編碼特點(diǎn)是語(yǔ)音壓縮效率高,但是自然度比較差,能夠在極低速率進(jìn)行編碼。而波形參數(shù)混合編碼結(jié)合了以上兩者的長(zhǎng)處,代表算法有G.723、G.729等,能在4~16 kbps的速率上進(jìn)行高質(zhì)量的語(yǔ)音合成。考慮到算法的復(fù)雜度和對(duì)語(yǔ)音的需求,這里選用適合嵌入式應(yīng)用的G729a算法。接收方接收到多個(gè)用戶的語(yǔ)音信息后先進(jìn)行相應(yīng)的語(yǔ)音解碼,然后采取混音技術(shù)實(shí)現(xiàn)實(shí)時(shí)接聽多人話音。
考慮到系統(tǒng)的便攜性以及系統(tǒng)開發(fā)的難易程度,選擇Linux2.6操作系統(tǒng)作為軟件開發(fā)平臺(tái),以TI的OMAP5912作為中央處理器,利用無(wú)線網(wǎng)卡組建Ad-Hoc網(wǎng)絡(luò),利用Qt技術(shù)實(shí)現(xiàn)圖形界面顯示和系統(tǒng)控制。最終完成在局域網(wǎng)內(nèi)進(jìn)行多方話務(wù)通信的功能。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)結(jié)構(gòu)如圖1所示。該無(wú)線局域網(wǎng)內(nèi)有N個(gè)用戶,其中N的取值范圍為[2,253]。每個(gè)用戶的系統(tǒng)架構(gòu)相同,它包括語(yǔ)音采集/播放模塊、觸摸屏、無(wú)線網(wǎng)卡、中央處理單元和電源模塊。
?
2.1 中央處理器與語(yǔ)音采集/播放模塊之間通信
這里選用TI公司的低功耗處理芯片OMAP5912,它采用ARM9+DSP55X的雙核構(gòu)架。而聲卡主芯片選用TI公司的AIC23芯片,該芯片是一款高性能的立體聲語(yǔ)音編解碼器,提供模/數(shù)轉(zhuǎn)換和數(shù)/模轉(zhuǎn)換,數(shù)據(jù)格式支持16/20/24/32,采樣頻率支持[8 kHz,96 kHz]范圍內(nèi)可調(diào)。如圖2所示,AIC23的可編程設(shè)置通過(guò)OMAP5912的I2C接口完成。AIC23的音頻數(shù)據(jù)通過(guò)與OMAP5912的MCBSP接口相連完成數(shù)字化音頻輸入/輸出,而AIC的耳麥輸入/輸出接口相對(duì)簡(jiǎn)單,利用該電路可以完成自身語(yǔ)音的采集和還原其他用戶傳來(lái)語(yǔ)音信息。
?
2.2 中央處理器與觸摸屏之間通信
考慮到圖像的直觀性和操控的靈活性,選用三星公司的LTV350QV_FOE觸摸屏,它采用320×240像素液晶輸出方式。對(duì)液晶的控制是通過(guò)專用芯片ADS7843來(lái)完成的。圖3所示是OMAP5912與ADS7843的接口電路圖。OMAP5912通過(guò)MCSI接口來(lái)實(shí)現(xiàn)與ADS7843的命令、數(shù)據(jù)的串行輸入/輸出,并通過(guò)將KB.CX引腳復(fù)用成GPIO,然后實(shí)現(xiàn)PENIRQ與BUSY信號(hào)的中斷觸發(fā)。
?
2.3 無(wú)線通信模塊與OMAP之間通信
系統(tǒng)的無(wú)線通信模塊采用基于RT2571芯片的802.11無(wú)線網(wǎng)卡,它工作在2.4 GHz的ISM工作頻段,負(fù)責(zé)完成各用戶之間語(yǔ)音和數(shù)據(jù)信息的交換。它與CPU之間通信是通過(guò)USB接口實(shí)現(xiàn)。
整個(gè)系統(tǒng)以超聲波發(fā)射和接收電路為核心進(jìn)行設(shè)計(jì),系統(tǒng)采用直接數(shù)字頻率合成芯片AD9833產(chǎn)生脈沖串,經(jīng)過(guò)功率放大電路驅(qū)動(dòng)超聲波換能器,超聲波經(jīng)過(guò)懸濁液到達(dá)接收換能器,利用92 dB對(duì)數(shù)放大器AD8307對(duì)回波衰減信號(hào)進(jìn)行對(duì)數(shù)放大,最后由微控制器對(duì)數(shù)據(jù)進(jìn)行處理得出濃度值。系統(tǒng)還配備了鍵盤、顯示、參數(shù)存儲(chǔ)、開關(guān)量輸出、繼電器輸出、電流輸出、UART通信等功能。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件可以分為3個(gè)功能模塊:語(yǔ)音信息處理模塊、無(wú)線通信模塊和QT控制模塊。其中QT控制模塊負(fù)責(zé)圖形界面顯示和人機(jī)接口控制。為了便于實(shí)現(xiàn)系統(tǒng)管理,采用基于Linux操作系統(tǒng)的應(yīng)用程序開發(fā)模式,操作系統(tǒng)則選用Linux2.6.29版本。系統(tǒng)主程序結(jié)構(gòu)如圖4所示。
?
在完成必要的軟硬件初始化后,系統(tǒng)進(jìn)入QT界面控制程序,QT界面控制程序負(fù)責(zé)兩大功能:
①語(yǔ)音編解碼處理。如圖5所示,語(yǔ)音信號(hào)的處理是通過(guò)DSP55X內(nèi)核完成。它采用雙線程處理。線程1負(fù)責(zé)語(yǔ)音編碼處理。此時(shí)DSP內(nèi)核采用雙緩存機(jī)制保存ARM9送入的本地語(yǔ)音數(shù)據(jù)。它利用G729a定點(diǎn)編碼算法實(shí)現(xiàn)對(duì)語(yǔ)音的壓縮處理,然后送給ARM9內(nèi)核。線程2負(fù)責(zé)語(yǔ)音解碼處理。ARM接收到的語(yǔ)音數(shù)據(jù)送入DSP內(nèi)核后利用多用戶解碼算法恢復(fù)各個(gè)用戶的語(yǔ)音信息,然后回送給ARM9內(nèi)核處理。
?
②無(wú)線語(yǔ)音和聲卡數(shù)據(jù)的收發(fā)以及混音處理。它由ARM9內(nèi)核完成。ARM9內(nèi)核與DSP內(nèi)核的通信是通過(guò)DSP Gateway雙核通信機(jī)制方式實(shí)現(xiàn),由ARM9內(nèi)核負(fù)責(zé)控制。對(duì)于語(yǔ)音編碼,ARM9負(fù)責(zé)把AIC23采集的緩存數(shù)據(jù)寫入到DSP的編碼器中。編碼完的數(shù)據(jù)放入發(fā)送緩存單元,當(dāng)發(fā)送緩沖區(qū)放滿之后,ARM端就會(huì)將數(shù)據(jù)通過(guò)網(wǎng)口發(fā)送出去。然后將編碼后的數(shù)據(jù)通過(guò)無(wú)線網(wǎng)卡發(fā)送出去。語(yǔ)音解碼與編碼過(guò)程相反,首先通過(guò)無(wú)線網(wǎng)卡接收其他用戶發(fā)送過(guò)來(lái)的比特流,并提取用戶信息,送入DSP端解碼,經(jīng)過(guò)解碼器解碼后,判別當(dāng)前是否多用戶通信,如果是就啟動(dòng)混音程序,再輸出至音頻接口,變?yōu)?a href="http://www.xsypw.cn/analog/" target="_blank">模擬語(yǔ)音信號(hào)播放。
4 系統(tǒng)測(cè)試
測(cè)試系統(tǒng)采用3塊OMAP5912開發(fā)板和對(duì)應(yīng)的3塊無(wú)線網(wǎng)卡。無(wú)線網(wǎng)卡選用華碩網(wǎng)卡W167g,采用Ad-Hoc進(jìn)行組網(wǎng)。針對(duì)系統(tǒng)需求,需要測(cè)試系統(tǒng)的有效帶寬和語(yǔ)音延遲以及音質(zhì)。
系統(tǒng)的有效帶寬是保證多用戶語(yǔ)音通話的前提。這里利用Netperf軟件進(jìn)行分析,測(cè)試表明基于UDP的傳輸速度,兩點(diǎn)間的平均速度可達(dá)3.4 Mbps。
對(duì)于語(yǔ)音通信而言,基于AIC23芯片的語(yǔ)音通信采樣速度是8 kHz,采用16比特單聲道采樣,所需帶寬為128 kbps。而G729a的壓縮率為16:1。故所需帶寬僅為8 kbps。因此,該無(wú)線網(wǎng)卡支持多用戶通信。
然后對(duì)語(yǔ)音音質(zhì)進(jìn)行測(cè)試,這里利用由Cooledit2000軟件進(jìn)行分析,如圖6所示,原始語(yǔ)音和采用G729a語(yǔ)音編解碼處理后的語(yǔ)音波形雖有所損傷,但基本一樣,從音質(zhì)效果上看,語(yǔ)音清晰,達(dá)到MOS=4的語(yǔ)音測(cè)試水平。
?
最后對(duì)系統(tǒng)語(yǔ)音延遲進(jìn)行測(cè)試,無(wú)線傳輸時(shí)語(yǔ)音數(shù)據(jù)每次發(fā)送4幀數(shù)據(jù),每幀包含10 ms語(yǔ)音數(shù)據(jù),系統(tǒng)整體延時(shí)約為60 ms,聽者基本感覺(jué)不到延遲效應(yīng)。
通過(guò)以上測(cè)試,系統(tǒng)可以正常工作,達(dá)到設(shè)計(jì)目標(biāo)。
結(jié)語(yǔ)
本文設(shè)計(jì)了一套可供無(wú)線局域網(wǎng)內(nèi)實(shí)時(shí)語(yǔ)音通信系統(tǒng),它以O(shè)MAP5912作為系統(tǒng)硬件平臺(tái),采用QT界面技術(shù)進(jìn)行管理。用戶可以方便地進(jìn)行多人通話。由于采用嵌入式方式進(jìn)行設(shè)計(jì),適合于應(yīng)急通信和臨時(shí)移動(dòng)會(huì)議等便攜式通信場(chǎng)合。
評(píng)論
查看更多