- 相關(guān)推薦
基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)
引言
直接數(shù)字頻率合成(Direct Digital Frequency Synthesis)是一種以奈奎斯特采樣定理及數(shù)字信號(hào)處理為基礎(chǔ),從相位概念出發(fā)的全數(shù)字頻率合成方法。實(shí)現(xiàn)DDS 功能可用專用的DDS芯片,也可利用高性能的現(xiàn)場可編程門陣列(Field Programmable Gate Array)。與前者相比,后者具有設(shè)計(jì)簡單,開發(fā)靈活,應(yīng)用成本低等優(yōu)點(diǎn)。本文以FPGA 為基礎(chǔ),設(shè)計(jì)DDS 信號(hào)發(fā)生器。設(shè)計(jì)目標(biāo):輸出頻率范圍1Hz~1MHz,頻率可調(diào),輸出頻率精度大于0.1%,輸出頻率峰峰值為5V。
1 DDS 基本原理
由奈奎斯特采樣定理可知,當(dāng)采樣頻率大于被采樣信號(hào)最高頻率的2 倍時(shí),通過采樣得到的數(shù)字信號(hào)可完整的還原被采樣信號(hào)。基于奈奎斯特采樣定理,系統(tǒng)首先對需要產(chǎn)生的信號(hào)進(jìn)行采樣,量化后存入數(shù)據(jù)存儲(chǔ)器。在參考時(shí)鐘作用下,相位累加器按照預(yù)先設(shè)定的頻率控制器進(jìn)行地址累加,此地址即為信號(hào)在數(shù)據(jù)表中對應(yīng)地址。根據(jù)地址從數(shù)據(jù)表中依次讀取數(shù)據(jù),產(chǎn)生數(shù)字化的信號(hào),此信號(hào)通過D/A 轉(zhuǎn)換和低通濾波等處理即可變成所需模擬信號(hào)[3]!
下面以正弦波信號(hào)的產(chǎn)生為例說明DDS 的工作原理。假設(shè)某一頻率的正弦信號(hào)可表示為
v(t) = Asin(wt +θ )
式中,A 為正弦波幅值,w 為正弦信號(hào)角頻率,θ 為初始相位。由于A 和θ 不變,則令A(yù)=1,θ =0,得到歸一化表達(dá)式
v(t) = Asin(wt)
對于連續(xù)的正弦波信號(hào),其相位與時(shí)間呈線性關(guān)系[2]。由這一關(guān)系可知,在一定頻率的時(shí)鐘信號(hào)作用下,通過一個(gè)線性的相位累加器對相應(yīng)的波形存儲(chǔ)器掃描,即可周期性地讀取波形存儲(chǔ)器中的數(shù)據(jù),從而合成相應(yīng)的正弦波信號(hào)。如果提高時(shí)鐘信號(hào)頻率,則數(shù)據(jù)的掃描頻率加快,數(shù)據(jù)讀取速度加快,讀取一個(gè)正弦波數(shù)據(jù)的時(shí)間就會(huì)縮短,輸出信號(hào)的頻率增大,反之亦然[5]。
2 DDS 的實(shí)現(xiàn)方案
DDS 系統(tǒng)主要由FPGA 核心電路、D/A 轉(zhuǎn)換電路、低通濾波電路、鍵盤電路和顯示電路組成。系統(tǒng)具體實(shí)現(xiàn)框所示。
系統(tǒng)分別以Altera Cyclone II 系列FPGA EP2C8 和VerilogHDL語言為硬件及軟件平臺(tái),在此基礎(chǔ)上構(gòu)建DDS 核以及相關(guān)模塊。FPGA 核心電路產(chǎn)生的階梯數(shù)字信號(hào)通過D/A 轉(zhuǎn)換電路轉(zhuǎn)換為對應(yīng)的模擬信號(hào)。綜合考慮,采用TLC5620 為D/A 轉(zhuǎn)換芯片。該芯片為8 位串行輸入D/A 轉(zhuǎn)換器,選擇其參考電壓為5V,輸出電壓控制位選擇為1 倍輸出。由于轉(zhuǎn)換后的數(shù)字信號(hào)是階梯形的模擬信號(hào),在D/A 轉(zhuǎn)化后利用低通濾波對信號(hào)進(jìn)行平滑處理。低通濾波電路以O(shè)P07 為核心,設(shè)計(jì)為壓控壓源的二階低通濾波。為方便用戶操作,在系統(tǒng)中引入鍵盤電路和數(shù)碼管顯示電路,用戶可自由調(diào)節(jié)輸出頻率,并通過數(shù)碼管觀察實(shí)時(shí)輸出頻率。
3 設(shè)計(jì)優(yōu)化
3.1 相位累加器的優(yōu)化
相位累加器是決定DDS 性能的關(guān)鍵部分。在系統(tǒng)的參考時(shí)鐘一定時(shí),相位累加器的位數(shù)決定了輸出頻率的分辨率[7]。但是,相位累加器的位數(shù)越大,整個(gè)系統(tǒng)的速度就越慢。為此,在相位累加器中引入流水線技術(shù)。即把一個(gè)時(shí)鐘周期內(nèi)要完成的邏輯操作分成幾步小的操作,并在各個(gè)操作中插入時(shí)鐘周期,以此提高數(shù)據(jù)的吞吐速率。相位累加器優(yōu)化結(jié)構(gòu)圖如所示。
圖中32 位的相位累加器采用4 級(jí)流水線結(jié)構(gòu)。每條流水線完成8 位數(shù)據(jù)的運(yùn)算,流水線之間進(jìn)行級(jí)聯(lián)。流水線最后的數(shù)據(jù)通過一級(jí)寄存器輸出。輸出寄存器同時(shí)提取相位累加器的高8 位作為波形存儲(chǔ)器的查找地址,與波形存儲(chǔ)器相連。實(shí)驗(yàn)表明,運(yùn)用流水線技術(shù)可以成倍提高相位累加器的運(yùn)算速度,但是這也大大消耗了FPGA 的邏輯資源。
3.2 波形存儲(chǔ)器的優(yōu)化
波形存儲(chǔ)器中存儲(chǔ)著完整的波形采樣數(shù)據(jù)。如果正弦波采樣深度為N 位,那么M 位相位累加器就決定了波形存儲(chǔ)器所需存儲(chǔ)空間為N*2M 位。當(dāng)M=32,N=8 時(shí),則需要4096M的存儲(chǔ)空間,可見,必須對波形存儲(chǔ)器進(jìn)行優(yōu)化,提高其利用率。在相位累加器的優(yōu)化中,已經(jīng)利用最后一級(jí)寄存器對輸出地址進(jìn)行了截位處理,但這還遠(yuǎn)遠(yuǎn)不夠。因此,還必須利用正弦波的對稱性對波形存儲(chǔ)器進(jìn)行進(jìn)一步優(yōu)化[4]。其優(yōu)化結(jié)構(gòu)圖如所示。
圖中,相位累加器的輸出地址的最高位連接到相位轉(zhuǎn)換器,相位轉(zhuǎn)換器根據(jù)輸出地址最高位值判斷波形處于前半個(gè)周期(0~π)還是后半個(gè)周期(π~2π)。而地址轉(zhuǎn)換器通過輸出地址的次高位值判斷波形是上升(0~π/2)還是下降(π/2~π)。從優(yōu)化方式可知,經(jīng)過優(yōu)化后的波形存儲(chǔ)器所需空間僅為以前的1/4。
3.3 按鍵模塊的優(yōu)化
在頻率調(diào)整的過程中,鍵盤是必不可少的。但是,鍵盤的動(dòng)作極有可能產(chǎn)生毛刺,由于DDS 系統(tǒng)的頻率較高,毛刺可能帶來系統(tǒng)的誤操作。因此,在按鍵操作時(shí)需要加入按鍵去抖模塊,以提高按鍵輸入的靈敏度。按鍵去抖模塊部分程序如下:
parameter TIME=10;// 設(shè)置去抖時(shí)間為10ms
clk)
if(key_in ! = 4’hf)if(scan = = TIME) // 有鍵按下10ms 后讀健
begin key_en <= 1’b1; scan <= 1’b0; end
else
begin key_en <= 1’b0; scan <= scan + 1’b1; end
else
begin
if(scan != 0) scan <= scan – 1’b1;
else begin scan <= scan;
key_en <= 1’b0;
endend
4 系統(tǒng)測試
在系統(tǒng)構(gòu)建完成后,用示波器觀察輸出波形。經(jīng)測量,信號(hào)發(fā)生器輸出頻率峰峰值穩(wěn)定在5V 左右,輸出頻率范圍滿足設(shè)計(jì)要求。現(xiàn)測量7 組數(shù)據(jù),每組數(shù)據(jù)測量5 次,測試數(shù)據(jù)如下所示。
測試結(jié)果表明,系統(tǒng)基本滿足預(yù)先設(shè)計(jì)要求,但在低頻時(shí)系統(tǒng)精度不甚理想。分析其原因,有可能是在相位累加器地址截位處理時(shí)截取位數(shù)過多所致。在系統(tǒng)完善過程中可通過減少截位位數(shù),也可提高信號(hào)的采樣深度進(jìn)一步提高系統(tǒng)的精度。
5 結(jié)束語
本文介紹了直接數(shù)字頻率合成器的基本工作原理,并在此基礎(chǔ)上利用FPGA 平臺(tái)實(shí)現(xiàn)了直接數(shù)字頻率合成器的設(shè)計(jì)。系統(tǒng)中除了D/A 轉(zhuǎn)換器和低通濾波器外,其他電路都集成在FPGA 中。該方案簡化了系統(tǒng)的設(shè)計(jì)難度,用戶可根據(jù)自身信號(hào)需要更改FPGA 中的程序,更加靈活的設(shè)計(jì)直接數(shù)字頻率合成器。
中國碩士論文網(wǎng)提供大量免費(fèi)碩士畢業(yè)論文,如有業(yè)務(wù)需求請咨詢網(wǎng)站客服人員!
參考文獻(xiàn)
[1] 夏宇聞. Verilog 數(shù)字設(shè)計(jì)教程[M]. 北京:北京航空航天大學(xué)出版社,2003.
[2] 白居憲.直接數(shù)字頻率合成[M]. 西安:西安交通大學(xué)出版社,2007.
[3] 羅杰漢,程光偉. 基于FPGA 的DDS 設(shè)計(jì)[J]. 電子設(shè)計(jì)工程,2012,18(1):66~70.
[4] 李康順,呂小巧. 基于改進(jìn)DDS 技術(shù)的FPGA 數(shù)字調(diào)制器研究與實(shí)現(xiàn)[J]. 壓電與聲光,2012,31(6) :852-855.
[5] 羅杰. Verilog HDL 與數(shù)字ASIC 設(shè)計(jì)基礎(chǔ)[M]. 武漢:華中科技大學(xué)出版社,2005.
[6] 吳繼華,王誠. 設(shè)計(jì)與驗(yàn)證Verilog HDL[M]. 北京:人民郵電出版社,2006.
[7] 吳曙榮,楊銀堂. 用FPGA 實(shí)現(xiàn)DDS 設(shè)計(jì)[J]. 航空計(jì)算技術(shù),2006,36(1):40~45.
【基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)】相關(guān)文章:
基于以太網(wǎng)魚雷聲自導(dǎo)電信號(hào)半實(shí)物05-07
脈寬調(diào)制信號(hào)電路設(shè)計(jì)報(bào)告05-13
基于勝任力的企業(yè)個(gè)體績效管理流程設(shè)計(jì)06-03
基于CS管理的房地產(chǎn)企業(yè)開發(fā)設(shè)計(jì)06-04
基于PLC的斷路器型式試驗(yàn)系統(tǒng)設(shè)計(jì)03-10
基于web的異地并行設(shè)計(jì)與制造系統(tǒng)研究06-02
基于電話網(wǎng)絡(luò)的熱網(wǎng)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)05-11
淺談基于工作流程的高職《國際貿(mào)易實(shí)務(wù)》課程教學(xué)模式設(shè)計(jì)06-13