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