基于SoPC的任意波形信號發(fā)生器設(shè)計
摘要:為了解決信號發(fā)生器的一些具體問題,如需要它能產(chǎn)生多種信號、工作穩(wěn)定、成本低等,因此采用GW48型SoPC開發(fā)系統(tǒng),以Nios軟核為控制核心,來實現(xiàn)參數(shù)可調(diào)的任意波形DDS信號源。重點闡述系統(tǒng)硬件方案、軟件設(shè)計,并對整個系統(tǒng)進行了仿真,仿真結(jié)果符合設(shè)計要求,具有方案設(shè)計便捷、集成度高、擴展靈活和功能全面等特點。
關(guān)鍵詞:SoPC;DDS;Nios;任意波形信號發(fā)生器
0 引言
可編程片上系統(tǒng)(System on a Programmable Chip,SoPC)結(jié)合了SoC,PLD和FPGA的諸多優(yōu)點,既擁有可編程邏輯技術(shù)將整個系統(tǒng)集成于一塊硅片之上,由單個芯片實現(xiàn)主要邏輯功能的特點,又具備可裁減、可擴展、可升級、軟硬件系統(tǒng)可編程的功能,是一種特殊的嵌入式系統(tǒng)。直接數(shù)字頻率合成(DDS)是20世紀70年代初提出的一種全數(shù)字的頻率合成技術(shù),常用于產(chǎn)生相位可控的信號,具有轉(zhuǎn)換快、分辨率高等特點。而SoPC具有速度快、集成度高、存儲容量大的優(yōu)點,使之與DDS技術(shù)相結(jié)合,可以極大地提高信號發(fā)生器的性能,降低生產(chǎn)成本。本文采用SoPC技術(shù),把DDS模塊和微處理控制部分集成到FPGA芯片,從而實現(xiàn)頻率可調(diào)的正弦、鋸齒、方波、三角等任意波形的信號發(fā)生器。
1 DDS原理
DDS的基本原理是以采樣定理為基礎(chǔ),利用查表法產(chǎn)生數(shù)字量形式的波形信號,并通過DAC轉(zhuǎn)換成模擬量形式的信號。其基本的原理電路如圖1所示,直接數(shù)字頻率合成(DDS)是由頻率合成器、相位累加器、波形ROM、D/A轉(zhuǎn)換器和低通濾波器LPF構(gòu)成。
連續(xù)信號按照相位取樣、量化、編碼后,形成一個波形函數(shù)表,存于ROM中。合成時,每輸入一個時鐘相位累加器把頻率控制字累加一次,輸出合成信號的相位,通過改變相位累加器的頻率控制字可以改變相位增量。當(dāng)相位增量改變時,一個周期內(nèi)的采樣點數(shù)也隨之改變。在時鐘頻率即采樣頻率不變的情況下,通過相位增量的改變來實現(xiàn)頻率的改變,計算公式為△p=w△t=2πf△t,其中△p為相位變化,ω為角頻率,△t為時鐘周期。經(jīng)過轉(zhuǎn)換的合成信號的頻率為f=△p/(2π△t)=△pfclk/(2π),fclk為時鐘頻率。通過改變△p改變合成信號的頻率f。由N位相位累加器對2π進行量化,對2π取2N個點,則f=(K/2N)fclk,其中K為頻率控制字,取值范圍為0~2N-1。
2 信號發(fā)生器的設(shè)計
設(shè)計方案采用Altera公司的QHartusⅡ和NiosⅡIDE軟件作為開發(fā)工具,包括硬件和軟件兩部分。
2.1 硬件方案
該設(shè)計選用Altera公司CycloneⅡ系列EP2C35F484C8型FPGA芯片作為產(chǎn)生波形信號的核心組件,以搭載Nios軟核和DDS模塊,并由外部添加輸入鍵盤,修改DDS發(fā)生器的參數(shù),來選擇不同的輸出波形。為了保證輸出信號不失真,DAC芯片的轉(zhuǎn)換速率必須高于100 MHz,所以D/A轉(zhuǎn)換器選用了190 MHz的THS5651高速DAC芯片。硬件系統(tǒng)結(jié)構(gòu)如圖2所示,系統(tǒng)頂層設(shè)計圖如圖3所示。
系統(tǒng)頂層設(shè)計的核心是可裁剪的Nios軟核和可存儲多種波形信號的DDS模塊,如圖3所示。Nios軟核為DDS設(shè)置輸出波形選擇參數(shù),DDS模塊生成相應(yīng)波形信號,再由PIO口將輸出信號傳輸給DAC芯片。DDS模塊是由1個相位累加器和4個LPM_ROM構(gòu)成,主要完成保存設(shè)置參數(shù),產(chǎn)生波形ROM地址,形成波形ROM等工作。LPM_ROM分別以matlab生成的MIF格式文件存儲了正弦、鋸齒、三角、方波四種常見的波形數(shù)據(jù)表,若要生成其他任意波形,只需將相應(yīng)的連續(xù)信號轉(zhuǎn)化為MIF文件,替換LPM_ROM中的波形文件即可實現(xiàn)任意波形信號的輸出。為了取得精細的頻率分辨率,將相位累加器設(shè)為32位,同時為使LPM_ROM中數(shù)據(jù)量不至于過大,使用相位截斷閥,讓相位累加器輸出的高10位用來查表,這樣可以保證系統(tǒng)在高速穩(wěn)定運行的前提下,最大限度地減少輸出波形信號的誤差。
2.2 軟件設(shè)計
軟件設(shè)計流程如下:
3 測試結(jié)果與分析
采用邏輯分析儀對DDS發(fā)生器的輸出信號進行測試,輸出信號如圖4所示,設(shè)置初始頻率字與實測值見表1,誤差小于0.05,輸出信號精度較高。
4 結(jié)語
本文介紹了基于SoPC的DDS任意波形發(fā)生器的一種設(shè)計方案,詳述了硬件結(jié)構(gòu)及軟件設(shè)計過程,并對整個系統(tǒng)進行了仿真與測試,輸出信號頻率的誤差較小,可以滿足不同系統(tǒng)對波形信號的要求,適用于工業(yè)控制、檢測、通信等不同領(lǐng)域。