潘澤鍇,蘭國莉
(廣西職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)與電子信息工程系,廣西 南寧 530226)
?
DDS工業(yè)數(shù)字移相信號(hào)發(fā)生器應(yīng)用設(shè)計(jì)*
潘澤鍇,蘭國莉
(廣西職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)與電子信息工程系,廣西 南寧 530226)
采用DDS技術(shù)設(shè)計(jì)工業(yè)控制現(xiàn)場測試信號(hào)源,基于VHDL語言進(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)測試,該設(shè)計(jì)各項(xiàng)設(shè)計(jì)指標(biāo)符合要求,具有很好的實(shí)用價(jià)值。
現(xiàn)場可編程門陣列;信號(hào)發(fā)生器;DDS;VHDL
直接數(shù)字頻率合成信號(hào)發(fā)生器(Direct Digital Synthesize,DDS)具有易產(chǎn)生、分辨率高、絕對(duì)誤差小等優(yōu)點(diǎn),在已有電子系統(tǒng)及設(shè)備的頻率設(shè)計(jì)中,以及在工業(yè)控制現(xiàn)場信號(hào)測試中得到越來越廣泛的應(yīng)用[1]。在進(jìn)行工業(yè)現(xiàn)場通信信號(hào)的傳輸測試實(shí)驗(yàn)中,在原有信號(hào)發(fā)生器攜帶不方便、輸出不穩(wěn)定的情況下,以DDS技術(shù)為基礎(chǔ)設(shè)計(jì)新型信號(hào)發(fā)生器,利用VHD語言實(shí)現(xiàn)對(duì)DDS功能的重新設(shè)計(jì),可以簡單地完成在不同方式下的移植,輸出參數(shù)可以根據(jù)現(xiàn)場環(huán)境進(jìn)行適當(dāng)?shù)男薷腫2]。在實(shí)現(xiàn)過程中使用Alter公司開發(fā)的QuartusⅡ軟件,該軟件不僅提供了VHDL開發(fā)編譯環(huán)境,還集成了DDS設(shè)計(jì)開發(fā)所需要的FPGA器件,這樣就可以大大降低開發(fā)難度和縮短開發(fā)周期[3]。
DDS是一種全數(shù)字、高分辨精度、反應(yīng)速度在毫微秒量級(jí)的頻率合成技術(shù),屬于開環(huán)無反饋環(huán)節(jié)的控制系統(tǒng)結(jié)構(gòu)。根據(jù)它的相位特性可知其相位是連續(xù)變化的,而且相位誤差極小,可以輸出很好的頻譜波形,一些在傳統(tǒng)的頻率合成困難的情況下使用DDS技術(shù)可以很好地完成[4]。
圖1 DDS組成模塊圖
由圖1的DDS組成模塊圖可知DDS信號(hào)發(fā)生器的工作原理:在每次接收到一個(gè)時(shí)鐘脈沖fc時(shí),頻率控制字K和相位累加器兩者之間相位數(shù)據(jù)相互累加,累加結(jié)果送累加寄存器保存,相位累加器由N位加法器與N位累加寄存器級(jí)聯(lián)組成,將獲得的累加器脈沖再反饋回去與原來累加的新接收到的下一個(gè)時(shí)鐘脈沖相加,以使加法器在下一個(gè)時(shí)鐘脈沖的作用下繼續(xù)與頻率控制字相加,不斷對(duì)相位進(jìn)行累加獲得輸出脈沖。這就相當(dāng)于,相位累加器在每一個(gè)脈沖到來的時(shí)候都實(shí)現(xiàn)脈沖累加,最后的脈沖輸出就是脈沖不斷累加的結(jié)果。累加輸出的頻率就是合成以后DDS信號(hào)輸出的頻率,相位累加器輸出的數(shù)據(jù)作為波形存儲(chǔ)器ROM的相位取樣地址,通過查表的方式可以獲得波形信號(hào)取樣,完成相位到幅值的轉(zhuǎn)換[6]。
累加器通過相位累加的方式實(shí)現(xiàn)脈沖輸出之后放于波形存儲(chǔ)器,波形存儲(chǔ)器的輸出送到D/A轉(zhuǎn)換器,D/A轉(zhuǎn)換器的主要作用就是把輸出波形的數(shù)字信號(hào)變成模擬信號(hào),完成所需要的信號(hào)形式,但是輸出的信號(hào)可能含有毛刺,可以通過低通濾波器的方式去除毛刺和其他諧波,最后輸出一個(gè)合成頻率為f0的信號(hào)波形[7]。輸出頻率f0與時(shí)鐘頻率fc之間的關(guān)系滿足下式:
f0=(k×fc)/2N
(1)
由公式(1)可知,輸出的頻率f0是時(shí)鐘脈沖fc與頻率控制字K合成的結(jié)果,同時(shí)還與位數(shù)N有關(guān),通過改變K值可以改變頻率的輸出。DDS信號(hào)發(fā)生器輸出的最小頻率可以由方程△f=f0/2N確定。頻率分辨率在fc固定時(shí),取決于相位累加器的位數(shù)N。只要N足夠大,理論上就可以獲得足夠高的頻率分辨精度。另外,由采樣定理,合成信號(hào)的頻率不能超過時(shí)鐘頻率的一半,即f0≤fc/2,因此頻率控制字的最大值Kmax應(yīng)滿足Kmax≤2N-1。
在FPGA內(nèi)部比較容易產(chǎn)生信號(hào)生成模塊,而單純的DDS芯片不但價(jià)格高,而且功耗大,在這方面使用FPGA技術(shù)就有很大的優(yōu)勢。鑒于此,本設(shè)計(jì)采用FPGA技術(shù)產(chǎn)生DDS信號(hào)發(fā)生器來實(shí)現(xiàn)任意波形發(fā)生器的設(shè)計(jì)。
2.1 DDS波形發(fā)生器總體設(shè)計(jì)
根據(jù)DDS的基本原理及系統(tǒng)分析,可以比較具體地設(shè)計(jì)出整個(gè)波形發(fā)生器的總體方案,如圖2所示。
五是缺乏對(duì)培訓(xùn)過程的有效評(píng)價(jià)。目前,對(duì)培訓(xùn)效果評(píng)價(jià)的基本形式是受訓(xùn)學(xué)員的無記名問卷調(diào)查,均是主觀的終結(jié)性評(píng)價(jià),以知識(shí)和能力掌握程度為主。培訓(xùn)沒有有效的評(píng)價(jià)體系,實(shí)際也沒有與績效緊密相關(guān)的培訓(xùn)考核,不僅主體是局部的,缺乏真實(shí)性,而且過程是片面的,缺乏細(xì)節(jié)的,所以培訓(xùn)的實(shí)際評(píng)價(jià)和反饋是形同虛設(shè)的,更沒有建立個(gè)體培訓(xùn)檔案并進(jìn)行深度分析和研究。在問卷調(diào)查中,79.9%的被試幾乎沒有培訓(xùn)反饋和評(píng)價(jià)。
圖2 波形發(fā)生器總體框圖
根據(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)過幅度變換后的波形進(jìn)行線性疊加后經(jīng)D/A轉(zhuǎn)換輸出信號(hào)波形[4]。
本設(shè)計(jì)中調(diào)用LPM即參數(shù)可設(shè)置模塊庫來生成存儲(chǔ)器模塊。在設(shè)計(jì)波形信號(hào)發(fā)生器的過程中,如果要使用FPGA特定的器件,那么在設(shè)計(jì)VHDL程序中亦要使用與該期間配套的宏模塊功能,而這些在軟件使用中可以以圖形或是硬件語言描述的形式來實(shí)現(xiàn),可大大提高設(shè)計(jì)的效率和可靠性[5]。
2.2 系統(tǒng)FPGA設(shè)計(jì)實(shí)現(xiàn)
利用FPGA實(shí)現(xiàn)雙DDS 的相位累加器,通過數(shù)字方法實(shí)現(xiàn)頻率調(diào)制,通過查表的方式,DDS利用RAM操作總線與FPGA內(nèi)部CPU通信,實(shí)現(xiàn)各種波形[6]。實(shí)現(xiàn)的基本原理如圖3所示。
圖3 DDS在FPGA內(nèi)部實(shí)現(xiàn)原理圖
在實(shí)際測試中以正弦波為例,系統(tǒng)采用QuartusII軟件進(jìn)行設(shè)計(jì),使用GW48 EDA/SOPC實(shí)驗(yàn)開發(fā)平臺(tái)進(jìn)行調(diào)試,系統(tǒng)分為波形數(shù)據(jù)ROM模塊、32位加法器模塊、32位寄存器模塊、10位加法器模塊、10位寄存器模塊等幾部分[7]。
2.3 用戶控制
系統(tǒng)使用實(shí)驗(yàn)開發(fā)平臺(tái)的鍵盤和LED接口實(shí)現(xiàn)人機(jī)交互,通過鍵盤設(shè)定待輸出的波形、波形的頻率以及波形的幅度等參數(shù)。
待輸出波形部分使用了3個(gè)按鍵,每個(gè)按鍵對(duì)應(yīng)一種波形,對(duì)應(yīng)的發(fā)光二極管顯示有效狀態(tài),并且可以多個(gè)按鍵同時(shí)起作用,此時(shí)即波形的線形疊加,該功能的實(shí)現(xiàn)是通過使能對(duì)應(yīng)的波形數(shù)據(jù)ROM的輸出和幅值控制的輸出實(shí)現(xiàn)的[8]。
頻率調(diào)節(jié)使用了一個(gè)雙向計(jì)數(shù)器給DDS控制器賦值來控制輸出信號(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ù)碼管來顯示。
設(shè)計(jì)的相位累加器對(duì)于每來一個(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)加上相位移,以此來對(duì)相位進(jìn)行調(diào)節(jié)[9]。
因?yàn)榉捣謩e對(duì)應(yīng)3種不同類型的波形,因此需要對(duì)其分別設(shè)定,該部分共使用了3個(gè)按鍵,其中一個(gè)按鍵用來設(shè)定待調(diào)節(jié)幅值的波形,直接使用一加計(jì)數(shù)器,通過實(shí)驗(yàn)平臺(tái)上的輸出發(fā)光二極管來顯示所選定的波形。幅值大小的調(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è)。
使用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。
圖4 信號(hào)輸出原理圖
利用FPGA設(shè)計(jì)DDS信號(hào)發(fā)生器后使用QuartusII進(jìn)行時(shí)序仿真,設(shè)置好相應(yīng)的仿真參數(shù),得出的仿真波形如圖5所示。
圖5 仿真波形輸出
使用QuartusII自帶的Signal tap邏輯分析儀進(jìn)行硬仿真測試,為了能對(duì)此信號(hào)進(jìn)行硬件測試,將芯片固定的端口與輸入輸出信號(hào)綁定,通過軟件編譯好之后下載到硬件進(jìn)行測試。
在測試完成之后,重新對(duì)配置芯片進(jìn)行編程,最終完成信號(hào)發(fā)生器信號(hào)的輸出。圖6、圖7是在相同條件下不同頻率的正弦波對(duì)應(yīng)的邏輯分析儀采樣結(jié)果。
圖6 輸出頻率為5 kHz波形采樣
通過測試表明,設(shè)計(jì)的DDS數(shù)字移相信號(hào)發(fā)生器具有連續(xù)輸出正弦波波形的功能,使用鍵盤輸入具有產(chǎn)生周期性先行組合波形的能力,輸出波形的頻率范圍在100 Hz~200 kHz,且頻率步進(jìn)間隔≤100 Hz,具有顯示輸出波形的類型、重復(fù)頻率(周期)和幅度的功能。
圖7 輸出頻率為100 kHz波形采樣
采用FPGA器件,利用VHDL語言對(duì)DDS信號(hào)發(fā)生器進(jìn)行重新設(shè)計(jì)與實(shí)現(xiàn),可以在不同的方式下進(jìn)行移植和參數(shù)修改,信號(hào)發(fā)生器輸出信號(hào)穩(wěn)定,便于攜帶。通過測試表明各項(xiàng)設(shè)計(jì)指標(biāo)符合要求,具有很好的實(shí)用價(jià)值。
[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.
[4] 潘松,黃繼業(yè).EDA 技術(shù)與VHDL(第2版)[M].北京:清華大學(xué)出版社,2007.
[5] 張萍.基于DDS 的寬帶信號(hào)發(fā)生器的設(shè)計(jì)[J].江南大學(xué)學(xué)報(bào),2015,14(6):782-786.
[6] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版)[M].北京:高等教育出版社,2003.
[7] 王豐華,李建清,吳劍鋒.多源表面溫度信號(hào)發(fā)生裝置的硬件設(shè)計(jì)[J].儀表技術(shù)與傳感器,2014(1):83-85.
[8] 李雪梅,張宏財(cái),王學(xué)偉.基于DDS技術(shù)的信號(hào)源設(shè)計(jì)[J].電測與儀表,2010,47(1):55-57.
[9] 楊萍,兀旦暉,楊良煜.DDS技術(shù)在正弦信號(hào)發(fā)生器中的應(yīng)用[J].計(jì)算機(jī)測量與控制,2008,16(11):1738-1740.
[10] 李敏,金勵(lì)豪.矩形波信號(hào)發(fā)生電路的設(shè)計(jì)與分析[J].電子技術(shù),2013(10):34-36.
Application and design of industrial DDS in digital phase shift signal generator
Pan Zekai,Lan Guoli
(Department of Computer and Electronic Information Engineering, Guangxi Vocational and Technical College, Nanning 530226,China)
The DDS technology is used to design industrial control field test signal source. The system is imitated based on VHDL language. Parameter is redesigned for the DDS and the kernel of IP is reconstructed. In the light of demand to revise the parameter, which is achieved the commonality of device. Using the platform of Quartus Ⅱ to complete the definite design of DDS chip. The methods and steps of DDS’s design based on VHDL program are expounded. The design specifications conformed to demand by test. It has a very good practical value.
Field Programmable Gate Arrays(FPGA); signal generator; DDS; VHDL
廣西教育廳自然科學(xué)基金資助項(xiàng)目(YB2014487,KY2015YB384);廣西職業(yè)技術(shù)學(xué)院自然科學(xué)基金資助項(xiàng)目(151206)
TN914
A
10.19358/j.issn.1674- 7720.2016.23.023
潘澤鍇,蘭國莉. DDS工業(yè)數(shù)字移相信號(hào)發(fā)生器應(yīng)用設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2016,35(23):80-82.
2016-07-13)
潘澤鍇(1984-),男,碩士研究生,講師,主要研究方向:智能控制、工業(yè)自動(dòng)化等。
蘭國莉(1979-),女,本科,實(shí)驗(yàn)師,主要研究方向:智能實(shí)驗(yàn)室管理等。