《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > DDS工業(yè)數(shù)字移相信號(hào)發(fā)生器應(yīng)用設(shè)計(jì)
DDS工業(yè)數(shù)字移相信號(hào)發(fā)生器應(yīng)用設(shè)計(jì)
2016年微型機(jī)與應(yīng)用第23期
潘澤鍇,蘭國(guó)莉
廣西職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)與電子信息工程系,廣西 南寧 530226
摘要: 采用DDS技術(shù)設(shè)計(jì)工業(yè)控制現(xiàn)場(chǎng)測(cè)試信號(hào)源,基于VHDL語(yǔ)言進(jìn)行系統(tǒng)建模,對(duì)DDS進(jìn)行重新參數(shù)設(shè)計(jì),實(shí)現(xiàn)IP核重構(gòu),能夠根據(jù)需要修改參數(shù)以實(shí)現(xiàn)器件的通用性;利用QuartusⅡ平臺(tái)完成具體DDS芯片設(shè)計(jì),闡述了基于VHDL編程的DDS設(shè)計(jì)的方法步驟。經(jīng)測(cè)試,該設(shè)計(jì)各項(xiàng)設(shè)計(jì)指標(biāo)符合要求,具有很好的實(shí)用價(jià)值。
Abstract:
Key words :

  潘澤鍇,蘭國(guó)莉

 ?。◤V西職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)與電子信息工程系,廣西 南寧 530226)

       摘要:采用DDS技術(shù)設(shè)計(jì)工業(yè)控制現(xiàn)場(chǎng)測(cè)試信號(hào)源,基于VHDL語(yǔ)言進(jìn)行系統(tǒng)建模,對(duì)DDS進(jìn)行重新參數(shù)設(shè)計(jì),實(shí)現(xiàn)IP核重構(gòu),能夠根據(jù)需要修改參數(shù)以實(shí)現(xiàn)器件的通用性;利用QuartusⅡ平臺(tái)完成具體DDS芯片設(shè)計(jì),闡述了基于VHDL編程的DDS設(shè)計(jì)的方法步驟。經(jīng)測(cè)試,該設(shè)計(jì)各項(xiàng)設(shè)計(jì)指標(biāo)符合要求,具有很好的實(shí)用價(jià)值。

  關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列信號(hào)發(fā)生器;DDS;VHDL

  中圖分類號(hào):TN914文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.16747720.2016.23.023

  引用格式:潘澤鍇,蘭國(guó)莉. DDS工業(yè)數(shù)字移相信號(hào)發(fā)生器應(yīng)用設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2016,35(23):80-82.

0引言

  直接數(shù)字頻率合成信號(hào)發(fā)生器(Direct Digital Synthesize,DDS)具有易產(chǎn)生、分辨率高、絕對(duì)誤差小等優(yōu)點(diǎn),在已有電子系統(tǒng)及設(shè)備的頻率設(shè)計(jì)中,以及在工業(yè)控制現(xiàn)場(chǎng)信號(hào)測(cè)試中得到越來(lái)越廣泛的應(yīng)用[1]。在進(jìn)行工業(yè)現(xiàn)場(chǎng)通信信號(hào)的傳輸測(cè)試實(shí)驗(yàn)中,在原有信號(hào)發(fā)生器攜帶不方便、輸出不穩(wěn)定的情況下,以DDS技術(shù)為基礎(chǔ)設(shè)計(jì)新型信號(hào)發(fā)生器,利用VHD語(yǔ)言實(shí)現(xiàn)對(duì)DDS功能的重新設(shè)計(jì),可以簡(jiǎn)單地完成在不同方式下的移植,輸出參數(shù)可以根據(jù)現(xiàn)場(chǎng)環(huán)境進(jìn)行適當(dāng)?shù)男薷模?]。在實(shí)現(xiàn)過(guò)程中使用Alter公司開(kāi)發(fā)的QuartusⅡ軟件,該軟件不僅提供了VHDL開(kāi)發(fā)編譯環(huán)境,還集成了DDS設(shè)計(jì)開(kāi)發(fā)所需要的FPGA器件,這樣就可以大大降低開(kāi)發(fā)難度和縮短開(kāi)發(fā)周期[3]。

