【導讀】隨著(zhù)CMOS技術(shù)的出現和進(jìn)步,1982年推出了基于CMOS的浮點(diǎn)DSP芯片。AT&T;公司于1984年推出的DSP32是第一個(gè)高性能浮點(diǎn) DSP。1990年推出了浮點(diǎn)DSP芯片MC96002??梢?jiàn)從80年代以來(lái),DSP芯片的發(fā)展突飛猛進(jìn),逐漸決定電子產(chǎn)品的更新?lián)Q代。從運算速度看,DSP芯片關(guān)鍵的乘法器部件從40%降到5%以?xún)?,片內RAM數量增加一級以上。引腳數量增加到200個(gè)以上,大大提高了芯片靈活性。
本文介紹了基于 TMS320C5416DSP芯片的音頻信號濾波系統,結合音頻編解碼TLV320AIC23芯片,FLASH存儲器等實(shí)現語(yǔ)音錄放器硬件的設計;接著(zhù)以 CCS環(huán)境下的C語(yǔ)言為軟件設計。將語(yǔ)音信號輸入后,經(jīng)AIC23進(jìn)行采樣后保存在外擴存儲器中,再經(jīng)過(guò)DSP帶緩沖串口MCBSP 2讀入DSP,經(jīng)過(guò)FIR濾波器濾除信號中的噪聲,最后進(jìn)行離散傅里葉快速變換。
1 硬件設計方案
本系統采用DSP芯片TMS320C5416和TLV320AIC23音頻編解碼芯片實(shí)現系統的軟硬件設計,并在此基礎上完成語(yǔ)音信號的采集、播放、存儲、分析功能。文中包括3部分:音頻信號采集、DSP芯片處理信號、Flash存儲器。系統總體設計結構如圖1所示。

TMS320C5416是文中采用的主芯片,是一款低功耗、高性能的DSP芯片,主要功能包括采集語(yǔ)音信號、存儲以及控制模塊間通信等,將音頻信號經(jīng)過(guò)采集和壓縮后存放到Flash存儲器中。AIC23的高性能立體聲信號的輸入支持MIC和LINE?IN兩種方式,可配置寄存器選擇,并且具有可編程增益調節。其內部集成模數和數模轉換部件,采用先進(jìn)的采樣技術(shù),采樣范圍在8K~96K之間。
本設計的從芯片TLV320AIC23音頻編解碼芯片,是立體聲音頻Codec芯片,主要負責對語(yǔ)音信號的A/D轉換,采樣編碼及濾波,該芯片是理想的音頻模擬器件,應用廣泛;DSP芯片三個(gè)中有兩個(gè)緩沖串口MCBSP0和MCBSP1負責控制音頻芯片AIC23,其中MCBSP0串口是SPI接口,實(shí)現語(yǔ)音數據的發(fā)送和接收,MCBSP1串口是I2S接口,任務(wù)是寫(xiě)控制字;Flash存儲模塊可快速訪(fǎng)問(wèn)可電擦寫(xiě),即使停電信息也不會(huì )丟失數據的存儲器,而且成本很低,可靠性高、穩定性強,容量大有幾GB,外形小巧等特性,進(jìn)行讀取和存儲操作為載體。
1.1 系統硬件電路設計
本系統采用的DSP芯片TMS320C5416,最高頻率可達160MIPS,系統實(shí)時(shí)性良好;音頻編解碼芯片TLV320AIC23采樣精度在16~32位。上述兩種芯片的結合是解決移動(dòng)音頻錄放系統、現場(chǎng)采集語(yǔ)音的理想設計。TMS320C5416的3個(gè)MCBSP可以方便地實(shí)現 AIC23之間的控制和通信。AIC23是可編程芯片,其內部含有11個(gè)16位寄存器,由MODE引腳選擇控制接口采用SPI或者I2C哪種工作方式,MODE=0采用I2C模式;MODE=1表示采用SPI模式。
AIC23獨立的控制口接收控制器的命令字,而獨立的數據接口交換DSP語(yǔ)音數據。為DSP提供工作時(shí)鐘的是12M外部晶振。本系統C5416DSP的MCBSP0連接AIC23的控制接口,MCBS P1連接AIC23的數據接口。TMS320C5416DSP連接TLV320AIC23的接口框圖如圖2。

