熊文
關(guān)鍵詞:FPGA;MCU;DDS;信號發(fā)生器
1引言
信號發(fā)生器是一種常用的信號源,廣泛應(yīng)用于信息電子、通信系統(tǒng)和科學(xué)實驗等領(lǐng)域。它是一種為電子測量和計量工作提供符合嚴(yán)格技術(shù)要求電信號的設(shè)備。因此,信號發(fā)生器和我們熟悉的電量測試儀器(如電壓表)一樣是最普通、最基本的,也是應(yīng)用最為廣泛的儀器之一,絕大部分電路及其電量的信號源都需要由信號發(fā)生器來提供。
直接數(shù)字頻率合成(Digital Direct FrequencySynthesis,DDS)技術(shù)是一種新的數(shù)字化技術(shù)。它不需要任何的振動,也不需要鎖相環(huán),只需要將一系列的數(shù)據(jù)通過DAC來生成一個預(yù)定的模擬信號。由于采用了數(shù)字信號的高級處理原理和技術(shù),信號的頻率變換速度較快,頻率分辨率高,頻率穩(wěn)定度高,輸出信號頻率和相位可以迅速地進(jìn)行程序控制,從而能夠便捷地進(jìn)行信號的完全數(shù)字調(diào)制。本文根據(jù)信號發(fā)生器的特點(diǎn)及應(yīng)用情況,以FPGA芯片為主要控制器,結(jié)合MCU與高速DAC模塊,設(shè)計出一款使用簡單方便、性能優(yōu)良的新型信號發(fā)生器。
2信號發(fā)生器硬件設(shè)計
本設(shè)計采用FPGA與MCU雙核心,外接DAC模塊來完成DDS信號發(fā)生器的設(shè)計實現(xiàn)。以“FPGA+DAC”與濾波器負(fù)責(zé)完成DDS功能的實現(xiàn),以“MCU+”屏幕與外圍負(fù)責(zé)完成人機(jī)交互的功能。本設(shè)計采用“雙子板+底板”的設(shè)計,子板將MCU與FPGA的所有引腳都引出到底板,以便擴(kuò)展,同時在底板上引出多個硬件接口,可大大提升該發(fā)生器的功能擴(kuò)展性。
2.1FPGA子板介紹
本設(shè)計的FPGA子板采用GWIN-LV4LQ144C615芯片來構(gòu)建,該芯片是高云GWIN系列產(chǎn)品,其具備相當(dāng)豐富的邏輯能力,具備各種I/O電平標(biāo)準(zhǔn),并內(nèi)嵌了塊狀靜態(tài)隨機(jī)寄存器、數(shù)字信號處理模塊、鎖相環(huán)節(jié)等新技術(shù)。另外,在其內(nèi)嵌入了Flash技術(shù),是一種具備非易失性的FPGA產(chǎn)品,具有低功率、高穩(wěn)定性、商品體積較小、封裝形式多樣、使用方便靈活等優(yōu)點(diǎn)。
圖1是以GWIN為核心的FPGA子板電路圖,本設(shè)計在該芯片以及其他芯片的電源部分增加了去耦電容、旁路電容以及磁珠來進(jìn)行抗電磁干擾優(yōu)化。
2.2MCU子板介紹
MCU子板采用F1C200S芯片作為內(nèi)核,主要負(fù)責(zé)進(jìn)行交互功能,可接常用的外部設(shè)備(如屏幕、Wi-Fi與紅外等)。F1C200S內(nèi)帶有高速的通信總線接口,大大提高其運(yùn)行速度與能力,以及2個外設(shè)接口、1個USB接口,還配有常用的攝像頭接口、顯示屏接口,音頻接口等[1]。
因為F1C200S較為方便配置以及具有極為經(jīng)濟(jì)的價格,加之其內(nèi)置的多項資源可以大大簡化硬件設(shè)計難度,因此其被廣泛應(yīng)用。
F1C200S支持多個系統(tǒng),在此選用Linux系統(tǒng)進(jìn)行操作,能有效降低開發(fā)難度。圖2是以F1C200S為核心的MCU子板電路原理圖。
2.3DAC模塊介紹
在本設(shè)計中,DAC模塊選用3peakdac模塊進(jìn)行設(shè)計,搭配FPGA即可實現(xiàn)發(fā)生器任意波形的產(chǎn)生功能。該模塊的特點(diǎn)有:(1) 16管腳直插或郵票孔封裝;(2)方便快捷的搭載FPGA最小系統(tǒng);(3)適用于雙通道高速數(shù)據(jù)采集項目;(4)單通道10位/125Msps高速運(yùn)行;(5)輸出模擬信號2Vpp;(6)3.3~5V穩(wěn)壓供電電源。
2.4電源模塊
電源是任何設(shè)備必不可少的部分,本系統(tǒng)分別對FPGA和MCU提供了專門的電源模塊。
2.4.1FPGA電源模塊
本板根據(jù)GWIN芯片的自身特性,電源模塊為FPGA提供1.2 V的核心電,并提供1.2 V,1.8 V,2.5 V和3.3V四種電壓作為Bank電壓的可調(diào)選項,另為VCCX提供3.3V或2.5V作為可選的輔助電壓。本板1.2V的核心電采用SGM2028-ADJ進(jìn)行供電。SGM2028是一款低功耗、低噪聲、低壓差、CMOS工藝的線性穩(wěn)壓器,輸入電壓范圍為2.5~5.5V。SGM2028使用靜聽供電的系統(tǒng),一個連接在器件BP接口的低外部噪聲旁路電容器,能夠進(jìn)一步降低噪聲。
2.4.2MCU電源模塊
本板采用了EA3036電源模塊,這是一顆三通道的Boost DC-DC電源芯片,用來提供1.2 V,2.5 V,3.3V的電平電源。EA3036采用了20引腳的QFN 3×3封裝,有效節(jié)省了PCB面積。芯片內(nèi)整合了3個同時降壓控制的變換器,可以同時在低負(fù)荷和高負(fù)載的工作下實現(xiàn)高性能控制。內(nèi)部的架構(gòu)也改善了整個電路設(shè)計。另外,還有獨(dú)立的使能控制器,也能任意調(diào)整上電時間的順序[2]。
3信號發(fā)生器軟件設(shè)計
3.1FPGA軟件部分
FPGA軟件部分主要采用“Gowin+Visual StudioCode”進(jìn)行編譯,采用Verilog語言來進(jìn)行編寫。由Gowin_V1.9.8.03進(jìn)行項目構(gòu)建、編譯與燒錄。由Visual Studio Code來進(jìn)行Verilog的編寫,這基于其極高的擴(kuò)展性,有著大量的插件來提升它的功能性[3]。
下面介紹主要的Verilog模塊。
(l)PLL.v:這一步是為了使GWIN內(nèi)置的PLL模塊代碼上調(diào),用Gowin內(nèi)置的IP核形成一個PLL.v文件。
(2) ROM.v:此模塊是在FPGA內(nèi)部形成一塊ROM并存人正弦波的波形,以供查找表使用。
(3) Divide.v:采用if來進(jìn)行分頻,并通過輸入不同的值來控制輸出頻率,以達(dá)到DDS頻率控制。
(4) SPI.v:調(diào)用IP核,實現(xiàn)SPI功能,完成與MCU的交互功能。
3.2MCU軟件部分
3.2.1BootLoader啟動程序
PC在啟動時,首先進(jìn)入BIOS,再根據(jù)BIOS中配置信息引導(dǎo)后續(xù)的啟動操作系統(tǒng),如Windows啟動。而對于嵌入式Linux啟動,則沒有BIOS,而是用BootLoader來進(jìn)行程序的引導(dǎo)。在嵌入式操作系統(tǒng)中,BootLoader是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行。可以初始化硬件設(shè)備、建立內(nèi)存空間映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶入一個合適狀態(tài),以為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好適合的環(huán)境[4]。
BootLoader啟動過程可分為stagel,stage2兩個階段,其中stagel完成初始化硬件,如CPU的寄存器、內(nèi)存的控制器,來為stage2的運(yùn)行準(zhǔn)備內(nèi)存空間。
當(dāng)Arm開發(fā)板上電以后,第一個要加載到內(nèi)存并運(yùn)行的程序就是BootLoader.本設(shè)計選擇了U-boot作為引導(dǎo)程序[5]。
3.2.2Linux啟動程序
FIC200S的核心licheepi nano已經(jīng)完成了Linux官方源碼的移植。所以可以直接采用licheepi nano文件進(jìn)行使用,并燒錄到TF卡中,從而使設(shè)備進(jìn)行Linux的啟動[6]。
3.2.3界面顯示程序
本設(shè)計采用LittlevGL進(jìn)行界面顯示。
LittlevGL是一款功能強(qiáng)大的用戶界面顯示軟件,調(diào)用簡單方便。LittlevGL自帶大量的控件,如工具、視窗、按鈕、標(biāo)志、list、圖形等,還能夠自定義控件。LittlevGL還支持眾多特效,如透明、陰影、手動展示隱藏的滑動條、頁面轉(zhuǎn)換動畫、圖標(biāo)開啟結(jié)束動畫、光滑的拖拽控制、分層屏幕、反鋸齒效果、只耗少許內(nèi)存的字體等[7]。
4系統(tǒng)調(diào)試及結(jié)果分析
本設(shè)計采用了ADALM2000中的示波器功能來對信號器產(chǎn)生的波形進(jìn)行顯示與調(diào)節(jié)。圖3顯示了由該示波器所采集的正弦波波形信號,為改變頻率與電壓后的多次顯示效果。
由圖3可知,本設(shè)計實現(xiàn)了不同頻率、幅值下的正弦波形的顯示,波形失真率較低,達(dá)到了預(yù)期效果。此外,其他幾種常見波形(如矩形波、三角波等)都可以得到很好的顯示效果。
5結(jié)束語
本文介紹了一種基于DDS技術(shù)信號發(fā)生器的組成原理與功能,并重點(diǎn)介紹了該信號發(fā)生器的硬件組成部分及軟件實現(xiàn)部分,最后對信號波形結(jié)果進(jìn)行顯示與調(diào)節(jié)。該信號發(fā)生器功能齊全、操作方便、擴(kuò)展性強(qiáng),具有一定的使用價值。