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