摘 要: 介紹了基于TMS320VC5510A實(shí)現(xiàn)的低功耗通用語音處理平臺的方案,,并且在其上實(shí)現(xiàn)了多種語音壓縮算法以及基于算法的自適應(yīng)功耗控制,,較好地達(dá)到了低功耗的要求。
關(guān)鍵詞: 語音處理 低功耗 DSP
語音信號處理在通信領(lǐng)域得到了廣泛的應(yīng)用,,語音傳輸?shù)臄?shù)字化是全數(shù)字化移動通信系統(tǒng)中的重要環(huán)節(jié),。高質(zhì)量、低速率的話音編碼技術(shù)與高效率的數(shù)字調(diào)制技術(shù)結(jié)合,,為現(xiàn)代移動通信提供了優(yōu)于模擬移動通信的系統(tǒng)容量,、通信質(zhì)量和頻譜利用率。現(xiàn)代移動通信的發(fā)展也對系統(tǒng)的功耗提出了較高的要求,,因此低功耗,、高性能的DSP已經(jīng)越來越廣泛地被應(yīng)用于各個(gè)領(lǐng)域。本文介紹采用美國德州儀器公司(TI)最新開發(fā)出來的TMS320VC5510A,,利用其數(shù)據(jù)處理能力及低功耗特性,,并且結(jié)合MSP430F149增加了系統(tǒng)的控制能力,進(jìn)行各種語音算法的實(shí)時(shí)實(shí)現(xiàn),,對于實(shí)際開發(fā)語音處理系統(tǒng)具有重要的參考價(jià)值,,并且該平臺已經(jīng)應(yīng)用于實(shí)際產(chǎn)品中。
1 語音處理系統(tǒng)組成及其原理
1.1 語音處理系統(tǒng)的組成
語音算法多種多樣,,要求語音處理系統(tǒng)的前端提供符合算法精度要求的數(shù)字采樣信號,,因此要求前端的A/D、D/A具有較高的采樣率和采樣精度,。語音處理系統(tǒng)還有實(shí)時(shí)性的要求,,在一些應(yīng)用中還要求語音編解碼算法、加解密算法,、信道編解碼算法甚至調(diào)制,、解調(diào)算法都在同一塊芯片中實(shí)現(xiàn),因此要求系統(tǒng)的數(shù)據(jù)處理能力強(qiáng),,存儲空間大,。在通常的DSP應(yīng)用系統(tǒng)中,DSP加上存儲器,、A/D,、D/A和外設(shè)接口就可以實(shí)現(xiàn),。但是越來越多的場合要求系統(tǒng)完成與外部系統(tǒng)的通信和控制,例如人機(jī)接口,、信道傳輸設(shè)備等控制功能,。這些均可以采用MCU+DSP的結(jié)構(gòu),以彌補(bǔ)單一DSP系統(tǒng)控制能力差的不足,。經(jīng)過仔細(xì)選擇比較,,最終的語音處理系統(tǒng)的硬件結(jié)構(gòu)設(shè)計(jì)如圖1所示。
1.2 語音處理系統(tǒng)原理
如圖1所示,,模擬話音經(jīng)過功放構(gòu)成的帶通濾波器,,通過TLV320AIC10的模/數(shù)轉(zhuǎn)換器(ADC)轉(zhuǎn)換成8 000Hz的數(shù)字信號,該采樣信號的精度為16位,,對輸入模擬信號的幅度要求為-3.3~3.3V,。數(shù)字化的語音信號通過同步串口(McBSP)傳送到DSP(TMS320VC5510A)內(nèi)部緩沖區(qū),送入編碼器進(jìn)行編碼,,得到的數(shù)據(jù)流通過同步串口(McBSP)及信道接口傳給終端,,經(jīng)過信道編碼后傳輸。從信道收到的碼流經(jīng)過終端解碼通過同步串口(McBSP)傳給DSP內(nèi)部的緩沖區(qū),,送入解碼器進(jìn)行解碼,,得到的數(shù)字化語音再通過同步串口(McBSP)傳給TLV320AIC10的模/數(shù)轉(zhuǎn)換器(ADC),轉(zhuǎn)換成模擬信號輸出,。為了增強(qiáng)該硬件平臺的控制能力,,DSP(TMS320VC5510A)通過主機(jī)接口(HPI)與MCU(MSP430F149)進(jìn)行通信。并且增加了存儲器Flash(SST39VF800A),,以保證可以進(jìn)行脫機(jī)運(yùn)行,。
2 系統(tǒng)具體實(shí)現(xiàn)
2.1 主要芯片選擇及簡介
該平臺采用的TLV320AIC10是德州儀器公司推出的一款通用型低功耗16位A/D、D/A音頻接口芯片,,適用于語音以及寬帶音頻處理,;其數(shù)字接口采用同步串口方式,可以非常方便地與DSP的同步串口(McBSP)相連,,其中SCLK提供位時(shí)鐘信號,,F(xiàn)S提供幀同步信號,DIN為串行數(shù)據(jù)輸入,,DOUT為串行數(shù)據(jù)輸出,。TLV320AIC10與DSP的串口連接方式如圖2所示。其中TLV320AIC10工作在主模式(Master Mode)下,,DSP的同步串口(McBSP)工作在從模式(Slave Mode)下,。同步串口的時(shí)鐘由TLV320AIC10的SCLK提供,為2.048MHz[1],。
系統(tǒng)的主要數(shù)字信號處理芯片TMS320VC5510A與TMS320VC54X相比,,功耗更低,,代碼執(zhí)行效率更高,而且與TMS320VC54X的指令完全兼容,,具有以下特點(diǎn),。
(1)資源豐富。32位寬的外部存儲器接口(EMIF),,2個(gè)20位寬的定時(shí)器,6通道的DMA控制器和3個(gè)多通道緩沖串口(McBSP),,16位增強(qiáng)主機(jī)并行接口(EHPI),,8個(gè)通用管腳(GPIO)。
(2)數(shù)據(jù)處理能力強(qiáng)而且運(yùn)算速度快,。TMS320VC5510A采用了改進(jìn)的哈佛結(jié)構(gòu),,C55X的DSP在一個(gè)總線周期內(nèi)同時(shí)進(jìn)行3個(gè)數(shù)據(jù)讀和2個(gè)數(shù)據(jù)寫的操作,采用了并行的雙MAC結(jié)構(gòu),,提供了更強(qiáng)大的并行處理能力,。
(3)功耗低。TMS320VC5510A采用高性能靜態(tài)CMOS技術(shù),,I/O供電電壓為3.3V,,內(nèi)核供電電壓為1.6V,而且有多種低功耗工作模式,,有效地降低了系統(tǒng)功耗,。內(nèi)核靜態(tài)功耗為0.112mA/MIPS,I/O靜態(tài)功耗為0.148mA/MIPS,。內(nèi)核動態(tài)功耗約為0.628mA/MIPS,。
為了增加平臺的控制功能和擴(kuò)充能力,采用了TI公司的微控制器MSP430F149,。該芯片是TI公司的一種超低功耗的Flash微控制器,,內(nèi)核為16位RISC CPU。其存儲器模塊是目前業(yè)界所有內(nèi)部集成Flash存儲器產(chǎn)品中能耗最低的一種,,具有超低功耗工作模式即活動模式(僅MSP430)且:400?滋A/MHz,,3.0V。MSP430F149可以提供5種工作模式,,最低功耗消耗可達(dá)1?滋A/MHz,;采用IAR開發(fā)環(huán)境,可以直接進(jìn)行C語言編程,,開發(fā)起來方便快捷[5],。
2.2 CODEC與DSP的接口電路設(shè)計(jì)
由于CODEC(TLV320AIC10)與DSP(TMS320VC5510A)都是TI公司提供的高速芯片,因此二者在速度和時(shí)序上可完全匹配,,能實(shí)現(xiàn)芯片間的無縫連接(二者的連接示意圖見圖2),。
其中TLV320AIC10的工作時(shí)鐘由MSP430F149通過內(nèi)部分頻向TLV320AIC10的MCLK提供2.048MHz的時(shí)鐘作為系統(tǒng)時(shí)鐘,。TLV320AIC10工作在主模式下,向TMS320VC5510A提供串行時(shí)鐘SCLK和幀同步信號FS,。幀同步信號FS由TLV320AIC10內(nèi)部256分頻后通過FS管腳輸出,,是脈寬為一個(gè)SCLK時(shí)鐘的8 000Hz正脈沖信號。TLV320AIC10的復(fù)位信號由DSP的通用I/O管腳提供,,PWRDWN管腳用于控制TLV320AIC10的工作狀態(tài):該管腳置低,,TLV320AIC10停止工作,處于IDLE狀態(tài),,達(dá)到節(jié)省功耗的目的,;該管腳置高,TLV320AIC10處于正常工作模式,。本例中在該管腳處加了一個(gè)上拉電阻,,以確保TLV320AIC10處于正常工作狀態(tài)。
DSP采用McBSP0與TLV320AIC10相連接,,該McBSP0通用串口工作在從模式,。BCLKR0/BCLKX0分別是通用串口接收和發(fā)送的移位時(shí)鐘,BFSR0/BFSX0分別是接收和發(fā)送的幀同步信號,,BDR0是接收數(shù)據(jù)引腳,,BDX0是發(fā)送數(shù)據(jù)引腳。接收來的數(shù)據(jù)可以由幀同步信號觸發(fā)中斷,,由中斷服務(wù)程序進(jìn)行讀寫,;也可以通過DMA通道直接轉(zhuǎn)換到特定的緩沖區(qū)中。
TLV320AIC10的幀可分為主幀和從幀,。在主幀中進(jìn)行采樣數(shù)據(jù)的傳輸,,在從幀中對TLV320AIC10的內(nèi)部寄存器進(jìn)行配置。當(dāng)TLV320AIC10工作在15+1位模式時(shí),,主幀的最后1個(gè)位決定主幀之后的下一個(gè)幀是從幀還仍然是一個(gè)主幀,。在TLV320AIC10初始化過程中,通過這種方式對其進(jìn)行初始化,,配置TLV320AIC10內(nèi)部的4個(gè)寄存器[3],。DSP配置TLV320AIC10寄存器的過程如圖3所示。
DSP主程序配置完TLV320AIC10的內(nèi)部寄存器以后,,會設(shè)置相應(yīng)的中斷處理程序,,打開相應(yīng)的中斷屏蔽,通過中斷服務(wù)程序進(jìn)行語音樣點(diǎn)的傳輸,。
2.3 MCU與DSP的接口電路及通信方式
DSP(TMS320VC5510A)提供了增強(qiáng)型主機(jī)接口(EHPI),,可以工作在數(shù)據(jù)地址復(fù)用和不復(fù)用2種模式。在本例中采用了數(shù)據(jù)地址復(fù)用方式,。MCU(MSP430F149)與DSP EHPI具體連接方式如圖4所示,,EHPI的接口時(shí)序如圖5所示,。
主機(jī)接口的關(guān)鍵控制信號線功能簡述如下。
HD[15:0]:HPI數(shù)據(jù)線,,雙向,,三態(tài)總線。在復(fù)用模式下,,通過這16位總線傳輸?shù)刂泛蛿?shù)據(jù),。
HA[19:0]:HPI地址總線。在復(fù)用模式下,,HA[1]用作HCNTL1信號線,,HA[2]用作HAS信號線。
HCS:HPI的片選信號線,。作為MCU訪問DSP時(shí)的片選信號,在訪問過程中一直保持為低,。本例中為了節(jié)省主機(jī)的I/O口線,,將其一直接低。
HR/W:HPI讀寫信號線,。標(biāo)識著MCU與DSP的通信方向,。該信號線為高,表示MCU從DSP的存儲空間中讀取數(shù)據(jù),;為低,,表示MCU將數(shù)據(jù)寫入DSP的存儲空間。
HDS1/2:HPI數(shù)據(jù)控制信號,??梢赃m應(yīng)不同類型的MCU的數(shù)據(jù)控制信號。要將HCNTL2置高,,本例中的接法是HCNTL1通過MSP430F149的P2.1來控制,。
HRDY:HPI準(zhǔn)備好信號。DSP通過該信號通知MCU當(dāng)前主機(jī)接口是否可以訪問,。為低,,DSP的主機(jī)接口忙,MCU不能通過它訪問,;為高,,可以訪問。
HCNTL0/1:HPI訪問控制信號,。在復(fù)用模式中,,通過這2個(gè)信號決定本次MCU訪問的是DSP的HPI接口的內(nèi)部寄存器。
HAS:HPI地址控制信號,。在復(fù)用模式中,,直接置高,。
HMODE:HPI模式選擇信號。置高,,HPI工作在非復(fù)用模式下,;置低,HPI工作在復(fù)用模式下,。
HINT:主機(jī)中斷信號,。當(dāng)DSP將該信號線置低時(shí),表示DSP請求主機(jī)中斷,。因此這根信號線應(yīng)加上拉電阻,。
HBE0/1:HPI字節(jié)使能信號。TMS320VC5510A中置低,,忽略該信號,。
MSP430F149通過向DSP主機(jī)接口內(nèi)部的3個(gè)寄存器寫入相應(yīng)的數(shù)據(jù)來控制相應(yīng)的通信方式。在復(fù)用方式下,,這3個(gè)寄存器分別是HPIC(控制寄存器),、HPIA(地址寄存器)、HPID(數(shù)據(jù)寄存器),。為了提高在復(fù)用方式下的訪問速度,,DSP的HPI接口還提供了另外一個(gè)數(shù)據(jù)寄存器。當(dāng)MCU訪問連續(xù)地址時(shí),,可以通過HCNTL0/1選擇利用這個(gè)數(shù)據(jù)寄存器進(jìn)行連續(xù)訪問DSP內(nèi)部存儲器,,相應(yīng)的地址寄存器會在每次訪問這個(gè)數(shù)據(jù)寄存器之后自動增加。
MCU和DSP的通信通過中斷完成,。其中MSP430F149通過訪問HPIC寄存器,,將其中的DSPINT位置1來觸發(fā)DSP的中斷,而DSP則通過將HINT信號線置低來觸發(fā)MCU的中斷,。
當(dāng)前的硬件平臺中,,通過置I/O口線的方式實(shí)現(xiàn)了MCU對DSP主機(jī)接口的讀寫操作,可以選擇通過主機(jī)啟動DSP的方式[4],。啟動過程的框圖如圖6所示,。
3 系統(tǒng)軟件優(yōu)化降低功耗
上面已提到,在硬件平臺的設(shè)計(jì)中采用了低功耗的器件,,屬于低功耗設(shè)計(jì)中的靜態(tài)技術(shù),。在系統(tǒng)軟件的具體實(shí)現(xiàn)中,可以根據(jù)執(zhí)行算法的情況進(jìn)行動態(tài)調(diào)整,,從而達(dá)到降低系統(tǒng)功耗的目的,。由于DSP采用內(nèi)部可編程鎖相環(huán)(PLL)產(chǎn)生時(shí)鐘,可以使處理器根據(jù)對于計(jì)算能力的即時(shí)需求動態(tài)改變運(yùn)行速度。雖然系統(tǒng)提供了幾種低功耗模式,,但是相應(yīng)的喚醒時(shí)間各不相同,,實(shí)際中要根據(jù)具體情況對功耗和喚醒時(shí)間綜合考慮。
由于MCU具有較強(qiáng)的事件響應(yīng)能力以及DSP具有較強(qiáng)的數(shù)據(jù)處理能力,,因此可以通過MCU針對不同算法動態(tài)地改變系統(tǒng)的工作頻率及DSP的工作狀態(tài),,從而降低系統(tǒng)功耗。例如在該平臺運(yùn)行清華大學(xué)自主研制的600,、1 200,、2 400bps語音算法,需要針對不同算法要求不同的數(shù)據(jù)運(yùn)算量進(jìn)行動態(tài)配置,。DSP采用MCU提供的8.192MHz的時(shí)鐘,、通過片內(nèi)集成的DPLL進(jìn)行倍頻得到所需要的主時(shí)鐘。由于系統(tǒng)的部分代碼是處于54兼容模式下,,所以在系統(tǒng)軟件的主函數(shù)中,,當(dāng)不需要進(jìn)行編解碼操作時(shí),系統(tǒng)可以處于正常狀態(tài),,即IDLE1或IDLE2狀態(tài),。更具體的管理可以使用c55x系列的IDLE domain(IDLE域)機(jī)制進(jìn)行管理[6]。3種狀態(tài)具體描述如下:
NO IDLE:定時(shí)器,、通用串口和內(nèi)核均處于正常工作模式。
IDLE 1:定時(shí)器和通用串口正常工作模式,,內(nèi)核處于IDLE狀態(tài),,由中斷喚醒。
IDLE 2:定時(shí)器,、通用串口和內(nèi)核都處于IDLE狀態(tài),,由中斷喚醒。
針對不同的算法,,由于要求的數(shù)據(jù)運(yùn)算量不同,,能夠保證算法工作的最低系統(tǒng)頻率也不同。通過對不同的數(shù)據(jù)運(yùn)算要求動態(tài)調(diào)整系統(tǒng)的工作狀態(tài),,可以最大限度地實(shí)現(xiàn)降低功耗的目的,,從而實(shí)現(xiàn)針對不同運(yùn)算量的功耗控制。實(shí)際使用中,,當(dāng)DSP:運(yùn)行600SELP算法時(shí),,系統(tǒng)工作在32.768MHz;運(yùn)行1 200SELP算法時(shí),,系統(tǒng)工作在40.960MHz,;運(yùn)行2 400SELP算法時(shí),系統(tǒng)工作在24.576MHz。與單一的運(yùn)行在81.92MHz情況下相比,,系統(tǒng)功耗分別降低了41%,、36%、48%,,大大減少了系統(tǒng)功耗,。
該硬件平臺已經(jīng)成功運(yùn)行了G.723.1、G.729A/B和CVSD等算法,,并且獲得了良好的效果,,具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
1 TI.TLV320AIC10 DATASHEET.TI:SLWS093F.PDF.2001
2 李林功.嵌入式系統(tǒng)的低功耗設(shè)計(jì).計(jì)算機(jī)應(yīng)用研究,,2004,;(2)
3 Hardware Auto-Identification and Auto-Configurationfor the AIC10 DSP Codec.Analog Applications Journal,2000,;(12)
4 TI.Using the TMS320VC5510 Bootloader.TI:SPRA763B. PDF.2003
5 TI.MSP430X1XX FAMILY USER GUIDE.TI:SLAU049C. PDF.2003
6 TI.TMS320VC5510 DSP DATAMANUAL.TI:SPRS076J. PDF.2004