摘要:利用現(xiàn)場可編程門陣列(FPGA)設(shè)計并實(shí)現(xiàn)直接數(shù)字頻率合成器(DDS)。結(jié)合DDS的結(jié)構(gòu)和原理,給出系統(tǒng)設(shè)計方法,并推導(dǎo)得到參考頻率與輸出頻率間的關(guān)系。DDS具有高穩(wěn)定度,高分辨率和高轉(zhuǎn)換速度,同時利用Ahera公司FPGA內(nèi)的Nios軟核設(shè)置和顯示輸出頻率,方便且集成度高。
關(guān)鍵詞:現(xiàn)場可編程門陣列;直接數(shù)字頻率合成器;Nios;VHDL
直接數(shù)字頻率合成DDS(Direct Digital Synthesis)是一種把一系列數(shù)字信號通過D/A轉(zhuǎn)換器轉(zhuǎn)換為模擬信號的合成技術(shù)。該技術(shù)的主要特點(diǎn):具有超高的捷變速度(<0.1μs)、超細(xì)的分辨率(可達(dá)1μHz)和相位的連續(xù)性;輸出頻率的穩(wěn)定度及相位噪聲等指標(biāo)與系統(tǒng)時鐘相當(dāng);全數(shù)字化便于單片集成等?;谝陨蟽?yōu)點(diǎn),DDS得到廣泛應(yīng)用,但由于其輸出帶寬小和雜散指標(biāo)不高,限制了其應(yīng)用范圍。
現(xiàn)有的DDS產(chǎn)品應(yīng)用于接收機(jī)本振、信號發(fā)生器、通信系統(tǒng)、雷達(dá)系統(tǒng)等,特別是跳頻通信系統(tǒng)。這里介紹基于FP-GA的DDS信號源,可在1片F(xiàn)PGA器件上實(shí)現(xiàn)信號源的信號產(chǎn)生和控制。將DDS信號源設(shè)計嵌入到FPGA器件所構(gòu)成的系統(tǒng)中,其系統(tǒng)成本不高,但可實(shí)現(xiàn)更加復(fù)雜的功能。
1 DDS原理
DDS基本結(jié)構(gòu)原理如圖1所示,其中數(shù)控振蕩器(NCO)為FPGA實(shí)現(xiàn)部分。其工作原理是:在參考時鐘的作用下,相位累加器按照預(yù)先設(shè)置好的頻率控制字進(jìn)行線性累加,其輸出作為波形查找表的地址,通過尋址輸出相應(yīng)的波形幅度碼,再由數(shù)模轉(zhuǎn)換器將這些數(shù)字碼變換為模擬電壓/電流輸出,最后經(jīng)低通濾波器平滑輸出波形。假設(shè)要輸出的頻率是同定的,那么相位增量就是一個常數(shù),在每個時鐘周期,相位累加器的數(shù)值就按照這個相位增量累加一次,相位增量的大小由頻率控制字決定。如果相位增量增大,則相位累加器的增加就比較快,輸出的頻率就比較高。
假定一個頻率為fc的載波,其時域表達(dá)式為:
則由式(1)、式(2)看出:C(t)是關(guān)于相位的一個周期函數(shù),如果記下一個周期內(nèi)每個相位對應(yīng)的幅度值,那么對于任意頻率的載波,在任意時刻,只要已知載波的相位φ(t),就可通過查表得到C(t)。
2 DDS結(jié)構(gòu)
2.1 相位累加器
相位累加器是DDS系統(tǒng)的核心,可完成DDS實(shí)現(xiàn)原理中的相位累加功能。為充分發(fā)揮DDS的優(yōu)越性,一般累加器的位數(shù)都比較大,頻率字可控制DDS的輸出頻率,可根據(jù)需要設(shè)定。
2.2 波形查詢表
該電路的核心是一個查找表,查找表主要完成相位序列(相位碼)向幅度序列(幅度碼)的轉(zhuǎn)換。這里,用ROM構(gòu)造一個查找表。如果把相位碼作為ROM的地址,只要在該地址中存儲相應(yīng)的正弦幅度碼作為數(shù)據(jù),就可通過相位碼尋址ROM,輸出信號函數(shù)。
2.3 D/A轉(zhuǎn)換器與低通濾波器
D/A轉(zhuǎn)換器和低通濾波器的作用是將幅度碼轉(zhuǎn)變成模擬信號。由于D/A轉(zhuǎn)換器輸出為階梯波,需通過低通濾波器取出其低頻成分(即DDS輸出)。
3 DDS頻率分析
相位累加器在基準(zhǔn)時鐘的作用下,進(jìn)行線性相位累加,當(dāng)相位累加器加滿時就會產(chǎn)生一次溢出,從而完成一個周期,這個周期也就是DDS信號的一個頻率周期。
可見,通過設(shè)定相位累加器位數(shù)、頻率控制字K和基準(zhǔn)時鐘的值,可以產(chǎn)生任意頻率的輸出。DDS的頻率分辨率定義為:△fmin=fc/2N。
由于基準(zhǔn)時鐘一般固定,因此相位累加器的位數(shù)即決定頻率分辨率。如果相位累加器為32位,那么頻率分辨率就可以認(rèn)為是32位。位數(shù)越多,分頻率越高。只要N足夠大,即累加器有足夠的長度,總能得到所需的頻率分辨率。輸出頻率f0由頻率控制字K決定,即f0=K(fc/2N)。根據(jù)奈奎斯特采樣定理,DDS的最大輸出頻率f0Max應(yīng)小于fc/2,在實(shí)際中,f0Max一般只能等于fc的40%。
4 DDS的雜散分析
DDS輸出頻率中的雜散信號是一個最重要的問題,而且是由于多種原因引起的。這里主要介紹以下3種原因:
1)電壓幅度截斷 幅度量化誤差,就是ROM存儲能力有限引起的舍位誤差,也可以認(rèn)為是由D/A轉(zhuǎn)換器分辨率有限引起的誤差。參照相關(guān)數(shù)據(jù)資料,波形ROM的位數(shù)為D,由幅度量化誤差造成的輸出背景噪聲的單邊帶功率譜密度為:
量化誤差引起的量化失真,可以用輸出信號與量化噪聲功率之比SQR來衡量。當(dāng)D/A轉(zhuǎn)換器滿幅度輸出時,有
式中,D是幅度量化的位數(shù),D一定時,則噪聲的功率就一定。
2)相位截斷 由于ROM無法實(shí)現(xiàn)2N個地址單元的容量,因此截斷相位碼的高B位。主譜與最大的雜散幅度之比滿足如下關(guān)系:
式中,N為相位累加器的位數(shù),B為相位截斷位數(shù)。
由上式可看出,由相位截斷引入的最強(qiáng)雜散相對主譜的電平由相位累加器輸出的有效位數(shù)決定:有效尋址位數(shù)每增加1位,雜散性能約提高6 dB。
3)D/A轉(zhuǎn)換器本身的問題 由于實(shí)際中D/A轉(zhuǎn)換器的非線性、瞬間毛刺等非理想轉(zhuǎn)換特性在輸出頻譜中會產(chǎn)生雜散。
5 DDS的FPGA實(shí)現(xiàn)
FPGA即現(xiàn)場可編程門陣列,它是作為專用集成電路領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決定制電路的不足,又克服原有可編程器件門電路有限的缺點(diǎn)。本設(shè)計采用Altera公司的Cvclone:II型器件。在實(shí)現(xiàn)DDS功能的同時,還能利用其中集成的Nios軟核進(jìn)行控制模塊設(shè)計,加強(qiáng)集成度,減少器件使用和簡化電路設(shè)計。
本設(shè)計的軟件開發(fā)環(huán)境為Altera公司的Quartus II和Nios II IDE。
5.1 QuartusⅡ下的DDS設(shè)計仿真
在Quartus II環(huán)境下利用VHDL語言對DDS內(nèi)的寄存器、累加器及波形存儲器進(jìn)行設(shè)計及仿真,最后鏈接生成DDS模塊,如圖2所示。
在檢查編譯文件后對DDS模塊進(jìn)行仿真,仿真圖如圖3所示。至此在FPGA內(nèi)已成功建立DDS模塊。根據(jù)所選用的具體器件內(nèi)部存儲量的不同,可以根據(jù)自身需要更改ROM有效地址位數(shù)和ROM存儲波形的有效位數(shù)以提高系統(tǒng)的雜散抑制能力。
5.2軟核的硬件定制和軟件設(shè)計
利用Quartus II內(nèi)的SOPC Builder工具完成Nios軟核內(nèi)的CPU、Memory、I/O口等所需硬件定制。同時在NiosⅡIDE環(huán)境下運(yùn)用C語言完成軟核內(nèi)控制系統(tǒng)功能設(shè)計。
6 結(jié)束語
本文對直接數(shù)字頻率合成器結(jié)構(gòu)、工作原理及DDS雜散分析進(jìn)行了較深入研究,并在理論研究的基礎(chǔ)上結(jié)合Ahera公司的CycloneII器件完成了DDS的設(shè)計和實(shí)現(xiàn)。同時利用CyclonelI器件內(nèi)的Nios軟核將DDS與控制系統(tǒng)模塊集成到一塊FPGA器件內(nèi),簡化設(shè)計難度,減小電路復(fù)雜程度。