劉艷昌,左現(xiàn)剛,李國(guó)厚
(河南科技學(xué)院 信息工程學(xué)院,新鄉(xiāng) 453003)
信號(hào)發(fā)生器在工業(yè)、科技、教學(xué)等領(lǐng)域中已得到廣泛應(yīng)用,通常情況下使用較多的設(shè)計(jì)方案是利用FPGA、單片機(jī)等處理器芯片來(lái)控制專(zhuān)用信號(hào)發(fā)生芯片,這種設(shè)計(jì)方案與傳統(tǒng)采用模擬分立器件來(lái)設(shè)計(jì)信號(hào)發(fā)生器的方法相比,具有信號(hào)頻率更穩(wěn)定、精度更高、信號(hào)參數(shù)易調(diào)節(jié)等優(yōu)點(diǎn),但存在電路設(shè)計(jì)復(fù)雜,成本較高等問(wèn)題。隨著電子技術(shù)和EDA技術(shù)的快速發(fā)展和深入研究,DDS技術(shù)得到飛速發(fā)展[1],使得信號(hào)發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn)更加容易和靈活。DDS即直接頻率合成器,與傳統(tǒng)頻率合成技術(shù)相比,具有頻率分辨率高、頻率切換速度快、頻率改變時(shí)相位連續(xù)性保持不變和頻率穩(wěn)定度高等優(yōu)點(diǎn),因此極易實(shí)現(xiàn)信號(hào)的頻率、相位和幅度控制。
針對(duì)采用VHDL或Verilog HDL語(yǔ)言設(shè)計(jì)一個(gè)所需的DDS模塊存在編制源程序復(fù)雜問(wèn)題,本文利用Altera公司推出的DSP Builder與MATLAB配合使用可以很方便搭建DDS模塊,然后通過(guò)SignalCompiler工具對(duì)DDS模塊進(jìn)行編譯,轉(zhuǎn)化為可在QuartusII軟件中使用的VHDL文件,最終將該VHDL文件生成實(shí)體化模塊,以便與控制模塊和D/A轉(zhuǎn)換模塊配合完成基于FPGA的多功能信號(hào)發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)。本文設(shè)計(jì)的多功能信號(hào)發(fā)生器,可輸出正弦波、方波、三角波、鋸齒波四種基本波形及其對(duì)應(yīng)調(diào)幅波性和2ASK、2FSK、2PSK三種數(shù)字調(diào)制波波形,輸出頻率范圍為1Hz~20MHz之間,輸出幅度范圍為1mV~5V且具有頻率、相位和幅度可調(diào)功能。
DDS是直接數(shù)字式頻率合成器(Direct Digital Synthesizer)的英文縮寫(xiě),它是從相位概念出發(fā),建立在采樣定理基礎(chǔ)上的一種新的頻率合成技術(shù)[2~4]。它主要由基準(zhǔn)時(shí)鐘源、相位累加器、相位調(diào)制器、波形存儲(chǔ)器、幅度調(diào)制器、D/A轉(zhuǎn)換器和低通濾波器LPF組成,其中N位相位累加器是核心。DDS原理結(jié)構(gòu)圖如圖1所示[5~8]。
圖1中時(shí)鐘源fc為本系統(tǒng)的參考時(shí)鐘,其頻率fc=50MHz,輸出信號(hào)的頻率fo、幅度和相位可由頻率控制字FCW、幅度控制字ACW和PCW字的值來(lái)控制,即通過(guò)改變不同的FCW、ACW和PCW控制字來(lái)獲得輸出不同的頻率、幅度和相位信號(hào)。設(shè)相位累加器的位寬為N(頻率輸入控制字位寬),相位調(diào)制器位寬為M,則DDS的輸出信號(hào)頻率為:
輸出信號(hào)的相位相移為:
輸出信號(hào)的相對(duì)幅度為:
1.2.1 基本波和AM調(diào)制波的DDS系統(tǒng)模型建立及仿真
啟動(dòng)MATLAB軟件,打開(kāi)Simlink窗口新建一個(gè).mld文件,然后調(diào)用Altera DSP Builder Blockset里面的模塊搭建基本波和AM調(diào)制波的DDS系統(tǒng)模型如圖2所示。
該系統(tǒng)主要由基本波形信號(hào)發(fā)生器、載波信號(hào)發(fā)生器、AM調(diào)制器和多路選擇器組成。其波形參數(shù)設(shè)置時(shí)需在“MATLAB Array”編輯框中分別輸入“511*sin([0:2*pi/1023:2*pi]),511*square(2*pi*[0:1/1023:1],50),511*(sawtooth(2*pi*[0:1/1023:1],1)),511*(sawtooth(2*pi*[0:1/1023:1],0.5))”,即可在SignalCompiler編譯過(guò)程中,自動(dòng)產(chǎn)生1024個(gè)相應(yīng)的正弦波、方波、鋸齒波和三角波數(shù)據(jù)。在搭建模塊時(shí),數(shù)據(jù)類(lèi)型采用默認(rèn)設(shè)置,即有符號(hào)整型,由于D/A轉(zhuǎn)換芯片輸入數(shù)據(jù)都是無(wú)符號(hào)正數(shù),因此在總模塊輸出時(shí)通過(guò)加法器在輸出端加511,就可把處在縱坐標(biāo)負(fù)半軸的搬移到正半軸,以便在示波器上正確顯示(其他加法器也是同樣的道理)。
在圖2中分別設(shè)置頻率控制字為8590×1000,載波頻率控制字為224339980,幅度控制字為1023,相位控制字為1023,載波調(diào)制深度為10(即幅度控制字為1023),數(shù)據(jù)選擇器Multiplexer的波形選擇Wave_Selection控制字取0(正弦波),數(shù)據(jù)選擇器Multiplexer1的波形選擇Wave_Selection控制字取1(正弦波調(diào)制)時(shí)的仿真波形如圖3所示。
1.2.2 數(shù)字調(diào)制波的DDS系統(tǒng)模型建立及仿真
在1.2.1基本DDS模型設(shè)計(jì)基礎(chǔ)上,利用其產(chǎn)生的正弦波作為載波信號(hào),以二進(jìn)制數(shù)字基帶信號(hào)為調(diào)制信號(hào),即可實(shí)現(xiàn)二進(jìn)制數(shù)字調(diào)制信號(hào)。數(shù)字調(diào)制波的DDS系統(tǒng)模型如圖4所示,主要由基本DDS模型及2ASK、2FSK和2PSK數(shù)字調(diào)制模塊組成,通過(guò)改變幅度輸入字、頻率輸入字和相位輸入字即可實(shí)現(xiàn)2ASK、2FSK和2PSK的數(shù)字調(diào)制信號(hào)。
圖2 基本波和AM調(diào)制波系統(tǒng)模型
圖3 基本波和AM調(diào)制波仿真波形
按圖4參數(shù)設(shè)置完成后,將基波和載波的波形輸出接入同一個(gè)顯示窗口便可啟動(dòng)仿真,其數(shù)字調(diào)制波仿真波形如圖5所示:當(dāng)二進(jìn)制數(shù)字基帶信號(hào)輸出為0時(shí),多路選擇器Multiplexe、Multiplexe1和Multiplexe2選擇0通道,即2ASK輸出幅度為0,2FSK輸出低頻,2PSK輸出0相位;當(dāng)二進(jìn)制數(shù)字基帶信號(hào)輸出為1時(shí),多路選擇器Multiplexe、Multiplexe1和Multiplexe2選擇1通道,即2ASK輸出幅度為511,2FSK輸出高頻,2PSK輸出π相位,當(dāng)多路選擇器Multiplexe4輸入端sel為00、01和10時(shí),可分別實(shí)現(xiàn)2ASK、2FSK和2PSK調(diào)制波輸出。
圖4 數(shù)字調(diào)制波系統(tǒng)模型
圖5 數(shù)字調(diào)制波仿真波形
在上述基本波和AM調(diào)制波系統(tǒng)模型和數(shù)字調(diào)制波系統(tǒng)模型中首先雙擊Signal Compiler圖標(biāo),然后選定Altera公司的EP2C5T144芯片類(lèi)型后開(kāi)始分析,可將在Simulink中設(shè)計(jì)的sin_GN.mdl和Binary_Keying_GN.mdl模型文件自動(dòng)轉(zhuǎn)化為.vhdl文件,最后在QuartusII環(huán)境中打開(kāi)已創(chuàng)建的dgnxhfsq.bdf工程文件,將得到的.vhdl轉(zhuǎn)化為sin_GN.bsf和Binary_Keying_GN.bsf文件,即為所生成的信號(hào)發(fā)生模塊硬件符號(hào),如圖6所示。
圖6 信號(hào)發(fā)生模塊硬件符號(hào)
D/A轉(zhuǎn)換器選擇TLC5615芯片,該芯片是10位高速數(shù)模轉(zhuǎn)換器。只需通過(guò)3根串行總線(xiàn)就可以完成10位數(shù)據(jù)串行輸入,功耗低,使用方便。本系統(tǒng)只用一片TCL5615芯片,因此工作方式選擇第一種。根據(jù)TLC5615工作時(shí)序,在QuartusII軟件中通過(guò)verilog HDL語(yǔ)言編寫(xiě)驅(qū)動(dòng)程序,然后將其生成模塊硬件符號(hào),如圖7所示。為了提高輸出波形的頻率和分辨率,D/A芯片掃描時(shí)鐘采用400MHz,這里利用QaurtusII內(nèi)的IP核定制鎖相環(huán)實(shí)現(xiàn)對(duì)信號(hào)的倍頻。
其中clk為400MHz時(shí)鐘信號(hào);sclk為T(mén)LC5615芯片串行時(shí)鐘輸入信號(hào);din_in[9..0]為輸入的并行10位數(shù)據(jù);din為經(jīng)并-串轉(zhuǎn)換后的數(shù)據(jù)輸出送給TLC5615芯片輸入端;sc為T(mén)LC5615的片選信號(hào),低電平串行數(shù)據(jù)寫(xiě)入,高電平禁止。
圖7 D/A驅(qū)動(dòng)模塊硬件符號(hào)
矩陣鍵盤(pán)電路采用4×4行列式結(jié)構(gòu),將4條I/O線(xiàn)作為行線(xiàn),與4條I/O列線(xiàn)進(jìn)行交叉,便得到16個(gè)交叉點(diǎn),在每個(gè)交叉點(diǎn)上接入一個(gè)按鍵,就構(gòu)成4×4矩陣鍵盤(pán)。在判斷具體哪個(gè)按鍵按下時(shí),采用逐行掃描低電平方式,檢查行輸入是否處于低電平的狀態(tài)來(lái)確定。根據(jù)各按鍵實(shí)現(xiàn)功能,在QuartusII軟件中通過(guò)verilog HDL語(yǔ)言編寫(xiě)其驅(qū)動(dòng)程序,然后將其生成模塊硬件符號(hào),如圖8所示。
圖8 4×4鍵盤(pán)驅(qū)動(dòng)模塊硬件符號(hào)
其中CLK為50MHz時(shí)鐘信號(hào);A[3..0]為鍵盤(pán)4位行線(xiàn)輸入;B[3..0]為鍵盤(pán)4位列線(xiàn)輸出;R[3..0]為鍵盤(pán)鍵值輸出。
鍵值輸入處理模塊主要實(shí)現(xiàn)對(duì)16個(gè)輸入按鍵的具體功能進(jìn)行處理,其中數(shù)字鍵10個(gè),調(diào)制方式選擇鍵、波形選擇鍵、波態(tài)選擇鍵、調(diào)制度鍵、確認(rèn)鍵和刪除鍵各1個(gè)。根據(jù)鍵值輸入處理模塊實(shí)現(xiàn)功能,在QuartusII軟件中通過(guò)verilog HDL語(yǔ)言編寫(xiě)其驅(qū)動(dòng)程序,然后將其生成模塊硬件符號(hào),如圖9所示。
圖9 輸入鍵值處理模塊硬件符號(hào)
其中輸入端口key_value[3..0]為鍵值輸入;輸出端口:frequency_value[16..0]為頻率控制字輸出;amplitude[9..0]為幅度控制字輸出;phase[9..0]為相位控制字輸出;buff[16..0]為緩存數(shù)據(jù)輸輸出;frequency_value[16..0]為頻率值輸出;AM_Carrier_Frequeny[31..0]為載波頻率輸出;AM_Modulation_Degree[3..0]為調(diào)幅波調(diào)制深度輸出;其余輸出端口控制功能如表1所示。
表1 波形輸入端口控制功能
LCD顯示模塊采用帶中文字庫(kù)的12864型LCD液晶顯示,主要用來(lái)顯示輸出波形的頻率、幅度和相位值。根據(jù)顯示功能,在QuartusII軟件中通過(guò)verilog HDL語(yǔ)言編寫(xiě)顯示驅(qū)動(dòng)程序,然后將其生成模塊硬件符號(hào),如圖10所示。
圖10 LCD顯示驅(qū)動(dòng)模塊硬件符號(hào)
其中輸出端口:rs、rw、en、data[7..0]分別為L(zhǎng)CD12864液晶顯示器的讀、寫(xiě)、使能、數(shù)據(jù)控制端口。
在QuartusII環(huán)境中打開(kāi)已創(chuàng)建的dgnxhfsq.bdf工程文件,將上述各模塊添加到該工程里,將其保存后設(shè)為頂層,編譯、綜合成功后將生成的dgnxhfsq.sof文件,通過(guò)JTAG模式下載到ALTERA公司的EP2C5T144C8芯片中得到實(shí)際硬件電路。文件下載成功后,通過(guò)鍵盤(pán)調(diào)試使其輸出頻率為1KHz,幅度為3V,相位為0的正弦波,其顯示結(jié)果如圖11所示。
圖11 硬件下載結(jié)果
為準(zhǔn)確對(duì)系統(tǒng)性能進(jìn)行分析,以正弦波為例從波形輸出頻率角度和幅度角度進(jìn)行定量測(cè)試。采用頻率計(jì)對(duì)多組特定頻率及其穩(wěn)定度進(jìn)行定量測(cè)試,實(shí)測(cè)數(shù)據(jù)如表2所示。
表2實(shí)測(cè)結(jié)果表明,正弦波的輸出頻率范圍為1Hz~20MHz,其中頻率穩(wěn)定度達(dá)到數(shù)量級(jí)10-5的輸出信號(hào)頻率范圍為10Hz~5MHz,且多數(shù)頻率測(cè)量點(diǎn)都存在正方向偏移。實(shí)測(cè)頻率存在正誤差的主要原因是由基準(zhǔn)時(shí)鐘精確性不高和數(shù)值處理過(guò)程中取舍誤差造成的,通過(guò)改善基準(zhǔn)時(shí)鐘的精確性和提高運(yùn)算速度能夠改善該頻率精度和穩(wěn)定度。
采用示波器對(duì)正弦波輸出幅度進(jìn)行定量測(cè)試,實(shí)測(cè)數(shù)據(jù)如表3所示。
表3 正弦波輸出幅度數(shù)據(jù)
從表3測(cè)試數(shù)據(jù)可知,10Hz~1MHz的正弦波輸出信號(hào)幅度與滿(mǎn)值5V輸出相比,其最大偏差為0.2V,最小偏差0.02V,能夠滿(mǎn)足實(shí)際需要,且比較穩(wěn)定。當(dāng)輸出頻率大于1MHz時(shí),幅度下降較大,輸出20MHz時(shí)偏差最大。其主要原因是D/A轉(zhuǎn)換精度不高和放大濾波電路增益衰減造成的,通過(guò)采用高精度D/A轉(zhuǎn)換芯片和提高濾波器帶寬及增益能夠改善這個(gè)問(wèn)題。
本文采用MATLAB/Simulink、DSP Builder對(duì)基波、AM調(diào)制波和數(shù)字調(diào)制波的DDS系統(tǒng)模型進(jìn)行設(shè)計(jì)、仿真和建模,利用DSP Builder中的Signal Compiller工具將圖形化建立的DDS模型轉(zhuǎn)化為可在QuartusII軟件中使用的VHDL文件,在QuartusII環(huán)境中生成硬件符號(hào),并將其添加到工程中,然后再把各模塊連接好的頂層實(shí)體下載到目標(biāo)器件中,最終實(shí)現(xiàn)多功能信號(hào)發(fā)生器的設(shè)計(jì)。與傳統(tǒng)的頻率合成方法相比不僅避免了DDS模塊編程的復(fù)雜性、節(jié)約了FPGA的邏輯資源,而且具有頻率切換時(shí)間短、頻率分辨率高、相位變化連續(xù),功能擴(kuò)充容易、成本較低、穩(wěn)定度較高、抗干擾能力強(qiáng)、參數(shù)修改靈活和開(kāi)發(fā)周期短等優(yōu)點(diǎn),能夠滿(mǎn)足實(shí)驗(yàn)室的基本需要,具有廣闊的應(yīng)用前景。
[1]朱鳳武,鄒麗娜,等.基于FPGA和DDS的數(shù)字調(diào)制信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2013,6(21):90-93.
[2]韓旭,鄭磊.基于FPGA的任意波形發(fā)生器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2013,7(32):62-66.
[3]萬(wàn)志江.基于FPGA的DDS IP核的研究與設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2013,8(30):98-102.
[4]張浪.DDS IP核設(shè)計(jì)及其在信號(hào)發(fā)生器中的應(yīng)用[J].信息化研究,2010,10(36):46-48.
[5]王康佳,劉詩(shī)偉,孫番典.基于Matlab/DSP Builder任意波形信號(hào)發(fā)生器的兩種設(shè)計(jì).現(xiàn)代電子技術(shù),2011,3(34):179-184.
[6]劉楠.基于FPGA的DDS信號(hào)發(fā)生器的實(shí)現(xiàn)[D].哈爾濱:哈爾濱理工大學(xué),2011.
[7]肖炎根.基于SOPC的DDS函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)[D].長(zhǎng)沙:中南大學(xué),2011.