1DDS原理及系統(tǒng)分析

  DDS是一種全數(shù)字、高分辨精度、反應(yīng)速度在毫微秒量級(jí)的頻率合成技術(shù),屬于開(kāi)環(huán)無(wú)反饋環(huán)節(jié)的控制系統(tǒng)結(jié)構(gòu)。根據(jù)它的相位特性可知其相位是連續(xù)變化的,而且相位誤差極小,可以輸出很好的頻譜波形,一些在傳統(tǒng)的頻率合成困難的情況下使用DDS技術(shù)可以很好地完成[4]。

  分析直接數(shù)字頻率合成原理,利用QuartusII軟件,基于FPGA配合相應(yīng)外圍器件實(shí)現(xiàn)多波形信號(hào)發(fā)生器,電路結(jié)構(gòu)簡(jiǎn)單、易于擴(kuò)展,具有極大的靈活性和方便性。由圖1可知,DDS波形發(fā)生器由相位累加器、波形存儲(chǔ)器、D/A轉(zhuǎn)換器和低通濾波器4個(gè)模塊組成[5]。

圖像 001.png

  由圖1的DDS組成模塊圖可知DDS信號(hào)發(fā)生器的工作原理:在每次接收到一個(gè)時(shí)鐘脈沖fc時(shí),頻率控制字K和相位累加器兩者之間相位數(shù)據(jù)相互累加,累加結(jié)果送累加寄存器保存,相位累加器由N位加法器與N位累加寄存器級(jí)聯(lián)組成,將獲得的累加器脈沖再反饋回去與原來(lái)累加的新接收到的下一個(gè)時(shí)鐘脈沖相加,以使加法器在下一個(gè)時(shí)鐘脈沖的作用下繼續(xù)與頻率控制字相加,不斷對(duì)相位進(jìn)行累加獲得輸出脈沖。這就相當(dāng)于,相位累加器在每一個(gè)脈沖到來(lái)的時(shí)候都實(shí)現(xiàn)脈沖累加,最后的脈沖輸出就是脈沖不斷累加的結(jié)果。累加輸出的頻率就是合成以后DDS信號(hào)輸出的頻率,相位累加器輸出的數(shù)據(jù)作為波形存儲(chǔ)器ROM的相位取樣地址,通過(guò)查表的方式可以獲得波形信號(hào)取樣,完成相位到幅值的轉(zhuǎn)換[6]。

  累加器通過(guò)相位累加的方式實(shí)現(xiàn)脈沖輸出之后放于波形存儲(chǔ)器,波形存儲(chǔ)器的輸出送到D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器的主要作用就是把輸出波形的數(shù)字信號(hào)變成模擬信號(hào),完成所需要的信號(hào)形式,但是輸出的信號(hào)可能含有毛刺,可以通過(guò)低通濾波器的方式去除毛刺和其他諧波,最后輸出一個(gè)合成頻率為f0的信號(hào)波形[7]。輸出頻率f0與時(shí)鐘頻率fc之間的關(guān)系滿足下式:

  QQ圖片20170106135753.png

  由公式(1)可知,輸出的頻率f0是時(shí)鐘脈沖fc與頻率控制字K合成的結(jié)果,同時(shí)還與位數(shù)N有關(guān),通過(guò)改變K值可以改變頻率的輸出。DDS信號(hào)發(fā)生器輸出的最小頻率可以由方程△f= f0/2N確定。頻率分辨率在fc固定時(shí),取決于相位累加器的位數(shù)N。只要N足夠大,理論上就可以獲得足夠高的頻率分辨精度。另外,由采樣定理,合成信號(hào)的頻率不能超過(guò)時(shí)鐘頻率的一半,即f0≤fc/2,因此頻率控制字的最大值Kmax應(yīng)滿足Kmax≤2N-1。

  在FPGA內(nèi)部比較容易產(chǎn)生信號(hào)生成模塊,而單純的DDS芯片不但價(jià)格高,而且功耗大,在這方面使用FPGA技術(shù)就有很大的優(yōu)勢(shì)。鑒于此,本設(shè)計(jì)采用FPGA技術(shù)產(chǎn)生DDS信號(hào)發(fā)生器來(lái)實(shí)現(xiàn)任意波形發(fā)生器的設(shè)計(jì)。

2DDS設(shè)計(jì)與實(shí)現(xiàn)

  2.1DDS波形發(fā)生器總體設(shè)計(jì)

  根據(jù)DDS的基本原理及系統(tǒng)分析,可以比較具體地設(shè)計(jì)出整個(gè)波形發(fā)生器的總體方案,如圖2所示。

