陳 琳,潘海鴻,黃光永,李家恒
(廣西大學機械工程學院,南寧530004)
直接數字頻率合成器(DDS)具有硬件要求低、頻率切換速度快、頻率分辨率高等優點,已廣泛應用于自動測控系統、儀器儀表、通信等領域。一般采用DDS芯片實現波形信號發生器的功能,但其控制方式相對固定,因此不能完全滿足用戶的需求。而基于高性能FPGA芯片設計出的DDS可根據需求實現復雜的調頻、調相和調幅功能,其具有良好的實用性和靈活性。在應用中,需要對多路波形信號的頻率、相位、幅度進行高精度調節控制。目前,對信號幅度的調節存在兩個方面的不足:一是通過軟件方式在波形查找表輸出波形數據的末端,簡單地加入除法器(或乘法器),該方法不能調節波形信號在垂直方向上所產生的偏移量[1-2];二是通過硬件方式在D/A轉換器模擬信號輸出末端增加集成模擬乘法器芯片實現波形信號的調零,該方法硬件成本較高且存在一定誤差[3-4]。
本文結合直接數字頻率合成(DDS)具有頻率分辨率高、切換速度快等優點,基于FPGA軟件編程方式提出一種可以任意調節輸出波形信號的垂直偏移量的信號發生器的設計。采用Altera公司的Cyclone系列FPGA芯片,實現數字化高精度調節多路信號的頻率、相位、幅度、偏移量,進而降低硬件電路設計難度和硬件電路的成本。
DDS原理如圖1所示,主要由相位累加器、地址加法器、波形查找表、D/A轉換器和低通濾波器組成。在每個系統時鐘脈沖到來,N位相位累加器與頻率控制字K進行線性累加,累加結果反饋到相位累加器輸入端和輸送到地址加法器。在下一個脈沖到來時,相位累加器將輸入端累加結果與K相加,如此循環,當相位累加器積滿時就產生一次溢出,完成一個周期波形信號輸出。地址加法器截取相位累加器高M位二進制碼作為尋址值,查找波形查找表的波形數據。波形數據在經過D/A轉換器和低通濾波器轉換成模擬波形輸出。相位累加器頻率控制字K大小不同,相位累加器積滿時溢出頻率不同,也即輸出波形頻率不同。通過改變頻率控制字K大小來改變輸出波形頻率。輸出波形頻率 fout與系統時鐘頻率fs、頻率控制字K、相位累加器位數N關系為

當K為1時,輸出波形信號頻率分辨率為

最大輸出頻率由Nyquist采樣定理決定:fmax=fs/2。

圖1 DDS原理圖Fig.1 The schematic diagram of DDS
根據DDS原理,在FPGA中實現全數字化調節波形信號的頻率、相位、幅度、任意垂直偏移量的功能。通常信號發生器產生正弦波、鋸齒波、方波、三角波以及自定義任意波形。波形生成方法有查表法、查表并一階(線性)插補法、泰勒級數近似值法等[5-6]。考慮滿足實驗要求情況下,盡量選擇速度快、精度較高、波形存儲空間需求低的方法。經對比分析,這里波形生成方法選擇查表法。整個信號發生器系統原理框圖如圖2所示,在系統時鐘同步下,32位相位累加器不斷對頻率控制字K進行線性累加,當相位累加器積滿時就產生一次溢出,從而完成一個周期波形信號輸出。32位相位累加器對頻率控制字K進行線性累加,截取相位累加器高12位二進制碼輸送到地址累加器,地址累加器查找波形查找表數據,經過除法器、加法器、數據取反器、16位D/A轉換器、低通濾波器后,輸出波形信號。

