基于單片機(jī)與FPGA的直接頻率數(shù)字合成器的設(shè)計(jì)方案
1.引言
本文引用地址:http://butianyuan.cn/article/201710/367204.htm隨著電子技術(shù)的發(fā)展,在現(xiàn)代電子產(chǎn)品的故障檢測(cè)中,往往需要頻率和幅度都能自動(dòng)調(diào)節(jié)的正弦信號(hào)源,并且要求該信號(hào)源產(chǎn)生的信號(hào)頻率穩(wěn)定性好,轉(zhuǎn)換速度快,具有調(diào)頻、調(diào)幅和調(diào)相的功能。本文結(jié)合實(shí)際需要,提出一種基于單片機(jī)和FPGA的直接頻率數(shù)字合成器的設(shè)計(jì)方案,能夠產(chǎn)生兩路頻率和相位均可調(diào)的正弦波信號(hào),達(dá)到了預(yù)定的要求。
2.系統(tǒng)方案設(shè)計(jì)
2.1 系統(tǒng)的性能分析
系統(tǒng)主要由單片機(jī)最小系統(tǒng)、存儲(chǔ)器電路、FPGA模塊、鍵盤(pán)與顯示接口電路、D/A轉(zhuǎn)換電路、低通濾波電路組成,其硬件框圖如圖1所示。通過(guò)鍵盤(pán)輸入頻率控制字、相位控制字和幅值控制字,單片機(jī)最小系統(tǒng)控制FPGA模塊產(chǎn)生用戶(hù)需要的正弦波信號(hào),再經(jīng)過(guò)DA轉(zhuǎn)換,最后通過(guò)低通濾波器生成平滑的正弦波信號(hào)。
系統(tǒng)的性能要求:頻率范圍20Hz~20KHZ,步進(jìn)20Hz;差0o~359o,步進(jìn)1o;兩路輸出正弦波信號(hào),峰峰值分別在0.3V~5V變化;數(shù)字顯示頻率、相位差。
2.2 系統(tǒng)實(shí)現(xiàn)的原理
2.2.1 DDS的基本原理
直接數(shù)字頻率合成器(DDFS)的基本原理:
DDS是利用采樣定理,根據(jù)相位間隔對(duì)正弦信號(hào)進(jìn)行取樣、量化、編碼,然后儲(chǔ)存在EPROM中構(gòu)成一個(gè)正弦查詢(xún)表,通過(guò)查表法產(chǎn)生波形。
它是由參考時(shí)鐘、相位累加器、正弦查詢(xún)表和D/A轉(zhuǎn)換器組成,如圖2所示。
相位累加器由N位加法器與N位累加寄存器級(jí)聯(lián)構(gòu)成,其原理框圖如圖3所示。每來(lái)一個(gè)時(shí)鐘脈沖Fc,N位加法器將頻率控制數(shù)據(jù)K與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果Y送至累加寄存器的輸入端。累加寄存器一方面將在上一時(shí)鐘周期作用后所產(chǎn)生的新的相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一時(shí)鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)K相加;另一方面以相加后的結(jié)果形成正弦查詢(xún)表的地址,取出表中與該相位對(duì)應(yīng)的單元中的幅度量化正弦函數(shù)值,作為取樣地址值送入幅度/相位轉(zhuǎn)換電路。這樣就可把存儲(chǔ)在波形存儲(chǔ)器內(nèi)的波形抽樣值(二進(jìn)制編碼)經(jīng)查找表查出,完成相位到幅值轉(zhuǎn)換。波形存儲(chǔ)器的輸出送到D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器將數(shù)字量形式的波形幅值轉(zhuǎn)換成所要求合成頻率的模擬量形式信號(hào)。
相位累加器的最大計(jì)數(shù)長(zhǎng)度與正弦查詢(xún)表中所存儲(chǔ)的相位分隔點(diǎn)數(shù)相同,在取樣頻率(由參考時(shí)鐘頻率決定)不變的情況下,由于相位累加器的相位增量不同,將導(dǎo)致一周期內(nèi)的取樣點(diǎn)數(shù)不同,輸出信號(hào)的頻率也相應(yīng)變化。
如果設(shè)定累加器的初始相位,則可以對(duì)輸出信號(hào)進(jìn)行相位控制。由采樣原理可知,如果使用兩個(gè)相同的頻率合成器,并使其參考時(shí)鐘相同,同時(shí)設(shè)定相同的頻率控制字、不同的初始相位,那么在原理上就可以實(shí)現(xiàn)輸出兩路具有一定相位差的同頻信號(hào)。
2.2.2 FPGA實(shí)現(xiàn)的直接數(shù)字頻率合成器
基于DDS的基本原理,利用Altera公司的FPGA芯片F(xiàn)LEX10系列器件設(shè)法將波形采樣點(diǎn)的值依次通過(guò)數(shù)模轉(zhuǎn)換器(MDAC)轉(zhuǎn)換成模擬量輸出,可達(dá)到預(yù)期的目的,具有較高的性?xún)r(jià)比。其基本環(huán)節(jié)由計(jì)數(shù)器(Counter)、只讀存儲(chǔ)器(EPROM)、數(shù)模轉(zhuǎn)換器(MDAC)和濾波器等組成。
具體方案如下:累加器由加法器和D觸發(fā)器級(jí)聯(lián)組成,在時(shí)鐘脈沖fc的控制下,對(duì)輸入頻率控制字K進(jìn)行累加,累加滿(mǎn)量時(shí)產(chǎn)生溢出。相位累加器的輸出對(duì)應(yīng)于該合成周期信號(hào)的相位,并且這個(gè)相位是周期性的,在0~2π 范圍內(nèi)起變化。相位累加器位數(shù)為N,最大輸出為2N-1,對(duì)應(yīng)于2π的相位,累加一次就輸出一個(gè)相應(yīng)的相位碼,通過(guò)查表得到正弦信號(hào)的幅度,然后經(jīng)D/A轉(zhuǎn)換及低通濾波器濾除不需要的取樣分量,以便輸出頻譜純凈的正弦波信號(hào)。整個(gè)DDS電路的電路結(jié)構(gòu)如圖4所示。
3.系統(tǒng)硬件電路設(shè)計(jì)
在功能上,單片機(jī)與FPGA有很強(qiáng)的互補(bǔ)性。
單片機(jī)具有性?xún)r(jià)比高、功能靈活、易于人機(jī)對(duì)話(huà)、良好的數(shù)據(jù)處理能力等特點(diǎn);FPGA則具有高速、高可靠性以及開(kāi)發(fā)便捷、規(guī)范等優(yōu)點(diǎn)。用這兩類(lèi)器件相結(jié)合的電路結(jié)構(gòu)在許多高性能儀器儀表和電子產(chǎn)品中仍將被廣泛應(yīng)用。
單片機(jī)的功能主要是傳送頻率控制字K1和相位控制字K2給FPGA處理;生成波形表存儲(chǔ)于EEPROM中;控制鍵盤(pán)的寫(xiě)入和LED的顯示;控制DAC0832進(jìn)行幅值轉(zhuǎn)換。在每次加電前都要通過(guò)單片機(jī)初始化,將寫(xiě)好的程序加載在信號(hào)產(chǎn)生系統(tǒng)上,然后把從鍵盤(pán)上輸入的數(shù)據(jù)送到中央處理芯片上,信號(hào)通過(guò)低通濾波器輸出的同時(shí),LED數(shù)碼管顯示信號(hào)的頻率和相位差。
FPGA與單片機(jī)的總線(xiàn)接口如圖5所示。
4.系統(tǒng)的實(shí)現(xiàn)
4.1 系統(tǒng)的計(jì)算與仿真
用MAX+plusⅡ設(shè)計(jì)DDS系統(tǒng)數(shù)字部分最簡(jiǎn)單的方法是采用原理圖輸入。相位累加器調(diào)用lmp_add_sub加減法器模塊,相位累加器設(shè)計(jì)的好壞將直接影響到整個(gè)系統(tǒng)的速度,采用流水線(xiàn)技術(shù)能大幅度地提升速度。波形存儲(chǔ)器(ROM)通過(guò)調(diào)用lpm_rom元件實(shí)現(xiàn),其LPM_FILE的值。mif是一個(gè)存放波形幅值的文件。波形存儲(chǔ)器設(shè)計(jì)主要考慮的問(wèn)題是其容量的大小,利用波形幅值的奇、偶對(duì)稱(chēng)特性,可以節(jié)省3/4的資源,這是非??捎^的。為了進(jìn)一步優(yōu)化速度的設(shè)計(jì),可以選擇菜單Assignal GlobalProject Logic Synthesis的選項(xiàng)Optimize10(速度),并設(shè)定Global Project LogicSynthesis Style為FAST,經(jīng)寄存器性能分析最高頻率達(dá)到100MHZ以上。DDFS中的分頻、累加器及正弦波的仿真如圖6、7、8所示。
4.2 單片機(jī)的編程實(shí)現(xiàn)
由于使用了8051單片機(jī)及FPGA構(gòu)成的DDS系統(tǒng),外圍電路變得異常簡(jiǎn)單,而FPGA的使用使單片機(jī)的程序大大簡(jiǎn)化。DDS系統(tǒng)及其與單片機(jī)的接口部分用VHDL語(yǔ)言寫(xiě)。在設(shè)計(jì)過(guò)程中波形頻率隨CPU的頻率而變化,單片機(jī)的實(shí)時(shí)時(shí)鐘經(jīng)過(guò)PLL倍頻電路產(chǎn)生系統(tǒng)時(shí)鐘頻率fc,fc再經(jīng)過(guò)分頻得到CPU時(shí)鐘頻率(CPUCLK)可通過(guò)對(duì)P_SystemClock(寫(xiě))(7013H)單元編程來(lái)控制。在設(shè)計(jì)過(guò)程中,波形編輯的第一步就是進(jìn)行CPU頻率選擇,選擇最高頻和最低頻作為粗調(diào),在用鍵盤(pán)和中斷進(jìn)行微調(diào),以便達(dá)到所需的頻率、相位及其幅值。單片機(jī)編程的總體流程圖如圖9所示。
5.結(jié)束語(yǔ)
本文結(jié)合實(shí)際需要,提出一種基于單片機(jī)和FPGA的直接頻率數(shù)字合成器的設(shè)計(jì)方案。方案以FPGA為核心模塊,以單片機(jī)為控制模塊,采用直接數(shù)字頻率合成技術(shù)設(shè)計(jì)了雙通道相位關(guān)系可調(diào)的信號(hào)發(fā)生器,輸出信號(hào)頻率范圍為0~20KHz,頻率分辨率高于20Hz,相位調(diào)節(jié)步進(jìn)1o.兩個(gè)通道不僅可以輸出相同頻率的信號(hào),還可以輸出不同相位、不同幅值的正弦信號(hào)。經(jīng)系統(tǒng)仿真表明,本方案可達(dá)到預(yù)定要求,應(yīng)用方便靈活。
評(píng)論