圖像 002.png

  根據(jù)設(shè)計(jì)的波形發(fā)生器的原理圖,在設(shè)計(jì)中需要對(duì)重現(xiàn)信號(hào)波形進(jìn)行周期性取樣作為參考波形,DDS控制器根據(jù)參考波形設(shè)定頻率參數(shù),和需要選擇的輸出波形參數(shù)存儲(chǔ)在波形RAM單元中;根據(jù)待設(shè)波形進(jìn)行幅度設(shè)定,把頻率設(shè)定參數(shù)和經(jīng)過(guò)幅度變換后的波形進(jìn)行線性疊加后經(jīng)D/A轉(zhuǎn)換輸出信號(hào)波形[4]。

  本設(shè)計(jì)中調(diào)用LPM即參數(shù)可設(shè)置模塊庫(kù)來(lái)生成存儲(chǔ)器模塊。在設(shè)計(jì)波形信號(hào)發(fā)生器的過(guò)程中,如果要使用FPGA特定的器件,那么在設(shè)計(jì)VHDL程序中亦要使用與該期間配套的宏模塊功能,而這些在軟件使用中可以以圖形或是硬件語(yǔ)言描述的形式來(lái)實(shí)現(xiàn),可大大提高設(shè)計(jì)的效率和可靠性[5]。

  2.2系統(tǒng)FPGA設(shè)計(jì)實(shí)現(xiàn)

  利用FPGA實(shí)現(xiàn)雙DDS 的相位累加器,通過(guò)數(shù)字方法實(shí)現(xiàn)頻率調(diào)制,通過(guò)查表的方式,DDS利用RAM操作總線與FPGA內(nèi)部CPU通信,實(shí)現(xiàn)各種波形[6]。實(shí)現(xiàn)的基本原理如圖3所示。

圖像 003.png

  在實(shí)際測(cè)試中以正弦波為例,系統(tǒng)采用QuartusII軟件進(jìn)行設(shè)計(jì),使用GW48 EDA/SOPC實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)進(jìn)行調(diào)試,系統(tǒng)分為波形數(shù)據(jù)ROM模塊、32位加法器模塊、32位寄存器模塊、10位加法器模塊、10位寄存器模塊等幾部分[7]。

  2.3用戶控制

  系統(tǒng)使用實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)的鍵盤和LED接口實(shí)現(xiàn)人機(jī)交互,通過(guò)鍵盤設(shè)定待輸出的波形、波形的頻率以及波形的幅度等參數(shù)。

  待輸出波形部分使用了3個(gè)按鍵,每個(gè)按鍵對(duì)應(yīng)一種波形,對(duì)應(yīng)的發(fā)光二極管顯示有效狀態(tài),并且可以多個(gè)按鍵同時(shí)起作用,此時(shí)即波形的線形疊加,該功能的實(shí)現(xiàn)是通過(guò)使能對(duì)應(yīng)的波形數(shù)據(jù)ROM的輸出和幅值控制的輸出實(shí)現(xiàn)的[8]。

  頻率調(diào)節(jié)使用了一個(gè)雙向計(jì)數(shù)器給DDS控制器賦值來(lái)控制輸出信號(hào)的頻率(周期輸出點(diǎn)數(shù)),其中雙向計(jì)數(shù)器有一個(gè)輸入端控制計(jì)數(shù)方向,即加還是減,另一個(gè)進(jìn)行計(jì)數(shù)。該部分設(shè)計(jì)受實(shí)驗(yàn)臺(tái)的限制(按減少)不能直接輸入數(shù)字,因此設(shè)定比較慢,而頻率設(shè)定的具體數(shù)值在實(shí)驗(yàn)臺(tái)上可使用兩位數(shù)碼管來(lái)顯示。

  設(shè)計(jì)的相位累加器對(duì)于每來(lái)一個(gè)時(shí)鐘脈沖加法器就會(huì)與累加寄存器的累加相位相加,在一個(gè)時(shí)鐘作用之后,加法器的輸入端又會(huì)加入新的相位數(shù)據(jù),與上一個(gè)時(shí)鐘周期的相位進(jìn)行累加。當(dāng)相位累加器加滿之后會(huì)溢出,實(shí)驗(yàn)中以相鄰兩次累加器溢出時(shí)間間隔為一個(gè)周期合成DDS信號(hào),而在每次信號(hào)合成的取數(shù)環(huán)節(jié)之前,會(huì)在累加器輸出的信號(hào)加上相位移,以此來(lái)對(duì)相位進(jìn)行調(diào)節(jié)[9] 。

  因?yàn)榉捣謩e對(duì)應(yīng)3種不同類型的波形,因此需要對(duì)其分別設(shè)定,該部分共使用了3個(gè)按鍵,其中一個(gè)按鍵用來(lái)設(shè)定待調(diào)節(jié)幅值的波形,直接使用一加計(jì)數(shù)器,通過(guò)實(shí)驗(yàn)平臺(tái)上的輸出發(fā)光二極管來(lái)顯示所選定的波形。幅值大小的調(diào)整同頻率調(diào)整,使用了雙向計(jì)數(shù)器,調(diào)整的輸出由乘除器進(jìn)行變換后輸出[10]。設(shè)定波形幅度的數(shù)值顯示在實(shí)驗(yàn)臺(tái)的LED數(shù)碼管上,每個(gè)波形幅值顯示使用兩位LED數(shù)碼管,供使用6個(gè)。