圖2 垂直偏移量任意可調信號發生器系統原理圖Fig.2 The principle of arbitrarily adjusted of vertical offset for signal generator system
現以正弦波為例(其它波形的產生采用與正弦波類似的方法),結合正弦波信號對稱特點,波形查找表存儲1/4周期波形。地址加法器最高位和次高位分別控制數據取反器和查找波形查找表方向[5-6]。地址加法器的次高位控制查找波形查找表方向:地址加法器次高位為0,地址加法器輸出正向地址值查找波形查找表中波形數據,輸出0~π/2信號;地址加法器次高位為1,地址加法器輸出反向地址值查找波形查找表中波形數據,輸出π/2~π信號。地址加法器最高位控制數據取反器工作:最高位為0,數據取反器對輸入的波形信號不進行任何操作;只有在地址加法器最高位為1,數據取反器對輸入的波形信號以當前加法器系數為水平中心線的取反操作,即0~π波形數據進行取反操作得到π~2π波形數據。除法器用波形查找表輸入的波形信號R0除以輸入的除法系數 A,結果 R1輸送到加法器,通過改變除法系數A實現改變輸出波形的幅度,如公式(3):

在除法器與數據取反器之間的加法器將除法器輸入波形信號R1與輸入加法系數B相加得到結果R2:

一般情況下,加法器的加法系數B是2n-1,波形信號進行幅度調節的精度取決于D/A轉換器、精密基準穩壓源的精度。波形信號經D/A轉換器、低通濾波器后以某一電壓值為水平線輸出。此外,因硬件電路原因引起輸出波形信號存在偏移,也可以通過調節加法器加法系數B消除波形信號在垂直方向上偏移量。
數據取反器主要完成對由加法器輸入的波形信號進行取反操作,該操作由地址累加器的最高位控制。在地址累加器的最高位為1時,數據取反器對輸入的波形信號進行取反操作,波形信號后半周期結果為R3:

而最高位為0時,數據取反器對輸入的波形信號不進行任何操作。數據取反器將處理后的波形信號輸送到D/A轉換器、低通濾波器,最后完成整個波形的輸出。
以調節輸出以0 V為水平中心線的正弦電壓波形為例。選取16位AD轉換器,波形輸出電壓V=(CODE/65 536)×Vin,其中 CODE是波形數據,數據是0~65 535之間的整數。假定0和65 535對應AD轉換為模擬電壓值為-10V和+10V。模擬電壓值0V對應波形數據為32 767。根據正弦波信號特點波形查找表存儲1/4周期正弦波數據:從0到32 767。
幅度調節:當除法系數A為2,正弦波信號幅度縮小為滿幅輸出的1/2;當除法系數A為4,正弦波信號幅度縮小為滿幅輸出的1/4,實現過程如圖3所示。

圖3 正弦波幅度調節Fig.3 The adjustment of amplitude of sinusoidal waveform
垂直偏移量調節:信號在垂直方向可以任意調節。當輸出波形信號要求在垂直方向上有偏移量時,可通過調整加法系數B來實現。此外,因硬件電路原因使得最終輸出波形信號略微偏離0 V線,可以通過調節加法器加法系數B消除波形信號在垂直方向上偏移量。16位加法系數B調節電壓范圍-10~+10 V,偏移量分辨率為:20V/216=0.000 3 V,即加法器加法系數B每變化1引起輸出模擬電壓變化量為0.3 mV。
以調節幅度為滿幅輸出的1/2的正弦波,且全為正向電壓為例。此時調整除法系數A為2,加法系數B為49 151。由公式(3)~(5)可得正弦波數據范圍為32 767~65 535,實現過程如圖4所示。