1.2 TMS320C5416DSP模塊設計
本次設計采用TMS320C5416芯片,其內部128K*16的RAM,能有效提高系統的集成度和總體性能。另外它還有3個(gè)多通道緩沖串口,提供128個(gè)通道。C5416芯片的特點(diǎn)有:工作頻率可達160 MIPS;可以訪(fǎng)問(wèn)的數據存儲空間64K、I/O空間64K。
TMS320C5416和TLV320AIC23連接的引腳如下:BCLKX0/1:傳輸時(shí)鐘信號,是多通道緩沖串行接口發(fā)送器的串行移位時(shí)鐘信號,復位時(shí),默認為輸入。當OFF為低電平,BCLKX進(jìn)入高組態(tài);TMS320C5416連接FLASH器件時(shí),DSP芯片每次采集32位的語(yǔ)音數據,依次從左聲道開(kāi)始往右聲道寫(xiě)入Flash器件進(jìn)行存儲。
1.3 TLV320AIC23語(yǔ)音采集及回放接口電路模塊
AIC23芯片內部集成了ADC和DAC,兼容C5416的輸入/輸出電壓,它的數字接口和DSP的MCBSP端口無(wú)縫連接。AIC23采用先進(jìn)的Sigma—delta過(guò)采樣技術(shù),將大部分的噪聲轉移到阻態(tài),采樣頻率范圍8K~96K提供4種16 bit、20 bit、24 bit和32 bit的采樣數據,ADC和DAC的輸出信噪比分別達到90 dB和100 dB。
TLV320AIC23與TMS320C5416連接的引腳圖如下。BCLK:I2S數字音頻接口時(shí)鐘信號,串行數據傳輸時(shí)鐘,當主模式是AIC23時(shí),由AIC23產(chǎn)生BCLK且由它傳輸給DSP,此時(shí)的頻率僅為主時(shí)鐘的1/4,當從模式時(shí),DSP產(chǎn)生BCLK;DIN:I2S格式輸入給D/A轉換器;DOUT,立體聲ADC產(chǎn)生,I2S格式A/D轉換器串行數據輸出:LRCIN/LRCOUT:I2SD/A和A/D轉換器字時(shí)鐘信號,主機模式下,AIC23產(chǎn)生該信號發(fā)送給DSP,從機模式下,由DSP產(chǎn)生;SCLK:控制端口串行時(shí)鐘輸入;SDIN:控制端口串行數據輸入,控制協(xié)議,傳輸配置數據;/CS:在SPI模式下,是數據鎖存控制端,在I2C模式下,作為外設7位地址的末位;XTI/MCLK:外部時(shí)鐘輸入。本文中AIC23由外接的晶振提供工作時(shí)鐘,TLV320AIC23從電路模塊電路如圖3。

1.4 語(yǔ)音數據存儲接口電路模塊
本文的語(yǔ)音數據存儲模塊采用32M*8位的Flash存儲空間,能夠滿(mǎn)足文中對存儲器芯片的容量以及讀取語(yǔ)音信號速度。Flash存儲器內存放錄音和放音系統數據。Flash的構成是由一組可獨立擦除的1KB區塊,擦除一個(gè)區塊將使該區塊全部復位為1。Flash存儲器每個(gè)區塊的基地址都固定不變。 Flash存儲器在存儲器中處于起始位置,一般從0開(kāi)始。下圖4為Flash存儲模塊電路圖。

Flash存儲器是一種不揮發(fā)性?xún)却?,存儲特性相當于硬盤(pán),因此成為便攜式數字設備的存儲介質(zhì),同時(shí)Flash存儲器采用串行結構,讀寫(xiě)單元以頁(yè)和塊為單位,容量可以很大,成本低廉,而且又能確保數據讀寫(xiě)的正確性。閃存的I/O端口有8位,數據傳送的方式是輪流傳送命令字。DSP采集到的32位語(yǔ)音數據,通過(guò)外部總線(xiàn)分4次,從左往右聲道寫(xiě)入閃存中。
1.5 電源接口模塊
TMS320C5416DSP的供電結構采用雙電源器件芯片,內核電源CVDD和I/O電源DVDD,需要考慮相對電壓和上電次序。兩種供電控制策略不同:DVDD是3.3 V單電源上電,而CVDD只加載1.6 V,降低供電是想要降低芯片的功耗。雙供電模式可以消除電源間的延時(shí)。在理想狀態(tài)下,I/O電源和內核電源應該同時(shí)加電,但實(shí)際情況下想要做到并不容易。如果不能同時(shí)加電,需要根據引腳電平對工作模式進(jìn)行配置,內核要優(yōu)先于I/O供電,要求一種電壓要低于操作電壓,另一個(gè)電壓供電時(shí)間不能超出要求。上電過(guò)程中,要保證I/O緩沖接收到正確的內核輸出,并防止系統的總線(xiàn)沖突。加電次序主要取決于內部靜電保護電路如圖5所示。

