基于DSP數(shù)字振蕩器的移相正弦波發(fā)生器設(shè)計(jì)
0 引 言
產(chǎn)生數(shù)字式移相信號(hào)的方法有很多。傳統(tǒng)的直接數(shù)字頻率合成(DDS)移相原理是先將正弦波信號(hào)數(shù)字化,并形成一張數(shù)據(jù)表存入兩片ROM芯片中,此后可通過兩片。D/A轉(zhuǎn)換芯片在計(jì)數(shù)器的控制下連續(xù)地循環(huán)輸出該數(shù)據(jù)表,就可獲得兩路正弦波信號(hào)。當(dāng)兩片D/A轉(zhuǎn)換芯片所獲得的數(shù)據(jù)序列完全相同時(shí),則轉(zhuǎn)換所得到的兩路正弦波信號(hào)無相位差。當(dāng)兩片D/A轉(zhuǎn)換芯片所獲得的數(shù)據(jù)序列不同時(shí),則轉(zhuǎn)換所得到的兩路正弦波信號(hào)就存在著相位差。相位差的值與數(shù)據(jù)表中數(shù)據(jù)的總個(gè)數(shù)及數(shù)據(jù)地址的偏移量有關(guān)。這種處理方式的實(shí)質(zhì)是將數(shù)據(jù)地址的偏移量映射為信號(hào)間的相位值。數(shù)據(jù)的偏差可以通過外部微處理器來獲得相應(yīng)的數(shù)字量輸入,這個(gè)數(shù)值對(duì)應(yīng)著正弦信號(hào)的移相角度。直接頻率合成方法具有頻率轉(zhuǎn)換時(shí)間短、相位噪聲性能好、精度高,產(chǎn)生的信號(hào)頻率范圍寬等優(yōu)點(diǎn),但由于需要采用地址、相位計(jì)算、訪問存儲(chǔ)器操作等環(huán)節(jié),導(dǎo)致直接頻率合成器結(jié)構(gòu)復(fù)雜、成本高、移相分辨率低。本文利用DSP技術(shù),通過數(shù)值迭代方法,即用DSP數(shù)字振蕩器的實(shí)現(xiàn)原理獲得兩路正弦波信號(hào)。通過仿真,硬件實(shí)現(xiàn),能得到設(shè)定參數(shù)的兩路正弦波輸出,達(dá)到了設(shè)計(jì)目的,并具有調(diào)整方便靈活、分辨率高等特點(diǎn)。數(shù)值迭代方法能精確計(jì)算角度的正弦值,只需較小的存儲(chǔ)空間,選擇正弦周期中的樣點(diǎn)數(shù)、改變樣點(diǎn)間的延遲,能產(chǎn)生不同頻率的波形,可利用軟件改變波形幅度及相位。
1 波形及移相波形發(fā)生器的DSP實(shí)現(xiàn)原理
利用DSP通過運(yùn)算,用疊代的方法產(chǎn)生正弦信號(hào),即數(shù)字振蕩器。數(shù)字振蕩器的單位沖擊響應(yīng)為sin(nωT+θ)·u(n)即系統(tǒng)在δ(n)的激勵(lì)下,產(chǎn)生振蕩,輸出相位為θ的正弦序列,該系統(tǒng)的系統(tǒng)函數(shù)就是沖擊響應(yīng)的Z變換,即
則該系統(tǒng)所對(duì)應(yīng)的差分方程為
通過疊代可由差分方程求出系統(tǒng)的沖擊響應(yīng)。系統(tǒng)的輸入為x(n)=δ(n),初始條件為零。則由差分方程可得:
當(dāng)n≥3時(shí)有:y(n)=2cosωT·y(n-1)-y(n-2)。在n≥3以后,y(n)能用y(n-1)和y(n-2)算出,這是一個(gè)遞歸的差分方程。因此得到如下結(jié)論:只要已知系統(tǒng)輸出正弦信號(hào)角頻率ω和采樣周期T就可以得到系統(tǒng)差分方程,系統(tǒng)只需每隔T秒時(shí)間計(jì)算一次差分方程,就可得到當(dāng)前正弦采樣序列y(n)的值。設(shè)定的y(1)、y(2)初值不同,初始相位就不同。在設(shè)計(jì)中,主程序通過鍵盤輸入頻率及相位差等數(shù)據(jù),在初始化時(shí)依輸出信號(hào)頻率、采樣速率及相位差等數(shù)據(jù)先計(jì)算出兩路正弦信號(hào)的初始值y1(1)、y1(2)和y2(1)y2(2),然后開放定時(shí)器中斷。以后每次進(jìn)入定時(shí)器中斷服務(wù)程序時(shí),利用前面的y1(1)、y1(2)和y2(1)y2(2),計(jì)算出新的y1(0)和y2(0)。雖然兩次計(jì)算并輸出y1(0)和y2(0)有一定的延遲,但由于DSP的高速流水線運(yùn)行及McBSP高速串行輸出,所引起誤差將很小。
[!--empirenews.page--]
2 系統(tǒng)硬件實(shí)現(xiàn)方案
基于TMS320VC5416 DSP的兩路輸出移相正弦波的系統(tǒng)結(jié)構(gòu)如圖1所示。該系統(tǒng)的中央處理單元采用美國TI(德州儀器)公司的高性能定點(diǎn)數(shù)字信號(hào)處理芯片TMS320VC5416,TMS 320 VC54.16是TI公司專門針對(duì)便攜式設(shè)備設(shè)計(jì)的一款低功耗、高性能定點(diǎn)數(shù)字信號(hào)處理器,同C54系列其它處理器相比運(yùn)行速度達(dá)到160MPIS,片內(nèi)RAM達(dá)到128K,程序可尋址空間達(dá)到8M,為大量數(shù)據(jù)處理提供了豐富條件。特別是VC5416提供了多種片內(nèi)外設(shè)資源;軟件可編程等待狀態(tài)產(chǎn)生器、可編程鎖相環(huán)時(shí)鐘產(chǎn)生器、1個(gè)16位計(jì)時(shí)器、6通道直接內(nèi)存訪問控制器(DMA)、3個(gè)多通道緩沖串口(McBSP)、8位增強(qiáng)型HPI接口等。此外,TMS320VC5416支持C和匯編語言混合編程,高效的流水線操作和靈活的尋址方式使其特別適合高速實(shí)時(shí)信號(hào)處理。由于系統(tǒng)有兩路正弦信號(hào)輸出,系統(tǒng)采用兩路信號(hào)分時(shí)傳輸方式。TLC320AD50C是TI公司出品的一塊將A/D和D/A轉(zhuǎn)換功能集成在一起的模擬接口芯片,采用∑-△技術(shù)在低系統(tǒng)成本下實(shí)現(xiàn)了高精度的A/D和D/A轉(zhuǎn)換。該芯片由一對(duì)16 b同步串行轉(zhuǎn)換通道組成,在ADC之后有一個(gè)抽取濾波器,在DAC之前有一個(gè)插值濾波器。TLC320AD50C支持主從兩種工作方式,并且最多支持三個(gè)從設(shè)備。利用該特點(diǎn),系統(tǒng)將兩片TLC320AD50C串聯(lián),使其中一個(gè)為主設(shè)備另一個(gè)為從設(shè)備,通過TMS320VC5416的多通道緩沖串口McBSP實(shí)現(xiàn)與兩片TLC320AD50C間的串行通信。TMS320VC54.16控制兩片TLC320AD50C以時(shí)分復(fù)用方式將數(shù)據(jù)傳送給兩片TLC320AD50C進(jìn)行D/A轉(zhuǎn)換輸出。其中AD50C1的M/S接高電平,AD50C2的M/S接低電平,并且利用VC5416的XF引腳為AD50C提供主、次通信選擇信號(hào)。TLC320AD50被廣泛應(yīng)用于音頻數(shù)據(jù)采集處理中,它可以與TMS320C54xDSP的McBSP無縫串行連接進(jìn)行數(shù)據(jù)采集、存儲(chǔ)和處理。SCLK輸出時(shí)鐘,DIN串行輸入,DOUT串行輸出,F(xiàn)S幀同步信號(hào)輸出,對(duì)應(yīng)DSP的各相應(yīng)引腳。MCBSP具有特點(diǎn):①串口的接收,發(fā)送時(shí)鐘既可由外部設(shè)備提供,又可由內(nèi)部時(shí)鐘發(fā)生器提供;②幀同步信號(hào)和數(shù)據(jù)時(shí)鐘信號(hào)的極性可編程,內(nèi)部時(shí)鐘和幀信號(hào)發(fā)生器也可由軟件編程控制;③串口的信號(hào)發(fā)送和接收部分既可單獨(dú)運(yùn)行,又可以在一起配合工作;④CPU的中斷信號(hào)和DMA的同步信號(hào)使得McBSP串口可由CPU控制運(yùn)行,還可脫離CPU通過DMA直接存取內(nèi)存單獨(dú)運(yùn)行;⑤多通道選擇部分使得串口具備了多通道信號(hào)的通信能力,他的多通道接收和發(fā)送能力可達(dá)128個(gè)信道;⑥數(shù)據(jù)寬度可在8b、12b、16b、20b、24b、32b中任意選擇,并可對(duì)數(shù)據(jù)進(jìn)行A律和U律壓縮和擴(kuò)展。McBSP串口包括一個(gè)數(shù)據(jù)通道和一個(gè)控制通道,數(shù)據(jù)通道完成數(shù)據(jù)的發(fā)送和接收。McBSP通過DX引腳發(fā)送數(shù)據(jù)、DR引腳接收數(shù)據(jù)??刂仆ǖ劳瓿傻娜蝿?wù)包括內(nèi)部時(shí)鐘的產(chǎn)生、幀同步信號(hào)的產(chǎn)生、對(duì)這些信號(hào)的控制以及多通路的選擇等??刂仆ǖ肋€負(fù)責(zé)產(chǎn)生中斷信號(hào)送往CPU,產(chǎn)生同步事件信號(hào)通知DMA控制器??刂菩畔t是通過控制通道以時(shí)鐘和幀同步信號(hào)的形式傳送。
3 系統(tǒng)軟件設(shè)計(jì)及CCS仿真結(jié)果
系統(tǒng)軟件主要由BootLoader下載程序、系統(tǒng)初始化、鍵盤顯示、定時(shí)中斷處理等幾個(gè)模塊構(gòu)成。系統(tǒng)開始上電時(shí)首先執(zhí)行BootLoader程序,將目標(biāo)程序從外部FLASH中調(diào)入片內(nèi)RAM中執(zhí)行。[!--empirenews.page--]
系統(tǒng)初始化程序完成對(duì)TMS320VC5416各控制寄存器,McBSP串口控制寄存器,定時(shí)器以及TLC320AD50C相應(yīng)寄存器的初始化設(shè)置。主程序及定時(shí)中斷服務(wù)程序流程圖如圖2所示。
設(shè)定正弦波頻率為2 kHz,采樣頻率40 kHz,移相60度的CCS仿真波形如3所示。
4 結(jié)束語
本文提出了一種基于DSP數(shù)字振蕩器產(chǎn)生移相正弦波的設(shè)計(jì)方法。實(shí)驗(yàn)結(jié)果表明系統(tǒng)產(chǎn)生的波形穩(wěn)定,抗干擾能力強(qiáng),頻率、相位和幅度調(diào)節(jié)方便,精度高,輸出頻率范圍為20 Hz~20 kHz,相移0~360°,移相分辨率可高達(dá)0.001度。另外系統(tǒng)若連接高速DA轉(zhuǎn)換芯片,可大大提高輸出頻率范圍。該設(shè)計(jì)方案簡單可行、新穎實(shí)用,有推廣應(yīng)用價(jià)值。