3功能測(cè)試與結(jié)果輸出

  使用QuartusII任意生成一個(gè)1 024單元10 bit寬的mif文件,將其中的信息拷入到sin_rom.mif中,最后將生成的sin_rom.mif加入到LPM_ROM中去[7]。QuartusII提供了強(qiáng)大、直觀、便捷和操作靈活的原理圖輸出設(shè)計(jì)功能,本實(shí)驗(yàn)輸出的原理圖如圖4。

圖像 004.png

  利用FPGA設(shè)計(jì)DDS信號(hào)發(fā)生器后使用QuartusII進(jìn)行時(shí)序仿真,設(shè)置好相應(yīng)的仿真參數(shù),得出的仿真波形如圖5所示。

圖像 005.png

  使用QuartusII自帶的Signal tap邏輯分析儀進(jìn)行硬仿真測(cè)試,為了能對(duì)此信號(hào)進(jìn)行硬件測(cè)試,將芯片固定的端口與輸入輸出信號(hào)綁定,通過(guò)軟件編譯好之后下載到硬件進(jìn)行測(cè)試。

  在測(cè)試完成之后,重新對(duì)配置芯片進(jìn)行編程,最終完成信號(hào)發(fā)生器信號(hào)的輸出。圖6、圖7是在相同條件下不同頻率的正弦波對(duì)應(yīng)的邏輯分析儀采樣結(jié)果。

圖像 006.png

  通過(guò)測(cè)試表明,設(shè)計(jì)的DDS數(shù)字移相信號(hào)發(fā)生器具有連續(xù)輸出正弦波波形的功能,使用鍵盤輸入具有產(chǎn)生周期性先行組合波形的能力,輸出波形的頻率范圍在100 Hz~200 kHz,且頻率步進(jìn)間隔≤100 Hz,具有顯示輸出波形的類型、重復(fù)頻率(周期)和幅度的功能。

圖像 007.png

4結(jié)論

  采用FPGA器件,利用VHDL語(yǔ)言對(duì)DDS信號(hào)發(fā)生器進(jìn)行重新設(shè)計(jì)與實(shí)現(xiàn),可以在不同的方式下進(jìn)行移植和參數(shù)修改,信號(hào)發(fā)生器輸出信號(hào)穩(wěn)定,便于攜帶。通過(guò)測(cè)試表明各項(xiàng)設(shè)計(jì)指標(biāo)符合要求,具有很好的實(shí)用價(jià)值。

  參考文獻(xiàn)

  [1] 丁革媛, 李振江,宋揚(yáng),等. 工業(yè)控制系統(tǒng)中的安全隱患分析[J].微型機(jī)與應(yīng)用,2015,34(1):7-9.

  [2] 白麗娜,周渭,趙桀,等. 一種和DDS結(jié)合的高分辨率頻率計(jì)設(shè)計(jì)[J].西安電子科技大學(xué)學(xué)報(bào),2012,39(4):126-130.

  [3] 鄧耀華,吳黎明,張力鍇,等.基于FPGA的雙DDS任意波形發(fā)生器設(shè)計(jì)與雜散噪聲抑制方法[J].儀器儀表學(xué)報(bào),2009,30(11):2255-2261.

 ?。?] 潘松,黃繼業(yè).EDA 技術(shù)與VHDL(第2版)[M].北京:清華大學(xué)出版社,2007.

 ?。?] 張萍.基于DDS 的寬帶信號(hào)發(fā)生器的設(shè)計(jì)[J].江南大學(xué)學(xué)報(bào),2015,14(6):782-786.

 ?。?] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2003.

 ?。?] 王豐華,李建清,吳劍鋒.多源表面溫度信號(hào)發(fā)生裝置的硬件設(shè)計(jì)[J].儀表技術(shù)與傳感器,2014(1):83-85.

 ?。?] 李雪梅,張宏財(cái),王學(xué)偉.基于DDS技術(shù)的信號(hào)源設(shè)計(jì)[J].電測(cè)與儀表,2010,47(1):55-57.

 ?。?] 楊萍,兀旦暉,楊良煜.DDS技術(shù)在正弦信號(hào)發(fā)生器中的應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2008,16(11):1738-1740.

  [10] 李敏,金勵(lì)豪.矩形波信號(hào)發(fā)生電路的設(shè)計(jì)與分析[J].電子技術(shù),2013(10):34-36.


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