高質(zhì)量、低速率的語音編碼算法在現(xiàn)代通訊系統(tǒng)中地位越來越重要,,被廣泛應(yīng)用于諸如IP電話,、語音信箱、軍事無線通訊等領(lǐng)域,。特別是在一些特殊的應(yīng)用領(lǐng)域,,信道帶寬很窄而且誤碼率較高,要在這種信道上實現(xiàn)語音通訊,,低速和甚低速語音壓縮編碼技術(shù)是關(guān)鍵,。以前由于硬件條件的限制,,此類的低速率復(fù)雜編解碼算法往往只能停留在原理和計算機實現(xiàn)階段。近些年來,,由于VLSI技術(shù)的蓬勃發(fā)展,,尤其是高性能數(shù)字信號處理芯片的DSP的普及,這些編碼算法開始大規(guī)模的運用到了現(xiàn)實領(lǐng)域,。本次設(shè)計就是為這套軍用語音編碼算法標(biāo)準(zhǔn)設(shè)計一個通用編解碼平臺,。該平臺已經(jīng)做為嵌入式低功耗語音模塊,應(yīng)用到語音編碼和語音合成等領(lǐng)域,,并已小規(guī)模量產(chǎn),。
1. 語音硬件平臺的總體介紹和系統(tǒng)框架
本語音信號處理平臺需要考慮以下幾個方面的設(shè)計要求。在運算量方面,,本平臺上運行的幾種語音編碼算法都具有比較高的運算復(fù)雜度,,經(jīng)過CCS的仿真測試結(jié)果表明,至少要求DSP芯片有50MIPS的處理能力,。在接口設(shè)計方面,,搭載本聲碼器
模塊的通訊平臺定義了如表1所示的接口管腳,其中VIN和VOUT分別連接到通訊平臺的話筒和聽筒上的輸入和輸出話音,,PTT連接到話筒的按鈕上,,按下PTT表示請求通話。TXD和RXD分別是發(fā)送和接收的數(shù)字語音碼流信號,,RTS和CD分別是發(fā)送和接收碼流指示,,為低電平的時候表示碼流有效。TXC為系統(tǒng)的同步時鐘,。在功耗方面,,由于是手持式設(shè)備,要求采用低功耗設(shè)計,,以延長電池的使用時間,。另外,設(shè)計系統(tǒng)的安全性也是一個需要考慮的因素,。
表1 硬件平臺接口信號定義
基于以上幾項設(shè)計要求,,以及以前設(shè)計的原型系統(tǒng)原理[7],我們提出了一個基于TMS320VC5510A2和MSP430F149的設(shè)計方案,。[1] 5510A2是德州儀器公司的55系列DSP的最高端的產(chǎn)品,,這個系列的DSP是特別針對手持式終端設(shè)備應(yīng)用場合設(shè)計的,同等條件下其內(nèi)核的功耗僅為54系列DSP的三分之一,,而且具有更高的代碼執(zhí)行效率,,其指令也與54系列的相互兼容,可以很方便的進(jìn)行代碼的移植,。5510A2的最高數(shù)字信號的處理能力為200MIPS,,能夠很好的滿足本平臺對運算的要求,。[6]MSP430F149是德州儀器生產(chǎn)的一款極低功耗的16位RISC結(jié)構(gòu)的單片機,我們用他來做為主控芯片輔助DSP完成程序加載和系統(tǒng)加密的功能,。圖1給出了該硬件平臺的總體框圖,。
圖1 語音處理平臺硬件結(jié)構(gòu)總框圖
如圖所示,當(dāng)PTT被按下則表示請求通話,,話筒輸入的模擬話音VIN通過一個放大電路放大之后輸入語音CODEC芯片TLV320AIC11,,TLV320AIC11內(nèi)的模數(shù)轉(zhuǎn)換器將其轉(zhuǎn)換成16bit的線性PCM格式并通過DSP的McBSP0口傳送到DSP內(nèi)部接收語音緩沖區(qū),DSP在緩沖區(qū)內(nèi)的數(shù)據(jù)在積累到一定幀長之后啟動編碼算法編成特定碼率的碼流,。編好的碼流被送入另一發(fā)送比特流緩沖區(qū)緩沖,。該緩沖區(qū)內(nèi)的信號在同步時鐘TXC的上升沿被送到MODEM的調(diào)制模塊調(diào)制并發(fā)射出去。同時,,DSP檢測MODEM的CD信號,,當(dāng)CD信號有效(低電平)時,在同步時鐘TXC的下降沿鎖存RXD上的數(shù)據(jù)并送入DSP內(nèi)的接收比特流緩沖區(qū),。當(dāng)接收比特緩沖區(qū)內(nèi)的數(shù)據(jù)積累到一定長度時,,DSP啟動解碼程序?qū)⑵浣獯a成16bit的PCM語音。該語音通過McBSP0口被送入TLV320AIC11,,TLV320AIC11內(nèi)的數(shù)模轉(zhuǎn)換器將其轉(zhuǎn)換成模擬的語音信號送入聽筒,。
圖2 CODEC芯片和DSP、MCU的硬件連接
語音CODEC芯片和DSP,、MCU的硬件連接圖如圖2所示,,[5]TLV320AIC11是德州儀器公司生產(chǎn)的一款語音CODEC芯片,其片內(nèi)集成了一個A/D和一個D/A模塊,,并且有內(nèi)置的運算放大器,,因此僅需要很少的部件就可以將無源話筒和聽筒連接到AIC11上,。同時,,由于它可以和TI公司的DSP無縫連接。如圖所示,,本次設(shè)計中AIC11工作在主模式下(M/S=1),,在這個模式下,芯片的采樣率為SCLK腳輸入的時鐘頻率的1/256,。SCLK腳輸入的時鐘來源于MCU的P5.5,,這個管腳是MCU的副時鐘輸出為MCU主時鐘的1/4。由于MCU工作在4.096MHz,,因此CODEC的采樣頻率為8KHz,。AIC11以8KHz的頻率在FS上發(fā)出同步脈沖,并在DOUT腳上將16bit的PCM數(shù)據(jù)流發(fā)送到DSP,。同時從DIN管腳接收DSP發(fā)送過來的經(jīng)過解碼的16bit PCM語音,。由于使用了AIC11,,系統(tǒng)的使用“粘合邏輯”部件大大減小,從而有效的縮小了硬件電路板的面積,。
2. 硬件系統(tǒng)加密設(shè)計
有效的保護(hù)知識產(chǎn)權(quán)是產(chǎn)品開發(fā)必須要考慮的因素,。TI的C55x系列DSP芯片是一種開放式的總線結(jié)構(gòu),因此別有用心的人可以通過JTAG接口和相應(yīng)軟件訪問并分析DSP內(nèi)部存儲區(qū)的代碼和數(shù)據(jù),,或者僅僅是直接導(dǎo)出并復(fù)制這些信息,,就可以輕易竊取產(chǎn)品。針對這種現(xiàn)實情況,,最好的解決方法是將程序交由芯片的生產(chǎn)商掩模入芯片內(nèi)部的ROM儲存區(qū)內(nèi),,再去除DSP芯片中的JTAG邏輯模塊, DSP內(nèi)部的總線與外界隔離,,這樣從外部就無法獲得片內(nèi)的信息,。然而當(dāng)產(chǎn)品的產(chǎn)量不大的時候,掩模ROM在成本上來說是不現(xiàn)實的,,需要另外想辦法,。
本次設(shè)計所提出的是一種基于TI公司MSP430F149單片機作為硬件加密部件的方法。[6]MSP430F149是TI生產(chǎn)的一款16位RISC結(jié)構(gòu)的Flash型單片機,。不僅功耗極低,,其另外一個特點就是其內(nèi)部的熔斷型Flash儲存單元。當(dāng)開發(fā)過程結(jié)束,,程序?qū)懭隡SP430內(nèi)部的Flash之后,,開發(fā)者可以將Flash連接在MSP430總線上的融絲融斷,熔斷之后如果想訪問其內(nèi)部的程序和數(shù)據(jù),,必須在單片機的JTAG引腳上加上一定時序的信號,,進(jìn)入單片機內(nèi)部的一段BOOTSTRAP程序,該BOOTSTRAP程序要求用戶向一個密碼寄存器內(nèi)寫入一個32個字節(jié)的密碼,,如果該密碼和事先寫入Flash特定位置的一個密碼相符,,才能訪問片內(nèi)的程序和數(shù)據(jù)資源,否則只能允許進(jìn)行擦除整個Flash的操作,。通過這種機理達(dá)到保護(hù)用戶程序數(shù)據(jù)代碼的目的,。
鑒于MSP430F149的內(nèi)部數(shù)據(jù)無法復(fù)制和訪問的特點,我們提出了一種基于MSP430F149的硬件加密方法,。
圖3 DSP和MSP430的硬件連接示意圖
圖3是MSP430和DSP之間的硬件連接示意圖[3],。如圖所示,這種連接方式將DSP和MCU配置成了16位復(fù)用連接模式 (HMODE=0),,數(shù)據(jù)和地址共享HD總線,。HRW、HCNTL0和HCNTL1的不同組合分別表示對DSP的EHPI口的三個寄存器HPID(數(shù)據(jù)),、HPIA(地址),、HPIC(控制)讀寫,,具體的組合方式如表2所示。
表2 復(fù)用模式下EHPI口讀寫類型指示
具體加密方式簡述如下:
1)為每一塊電路板指定一個128位的密鑰,,密鑰的選擇完全隨機,,只要不同板子不相同即可。將密鑰和加密算法(DES或是其他的加密算法)燒寫入MSP430的內(nèi)部做為DSP boot程序的一部分,。
2)使用該密鑰和加密算法,,將加密后的語音編解碼算法的程序和數(shù)據(jù)燒寫入DSP的外部存儲Flash芯片之中。
3)將DSP設(shè)置成工作于HPI口boot模式,,在每次重啟之后,,主機將一段BOOT程序裝入起始位置為0x10000程序空間里(該段BOOT程序中包含了解碼程序),并將128位的密鑰load到DSP內(nèi)部的某個特定位置,。主機將DSP的RST引腳置高表示主機的load過程結(jié)束,。DSP自動從0x10000的位置開始執(zhí)行程序,這段程序從Flash中讀入加密了的程序和數(shù)據(jù),,并使用主機寫入的解密程序并結(jié)合128位的密鑰進(jìn)行解密,,解密后的程序和數(shù)據(jù)被裝載入DSP的程序和數(shù)據(jù)段內(nèi)開始正常的運行。
由于每塊電路板對應(yīng)于一個唯一128位密鑰,,因此DSP的外部Flash中加密的程序和數(shù)據(jù)對于竊密者來說完全沒有意義,。該密鑰和解密程序被保存在MSP430中,因此不可能被竊取或者復(fù)制,。他們只有在主機啟動的時候才被動態(tài)的load到DSP中,。DSP的程序在開始執(zhí)行正常的解碼程序之前運行一段程序覆蓋這段lood區(qū)間,于是,,竊密者便無法獲知啟動的具體操作,。
4)將比特流打包解包程序放置在MSP430中。編碼時當(dāng)DSP中的每一幀接收語音編成特定長度的比特流之后,,就向MSP430發(fā)送一個中斷請求,。當(dāng)收到該請求之后,MSP430通過DSP的EHPI口讀入該比特流,,并調(diào)整各個比特位之間的順序,。調(diào)整之后的比特流被回寫入DSP的發(fā)送比特流緩沖區(qū),,并根據(jù)同步時鐘傳送到MODEM,。同樣,當(dāng)DSP接收比特流緩沖區(qū)接收滿一幀時,,向MSP430發(fā)送中斷,,MSP430在接收到這個中斷之后通過EHPI口讀入接收比特流緩沖區(qū)內(nèi)的數(shù)據(jù),完成比特位置的重排的恢復(fù),。
這種方式可以有效的保證代碼的安全性以及整個系統(tǒng)的保密性,。對于基于開放總線的DSP系統(tǒng)來說,,這種方式不失為一個很有效的通用的硬件加密方法。
圖4 MSP430和DSP啟動的軟件流程圖
3. 低功耗設(shè)計
本硬件平臺的低功耗設(shè)計的從三方面出發(fā),,1)選擇低功耗的器件,。2)充分利用芯片的低功耗模式;3)動態(tài)的改變芯片的運行頻率,。
選用低功耗的器件:這是節(jié)省功耗的最直接的方式,,現(xiàn)在的芯片大多通過降低內(nèi)核供電電壓降低功耗,現(xiàn)行的低功耗器件的供電電壓一般都小于2V,,TI的DSP大都采用兩種電壓驅(qū)動,,內(nèi)核電壓1.2-1.6V,I/O電壓3.3V,,這既能有效的降低內(nèi)核動態(tài)功耗,,還能兼顧I/O的電平兼容性。TI公司的MSP430系列的MCU也是一款功耗相當(dāng)?shù)偷钠骷?,?.3V下,,其正常工作通常只需要十幾個mW的供電,如果將其設(shè)置成IDLE或者睡眠模式模式,,其功耗將會更低,。這些都是我們選擇器件重點考慮到的因素之一。
充分利用芯片的低功耗模式:[4]5510A2芯片內(nèi)部劃出了五個獨立的IDLE域(Domain),,分別負(fù)責(zé)CPU,、DMA、CACHE,、外設(shè),、時鐘生成器、EMIF接口的配置,。每個域可以獨立的將該域管轄的多個部件設(shè)置成活動模式或IDLE模式以此降低DSP地功耗,。針對本次設(shè)計,由于沒有使用到DMA,、CACHE,、時鐘生成器三個域中的外設(shè),故將這三個域設(shè)置成了IDLE模式,。EMIF域在DSP和MSP交換數(shù)據(jù)(為了調(diào)整發(fā)送和接收的比特流)時才被置為活動,,其他時候被置為IDLE。通過這樣的處理,,避免了空閑的部件白白消耗能量,。[5]TLV320AIC11也可以單獨的將A/D和D/A部分禁用。當(dāng)PTT沒有按下時,表示沒有話音輸入,,這時可以將A/D部分置為IDLE狀態(tài),。同樣的,當(dāng)MODEM的CD信號為高的時候,,表示沒有有效的數(shù)字碼流輸入聲碼器,,故在此時可以將D/A部分設(shè)為IDLE狀態(tài)。通過對著這個芯片的低功耗模式的操作,,進(jìn)一步降低了系統(tǒng)的功耗,。
動態(tài)頻率控制:這種方法的及根據(jù)預(yù)測的算法運算量的大小,動態(tài)的調(diào)整芯片的運行頻率,,從而達(dá)到節(jié)省功耗的目的,。在本文設(shè)計的平臺上運行的三種低速率語音編解碼算法中,600bps,、1200bps,、2400bps的峰值運算量分別為37.4MIPS、59.2MIPS,、44.8MIPS,,因此將DSP的工作頻率分別設(shè)置在40.096MHz、65.536MHz,、49.152MHz,。實驗證明,這樣處理能夠很有效地降低DSP的內(nèi)核功耗,。
4. 小結(jié)
該平臺具有強大的語音信號處理能力,,較低的功耗以及加密等特點。實踐證明,,該平臺在其應(yīng)用場合完全達(dá)到了原先的這些設(shè)計目標(biāo),,具有廣闊的應(yīng)用前景。
參考文獻(xiàn):
[1] TMS320VC5510AI DataSheet(sprs076I); TI corporation; April 2004
[2] Using the TMS320VC5510 Bootloader (spra763a); TI corporation; Mar 2002
[3] TMS320VC5510 DSP Host Port Interface (HPI) Reference Guide (spru588a); TI corporation; Feb 2004
[4] TMS320C55x DSP Peripherals Overview (spru317g); TI corporation; Feb 2004
[5] TLV320AIC11 DataSheet(slws100); TI corporation; April 2002
[6] MSP430F14x familiy Mix Signal Microcontroller DataSheet (slas272); TI corporation; Aug 2004
[7] 低功耗通用語音處理平臺的設(shè)計實現(xiàn); 陸希玉,詹杰,唐昆,崔慧娟;微型機與應(yīng)用; 2005.7