圖4 正弦波偏移量調節Fig.4 The offset adjustment of sinusoidal waveform
在Quartus II 7.2環境下采用Verilog-HDL語言設計多路波形信號發生器,并在FPGA平臺上實現(圖5),該平臺主要由DAC板和FPGA板組成。FPGA板采用Altera公司低成本Cyclone系列EP1C12Q240C8芯片,主要通過編程實現可調零、調幅、調頻、不同相位偏移量的波形信號生成。DAC板主要由數模轉換電路及低通濾波電路組成。由FPGA板生成數字波形信號,輸入DAC板,經數模轉換電路,將數字波形信號轉變成模擬信號,再通過低通濾波平滑,最后通過示波器可以測量所生成的波形信號。通過示波器上的兩路波形信號,驗證所提出的設計。
實驗結果如圖6所示,以波形1作為參考,其頻率50Hz,幅值±10 V,通過改變波形2的除法系數A,調節輸出波形幅度,實現輸出幅度為±5V的波形(圖6(a));通過改變波形2的相位控制字P,實現輸出波形相位差為45°(圖6(b));通過改變波形2的頻率控制字 K,實現輸出頻率100 Hz的波形(圖6(c));通過改變波形2的加法系數B,調節其垂直方向偏移量,實現波形2比波形1在垂直方向上的偏移量為2 V的輸出波形(圖6(d))。

圖5 信號發生器實驗平臺Fig.5 The experiment platform of signal generator

圖6 實驗結果圖Fig.6 The experiment results
本文基于DDS原理采用Verilog HDL語言,在FPGA芯片上通過軟件編程方法設計并實現了頻率控制、相位控制、幅度控制、垂直偏移量任意可調的信號發生器。通過搭建實驗平臺驗證了采用軟件編程方法的波形信號發生器可根據實際需要實現任意的頻率調節、相位調節、幅度調節;特別是該波形信號發生器不需要外加硬件電路,就可以實現對輸出波形垂直偏移量的調節,且調節信號靈活,具有輸出波形精度高、可控性好、成本低的優點。依據DDS原理在FPGA芯片上,根據實際需要通過編程設計并實現兩路及兩路以上的多路波形信號發生器,可以廣泛應用于自動測控系統、儀器儀表、通信等領域。
[1]李勇,艾竹君,劉巧云,等.基于FPGA的 DDS設計方法[J].低溫與超導,2007,35(6):539-542.LI Yong,AI Zhu-jun,LIU Qiao-yun,et al.A Design for DDS Dased on FPGA[J].Cryogenics and Superconductivity,2007,35(6):539-542.(in Chinese)
[2]電子科技大學.一種雙通道可調相調幅的同步DDS裝置:中國,101339446A[P].2009-01-07.University of Electronic Science and Technology of China.A T wo ChannelsT unable Phase andAmplitude of Synchronous DDS Device:China,101339446A[P].2009-01-07.(in Chinese)
[3]汪勐,汪寧,宋曉東.使用較少FPGA資源實現DDS的方法[J].微電子學與計算機,2006,23(8):181-186.WANG Meng,W ANG Ning,SONG Xiao-dong.The Implementation of DDS with FPGA by Less Resources Used[J].Microelectronics&Computer,2006,23(8):181-186.(in Chinese)
[4]葉佩青,楊更更,楊開明,等.多通道相位差可調正弦波信號發生器的設計[J].儀表技術與傳感器,2004(1):10-12.YE Pei-qing,YANG Geng-geng,YANG Kai-ming,et al.Design of Multi-channel Sine Waveforms Generator with Tunable Phase Difference[J].Instrument Technique andSensor,2004(1):10-12.(in Chinese)
[5]藍天,張金林.直接數字頻率合成器DDS的優化設計[J].電子技術應用,2007(5):42-44.LAN Tian,ZHANG Jin-lin.Optimization Design of Direct Digital Frequency Synthesis[J].Application of Electronic Technique,2007(5):42-44.(in Chinese)
[6]李康順,呂小巧,張文生,等.基于改進 DDS技術的FPGA數字調制器研究與實現[J].壓電與聲光,2009,31(6):852-855.LI Kang-shun,LV Xiao-qiao,ZHANG Wen-sheng,et al.Research and Implement of FPGA Digital Modulator Based on Improved DDS Technology[J].Piezoelectrics&Acoustooptics,2009,31(6):852-855.(in Chinese)