基于TMS320VC5402的音頻信號采集與處理系統(tǒng)
近年來,隨著DSP技術(shù)的普及和低何等、高性能DSP芯片的出現(xiàn),DSP已越來越多地被廣大的工程師所接受,并越來越廣泛地被應(yīng)用于各個領(lǐng)域,例如:語音處理、圖像處理、模式識別及工業(yè)控制等,并且已日益顯示出其巨大的優(yōu)越性。DSP是利用專門或通用的數(shù)字信號處理芯片,以數(shù)字計算的方法對信號進行處理,具有處理速度快、靈活、精確、抗干擾能力強、體積小及可靠性高等優(yōu)點,滿足了對信號快速、精確、實時處理及控制的要求?;赥MS320C5402芯片,筆者研制了一套音頻信號實時采集與處理系統(tǒng),并已作為有關(guān)音效器研制的硬件試驗平臺。
1 系統(tǒng)總線方案
系統(tǒng)總線方案框圖如圖1所示。音頻信號(如:電吉它的單聲道聲音信號是150mV的電信號)經(jīng)過高精度高速的ADC轉(zhuǎn)換后得到一串?dāng)?shù)字信號,分幀輸入到波形輸入緩沖區(qū)RAM。然后由手動控制一種或幾種處理算法將音頻信號調(diào)入TMS320C5402的內(nèi)部進行高速運算。經(jīng)過處理的音頻信號,再輸入到高精度高速的DAC轉(zhuǎn)換器中,還原成模擬的聲音信號,經(jīng)音箱功率放大電路放大輸出。
利用緩沖區(qū)的目的是進行音效的實時處理。系統(tǒng)中各模塊是同時進行處理的,一部分信號正在ADC中進行轉(zhuǎn)換,而另一部分信號則在DSP處理器中同時進行算法處理,即整個系統(tǒng)是以流水線的方式進行工作。
2 硬件電路的設(shè)計
高保真的音頻系統(tǒng)應(yīng)該具有較寬的動態(tài)范圍,選擇16~24位的ADC和DAC能完全捕獲或恢復(fù)高保真的音頻信號。系統(tǒng)的核心芯片(DSP)選用美國TI公司的TMS320VC5402[1](以下簡稱'C5402)。
2.1 DSP芯片
作為DSP家庭高性價比代表的16位定點DSP芯片,'C5402適用于語音通信等實時嵌入應(yīng)用場合。與其它'C54X芯片一樣,'C5402具有高度靈活的可操作性和高速的處理能力。其性能特點如下:操作速率可達100MIPS;具有先進的多總線結(jié)構(gòu),三條16位數(shù)據(jù)存儲器總線和一條程序存儲器總線;40位算術(shù)邏輯單元(ALU),包括一個40位桶形移位器和兩個40位累加器;一個17×17乘法器和一個40位專用加法器,允許16位帶/不帶符號的乘法;整合維特比加速器,用于提高維特比編譯碼的速度;單周期正規(guī)化及指數(shù)譯碼;8個輔助寄存器及一個軟件棧,允許使用業(yè)界最先進的定點DSP C語言編譯器;數(shù)據(jù)/程序?qū)ぶ房臻g為1M×16bit,內(nèi)置4K×16bit ROM和16K×16bit RAM;內(nèi)置可編程等待狀態(tài)發(fā)生器、鎖相環(huán)(PLL)時鐘產(chǎn)生器、兩個多通道緩沖串口、一個與外部處理器通信的8位并行HPI口、兩個16位定時器以及6通道DMA控制器且低功耗。與'C54X系列的其它芯片相比,'5402具有高性能、低功耗和低價格等特點。它采用6級流水線,且當(dāng)RPT(重復(fù)指令)時,一些多周期的指令就變成了單周期的指令;芯片內(nèi)部RAM和ROM可根據(jù)PMST寄存器中的OVLY和DROM位靈活設(shè)置。這些都有利于算法的優(yōu)化。
'C5402采用3.3V和1.8V電源供電,其中I/O采用3.3V電源供電,芯片的核采用1.8V電源供電。而實際常用的只有5V電源,所以必須采用電源轉(zhuǎn)換芯片。選用TPS7301和TPS7333兩塊電源轉(zhuǎn)換芯片(它們都是TI公司為配合DSP而設(shè)計的電源轉(zhuǎn)換芯片),分別接上適當(dāng)?shù)耐鈬娮瑁瑯?gòu)成電阻分壓器,即可調(diào)整兩塊芯片的輸出電壓分別為3.3V和1.8V。
2.2 A/D電路 基本的時鐘信號可以來自CPU時鐘,也可以來自晶振時鐘,這在SRGR2寄存器中的第13位設(shè)置?;緯r鐘輸入后,經(jīng)CLKGDV(SRGR1的第7位到第0位)所設(shè)置的值進行第一次分頻,得到位時鐘信號(由BCLKX1腳輸出)。值得注意的是,位時鐘信號最高為DSP頻率的一半。位時鐘信號經(jīng)FPER(SRGR2的第11位到第0位)和FWID(SRGR1的第15位到第8位)所設(shè)置的值進一步分頻得到采樣時鐘信號(由BFSX1腳輸出),F(xiàn)PER和FWID分別設(shè)置采樣時鐘信號的低電平和高電平的時間值。'C5402與PCM1744的硬件接線如圖4所示。 另外,樂音具有較大的動態(tài)范圍,但音響設(shè)備本身允許的信號動態(tài)范圍是有限的。如果對樂音不作處理直接送到音箱,則會產(chǎn)生大信號過載而失真,從而使小信號淹沒在噪聲中的情形,音質(zhì)因而下降。設(shè)計算法對音頻信號進行壓縮處理,其目的就是來改變信號的動態(tài)范圍,使大信號的強度變?nèi)?,小信號的強度增強,即信號的放大倍?shù)隨著輸入信號的電平而改變。壓縮算法要保證系統(tǒng)的頻率響應(yīng)保持平坦。
PCM1800是雙聲道單片Δ-∑型20位ADC,單+5V電源供電,信噪比為95dB,動態(tài)范圍為95dB,其內(nèi)部嵌有高通濾波器,具有PCM音頻接口和四種數(shù)據(jù)格式,分為主控和受控兩種模式,采樣頻率可選為32kHz、44.4kHz和48kHz。
PCM1800構(gòu)成音頻信號采集系統(tǒng)時,主要涉及到BCK(位時鐘信號)、LRCK(采樣時鐘信號)、FSYNC(幀同步信號)、DOUT(數(shù)字信號輸出)、SYSCLK(系統(tǒng)時鐘輸入)這幾個對時序有要求引腳。通過對引腳MODE0和MODE1進行編程,可讓PCM1800工作于主控模式(Master Mode)。此時,BCK、LRCK、FSYNC均作為輸出,其時序由PCM1800內(nèi)部的時鐘產(chǎn)生電路控制。但SYSCLK只能由外部提供(這里用'C5402的TOUT腳輸出信號提供)。PCM1800的系統(tǒng)時鐘只能是256fs、384fs或者512fs,這里fs是單頻信號采樣頻率。在主控模式時,F(xiàn)SYNC用來指明PCM1800的DOUT輸出的有效數(shù)據(jù),它的上升沿表明一幀數(shù)據(jù)的起始,下降沿表明一幀數(shù)據(jù)的結(jié)束。FSYNC的頻率是采樣時鐘頻率LRCK的2倍 。在此模式下,位時鐘信號BCK的頻率是采樣時鐘頻率LRCK的64倍。
通過對PCM1800的FMT0、FMT1兩引腳編程(FMT0=1,FMT1=0),可以設(shè)置PCM1800輸出的數(shù)據(jù)格式為20位的IIS格式。為了保證在數(shù)據(jù)處理時不影響新數(shù)據(jù)的接收以及在接收數(shù)據(jù)時不斷正在進行的數(shù)據(jù)處理過程,采用了多通道緩沖同步串口(McBSP)。PCM1800與'C5402連接后,'C5402使用緩沖串口0接收數(shù)據(jù),各種同步信號由PCM1800產(chǎn)生,'C5402是被動接收各種信息。PCM1800與'C5402的硬件接線圖如圖2所示。
2.3 D/A電路
PCM1744是雙聲道立體聲DAC,包含數(shù)字濾波器和輸出放大器,動態(tài)范圍為95dB,具有多種采樣頻率可選,最高可達96kHz。采用24位的IIS數(shù)據(jù)輸入格式。PCM1744的操作主要涉及到LRCIN(采樣時鐘信號輸入)、BCKIN(位時鐘信號輸入)、SCKI(系統(tǒng)時鐘輸入)、DIN(數(shù)據(jù)輸入)這幾個對時序有要求的引腳。PCM1744與'C5402連接后,'5402使用緩沖串口1發(fā)送數(shù)據(jù),各種時鐘信號均由'C5402產(chǎn)生,PCM1744被動接收各種信息。PCM1744的系統(tǒng)時鐘信號(SCKI)由'C5402的TOUT引腳提供,TOUT是'C5402的定時器輸出信號引腳,有較強的驅(qū)動能力,可以驅(qū)動多個芯片。PCM1744的數(shù)據(jù)接收時鐘格式必須是IIS格式,'C5402在緩沖串口寄存器中設(shè)置各種時鐘方式時,必須滿足IIS格式的要求。'C5402作為主動工作器件,可以對其緩沖串口輸出信號進行調(diào)整。輸出的采樣時鐘信號、位時鐘信號可以在McBSP寄存器SRGR1和SRGR2中設(shè)置,設(shè)置遵循圖3的原則。[!--empirenews.page--]
PCM1800完成音頻信號采集后,在DSP的外擴程序存儲器中嵌入相應(yīng)的處理算法,語音信號經(jīng)處理后,再從PCM1744輸出。
3 軟件設(shè)計
軟件部分主要包括DSP編程和PC編程。DSP程的主要任務(wù)是初始化、管理板上的資源和完成音頻的處理算法,可參考有關(guān)資料。PC編程重點則是管理DSP操作和應(yīng)用層軟件編寫。
3.1 A/D與D/A程序設(shè)計
為了在20kHz的音響頻段獲得優(yōu)良的音頻輸出,A/D和D/A的采樣頻率應(yīng)該達到44.1kHz或48kHz。要正確編寫采樣和輸出音頻信號的程序,必須對'C5402的McBSP相關(guān)寄存器(spcr1,spcr2,rcr1,rcr2,xcr1,xcr2,srgr1,srgr2,mcr1,mcr2,rcera1,rcerb1,xcera,xcerb,pcr1)進行正確的設(shè)置[1],以滿足'C5402和PCM1744、PCM1800的各種時序要求(位同步、幀同步、時鐘信號等)。為了使TOUT能給外圍器件提供時鐘信號,就設(shè)計到DSP的定時和中斷操作,具體請參考TI提供的Spru302.pdf資料。
3.2 DSP和PC的編程
DSP程序首先初始化'C5402和模擬接口。在分配好相應(yīng)的緩沖區(qū)和產(chǎn)生相應(yīng)的中斷之后,進行各項音效處理算法,例如:壓縮、失真、蛙聲、房間噪聲抑制ZNR、放大、均衡、合唱、鑲邊、延時反唱等,或者幾種算法混合進行。
PC的編程包括DSP接口部分和應(yīng)用層編程部分。在PC程序的開始,與DSP接口部分的程序先調(diào)用初始化函數(shù),將DSP程序下載到DSP(初始化程序在DSP中載入一個很小的自舉程序,然后通過自舉程序一段一段地把全部程序載入DSP)中。初始化完成后,與DSP接口部分程序再按自定義的“通信協(xié)議”在指定位置讀出DSP處理結(jié)果幀或DSP的請求幀,并將它交給上一層(應(yīng)用程序)處理。應(yīng)用程序亦通過與DSP接口部分程序向DSP發(fā)出各種命令。上層應(yīng)用程序是用戶使用系統(tǒng)的界面,它提供語音數(shù)據(jù)庫管理和系統(tǒng)管理等功能。
3.3 基于優(yōu)化工具的程序優(yōu)化
根據(jù)用戶的要求,選擇C程序優(yōu)化器和匯編優(yōu)化器,對編碼器的特定性能如代碼長度、計算速度等進行優(yōu)化。使用方法是在編譯(Built Options)時設(shè)定不同的編譯選項來控制優(yōu)化目標(biāo)。根據(jù)我們的實踐,認為選擇下列幾項進行優(yōu)化對提高計算速度等的影響較大:
(1)-pm:程序級全局優(yōu)化,包括程序的外部訪問、全局變量的優(yōu)化和函數(shù)的外部調(diào)用。
(2)-o3:采用三級優(yōu)化技術(shù)。其中第一級優(yōu)化主要完成消除無用賦值和局部公共表達式等,第二級優(yōu)化主要完成循環(huán)算法的優(yōu)化并將循環(huán)中的數(shù)組訪問轉(zhuǎn)化為指針增量形式、實施循環(huán)展開。消除全局公共了表達式和無用賦值等,第三級優(yōu)化主要完成消除冗余代碼、簡化表達式和語句、使用內(nèi)聯(lián)(inline)函數(shù)并展開等。-03在上述基礎(chǔ)上還完成消除從未使用的函數(shù)、對函數(shù)聲明進行重排序和對函數(shù)使用的內(nèi)聯(lián)形式等。
(3)使用內(nèi)聯(lián)函數(shù)(intrinsic)。'C5402編譯器提供的intrinsi可以快速優(yōu)化C代碼。Intrinsic是直接映射為內(nèi)聯(lián)的'C5402指令的特殊函數(shù)(ETSI函數(shù))。Intrinsic用前下劃線表示,使用時同函數(shù)的調(diào)用一樣。
實際表明:選擇上述幾項進行優(yōu)化,只要編譯選項選擇適當(dāng),其效果很顯著的,計算速度可提高5~10倍,當(dāng)然其代碼長度會有少許增加。
3.4 音頻信號處理算法簡介[2]
在聲音的拾取和傳輸過程中,由于設(shè)備和器件的限制,其幅度對頻率的響應(yīng)并不是一致的,極有可能出現(xiàn)某些頻率成分的增益太大或太小。對于頻率響應(yīng)特性的這類缺陷,需要進行適當(dāng)?shù)恼{(diào)整。音頻信號的均衡算法,這是通過軟件設(shè)計調(diào)節(jié)某些頻率成分的增益,對其進行提升或衰減。聲音信號經(jīng)均衡處理后,可以彌補頻率響應(yīng)特性的缺隱,也可以人為地制造一些較好的音響效果。
當(dāng)然,音頻信號的處理是一個很復(fù)雜的過程,例如,電吉它音效器還包括調(diào)制、延時混響等算法的處理。
本文設(shè)計的音頻信號采集與處理系統(tǒng),已作為電吉他等音效器研制的硬件試驗平臺,并具有如下算法:壓縮模塊、失真模塊、ZNR/AMP模塊、均衡模塊、調(diào)制模塊、延時混響模塊。各個模塊可以單獨使用,也可以串聯(lián)使用,并采用兩個LED數(shù)碼顯示器表示選擇好的混合音效模式。它大大改變了電吉它自身的音色,可產(chǎn)生壓縮、失真、蛙聲、房間噪聲擼制(ZNR)、放大、均衡、合唱、鑲邊、延時反響等多種單獨的音色效果,也可同時使用幾種音色效果,極大地豐富了電吉他現(xiàn)場演奏效果。把相同的電吉它信號分別輸入ZOOM 505(日本ZOOM公司生產(chǎn))和該系統(tǒng),然后分別把輸出波形在時域與頻域以及幅值與相位上進行分析比較,進行算法的優(yōu)化處理,可以發(fā)現(xiàn)最終音色效果相差無幾。另外,在此系統(tǒng)中,既有A/D又有D/A,構(gòu)成一個閉環(huán),可自發(fā)自收;而算法則集中在DSP芯片內(nèi)進行模塊化處理,這給系統(tǒng)的設(shè)計和調(diào)試帶來了很大的方便。所以,如果能在本文提出的以TMS320VC5402 DSP芯片為核心器件的音頻信號采集與處理系統(tǒng)的基礎(chǔ)上,設(shè)計出功能及效果與ZOOM 505相比美的電吉它音效器,可以從根本上改變國內(nèi)目前的電吉它音效器市場基本上被國外產(chǎn)生所壟斷的局面[3],具有很強的實用價值。