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