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