高質量、低速率的語音編碼算法在現代通訊系統中地位越來越重要,被廣泛應用于諸如IP電話、語音信箱、軍事無線通訊等領域。特別是在一些特殊的應用領域,信道帶寬很窄而且誤碼率較高,要在這種信道上實現語音通訊,低速和甚低速語音壓縮編碼技術是關鍵。以前由于硬件條件的限制,此類的低速率復雜編解碼算法往往只能停留在原理和計算機實現階段。近些年來,由于VLSI技術的蓬勃發展,尤其是高性能數字信號處理芯片的DSP的普及,這些編碼算法開始大規模的運用到了現實領域。本次設計就是為這套軍用語音編碼算法標準設計一個通用編解碼平臺。該平臺已經做為嵌入式低功耗語音模塊,應用到語音編碼和語音合成等領域,并已小規模量產。 1.語音硬件平臺的總體介紹和系統框架 本語音信號處理平臺需要考慮以下幾個方面的設計要求。在運算量方面,本平臺上運行的幾種語音編碼算法都具有比較高的運算復雜度,經過CCS的仿真測試結果表明,至少要求DSP芯片有50MIPS的處理能力。在接口設計方面,搭載本聲碼器模塊的通訊平臺定義了如表1所示的接口管腳,其中VIN和VOUT分別連接到通訊平臺的話筒和聽筒上的輸入和輸出話音,PTT連接到話筒的按鈕上,按下PTT表示請求通話。TXD和RXD分別是發送和接收的數字語音碼流信號,RTS和CD分別是發送和接收碼流指示,為低電平的時候表示碼流有效。TXC為系統的同步時鐘。在功耗方面,由于是手持式設備,要求采用低功耗設計,以延長電池的使用時間。另外,設計系統的安全性也是一個需要考慮的因素。 表1 硬件平臺接口信號定義 基于以上幾項設計要求,以及以前設計的原型系統原理,我們提出了一個基于TMS320VC5510A2和MSP430F149的設計方案。 5510A2是德州儀器公司的55系列DSP的最高端的產品,這個系列的DSP是特別針對手持式終端設備應用場合設計的,同等條件下其內核的功耗僅為54系列DSP的三分之一,而且具有更高的代碼執行效率,其指令也與54系列的相互兼容,可以很方便的進行代碼的移植。5510A2的最高數字信號的處理能力為200MIPS,能夠很好的滿足本平臺對運算的要求。MSP430F149是德州儀器生產的一款極低功耗的16位RISC結構的單片機,我們用他來做為主控芯片輔助DSP完成程序加載和系統加密的功能。圖1給出了該硬件平臺的總體框圖。 圖1 語音處理平臺硬件結構總框圖 如圖所示,當PTT被按下則表示請求通話,話筒輸入的模擬話音VIN通過一個放大電路放大之后輸入語音CODEC芯片TLV320AIC11,TLV320AIC11內的模數轉換器將其轉換成16bit的線性PCM格式并通過DSP的McBSP0口傳送到DSP內部接收語音緩沖區,DSP在緩沖區內的數據在積累到一定幀長之后啟動編碼算法編成特定碼率的碼流。編好的碼流被送入另一發送比特流緩沖區緩沖。該緩沖區內的信號在同步時鐘TXC的上升沿被送到MODEM的調制模塊調制并發射出去。同時,DSP檢測MODEM的CD信號,當CD信號有效(低電平)時,在同步時鐘TXC的下降沿鎖存RXD上的數據并送入DSP內的接收比特流緩沖區。當接收比特緩沖區內的數據積累到一定長度時,DSP啟動解碼程序將其解碼成16bit的PCM語音。該語音通過McBSP0口被送入TLV320AIC11,TLV320AIC11內的數模轉換器將其轉換成模擬的語音信號送入聽筒。 圖2 CODEC芯片和DSP、MCU的硬件連接 語音CODEC芯片和DSP、MCU的硬件連接圖如圖2所示,TLV320AIC11是德州儀器公司生產的一款語音CODEC芯片,其片內集成了一個A/D和一個D/A模塊,并且有內置的運算放大器,因此僅需要很少的部件就可以將無源話筒和聽筒連接到AIC11上。同時,由于它可以和TI公司的DSP無縫連接。如圖所示,本次設計中AIC11工作在主模式下(M/S=1),在這個模式下,芯片的采樣率為SCLK腳輸入的時鐘頻率的1/256。SCLK腳輸入的時鐘來源于MCU的P5.5,這個管腳是MCU的副時鐘輸出為MCU主時鐘的1/4。由于MCU工作在4.096MHz,因此CODEC的采樣頻率為8KHz。AIC11以8KHz的頻率在FS上發出同步脈沖,并在DOUT腳上將16bit的PCM數據流發送到DSP。同時從DIN管腳接收DSP發送過來的經過解碼的16bit PCM語音。由于使用了AIC11,系統的使用“粘合邏輯”部件大大減小,從而有效的縮小了硬件電路板的面積。 2.硬件系統加密設計 有效的保護知識產權是產品開發必須要考慮的因素。TI的C55x系列DSP芯片是一種開放式的總線結構,因此別有用心的人可以通過JTAG接口和相應軟件訪問并分析DSP內部存儲區的代碼和數據,或者僅僅是直接導出并復制這些信息,就可以輕易竊取產品。針對這種現實情況,最好的解決方法是將程序交由芯片的生產商掩模入芯片內部的ROM儲存區內,再去除DSP芯片中的JTAG邏輯模塊, DSP內部的總線與外界隔離,這樣從外部就無法獲得片內的信息。然而當產品的產量不大的時候,掩模ROM在成本上來說是不現實的,需要另外想辦法。 本次設計所提出的是一種基于TI公司MSP430F149單片機作為硬件加密部件的方法。MSP430F149是TI生產的一款16位RISC結構的Flash型單片機。不僅功耗極低,其另外一個特點就是其內部的熔斷型Flash儲存單元。當開發過程結束,程序寫入MSP430內部的Flash之后,開發者可以將Flash連接在MSP430總線上的融絲融斷,熔斷之后如果想訪問其內部的程序和數據,必須在單片機的JTAG引腳上加上一定時序的信號,進入單片機內部的一段BOOTSTRAP程序,該BOOTSTRAP程序要求用戶向一個密碼寄存器內寫入一個32個字節的密碼,如果該密碼和事先寫入Flash特定位置的一個密碼相符,才能訪問片內的程序和數據資源,否則只能允許進行擦除整個Flash的操作。通過這種機理達到保護用戶程序數據代碼的目的。 鑒于MSP430F149的內部數據無法復制和訪問的特點,我們提出了一種基于MSP430F149的硬件加密方法。 圖3 DSP和MSP430的硬件連接示意圖 圖3是MSP430和DSP之間的硬件連接示意圖。如圖所示,這種連接方式將DSP和MCU配置成了16位復用連接模式(HMODE=0),數據和地址共享HD總線。HRW、HCNTL0和HCNTL1的不同組合分別表示對DSP的EHPI口的三個寄存器HPID(數據)、HPIA(地址)、HPIC(控制)讀寫,具體的組合方式如表2所示。 表2 復用模式下EHPI口讀寫類型指示 具體加密方式簡述如下: 1)為每一塊電路板指定一個128位的密鑰,密鑰的選擇完全隨機,只要不同板子不相同即可。將密鑰和加密算法(DES或是其他的加密算法)燒寫入MSP430的內部做為DSP boot程序的一部分。 2)使用該密鑰和加密算法,將加密后的語音編解碼算法的程序和數據燒寫入DSP的外部存儲Flash芯片之中。 3)將DSP設置成工作于HPI口boot模式,在每次重啟之后,主機將一段BOOT程序裝入起始位置為0x10000程序空間里(該段BOOT程序中包含了解碼程序),并將128位的密鑰load到DSP內部的某個特定位置。主機將DSP的RST引腳置高表示主機的load過程結束。DSP自動從0x10000的位置開始執行程序,這段程序從Flash中讀入加密了的程序和數據,并使用主機寫入的解密程序并結合128位的密鑰進行解密,解密后的程序和數據被裝載入DSP的程序和數據段內開始正常的運行。 |