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