《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP的TETRA話音編碼設(shè)計(jì)與實(shí)現(xiàn)
基于DSP的TETRA話音編碼設(shè)計(jì)與實(shí)現(xiàn)
摘要: 陸上集群無線電通信(TETRA)系統(tǒng)是歐洲電信標(biāo)準(zhǔn)協(xié)會(ETSI)在專用移動通信(PMR)和公共接入移動通信(PAMR)網(wǎng)絡(luò)領(lǐng)域惟一支持無線數(shù)字集群的開放標(biāo)準(zhǔn),,本文主要介紹了該系統(tǒng)中話音編碼算法,,并討論了其在DSP上實(shí)現(xiàn)的具體流程,。
關(guān)鍵詞: DSP TETRA 話音編碼 ACELP
Abstract:
Key words :

  1 引 言

  TETRA是ETSI制定的一種全新的數(shù)字集群系統(tǒng),,他可以提供語音和快速數(shù)據(jù)傳輸業(yè)務(wù)。TETRA集成了移動數(shù)據(jù)終端,、PMR調(diào)度電話,、蜂窩電話和尋呼機(jī)的功能,并且可以直接傳送Internet協(xié)議報(bào)文,,支持可視電話功能,,而語音又是最主要的業(yè)務(wù)。無線系統(tǒng)中,,帶寬是影響語音服務(wù)質(zhì)量最關(guān)鍵的因素,,為降低語音傳輸所要求的帶寬,,TETRA系統(tǒng)采用代數(shù)碼激勵(lì)線性預(yù)測編碼(ACELP)壓縮算法,保證了高質(zhì)量的語音服務(wù),,其編碼速率為4.567 kb/s,。

  ACELP是一種改進(jìn)型的CELP,繼承了傳統(tǒng)CELP的主要優(yōu)點(diǎn),,并克服了其缺點(diǎn)。傳統(tǒng)CELP用固定的隨機(jī)碼本來逼近語音信號的余量信號,,缺乏靈活性,,不能很好地控制碼本的頻域特性。ACELP采用代數(shù)碼本結(jié)構(gòu),,不僅降低了碼本的存儲量和搜索量,,還提供了頻域控制函數(shù),從而增強(qiáng)了碼字的靈活性和多樣性,,能更好地逼近余量信號,,具體算法可參見TETRA標(biāo)準(zhǔn)ETS395-2。

  2 系統(tǒng)設(shè)計(jì)

  針對TETRA的話音編碼算法實(shí)時(shí)要求高,,運(yùn)算量 大,,核心處理器采用了TI公司的TMS320系列的5409芯片,該芯片主要特點(diǎn)有:速度快,,處理能力可達(dá)到100 MI/s,;低功耗,3 V電壓供電,,內(nèi)核電壓1.8 V,;提供32 kBRAM,16 kBROM,;3個(gè)多通道自動緩沖串口(McBsp),。

  A/D轉(zhuǎn)換芯片采用TI公司的AIC20芯片,完成模擬話音與數(shù)字話音的轉(zhuǎn)換工作,。由于采用了過采樣技術(shù),,AIC20可提供高分辨率的A/D,D/A 轉(zhuǎn)換,;3 V供電,,功耗低于30 mW;具有軟件可編程寄存器,,配置方便,,不改變硬件電路,僅改寫軟件就可滿足多種需求,。

  存儲芯片選用Atmel公司的AT49LV001,,用于存儲程序,,DSP加電便可從Flash中引導(dǎo)程序運(yùn)行。AT49LV001讀寫電壓均為3 V,,可大大簡化電源設(shè)計(jì),,存儲空間為128 kB,足以存儲TETRA的話音編碼算法,。

  2.1 硬件設(shè)計(jì)

  2.1.1 時(shí)鐘電路設(shè)計(jì)

  這里為5409提供2種時(shí)鐘電路設(shè)計(jì)方法:

 ?。?)將晶振產(chǎn)生的外部時(shí)鐘源直接輸入到X2/CLKIN引腳,X1懸空,。

 ?。?)利用5409內(nèi)部提供的鎖相環(huán)(PLL)時(shí)鐘產(chǎn)生電路將內(nèi)部時(shí)鐘倍頻或分頻得到。

  在此采用第二種方法,,如圖1所示,。在X1和X2/CLKIN之間接一個(gè)16.384 MHz的晶振,同時(shí)將CLKMD1,,CLKMD2,,CLKMD3通過上拉電阻設(shè)置為邏輯0,1,,0,,即倍頻數(shù)為5,DSP工作在80 MHz,,若需改變DSP的工作頻率,,可通過軟件修改地址0x58的CLKMD寄存器的值設(shè)置倍頻數(shù)。