圖5中可見(jiàn),需要DVDD不超出CVDD 2 V,于是采用4個(gè)二極管降壓,而內核電源不能超過(guò)I/O電源電壓0.5 V,因此只用一個(gè)二極管,否則容易損壞芯片。
2 系統軟件設計模塊
本語(yǔ)音錄放系統的軟件環(huán)境是DSP集成開(kāi)發(fā)環(huán)境IDE提供成熟的核心功能和便捷的圖形可視化工具,使得設計更快。CCS2.0提采用圖形接口界面,有編輯工具和工程管理工具,提供軟件開(kāi)發(fā)、程序調試和仿真環(huán)境,集成了匯編器、編譯器、建庫工具等。CCS集成的代碼調試工具具備各種調試功能,同時(shí)支持匯編和C/C++語(yǔ)言,本系統的程序軟件均采用C語(yǔ)言混合編寫(xiě)。既容易調試,又能提高軟件的執行效率,能對DSP進(jìn)行指令級仿真和實(shí)時(shí)數據分析。同時(shí)它還具有豐富的庫函數。
本系統的軟件部分主要是從現場(chǎng)線(xiàn)路輸入和麥克語(yǔ)音所采集到的信號,收集并存儲到Flash存儲器中,由濾波后播出信號,并將信號變換到頻域,即FFT離散傅立葉快速變換。
2.1 語(yǔ)音分析子模塊
現場(chǎng)輸入的語(yǔ)音信號,送入立體聲音頻編解碼器AIC23中,AIC23控制芯片內寄存器,將信號A/D轉換,用數字計算機處理數字信號,然后由數字濾波器濾波,再送到Flash存儲器暫存。數字濾波器是一個(gè)離散時(shí)間系統。程序語(yǔ)音模塊處理過(guò)程:首先初始化系統,包括設置時(shí)鐘發(fā)生器、AIC23的初始化、多通道緩沖、工作變量的初始等。
語(yǔ)音分析程序模塊處理過(guò)程:TLN320AIC23初始化,語(yǔ)音錄音數據讀取后存入數據緩沖區,調用FIR數字濾波器濾波,效果突出,然后將數字語(yǔ)音信號暫存在閃存內,最后由耳機發(fā)出,同時(shí)進(jìn)行FFT離散快速變換算法。語(yǔ)音數據輸出到MCBSP。語(yǔ)音分析子程序模塊流程圖如圖6所示。

2.2 數字濾波器設計
使用窗函數的有限長(cháng),實(shí)現加窗線(xiàn)性相位FIR數字濾波器,能夠滿(mǎn)足轉移序列或脈沖響應的常見(jiàn)問(wèn)題。
b=fir1(n,Wn,‘ftype’);
b=fr1(n,Wn,‘ftype’,‘window’);
n為濾波器的階數,Wn為截止頻率,ftype決定濾波器類(lèi)型,high時(shí)為高通濾波器,stop時(shí)為帶阻濾波器。window采用窗函數類(lèi)型,是一種通過(guò)截短和計權的方法使無(wú)限長(cháng)非因果序列成為有限長(cháng)脈沖應響應序列的設計方法,其默認值為漢明窗,w=hamming(n),產(chǎn)生一個(gè)n點(diǎn)的漢明窗函數。編寫(xiě)matlab程序,生成FIR系數存放在FH[n]中,程序運行后在顯示區顯示結果。
FFT是快速計算DFT的高效方法,能夠顯著(zhù)降低運算量,大大提高DFT運算速度。大部分DSP芯片能在單指令周期內完成乘法累加運算。FFT算法是利用DFT系數的特性,合并運算,將長(cháng)序列轉換為短序列DFT,以減少運算量。FFT算法的實(shí)現過(guò)程:
1)把N點(diǎn)的時(shí)域信號分解成N個(gè)時(shí)域信號,單點(diǎn)組成信號,并計算出頻譜。
2)輸入數據的比特反轉,即將輸入序列整理成位序顛倒的次序。位碼倒置可以提高程序執行速度和存儲效率。
3)實(shí)現N點(diǎn)復數FFT,執行3個(gè)循環(huán)套計算FFT變換,最內層都進(jìn)行蝶形運算,第一級、第二級、第三級至第log2N級都是蝶形運算。序列點(diǎn)數N=2m,N為2的整數冪的FFT算法。
4)估計功率普

,X(k)一般分成虛部和實(shí)部,計算時(shí)將FFT算法變換好的數據求平方和。
2.3 控制寄存器程序設計
本文的TLV320AIC23利用串行傳輸數據。前半部分數據控制所需存放寄存器地址,后半部分將所要寫(xiě)入的值保存在寄存器中。采用兩個(gè)8 bit處理串行傳輸的控制數據。結合實(shí)際本文對于I2C寫(xiě)入模塊采用匯編語(yǔ)言。
DSP通過(guò)I2C總線(xiàn)將配置命令發(fā)送到AIC23,完成初始化配置,然后AIC23開(kāi)始工作。AIC23的初始化記錄在一個(gè)數組中,利用串口發(fā)送命令,采用循環(huán)方式發(fā)送。AIC23數據寫(xiě)入時(shí)序圖如圖7。

如圖中所示B[15~9]是記錄控制寄存器的地址,B[8~0]是要寫(xiě)入的值被保存在寄存器中。
3 結論
文中設計了TMS320C5416DSP芯片的音頻信號濾波系統,結合音頻編解碼TLV320AIC23芯片、FLASH存儲器等完成語(yǔ)音錄放器硬件的設計過(guò)程;軟件設計分為語(yǔ)音設計子程序和控制寄存器程序設計。在CCS環(huán)境下的C語(yǔ)言編程,將外部輸入的語(yǔ)音信號,經(jīng)AIC23進(jìn)行采樣后保存在外擴存儲器中,再經(jīng)過(guò)DSP帶緩沖串口MCBSP 2讀入DSP,經(jīng)過(guò)FIR濾波器濾除信號中的噪聲,最后進(jìn)行離散傅立葉快速變換再進(jìn)行播放。
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問(wèn)題,請聯(lián)系小編進(jìn)行處理。
推薦閱讀: