王麗娜 楊緒森 許冉 徐偉 吳靜 石晨鳴
摘 要: 設計基于FPGA的高頻信號產生和頻率測量電路。系統以FPGA為核心,輔以高速D/A、無源濾波、自動增益控制AGC等模塊構成。利用FPGA對標準信號波形進行存儲,結合DDS技術,通過高速D/A和無源濾波實現信號的產生。FPGA的計數器、閘門等實體電路實現了等精度測頻。利用NIOS實現人機交互功能。實驗測試表明,系統輸出的三角波、正弦波、方波具有頻帶寬、頻率穩定的特點,測頻的相對誤差達到10-6。
關鍵詞: FPGA; 模擬電路; 等精度測頻; 波形產生; DDS原理; NIOS
中圖分類號: TN710.4?34; TP274 文獻標識碼: A 文章編號: 1004?373X(2018)17?0107?05
Abstract: The high?frequency signal generation and frequency measurement circuits based on FPGA are designed. The system takes FPGA as its core, and is composed of high?speed D/A, passive filter, automatic gain control (AGC) module, etc. FPGA is used to store the standard signal waveform, and combined with DDS technology to realize the signal generation by means of high?speed D/A and passive filter. The counter, strobe and physical circuits of FPGA are used to realize the equal precision frequency measurement. The NIOS is used to realize the human?computer interaction function. The experimental results show that the triangular wave, sine wave and square wave output by the system have the characteristics of wide frequency band and stable frequency, and the relative errors of frequency measurement can reach up to 10-6.
Keywords: FPGA; analog circuit; equal precision frequency measurement; waveform generation; principle of DDS; NIOS
近年來,DDS技術廣泛應用于雷達系統、數字通信、電子測量等設備中。傳統的方法采用單片機等處理器來控制DDS芯片,使其輸出對應的波形信號數據。這種處理器+DDS模塊的組合形式使得系統的復雜度高,成本也較高。由于FPGA在處理數字信號方面具有優勢[1?5],且能夠通過編程的形式在其內部構建軟核實現單片機的控制功能。同時,根據DDS原理,在內部構建相位累加器和波形存儲器實體電路,結合DAC、濾波電路等實現DDS芯片的功能,單個FPGA可以代替單片機+DDS芯片的組合,實現波形信號產生。
在電子設計過程中,測頻是最常用的技術之一[6?7]。目前的數字頻率計主要是通過單片機與CPLD的組合形式對信號進行處理分析,這種方法增加了器件的數量,不利于儀器的高集成度。利用FPGA在其內部應用等精度方法測量信號,可以有效提高測量精度[8?9]。被測信號通過前級AGC(自動增益控制)電路、寬帶放大電路、高速比較電路處理轉換成FPGA可處理的方波信號,經FPGA的同步閘門、計數器、觸發器、選擇器等實體電路對輸入信號和高精度標準信號進行等精度計數,并處理顯示。采用FPGA代替單片機和CPLD的組合,可以實現頻率測量。
鑒于波形信號產生和頻率測量是電子系統中最常用的兩項功能,目前幾乎沒有集成這兩項功能的系統。由于大部分電子設計工程的場地不固定,設計人員希望能夠在各種場地下進行電子設計實驗。因此,本文使用FPGA芯片將信號發生器和頻率計功能集成在一起,在提高資源利用率和系統集成度的同時,也使得系統更高效,可以滿足大部分情況下的實驗需要,應用前景廣闊[10?12]。
1.1 信號產生原理
直接數字式頻率合成器(DDS)的基本原理就是事先存儲一個周期波形信號的幅度值(如正弦表),再按照預設的每個頻率,分別以不同的速率(在正弦表中取值的步進)發送當前周期的波形信號,進而把離散的幅度值合成波形信號。DDS原理圖如圖1所示。
圖1中:[K]是通過軟核處理器控制的相位累加器步進值,根據不同的步進值輸出不同的頻率;[fs]是通過IP核PLL模塊輸出的100 MHz時鐘,作為采樣時鐘。設累加器的數據位寬為[N]位,那么當相位改變360°時,需要累加[2N]次。
本設計基于FPGA,通過硬件描述語言設計相位累加模塊和波形存儲模塊,可以輸出多種波形并任意改變頻率。設計的采樣頻率設定為100 MHz,相位累加器設計為32位,則頻率理論分辨率為0.023 Hz。
1.2 頻率測量原理
等精度測量法是用系統時鐘產生一個標準信號,然后預置一個閘門時間,在預置閘門開啟后,不斷檢測輸入信號的上升沿,上升沿到來瞬間,開啟實際閘門,待預置閘門下降沿到來后不斷檢測輸入信號的下降沿,下降沿到來瞬間關閉實際閘門。這樣整數倍的被測信號周期就是實際閘門,避免了被測信號產生的±1周期誤差。被測信號頻率可通過實際閘門時間內對標準信號和被測信號計數來計算得出。
2.1 FPGA設計
FPGA具有并行運算的能力,屬于一種半定制專用集成電路,能夠靈活地應用在各種需要快速響應和同時處理多路信號的場合。并且FPGA系統配置了NiosⅡ處理器,能夠通過硬件描述語言在內部搭建實體電路模擬單片機的功能,實現按鍵控制、屏幕驅動等功能。
FPGA內部模塊設計如圖3所示。其中NiosⅡ處理器負責處理按鍵邏輯控制,實現波形選擇及其他功能設置,同時驅動LCD顯示屏,顯示相關系統參數及測量值。
以正弦波信號產生模塊為例,實體電路如圖4所示。波形產生主要由相位累加器和波形存儲器兩個模塊完成,而波形存儲器中的數據不同可以產生不同的波形。構成實體包括相位累加器inst9和波形存儲器inst10:輸入端口RESET、頻率控制字[K]和時鐘輸入CLK;輸出端口:波形數據sin。
相位累加器根據輸入的頻率控制字數值不同,進行步進值不等的數據累加并輸出。波形存儲器根據相位累加器輸出的值輸出對應的波形幅值,這些連續輸出的幅值點便構成了特定的波形。
頻率測量實體電路如圖5所示。圖5中,等精度測頻功能由觸發器、計數器模塊來完成。構成實體包括:計數器inst15和inst18、定時器inst16、D觸發器inst17。輸入端口包括:基準系統時鐘CLK、被測信號Fin、清零信號CLR。輸出端口包括:測量數據字節輸出CLK_COUNT和FIN_COUNT。
實體計數器inst15對被測信號進行計數,實體計數器inst18對頻率為100 MHz的基準時鐘計數,但計數的開始時間受閘門en控制。定時器inst16對100 MHz系統時鐘信號進行計數,得到周期1 s的預置閘門信號,預置閘門有效時,并不立即開啟兩計數器,而是通過D觸發器產生與被測信號嚴格同步的實際閘門[q],當實際閘門[q]有效時,兩個計數器才開始計數。兩計數器的計數值都為4 B,直接將計數值發送給Nios處理器。
2.2 模擬電路設計
本設計主體電路結構如圖6所示,主要分為波形產生功能和頻率測量功能。波形產生功能包括高速D/A模塊和低通濾波器;頻率測量功能包括AGC電路模塊和高速比較器模塊。
模擬電路選用的芯片均為高速芯片,提高了系統整體帶寬。
AGC電路的原理如圖7所示。信號經過程控放大器后不斷進行檢測,根據結果產生一個電壓值控制程控放大器的增益,使程控放大器輸出的信號無限接近限定值。整個電路形成閉環反饋。高速緩沖放大器與后級電路進行阻抗匹配,從而保持系統穩定性。
被測信號經過前級AGC電路調理后幅值已符合要求,而波形有可能是非方波信號,從而使得無法被FPGA正確測量,所以通過高速比較器將前級輸出信號整形成方波信號,然后再輸入至FPGA進行處理測量。
高速比較電路采用滯回比較電路原理,能夠使系統穩定,不會因受干擾而造成波形跳變。
無源濾波由電容、電感和電阻共同組成,通過公式計算及實際調試,使其符合性能要求。其中截止頻率設定為40 MHz。
3.1 波形信號產生
以正弦波信號產生為例,對波形信號產生功能進行仿真,采用邏輯分析儀采集FPGA端口輸出的數據,得到如圖8所示的數據圖。
由此數據圖能夠清楚地判斷出端口輸出的數據是符合要求的。將圖8中輸出的并行數據輸入至D/A轉換模塊就可以得到如圖9所示的連續正弦波信號。
圖9中,測試所用D/A轉換模塊為8位并行數據接口,并行數據有利于高速數據的快速轉換,提高系統整體性能。
3.2 頻率測量
頻率測量如圖10所示,通過高性能信號發生器輸入100 kHz、幅值為1 V的正弦波信號,同時用高性能頻率計為參考,觀察本設計的測頻數值。
圖10中,輸入信號為100 kHz,高性能頻率計顯示值為99.999 996 647 kHz。LCD屏顯示頻率測量值如圖11所示,顯示屏上的數值為99.999 716 kHz。
FPGA使用標準的50 MHz晶振,對應不同模塊,使用IP核進行倍頻至100 MHz作為系統時鐘,分功能進行性能指標測試。
測試儀器:RIGOL DP832電壓源、RIGOL DG4102信號源和頻率計、RIGOL DS2202示波器。
4.1 波形信號產生功能測試
通過按鍵設置不同波形、頻率、幅值的信號,以RIGOL DG4102頻率計的測定值為標準值進行誤差分析。正弦波和方波產生的頻率測試數據如表1所示。
4.2 頻率測量功能測試
對于頻率測量功能采用高性能信號發生器輸出不同波形、頻率的信號進行測量,以RIGOL DG4102頻率計的測定值為標準值進行誤差分析。測試結果如表2所示。
本文主要設計了基于FPGA的寬帶信號產生和頻率測量電路。通過測試數據表明:任意波形信號產生功能能夠產生頻率1 Hz~20 MHz、幅值為50 mV~10 V的正弦波、方波等多種波形;頻率測量功能能夠實現對幅值10 mV~1 V、頻率1 Hz~100 MHz的不同波形的測量,系統總體性能較高。
參考文獻
[1] 韓朝輝,孟令軍,鄒坤.基于FPGA的多速率信號發送器的設計[J].計算機測量與控制,2016,24(2):317?320.
HAN Zhaohui, MENG Lingjun, ZOU Kun. Design of multi rate signal transmitter based on FPGA [J]. Computer measurement & control, 2016, 24(2): 317?320.
[2] 李嘉楠,謝雪松,張小玲,等.基于DDS技術的多路電氣隔離程控信號源[J].電子技術應用,2016,42(2):53?56.
LI Jianan, XIE Xuesong, ZHANG Xiaoling, et al. A programmable multi?routing electrical isolated signal generation system based on DDS technology [J]. Application of electronic technique, 2016, 42(2): 53?56.
[3] 張艷.基于FPGA低頻信號發生及分析儀設計[J].自動化與儀器儀表,2016(6):40?41.
ZHANG Yan. Design of frequency signal generation and analysis system based on the FPGA [J]. Automation & instrumentation, 2016(6): 40?41.
[4] 張霞.基于FPGA的正弦信號測量系統[J].電子設計工程,2015,23(24):93?95.
ZHANG Xia. Sine signal measurement system based on FPGA [J]. Electronic design engineering, 2015, 23(24): 93?95.
[5] 田毅,范毓洋,李哲瑋,等.基于FPGA的亞穩態參數測量方法[J].微電子學與計算機,2016,33(10):46?49.
TIAN Yi, FAN Yuyang, LI Zhewei, et al. Metastable parameter measurement method based on FPGA [J]. Microelectronics & computer, 2016, 33(10): 46?49.
[6] 吳厚航.深入淺出玩轉FPGA[M].北京:北京航空航天大學出版社,2010.
WU Houhang. Play FPGA [M]. Beijing: Beijing University of Aeronautics and Astronautics Press, 2010.
[7] 賽爾吉歐·佛朗哥.基于運算放大器和模擬集成電路的電路設計[M].西安:西安交通大學出版社,2009.
FRANCO S. Design with operational amplifiers and analog integra?ted circuits [M]. Xian: Xian Jiaotong University Press, 2009.
[8] 黎山峰,楊雷,孫建軍.基于NiosⅡ的FPGA頻率計設計與實現[J].儀表技術與傳感器,2016(8):105?108.
LI Shanfeng, YANG Lei, SUN Jianjun. Design and implementation of FPGA frequency meter based on Nios II [J]. Instrument technique and sensor, 2016(8): 105?108.
[9] 方易圓,鄧琛.等精度頻率計的FPGA設計[J].測控技術,2012,31(10):1?4.
FANG Yiyuan, DENG Chen. Design of equal precision frequency meter based on FPGA [J]. Measurement & control technology, 2012, 31(10): 1?4.
[10] ZHANG W H, BASKARAN R, TUMER K L. Effect of cubic nonlinearity on auto?parametrically amplified resonant MEMS mass sensor [J]. Sensors and actuators A, 2002, 102(1/2): 139?150.
[11] 吳瑕杰,宋文勝,馮曉云.一種在線計算多模式空間矢量調制算法及其FPGA實現[J].電工技術學報,2016,31(18):124?133.
WU Xiajie, SONG Wensheng, FENG Xiaoyun. An on?line calculation multi?mode SVPWM algorithm and implementation based on FPGA [J]. Transactions of China electrotechnical society, 2016, 31(18): 124?133.
[12] 楊鴻武,張策,陸曉燕,等.一種改進式TAC的高精度時間間隔測量系統的實現[J].計算機測量與控制,2015,23(12):4008?4012.
YANG Hongwu, ZHANG Ce, LU Xiaoyan, et al. Implementation of high precision time interval measurement system based on an improved time?amplitude converter [J]. Computer measurement & control, 2015, 23(12): 4008?4012.