時(shí)鐘電路

  2.1.2 DSP與Codec接口設(shè)計(jì)

  5409與AIC20接口如圖2所示,,由DSP的CLKOUT提供MCLK,,Codec工作在主模式,SCLK和FS為輸出,,為DSP提供BCLK和 BFS,。值得注意的是,由于AIC20有2個(gè)采樣通道,,在與DSP串口連接時(shí),,為配合codec的時(shí)序,DSP串口需配置成接收2個(gè)通道的采樣值(即32 b),,但只取一個(gè)通道的采樣值,;串口發(fā)送時(shí),也要向2個(gè)通道發(fā)送數(shù)據(jù),。McBsp中的部分控制比特位配置如下:

McBsp中的部分控制比特位配置

DSP與Codec接口

  當(dāng)AIC20工作在主模式時(shí),,F(xiàn)S=MCLK/(16×P×N×M),通過設(shè)置控制寄存器4可改變P,N,,M的值,。FS=8 kHz,MCLK=81.92 MHz,,取P=8,,N=8,M=10,。

  2.1.3 DSP與存儲器接口設(shè)計(jì)

  AT49LV001存儲器內(nèi)部以扇區(qū)組織,,在對其編程前,必須對相應(yīng)區(qū)域擦除,。使用時(shí)可根據(jù)需要選擇扇區(qū)擦除或芯片擦除,。圖3為5409與 AT49LV001的接口示意圖,AT49LV001的地址總線和數(shù)據(jù)總線分別接至5409的地址總線和數(shù)據(jù)總線,,5409的地址總線A22~A18懸空,數(shù)據(jù)總線D15~D8懸空,。DS作為使能信號,,XF則控制編程狀態(tài)。應(yīng)當(dāng)注意,,AT49LV001為8 b存儲器,,DSP為16 b處理器,所以每存儲一條DSP指令需2個(gè)存儲單元,,且高字節(jié)在前,。

DSP與存儲器接口

  2.2 軟件設(shè)計(jì)

  2.2.1 初始化程序

  完成DSP的初始化工作,包括設(shè)置SWWSR,,PMST等寄存器的值,;根據(jù)需要設(shè)置CLKMD寄存器改變倍頻數(shù);配置串口,。

  2.2.2 中斷服務(wù)程序

  中斷服務(wù)程序主要是串口接收和發(fā)送中斷,。接收中斷從Codec的DS腳接收采樣數(shù)據(jù),放入接收緩沖區(qū)MicIn,,當(dāng)接收到30 ms的數(shù)據(jù)(算法要求),,啟動編碼標(biāo)志SpeechFlag。當(dāng)解碼程序從Acelp碼流中解出話音后,,放入發(fā)送緩沖區(qū)Sout中,,然后通過串口發(fā)送中斷發(fā)至Codec。MicIn和Sout均為雙緩沖區(qū),。

  2.2.3 算法設(shè)計(jì)

  編碼程序每30 ms執(zhí)行一次,,將240個(gè)采樣值編成137 b,傳遞給解碼程序,再將解碼合成的話音通過音箱放出,。在硬件平臺上做自環(huán)實(shí)驗(yàn),,下面給出部分C代碼。

 

代碼

代碼

  3 結(jié) 語

  本文從軟件設(shè)計(jì)和硬件設(shè)計(jì)兩方面介紹了在TMS320VC5409芯片上實(shí)現(xiàn)TETRA話音編碼算法的具體步驟,。通過標(biāo)準(zhǔn)P.862對算法評測,,平均MOS得分為3.474。同時(shí),,在做抗噪實(shí)驗(yàn)時(shí),,本算法在10-2誤碼率下,仍能保持良好的通信質(zhì)量,。

  參考文獻(xiàn)

 ?。?]ETS300 395 2 Speech CODEC for full-ratetrafficchannel;Part2:TETRACODEC

 ?。?]TMS320VC5409Afixed-point digital signal processor.

 ?。?]TLV320AIC20 low power, highly-integrated programmable 16 B 26-KSPS dual channel codec.

  [4]戴明楨,,周建江.TMS320C54x DSP結(jié)構(gòu),、原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,1999.

 
此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。