《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA與LabVIEW的DDS任意信號(hào)發(fā)生器設(shè)計(jì)
基于FPGA與LabVIEW的DDS任意信號(hào)發(fā)生器設(shè)計(jì)
2015年微型機(jī)與應(yīng)用第2期
梁赫西1,周 密2,謝虎城3
(1.湖北師范學(xué)院 教育信息與技術(shù)學(xué)院,湖北 黃石 435002; 2.武漢大學(xué) 電子信息學(xué)院,湖北 武漢 430074; 3.武漢華中數(shù)控有限公司,湖北 武漢 430000)
摘要: 實(shí)現(xiàn)了一種基于FPGA與LabVIEW平臺(tái)的任意波形發(fā)生器。通過(guò)FPGA搭建硬件平臺(tái),與LabVIEW上位機(jī)軟件實(shí)現(xiàn)串口通信,實(shí)時(shí)調(diào)整FPGA內(nèi)部波形數(shù)據(jù),可實(shí)現(xiàn)正弦波、方波、鋸齒波、三角波、高斯白噪聲、疊加正弦波、自定義公式等常規(guī)波形,同時(shí)也可以手動(dòng)繪制任意波形,充分發(fā)揮了軟件的靈活性。通過(guò)參數(shù)的設(shè)定,可方便地設(shè)計(jì)各種復(fù)雜波形。本設(shè)計(jì)在EP4CE15F17C8芯片上實(shí)現(xiàn),與LabVIEW上位機(jī)軟件協(xié)同工作,經(jīng)測(cè)試系統(tǒng)具有良好的穩(wěn)定性、靈活性。
關(guān)鍵詞: DDS FPGA LabView
Abstract:
Key words :

  摘  要: 實(shí)現(xiàn)了一種基于FPGALabVIEW平臺(tái)的任意波形發(fā)生器。通過(guò)FPGA搭建硬件平臺(tái),與LabVIEW上位機(jī)軟件實(shí)現(xiàn)串口通信,實(shí)時(shí)調(diào)整FPGA內(nèi)部波形數(shù)據(jù),可實(shí)現(xiàn)正弦波、方波、鋸齒波、三角波、高斯白噪聲、疊加正弦波、自定義公式等常規(guī)波形,同時(shí)也可以手動(dòng)繪制任意波形,充分發(fā)揮了軟件的靈活性。通過(guò)參數(shù)的設(shè)定,可方便地設(shè)計(jì)各種復(fù)雜波形。本設(shè)計(jì)在EP4CE15F17C8芯片上實(shí)現(xiàn),與LabVIEW上位機(jī)軟件協(xié)同工作,經(jīng)測(cè)試系統(tǒng)具有良好的穩(wěn)定性、靈活性。

  關(guān)鍵詞DDS;FPGA;LabVIEW

0 引言

  直接數(shù)字頻率合成[1](Direct Digital Frequency Synthesis)是一種先進(jìn)的波形合成技術(shù),目前市面上有不少的DDS專用芯片,但由于大部分設(shè)計(jì)固化在芯片中,在某些場(chǎng)合此類專用芯片具有一定的局限性[2-3]。為了提高DDS設(shè)計(jì)的靈活性,本文設(shè)計(jì)了一種基于FPGA與LabVIEW平臺(tái)的DDS任意信號(hào)發(fā)生器。由于FPGA的可編程特性以及軟件平臺(tái)的人機(jī)交互,使得設(shè)計(jì)的靈活性得到了大幅度提高。

  同時(shí)由于FPGA具有豐富的寄存器、LUT資源,因此設(shè)計(jì)所需的數(shù)字邏輯可在FPGA內(nèi)部實(shí)現(xiàn),從而使得設(shè)計(jì)盡量集成到單芯片上,減小了路徑的延時(shí),提高了系統(tǒng)的工作頻率,增大了信號(hào)發(fā)生器的分辨率[4-5]。

1 DDS設(shè)計(jì)原理

