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