摘 要: 給出了ACELP算法在點對點通信中的應(yīng)用方案,,主要設(shè)計了基于Microchip公司的PIC系列高端芯片和以射頻收發(fā)芯片CC1100為核心的跳頻語音通信系統(tǒng),為實現(xiàn)數(shù)字集群通信系統(tǒng)中的數(shù)字終端提供了可行的方案,。
關(guān)鍵詞: ACELP,;無線通信;單片機,;CC1100
在移動電話已經(jīng)成為人們生活必需品的今天,,一種低成本的點對點無線通信系統(tǒng)也在日益發(fā)展中。它是警務(wù),、保安人員和野外工作人員的必選通信設(shè)備,,它不同于移動電話,不用根據(jù)通話時間計費,,不存在網(wǎng)絡(luò)擁堵的問題,,可以用于重大任務(wù)保障的通信和應(yīng)付各種突發(fā)的緊急事件。在設(shè)計語音通信系統(tǒng)的過程中,,語音信號處理[1]的方法關(guān)系到系統(tǒng)的性能,,隨著對通信質(zhì)量要求的提高,人們需要用較少的碼率來獲得盡可能好的合成語音質(zhì)量[2],。
TETRA系統(tǒng)采用的低速率ACELP壓縮算法[3],,是一種改進(jìn)型的CELP,其碼率被壓縮至4.567 kb/s,,仍能保證高質(zhì)量的話音服務(wù)[4],。近幾年對ACELP算法的研究大部分集中在算法的仿真。本文主要設(shè)計了ACELP算法應(yīng)用的硬件系統(tǒng),。
1 系統(tǒng)概述
Microchip公司推出的dsPICXX器件[5]將高性能16位單片機的控制特點與DSP高速運算的優(yōu)點相結(jié)合,,為嵌入式系統(tǒng)設(shè)計提供了適合的單芯片、單指令流的解決方案,。其獨特的RISC結(jié)構(gòu)精簡指令與傳統(tǒng)的采用CISC結(jié)構(gòu)的單片機相比,,可以達(dá)到2:1的代碼壓縮,速度提高4倍,使其執(zhí)行效率大為提高[6],。
在用單個dsPICXX器件實現(xiàn)復(fù)雜的算法處理和控制操作時,存在通話質(zhì)量差,,不易擴展等功能,,作為改進(jìn)方案設(shè)計了雙單片機結(jié)構(gòu),如圖1所示,。將計算量較大的語音壓縮編碼部分單獨用dsPIC33FJ64GP706實現(xiàn),,用PIC24FJ32GA004作為主控芯片,控制信號之間的同步并處理按鍵信息,,CC1100內(nèi)有快速頻率變動合成器,,能夠?qū)崿F(xiàn)頻率跳躍,通過PIC24FJ32GA004不斷改變CC1100的載波頻率,,實現(xiàn)了跳頻通信,。
系統(tǒng)包括語音模塊、語音編解碼模塊,、控制模塊,、RF模塊以及各個模塊的接口。本文設(shè)計時將語音編解碼模塊和控制模塊按其功能分別簡寫為DSP模塊和CPU模塊,。
1.1 語音模塊
本模塊的作用是將麥克風(fēng)微弱語音信號放大給A/D,,以及將從D/A出來的語音播放出去。在語音輸入A/D電路中,,利用運放芯片 LPV321M5,,采用單電源3.3 V供電,將輸出的信號送到A/D,。在語音輸出A/D電路中,,采用LM4673音頻放大器進(jìn)行語音放大。圖2是AD73311的外圍電路圖,。芯片復(fù)位之后才能工作,,復(fù)位時間至少為4個DMCLK周期。
在圖1中,,CPU傳出的控制命令(即手持終端機的旋鈕音量控制命令)將作用于AD73311內(nèi)部集成的可編程增益放大器PGA來實現(xiàn)輸出模擬音量的可控調(diào)節(jié),。設(shè)定AD73311工作在混合模式,控制字可以交叉在DAC數(shù)據(jù)流中一起傳送,,對于語音30 ms為一幀的處理速度,,交叉?zhèn)鬏斂刂谱植粫绊懻Z音質(zhì)量。PGA增益由CRD:4~6三位設(shè)定,,可實現(xiàn)+6 dB~-15 dB范圍的音量調(diào)節(jié),。
1.2 時序分配
圖2中AUDIO_MCLK是主時鐘輸入,由外部時鐘信號驅(qū)動,DSP中的輸出比較OC模塊將產(chǎn)生供AD73311工作所需的2.048 MHz時序波形,,因AD73311是可編程的,,通過設(shè)置CRB:4-6=000、CRB:2-3=00,、CRB:0-1=11,分別得到內(nèi)部主時鐘頻率DMCLK為2.048 MHz,,串行時鐘頻率SCLK為256 kHz,串行口的幀同步頻率即采樣頻率FS為8 kHz,。4個I/O引腳AUDIO-SDI,、AUDIO-SDO、AUDIO-SDFS,、AUDIO-SCLK與DCI有關(guān),,采用基于DMA控制器的DCI設(shè)計,在不需要CPU干預(yù)下可完成數(shù)據(jù)傳輸,,DCI接口負(fù)責(zé)傳輸16 bit的A/D,、D/A數(shù)據(jù)和音量控制命令。
DSPIC33工作頻率支持最高40 MHz的工作速度(指令時鐘),,為實現(xiàn)實時傳輸信號,,要盡可能達(dá)到最高工作速度,設(shè)計時充分利用了芯片的內(nèi)部資源——由PIC24的輸出比較模塊OC產(chǎn)生2.048 MHz給DSPIC33,,DSPIC33再經(jīng)內(nèi)部PLL鎖相環(huán)產(chǎn)生38.912 MHz的指令時鐘,。PIC24外接7.168 MHz晶振獲得工作時鐘。
1.3 SPI串行接口模塊
SDI,、SDO,、SCK、SS是SPI串行接口的4個引腳,,CPU內(nèi)部集成著兩塊SPI模塊,,其中與DSP相連的SPI1模塊工作在SPI主/幀主模式,相應(yīng)的DSP中的SPIx模塊工作在SPI從/幀從模式,。配置為主模塊的CPU為從器件DSP提供SPI串行時鐘和同步信號,。
當(dāng)CPU通過SPI向DSP發(fā)送數(shù)據(jù)時,DSP中的數(shù)據(jù)也會傳遞過來,,此時無論數(shù)據(jù)是否寫入SPIBUF,,只要接收到幀同步脈沖時都將啟動發(fā)送,所以在接收幀同步脈沖前,,必須保證DSP中裝入了正確的發(fā)送數(shù)據(jù),。在DSP的實現(xiàn)過程中,當(dāng)語音壓縮完畢后,,會通過UART發(fā)送握手信號,,表明數(shù)據(jù)已經(jīng)準(zhǔn)備好。所以,當(dāng)CPU成功接收到合成語音參數(shù),,并且接收到握手信號后,,才可以向DSP發(fā)送數(shù)據(jù)。本系統(tǒng)中UART只進(jìn)行簡單的數(shù)據(jù)傳輸,,兩芯片間的連接較為簡單,,只需將收發(fā)引腳交替連接就可以了。
射頻收發(fā)CC1100芯片通過4線SPI兼容接口SI,、SO、SCLK,、CSn實現(xiàn)配置,,如圖3所示,這個接口同時用作寫和讀緩存數(shù)據(jù),,接口上的數(shù)據(jù)頭字節(jié)包含一個讀/寫位,,一個突發(fā)訪問位和一個6位地址,突發(fā)訪問位表明數(shù)據(jù)是否連續(xù),,若連續(xù),,寄存器的地址將自動加1。在CPU發(fā)送數(shù)據(jù)之前,,CPU必須先完成對CC1100的配置,,可以設(shè)置調(diào)制方式、信道帶寬,、是否進(jìn)行糾錯編碼,,還可以對數(shù)據(jù)包結(jié)構(gòu)進(jìn)行設(shè)置。本系統(tǒng)采用的跳頻方式較為簡單,,頻率每30 ms(一幀語音的時間)改變一次,。信道的中心頻率由432 MHz~434 MHz按照遞增的方式進(jìn)行跳變,公差為20 kHz,,當(dāng)中心頻率到達(dá)434 MHz后,,中心頻率再按照遞減的方式進(jìn)行跳變,公差不變,。
2 軟件設(shè)計
2.1 DSP模塊的軟件實現(xiàn)過程
程序主要由主程序和中斷程序組成,,在初始化時進(jìn)行如下設(shè)定:DCI接口工作在多通道幀同步模式下,字長16,,緩沖區(qū)接收1個數(shù)據(jù)后觸發(fā)中斷,,DCI數(shù)據(jù)傳輸時采用DMA通道,且數(shù)據(jù)傳輸?shù)拇袝r鐘和幀同步都由AD73311提供,;SPI工作在從/幀從模式下,。在主程序中,設(shè)置好3個接口,然后不斷檢測相關(guān)的標(biāo)志位并進(jìn)行相應(yīng)的處理,,中斷程序包括DMA,、SPI和UART接收緩沖區(qū)滿中斷。主程序的流程圖如圖4所示,。
2.2 CPU模塊的軟件實現(xiàn)過程
PIC24是整個系統(tǒng)的控制芯片,,實現(xiàn)對輸入按鍵信息的處理、發(fā)送音量調(diào)節(jié)命令,、配制CC1100,、產(chǎn)生跳頻圖案、控制數(shù)據(jù)發(fā)送時機等功能,。向CC1100發(fā)送數(shù)據(jù)進(jìn)行同步控制,,主要是為了通信終端以時分復(fù)用的方式占用信道,具體是在一個語音幀內(nèi)(30 ms),,信道被分配給終端A 10 ms,空閑5 ms作為保護(hù)時隙,,再分配給終端B 10 ms,留5 ms的保護(hù)時隙,,這樣在一幀語音的時間內(nèi),,可以完成數(shù)據(jù)的發(fā)送和接收,實現(xiàn)兩臺終端的同步對話,。通信終端在發(fā)送數(shù)據(jù)時分為主叫方和被叫方兩種模式,,圖5給出了CPU主叫模式的流程圖。
本文設(shè)計的系統(tǒng)中豐富的PIC外設(shè)資源和靈活的外圍接口電路可以為語音信號處理的其他算法研究和實時實現(xiàn)提供一個通用平臺,,也為進(jìn)一步處理噪聲抑制和回聲控制奠定了硬件基礎(chǔ),。總之,,ACELP算法是一種很有前途的低速率語音壓縮混合編碼技術(shù),,隨著對其研究的不斷深入,將會帶動國內(nèi)TETRA無線電數(shù)字集群系統(tǒng)的廣泛應(yīng)用,。
參考文獻(xiàn)
[1] 楊行峻.語音信號數(shù)字處理[M].北京:電子工業(yè)出版社,,2007.
[2] 鮑長春.低比特率數(shù)字語音編碼基礎(chǔ)[M].北京:北京工業(yè)大學(xué)出版社,2001.
[3] ETSI ETS 300 395-2 Edition2,,Terrestrial Trunked Radio(TETRA),;Speech Codec for Full-rate Traffic Channel;Part 2:TETRA codec(S).
[4] 李偉,,劉魯新,,林孝康.TETRA中的ACELP語音壓縮編碼[J].電聲技術(shù),2004(2):46-49.
[5] Microchip Technology Inc. dsPIC33FJXXXGPX06/X08/X10 Data Sheet[EB/OL].http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en024667,,2007.
[6] 楊圣.PIC系列單片機的原理與實踐[M].合肥:中國科學(xué)技術(shù)大學(xué)出版社,2003.