基于FPGA的實(shí)驗(yàn)室可重構(gòu)信號(hào)源的設(shè)計(jì)
摘要 介紹了以直接頻率合成技術(shù)DDS為基礎(chǔ)的信號(hào)發(fā)生器基本工作原理及設(shè)計(jì)過(guò)程,并以單片機(jī)和FPGA為核心實(shí)現(xiàn)了波形、頻率、幅值均可調(diào)節(jié)的信號(hào)發(fā)生器設(shè)計(jì)。經(jīng)測(cè)試驗(yàn)證,該信號(hào)發(fā)生器取得了理想的結(jié)果,達(dá)到了設(shè)計(jì)要求。
關(guān)鍵詞 單片機(jī);FPGA;DDS;信號(hào)發(fā)生器
1 直接數(shù)字頻率合成技術(shù)
直接數(shù)字頻率合成技術(shù)(DDS)是近年來(lái)迅速發(fā)展的一種新型頻率合成方法,它將先進(jìn)的數(shù)字處理理論與方法引入信號(hào)合成領(lǐng)域,通過(guò)控制相位變化的速度來(lái)直接產(chǎn)生各種不同頻率的信號(hào)。DDS的基本原理如圖1所示,把一個(gè)單位振幅的正弦函數(shù)的相位在2π弧度內(nèi)分成2N個(gè)點(diǎn),求出相應(yīng)各點(diǎn)的正弦函數(shù)值,并用D位二進(jìn)制數(shù)表示,寫入ROM中構(gòu)成一個(gè)所謂的正弦表。在高速穩(wěn)定的參考時(shí)鐘控制下依次讀出每個(gè)相位對(duì)應(yīng)的正弦函數(shù)值,即得到采樣的正弦離散信號(hào),經(jīng)D/A轉(zhuǎn)換得到需要的模擬信號(hào),改變輸入時(shí)鐘頻率即可控制輸出信號(hào)的頻率。
根據(jù)DDS的原理分析可知,DDS輸出波形頻率為fo=Kfc/2N。最低輸出頻率(K=1)fmin=fc/2N,最高輸出頻率為fmax=fc/4,其中,fc為累加時(shí)鐘頻率;K為頻率控制字;N為累加器位數(shù)。
2 系統(tǒng)整體方案設(shè)計(jì)
系統(tǒng)設(shè)計(jì)主要由主控制器模塊、FPGA模塊、D/A轉(zhuǎn)換模塊、濾波模塊、調(diào)幅模塊、按鍵輸入模塊、功率放大模塊及液晶顯示模塊構(gòu)成。系統(tǒng)框圖如圖2所示。采用STC89C51單片機(jī)作為系統(tǒng)的主控制器;FPGA模塊實(shí)現(xiàn)波形數(shù)據(jù)的存儲(chǔ)與輸出;D/A轉(zhuǎn)換模塊將波形數(shù)據(jù)轉(zhuǎn)換為模擬量。液晶顯示器用于顯示波形、幅度、頻率等。
3 系統(tǒng)主要硬件電路設(shè)計(jì)
3.1 主控制器電路設(shè)計(jì)
主控制器采用AT89C51單片機(jī),系統(tǒng)采用總線技術(shù),這樣僅占用了單片機(jī)的少量接口和IO資源就可以組建起整個(gè)系統(tǒng),使得硬件和軟件設(shè)計(jì)更方便,也利于擴(kuò)展,具體電路如圖3所示。
3.2 DDS的FPGA實(shí)現(xiàn)電路設(shè)計(jì)
DDS系統(tǒng)包括相位增量寄存器、相位累加器、地址寄存器、波形存儲(chǔ)器、時(shí)鐘倍頻器及地址發(fā)生部分等模塊,內(nèi)部所有模塊用Verilog語(yǔ)言編寫或調(diào)用QuartusⅡ中的已有l(wèi)pm庫(kù)文件。系統(tǒng)頂層設(shè)計(jì)用原理圖的方式進(jìn)行模塊間的連接,具體電路如圖4所示。當(dāng)改變波形存儲(chǔ)器中波形數(shù)據(jù)時(shí),也就改變了輸出波形,可以通過(guò)波形選擇按鈕分別輸出正弦波、方波、三角波3種波形。
3.3 D/A轉(zhuǎn)換及調(diào)幅電路
如圖5所示,將波形存儲(chǔ)ROM的輸出通過(guò)D/A轉(zhuǎn)換電路轉(zhuǎn)換為模擬信號(hào),通過(guò)算法實(shí)現(xiàn)幅度控制并設(shè)置獨(dú)立按鍵執(zhí)行微調(diào),再通過(guò)濾波電路濾波,即可得到所需的波形。
3.4 功率放大模塊
由于輸出信號(hào)的功率較小,輸出有負(fù)載時(shí),會(huì)有較大失真,帶負(fù)載能力差,要考慮到功率放大,對(duì)輸出的信號(hào)進(jìn)行放大。設(shè)計(jì)中功率放大采用功率放大芯片TDA2030A實(shí)現(xiàn),TDA2030A是意法半導(dǎo)體公司生產(chǎn)的單聲道功放IC,該IC體積小巧、輸出功率大、靜態(tài)電流小、動(dòng)態(tài)電流大、負(fù)載能力強(qiáng),既可帶動(dòng)4~16 Ω的負(fù)載,某些場(chǎng)合又可帶動(dòng)2 Ω甚至1.6 Ω的低阻負(fù)載,且性價(jià)比高,具體電路如圖6所示。
3.2 DDS的FPGA實(shí)現(xiàn)電路設(shè)計(jì)
DDS系統(tǒng)包括相位增量寄存器、相位累加器、地址寄存器、波形存儲(chǔ)器、時(shí)鐘倍頻器及地址發(fā)生部分等模塊,內(nèi)部所有模塊用Verilog語(yǔ)言編寫或調(diào)用QuartusⅡ中的已有l(wèi)pm庫(kù)文件。系統(tǒng)頂層設(shè)計(jì)用原理圖的方式進(jìn)行模塊間的連接,具體電路如圖4所示。當(dāng)改變波形存儲(chǔ)器中波形數(shù)據(jù)時(shí),也就改變了輸出波形,可以通過(guò)波形選擇按鈕分別輸出正弦波、方波、三角波3種波形。
3.3 D/A轉(zhuǎn)換及調(diào)幅電路
如圖5所示,將波形存儲(chǔ)ROM的輸出通過(guò)D/A轉(zhuǎn)換電路轉(zhuǎn)換為模擬信號(hào),通過(guò)算法實(shí)現(xiàn)幅度控制并設(shè)置獨(dú)立按鍵執(zhí)行微調(diào),再通過(guò)濾波電路濾波,即可得到所需的波形。
3.4 功率放大模塊
由于輸出信號(hào)的功率較小,輸出有負(fù)載時(shí),會(huì)有較大失真,帶負(fù)載能力差,要考慮到功率放大,對(duì)輸出的信號(hào)進(jìn)行放大。設(shè)計(jì)中功率放大采用功率放大芯片TDA2030A實(shí)現(xiàn),TDA2030A是意法半導(dǎo)體公司生產(chǎn)的單聲道功放IC,該IC體積小巧、輸出功率大、靜態(tài)電流小、動(dòng)態(tài)電流大、負(fù)載能力強(qiáng),既可帶動(dòng)4~16 Ω的負(fù)載,某些場(chǎng)合又可帶動(dòng)2 Ω甚至1.6 Ω的低阻負(fù)載,且性價(jià)比高,具體電路如圖6所示。
4 軟件設(shè)計(jì)
軟件設(shè)計(jì)采用C語(yǔ)言編寫。軟件主要由主程序、液晶子程序和按鍵子程序等組成。軟件主流程如圖7所示。系統(tǒng)加電后,主程序的功能主要是完成系統(tǒng)初始化,包括液晶、頻率幅度等參數(shù)的初始化,更新顯示數(shù)字,循環(huán)掃描按鍵,根據(jù)按鍵輸入分別進(jìn)行頻率幅度的設(shè)定,通過(guò)幅度控制字的設(shè)定向DAC輸出幅度控制字,通過(guò)頻率控制字的輸入向FPGA寫頻率控制字,從而達(dá)到改變輸出波形頻率和幅值的目的,并在液晶顯示器上顯示出來(lái)。顯示效果如圖8所示。
5 結(jié)束語(yǔ)
系統(tǒng)采用FPGA實(shí)現(xiàn)DDS電路,以AT89C51為主控制器,實(shí)現(xiàn)了輸出頻率范圍為1 Hz~10 MHz的正弦波、方波、三角波的信號(hào)發(fā)生器,并且幅值和頻率均可調(diào)節(jié),其最小步進(jìn)頻率可達(dá)1 Hz。測(cè)試結(jié)果表明,該設(shè)計(jì)具有頻帶寬、精度高、性能穩(wěn)定、成本低和操作界面友好等特點(diǎn)。用這種方法設(shè)計(jì)的波形發(fā)生器只要改變FPGA中ROM的數(shù)據(jù),DDS就可以產(chǎn)生任意波形,提高了設(shè)計(jì)的靈活性,降低了電路的復(fù)雜度,減少了電路設(shè)計(jì)時(shí)間和可能發(fā)生的錯(cuò)誤,具有較高的性價(jià)比。