001.jpg

  本文DDS設(shè)計(jì)方案如圖1所示。信號(hào)發(fā)生器采用相位累加的方法,通過(guò)頻率控制字K的累加實(shí)現(xiàn)相位A的控制,由于波形相位與幅值的一一對(duì)應(yīng)關(guān)系,通過(guò)查表的方式可以準(zhǔn)確輸出對(duì)應(yīng)波形幅值,從而產(chǎn)生初步的波形信號(hào)。由于數(shù)字波形信號(hào)為一脈沖序列,需通過(guò)DA進(jìn)行模數(shù)轉(zhuǎn)換以及LPF的平滑,方可得到理想的輸出波形信號(hào)。其波形變化流程如圖2所示。

002.jpg

  由波形輸出特點(diǎn)可知,輸出波形的頻率fo與相位累加器的累加地址輸出數(shù)M(M=2N)、頻率累加字K以及輸入頻率fc存在特定關(guān)系。通過(guò)分析可知,M與fo成反比,K與fo成正比,fc與fo成正比。故可以推知輸出波形的頻率fo的計(jì)算公式如下:

  5S2TN{T((2`WQIG$0RD(5KY.png

  由式(1)可知,fo的輸出范圍若需擴(kuò)大,需增大fc、增大K或者減小N,而一般fc為定值,且N需要足夠大來(lái)保證最小分辨率,因此在這里需要做一個(gè)平衡,本設(shè)計(jì)選擇N為32,時(shí)鐘頻率fc為100 MHz,因此本設(shè)計(jì)的最小頻率分辨率為0.023 2 MHz。但在實(shí)際設(shè)計(jì)中,這里N采用32 bit位寬,會(huì)給設(shè)計(jì)的存儲(chǔ)空間帶來(lái)非常大的考驗(yàn),需要存儲(chǔ)的數(shù)據(jù)量多達(dá)4 GB,因此為了在保證最小分辨率的同時(shí),減小系統(tǒng)的數(shù)據(jù)存儲(chǔ)量,本文采取的方式是僅取用32 bit位寬的高10位進(jìn)行尋址,這樣使得內(nèi)部存儲(chǔ)資源能夠得到大幅度的縮減,但與此同時(shí)造成的相位截?cái)鄮?lái)了頻譜上的雜散分量。為了消除相位截?cái)鄮?lái)的頻譜雜散分量的影響,本設(shè)計(jì)在相位累加器后加入了一個(gè)偽隨機(jī)序列生成器,采用偽隨機(jī)序列生成器來(lái)打破相位截?cái)嗟闹芷谛?,這樣便可以最大程度地提高輸出波形的質(zhì)量。

2 任意信號(hào)發(fā)生器整體架構(gòu)

003.jpg

  DDS硬件構(gòu)架如圖3所示。硬件部分由FPGA及其外圍電路組成,主要實(shí)現(xiàn)單一波形的輸出,同時(shí)提供與上位機(jī)的通信接口;其處理核心采用ALTERA CYCLONE IV系列FPGA作為硬件平臺(tái)[6-7],主要實(shí)現(xiàn)功能為:接收上位機(jī)串口波形數(shù)據(jù)并實(shí)時(shí)將數(shù)據(jù)更新到雙口RAM。DDS控制模塊實(shí)時(shí)采集按鍵值,以調(diào)節(jié)頻率控制字K,頻率控制字K通過(guò)DDS控制模塊進(jìn)行累加,并在雙口RAM中尋址得到波形幅值,并將該波形幅度值輸出到波形幅度映射模塊,此模塊可選擇對(duì)波形信號(hào)進(jìn)行進(jìn)一步的放大、縮小等操作。輸出到外部的波形數(shù)據(jù)流經(jīng)高速DA數(shù)模轉(zhuǎn)換,將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),此模擬信號(hào)為一階梯信號(hào),需通過(guò)低通濾波器對(duì)信號(hào)進(jìn)行平滑,最后通過(guò)放大模塊,對(duì)信號(hào)幅度進(jìn)行還原即可得到理想的輸出波形信號(hào)。

  2.1 FPGA邏輯設(shè)計(jì)

  FPGA硬件設(shè)計(jì)部分主要包括系統(tǒng)復(fù)位模塊、串口接收模塊、RAM接口模塊、按鍵控制模塊、M偽隨機(jī)序列發(fā)生模塊、RAM存儲(chǔ)模塊、幅度控制模塊。其整體FPGA設(shè)計(jì)RTL級(jí)視圖如圖4所示。

004.jpg

  系統(tǒng)復(fù)位模塊采用異步復(fù)位同步釋放的方法,將外部異步時(shí)鐘同步到系統(tǒng)中,用于PLL鎖相環(huán)的復(fù)位操作,同時(shí)將外部復(fù)位信號(hào)與PLL輸出穩(wěn)定鎖定信號(hào)進(jìn)行與運(yùn)算,輸出結(jié)果再次進(jìn)行異步復(fù)位同步釋放操作,使得輸出信號(hào)可以穩(wěn)定地對(duì)系統(tǒng)全局進(jìn)行復(fù)位,從而很好地保證了系統(tǒng)的穩(wěn)定性。

  串口接收模塊主要由波特率發(fā)生器模塊和串口接收器模塊兩部分組成。本設(shè)計(jì)波特率預(yù)置為9 600 Baud,系統(tǒng)時(shí)鐘為100 MHz。串口接收模塊負(fù)責(zé)接收上位機(jī)的串口數(shù)據(jù)流,并將串行數(shù)據(jù)流轉(zhuǎn)換為并行數(shù)據(jù)。

  RAM接口模塊主要完成將串口接收模塊接收的1 024 B數(shù)據(jù)寫入到雙口RAM中。寫入完畢后,將寫信號(hào)置0釋放,便于后續(xù)讀操作。寫入地址與讀寫地址均采用內(nèi)部累加器自動(dòng)累加尋址。同時(shí)設(shè)定寫操作優(yōu)先級(jí)高于讀操作。

  按鍵檢測(cè)模塊主要完成外部按鍵信號(hào)的檢測(cè),從而改變輸出波形的頻率、相位以及幅度。為了增大頻率分辨率,減小數(shù)據(jù)存儲(chǔ)容量,將32位的相位累加器截取其高10位進(jìn)行尋址,給輸出波形帶來(lái)了雜散分量,即相位截?cái)嗾`差。而相位截?cái)嗾`差主要是由于輸出波形為一周期性的階梯波,因此可通過(guò)一個(gè)M偽隨機(jī)序列來(lái)打破這種周期性,抑制相位截?cái)嗨鶐?lái)的誤差。本設(shè)計(jì)將抖動(dòng)注入在相位累加器之后。

005.jpg

  M偽隨機(jī)序列發(fā)生模塊的生成式為:1+x+x4+x5+x12,通過(guò)一個(gè)線性反饋移位寄存器可以方便地實(shí)現(xiàn)該偽隨機(jī)序列。如圖5所示,該M偽隨機(jī)序列發(fā)生模塊在全局時(shí)鐘的控制下即可產(chǎn)生出0、1的M偽隨機(jī)序列,通過(guò)數(shù)據(jù)線dataout將隨機(jī)序列值傳遞到按鍵控制模塊的相位累加器,以達(dá)到抑制相位截?cái)鄮?lái)的誤差。

  RAM存儲(chǔ)模塊由8×1 024 bit的雙口RAM組成,可完整存儲(chǔ)一個(gè)周期的波形數(shù)據(jù),波形幅度為127。

  2.2 LabVIEW上位機(jī)設(shè)計(jì)

  本設(shè)計(jì)使用LabVIEW 8.6開(kāi)發(fā)了一個(gè)任意波形發(fā)生器的上位機(jī)軟件,在該軟件操作界面上可以選擇輸出波形的種類和參數(shù),也可以手動(dòng)繪制任意波形,其軟件界面如圖6所示。

006.jpg

  任意信號(hào)發(fā)生器軟件界面由LabVIEW的前面板和后面板構(gòu)成,在前面板中主要由一些組件構(gòu)成,如按鍵組件、文本輸入組件、顯示組件等。前面板的顯示部分在手動(dòng)繪制模式下為波形繪制區(qū)域,繪制過(guò)程中該組件右下角可提示鼠標(biāo)所在坐標(biāo)以及指示燈提示。在正弦波、方波、鋸齒波、三角波、高斯白噪聲、疊加正弦波、自定義公式等常規(guī)波形模式下,該顯示組件僅發(fā)揮顯示功能。面板下方有一些文本輸入組件,這些組件可以用來(lái)調(diào)節(jié)波形的頻率、幅度、相位以及占空比等波形相關(guān)參數(shù),方便靈活地設(shè)計(jì)各種波形信號(hào),這里波形頻率與最終輸出頻率有關(guān),所以默認(rèn)設(shè)計(jì)為1。前面板右下方為串口通信組件,可以設(shè)定COM口、波特率、終止位數(shù)、數(shù)據(jù)位數(shù)、流控制、奇偶校驗(yàn)以及發(fā)送間隔時(shí)長(zhǎng)等相關(guān)參數(shù)。同時(shí)在設(shè)計(jì)中也對(duì)軟件的采樣點(diǎn)數(shù)進(jìn)行了設(shè)置,由于本設(shè)計(jì)采用1 024 B存儲(chǔ)空間,故這里默認(rèn)設(shè)置為1 024,實(shí)際使用中也可根據(jù)實(shí)際情況進(jìn)行設(shè)置。

  在設(shè)計(jì)前面板的同時(shí),也需要對(duì)其后面板進(jìn)行設(shè)計(jì),前面板僅作為一個(gè)友好的用戶操作平臺(tái),其操作的所有對(duì)象的數(shù)據(jù)需要在后面板上對(duì)其進(jìn)行分析處理,將處理后的結(jié)果再返回到前面板顯示,因此后面板的設(shè)計(jì)尤為重要。

  由前面板的設(shè)計(jì)可知,本設(shè)計(jì)的DDS任意信號(hào)發(fā)生器可以實(shí)現(xiàn)正弦波、方波、鋸齒波、三角波、高斯白噪聲、疊加正弦波、自定義公式以及任意波形繪制。在后面板設(shè)計(jì)中這些常規(guī)波形LabVIEW都提供了專門的圖形化模塊,可以直接調(diào)用產(chǎn)生相應(yīng)的波形。這里為了能夠?qū)⑦@些波形以及手動(dòng)繪制波形完全兼容地顯示到XY圖組件上,采用公式波形組件創(chuàng)建了一個(gè)線性遞增的采樣計(jì)數(shù),便于統(tǒng)一管理所有的波形數(shù)據(jù)。

  在手動(dòng)繪制波形部分,主要通過(guò)事件結(jié)構(gòu)完成鼠標(biāo)繪制圖形的功能,并通過(guò)各個(gè)模塊的屬性節(jié)點(diǎn)來(lái)傳遞各個(gè)模塊屬性值,使得圖形化編程更加易于控制。在鼠標(biāo)的位置計(jì)算上通過(guò)顯示模塊XY圖的屬性節(jié)點(diǎn)傳遞,得到XY圖組件坐標(biāo)位置的左上方坐標(biāo)點(diǎn),以及XY圖組件的實(shí)際長(zhǎng)度及寬度。得到了這些數(shù)據(jù),便可以將XY圖組件坐標(biāo)原點(diǎn)方便地調(diào)節(jié)到XY圖組件的左側(cè)居中位置,形成一個(gè)抽象上的X軸。而Y軸則根據(jù)波形幅值的范圍,以X軸為分界點(diǎn)一分為二,即形成一個(gè)抽象的坐標(biāo)系。這樣便可以方便地將XY圖組件中的波形數(shù)據(jù)轉(zhuǎn)換為實(shí)際的波形數(shù)據(jù),便于串口通信組件的發(fā)送;同時(shí)也利于在手動(dòng)繪制模式時(shí),鼠標(biāo)實(shí)際位置的計(jì)算。通過(guò)鼠標(biāo)經(jīng)過(guò)的路徑實(shí)時(shí)地將坐標(biāo)顯示出來(lái),即可完成鼠標(biāo)波形繪制的功能。手動(dòng)設(shè)計(jì)原理如圖7所示。

007.jpg

  在串口通信部分采用LabVIEW集成的串口通信模塊。根據(jù)其設(shè)計(jì)流程,依次將VISA組件中的VISA串口配置模塊、VISA串口啟動(dòng)模塊、VISA串口寫模塊以及VISA串口關(guān)閉模塊加入到后面板,聯(lián)通各模塊并將輸入數(shù)據(jù)按照輸入格式進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,使通信暢通,即實(shí)現(xiàn)波形數(shù)據(jù)在上位機(jī)與FPGA之間的通信。

3 仿真與測(cè)試

008.jpg

  為驗(yàn)證優(yōu)化設(shè)計(jì),在FPGA仿真階段對(duì)本設(shè)計(jì)進(jìn)行了功能仿真。仿真軟件采用Mentor公司的Modlesim,通過(guò)書(shū)寫測(cè)試激勵(lì)文件,結(jié)合Quartus II的設(shè)計(jì)網(wǎng)表文件,共同載入Modelsim仿真環(huán)境進(jìn)行仿真,得到了圖8所示的仿真時(shí)序圖,從仿真結(jié)果可以看出,經(jīng)FPGA處理輸出的波形信號(hào)質(zhì)量高,符合設(shè)計(jì)要求。經(jīng)測(cè)試,本DDS任意信號(hào)發(fā)生器的常規(guī)波形頻率范圍為0.03 Hz~    40 MHz,任意波形頻率范圍為0.03 Hz~20 MHz,其頻率分辨率為0.03 Hz,幅值分辨率為8 bit,幅度范圍為   -3 V~+3 V,相較于參考文獻(xiàn)[1],在波形輸出頻率上提升了10%,在頻率分辨率上提升了40%。由于相位雜散的影響,在鋸齒波的最高頻率處出現(xiàn)了小幅度的間隔,在方波的高低電平處存在一定的紋波,但波動(dòng)控制在極小幅度范圍之內(nèi),能夠滿足一般工業(yè)應(yīng)用。在幅值量化上,由于采用有限位寬的數(shù)字信號(hào)進(jìn)行模擬量的量化,因此不可避免地會(huì)產(chǎn)生極小的量化誤差,但通過(guò)低通濾波器的處理,能夠理想地還原出原始信號(hào),符合預(yù)期的設(shè)計(jì)目標(biāo)。

  設(shè)計(jì)采用RIGOL的DS1002C雙通道示波器測(cè)試儀器進(jìn)行了板級(jí)測(cè)試,其具有良好的波形存儲(chǔ)功能,采樣率高達(dá)25 GS/s,帶寬為100 MHz。其效果如圖9、圖10所示。

4 結(jié)論

  本文通過(guò)在FPGA平臺(tái)上實(shí)現(xiàn)DDS任意信號(hào)發(fā)生器的硬件平臺(tái),采用LabVIEW設(shè)計(jì)上位機(jī)軟件與FPGA硬件平臺(tái)進(jìn)行通信,實(shí)時(shí)更新波形數(shù)據(jù),拓展了DDS任意信號(hào)發(fā)生器的波形種類,增強(qiáng)了其靈活性。

  本設(shè)計(jì)實(shí)現(xiàn)了采用相位截?cái)嗟姆椒ㄌ岣咴O(shè)計(jì)的頻率分辨率,同時(shí)又通過(guò)M偽隨機(jī)序列注入抖動(dòng),消除相位截?cái)嗾`差,提高了信號(hào)發(fā)生器的性能。經(jīng)仿真驗(yàn)證,證實(shí)了本設(shè)計(jì)的可行性與穩(wěn)定性。

參考文獻(xiàn)

  [1] 萬(wàn)志江.基于FPGA的DDS IP核的研究與設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2013(8):98-102.

  [2] 劉偉,鐘子發(fā),葉春逢.基于FPGA+DDS的信號(hào)源設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2010,29(9):18-20,24.

  [3] 梁赫西,陳佑紅,鄭朝霞.基于FPGA的可配置FFT_IFFT處理器的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(3):57-59.

  [4] 哈立原.基于FPGA的直接數(shù)字式頻率合成器設(shè)計(jì)[J].內(nèi)蒙古大學(xué)學(xué)報(bào),2013,44(4):409-413.

  [5] LARSON D C. High speed direct digital synthesis techniques and application[J]. IEEE, 1998: 209-212.

  [6] Altera Corporation. Cyclone II device handbook[EB/OL]. www.altera.com. 2005.

  [7] Analog Devices. AD9740 10-Bit, 210 MSPS TxDAC D/A Converter[EB/OL].(2005-01-03).[2014-09-01]. www.analog.com.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。