基于SoPC的任意波形信號發(fā)生器設(shè)計(jì)
摘要:為了解決信號發(fā)生器的一些具體問題,如需要它能產(chǎn)生多種信號、工作穩(wěn)定、成本低等,因此采用GW48型SoPC開發(fā)系統(tǒng),以Nios軟核為控制核心,來實(shí)現(xiàn)參數(shù)可調(diào)的任意波形DDS信號源。重點(diǎn)闡述系統(tǒng)硬件方案、軟件設(shè)計(jì),并對整個(gè)系統(tǒng)進(jìn)行了仿真,仿真結(jié)果符合設(shè)計(jì)要求,具有方案設(shè)計(jì)便捷、集成度高、擴(kuò)展靈活和功能全面等特點(diǎn)。
關(guān)鍵詞:SoPC;DDS;Nios;任意波形信號發(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ò)展、可升級、軟硬件系統(tǒng)可編程的功能,是一種特殊的嵌入式系統(tǒng)。直接數(shù)字頻率合成(DDS)是20世紀(jì)70年代初提出的一種全數(shù)字的頻率合成技術(shù),常用于產(chǎn)生相位可控的信號,具有轉(zhuǎn)換快、分辨率高等特點(diǎn)。而SoPC具有速度快、集成度高、存儲容量大的優(yōu)點(diǎn),使之與DDS技術(shù)相結(jié)合,可以極大地提高信號發(fā)生器的性能,降低生產(chǎn)成本。本文采用SoPC技術(shù),把DDS模塊和微處理控制部分集成到FPGA芯片,從而實(shí)現(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ù)信號按照相位取樣、量化、編碼后,形成一個(gè)波形函數(shù)表,存于ROM中。合成時(shí),每輸入一個(gè)時(shí)鐘相位累加器把頻率控制字累加一次,輸出合成信號的相位,通過改變相位累加器的頻率控制字可以改變相位增量。當(dāng)相位增量改變時(shí),一個(gè)周期內(nèi)的采樣點(diǎn)數(shù)也隨之改變。在時(shí)鐘頻率即采樣頻率不變的情況下,通過相位增量的改變來實(shí)現(xiàn)頻率的改變,計(jì)算公式為△p=w△t=2πf△t,其中△p為相位變化,ω為角頻率,△t為時(shí)鐘周期。經(jīng)過轉(zhuǎn)換的合成信號的頻率為f=△p/(2π△t)=△pfclk/(2π),fclk為時(shí)鐘頻率。通過改變△p改變合成信號的頻率f。由N位相位累加器對2π進(jìn)行量化,對2π取2N個(gè)點(diǎn),則f=(K/2N)fclk,其中K為頻率控制字,取值范圍為0~2N-1。
2 信號發(fā)生器的設(shè)計(jì)
設(shè)計(jì)方案采用Altera公司的QHartusⅡ和NiosⅡIDE軟件作為開發(fā)工具,包括硬件和軟件兩部分。
2.1 硬件方案
該設(shè)計(jì)選用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è)計(jì)圖如圖3所示。
系統(tǒng)頂層設(shè)計(jì)的核心是可裁剪的Nios軟核和可存儲多種波形信號的DDS模塊,如圖3所示。Nios軟核為DDS設(shè)置輸出波形選擇參數(shù),DDS模塊生成相應(yīng)波形信號,再由PIO口將輸出信號傳輸給DAC芯片。DDS模塊是由1個(gè)相位累加器和4個(gè)LPM_ROM構(gòu)成,主要完成保存設(shè)置參數(shù),產(chǎn)生波形ROM地址,形成波形ROM等工作。LPM_ROM分別以matlab生成的MIF格式文件存儲了正弦、鋸齒、三角、方波四種常見的波形數(shù)據(jù)表,若要生成其他任意波形,只需將相應(yīng)的連續(xù)信號轉(zhuǎn)化為MIF文件,替換LPM_ROM中的波形文件即可實(shí)現(xiàn)任意波形信號的輸出。為了取得精細(xì)的頻率分辨率,將相位累加器設(shè)為32位,同時(shí)為使LPM_ROM中數(shù)據(jù)量不至于過大,使用相位截?cái)嚅y,讓相位累加器輸出的高10位用來查表,這樣可以保證系統(tǒng)在高速穩(wěn)定運(yùn)行的前提下,最大限度地減少輸出波形信號的誤差。
評論