摘 要:在分析比較現有測頻方法優缺點的基礎上,介紹全同步測頻原理,給出采用AT89C51單片機實現控制,并通過FPGA芯片,在Max+Plus Ⅱ中運用VHDL語言編程,設計出一個多功能全同步數字式頻率計。該設計可以兼顧頻率計對速度、資源和測頻精度等各方面的優化需求。
關鍵詞:FPGA;多功能;全同步;頻率計;VHDL
中圖分類號:TN74;TP368.1文獻標識碼:B
文章編號:1004-373X(2010)02-151-03
Design of Multi_functional Full_ synchronization Digital Frequency
Meter Based on FPGA
RAO Chengming1,2,MA Xizhi1
(1.College of Mechanical and Electrical Engineering,Nanjing University of Aeronautics and Astronautics,Nanjing,210016,China;
2.Wuxi Institute of Technology,Wuxi,214121,China)
Abstract:Based on the analysis of frequency_measuring methods,the full_synchronization theory is introduced,and a multi_functional full_synchronization digital frequency meter controlled by SCM_AT89C51 and VHDL Language is used for developing a program in Max+Plus Ⅱ through FPGA chip is presented.This design methods can meet the needs of measurements for rate,resource and frequency accuracy of the frequency meter.
Keywords:FPGA;multi_function;full_synchronization;frequency meter;VHDL
0 引 言
在電子技術領域內,頻率是最基本的參數之一。由于測頻的重要性,也使測頻方法有了很大的發展。常用的數字頻率測量方法有M法(直接測量法)、T法(周期測量法)和M/T法(等精度測量法),但這三種方法都存在±1個計數誤差的問題。全同步測量法的提出,從根本上消除了測量精度±1個計數誤差問題[1],從而使頻率測量的精度和性能大為改善。
基于傳統測頻方法的頻率計測量精度隨被測信號頻率的變化而變化,且功能單一,成本較高,在實用中有很大的局限性[2]。全同步測量不但有很高的測量精度,而且在整個頻率區域能保持恒定的測量精度,同時通過功能的擴展,可以解決電信號和非電量的多個參數測量,從而實現功能的多樣化。在此,基于對單片機控制技術、FPGA器件和全同步測量方法的研究,給出一種利用FPGA實現DC-50 MHz多功能全同步數字頻率計的實現方法及其仿真波形。整個系統在研制FPGA/CPLD實驗開發系統上調試通過。采用這種方法,可以大幅度縮短設計周期,并使設計產品具有小型化,功耗低,速度高,集成度和可靠性高的優點。
1 全同步測頻原理
M/T法的測量精度不僅取決于基準時間和計數器的計數誤差,還取決于頻率,頻率不同,則其精度不一樣。M法在高頻段的準確度相對較高,T法在低頻段的準確度較高,M/T法在整個測試頻段的精度一樣。閘門信號是被測信號的整數倍,與被測信號同步,因此大大減少了誤差,但由于只與被測信號同步,而不與標準時鐘同步,因此還是存在著±1個計數誤差。其測量頻率原理如圖1所示[3]。
圖1 等精度測頻原理
若不計標準時鐘誤差,則測量的相對誤差計算為:
δ=(|fx-fx′|/fx×100%=1/(Tsfs)(1)
式中:fx為被測信號頻率的真實值;fx′為被測信號頻率的測量值;Ts為閘門時間;fs為標準時鐘頻率。
由式(1)可知,誤差與閘門時間及時鐘頻率有關,閘門時間越長,標準時鐘頻率越高,誤差越小。由于用等精度頻率法測量時所取的標準時鐘一般都比較高,因此±1個計數誤差相對很小。標準時鐘頻率不可能無限制提高,并且隨著頻率的提高,產品成本成倍增加,對于生產應用沒有意義。因此該設計采用改進的等精度頻率測量方法,即全同步測量來實現數字頻率計的設計。在全同步的情況下,閘門信號不僅與被測信號同步,還與標準時鐘同步,其原理圖如圖2所示[4]。
圖2 全同步測頻原理
設開啟閘門時脈沖同步時間差為Δt1;關閉閘門時脈沖同步時間差為Δt2;脈沖同步檢測最大誤差為Δt,則有Δt1≤Δt,Δt2≤Δt。頻率測量的相對誤差為:
δ=|fx-fx′|/fx×100%=
|Δt1+Δt2|/Ts≤2|Δt|/Ts(2)
由式(2)可知,誤差只與脈沖檢測電路的準確度有關,采用控制誤差的方式可有效地提高頻率測量精度,而且實現起來比提高標準時鐘頻率更容易。在以上分析的基礎上,該設計采用FPGA實現多功能數字頻率計,由74LS系列與非門來實現脈沖全同步檢測。脈沖同步檢測電路如圖3所示[5]。
圖3 脈沖同步檢測電路
圖3中,U1~ U8為74LS系列與非門,同步檢測電路由門電路的延時構成。當且僅當Fx與CLK的上升沿在延時時間內同時到達時,U8才會輸出高電平。
74LS系列與非門的延時最小為4 ns,最大為15 ns,因此最大誤差為11 ns。根據式(2)可得:
δ=2|Δt|Ts=2×11×10-9Ts=22109Ts
當Ts=1 s時,其精度可達到10-7,如果再減少相位誤差,則可提高頻率計的精確度。
2 多功能全同步頻率計模塊設計
該設計選用的是Altera公司生產的FPGA(Field Programmable Gate Array) 芯片,該芯片型號為EP1C6Q240C8,屬應用VHDL語言數據類型,它的結構是層次化的,利用這些豐富的數據類型和結構模型,可對復雜的數字系統進行邏輯設計,并用計算機進行仿真。在對其逐步完善后,再進行自動綜合,最后下載到可編程邏輯器件中,從而完成設計任務。
2.1 硬件電路設計系統原理圖
系統組成原理框圖如圖4所示[6]。該系統由一片FPGA完成各種測試功能,并實現計數。系統控制由AT89C51單片機完成,包括對鍵盤信號、測量結果、FPGA測量過程、LED顯示等信號和數據的處理[7]。被測信號通過整形電路整形后,送入FPGA芯片測頻計數。單片機由外接12 MHz標準晶振提供時鐘電路。用50 MHz的有源晶振作為FPGA的標準頻率。電源部分采用220 V交流電壓變壓、濾波、穩壓后得到5 V電壓供整個系統使用。
圖4 系統原理框圖
2.2 FPGA實現模塊
在電子設計領域,可編程邏輯器件(Programmable Logic Devices,PLD)的出現,改變了傳統系統設計由門級電路到模塊再到系統的設計方法,而是由頂層到底層的設計,使系統設計和升級具有極大的方便性和靈活性。FPGA是目前應用最廣泛的可編程器件之一。它的設計需在專用的設計環境下,經過設計輸入、編譯、仿真、綜合等步驟[8],再通過下載器下載到與FPGA配套的儲存器件中,當系統工作時,FPGA會自動讀取數據,從而實現預定的電路設計功能。
該頻率計的測試功能都由FPGA完成。根據測頻原理,利用VHDL語言編寫各個部分邏輯模塊,實現框圖如圖5所示。
設計原理圖主要由脈沖同步檢測電路、控制器、計數器、相位測量、脈寬/占空比測量、多路選擇器電路等組成。以測頻為例,工作原理如下:被測信號TCLK及標準時鐘BCLK分別送給脈沖同步檢測電路及測頻電路中的兩個計數器,當脈沖同步檢測電路檢測到TCLK與BCLK同步時,脈沖同步檢測電路發出同步信號,兩個計數器開始計數,同時控制器發出指令,由多路選擇器選擇測頻開始;當脈沖同步檢測電路再次檢測到同步信號時,又發出同步信號,測頻模塊中兩個計數器停止計數,同時計數器所得數據傳輸給外圍控制電路運算,所得結果就是被測信號的頻率。
圖5 FPGA模塊電路原理圖
2.3 軟件設計
各種測試功能流程如圖6所示[9]。以測頻為例,在系統初始化后,由鍵盤掃描子程序讀入要執行的功能鍵;讀入鍵之后,立刻跳轉到測頻子程序;測頻子程序先置測頻控制位SPUL,CL,SEL,將FPGA內的計數清零,然后將預置門的時間值讀入單片機再打開預置門進行測頻計數,等預置門時間到后,關斷預置門;然后FPGA給單片機一個結束信號,單片機讀到結束信號后,通過DATA端,分四次將測頻結果的32位數據讀入單片機,計算后將結果轉換為BCD碼送入LED顯示輸出。由于測控主程序較長,這里不給出。
圖6 單片機主程序流程圖
2.4 FPGA芯片頂層設計及仿真結果
根據圖5所示的模塊電路設計原理,并經過VHDL編程,得到各模塊的VHDL設計實體。對各模塊的設計實體在Max+Plus Ⅱ中進行仿真,驗證各模塊的正確性。設計一個頂層文件把各模塊按圖5連接起來,便構成了一個全同步多功能數字頻率計的FPGA內部硬件電路。圖7給出測頻頂層文件的仿真結果。
圖7 測頻頂層文件仿真波形圖
3 結 語
與傳統的頻率計相比,基于EDA技術設計的頻率計簡化了電路板的空間,提高了系統設計的可靠性。在設計中采用全同步和兩個同步的32位計數器,無需選擇量程便可實現寬頻高精度的頻率測量,并在FPGA中實現系統集成,達到預期效果。該頻率計還具有擴展功能,配上相應的轉換器可測量電壓、電流、功率和電阻等電量;配合傳感器還可以測量長度、位移、重量、壓力、溫度、轉速、速度等非電量[10]。因此,全同步多功能頻率計有著廣泛的應用空間。
參考文獻
[1]徐成,劉彥,李仁發.一種全同步數字頻率測量方法的研究[J].電子技術應用,2004,38(12):43-46.
[2]潘松,黃繼業.EDA技術與VHDL[M].北京:清華大學出版社,2005.
[3]李云鵬,王思明.基于FPGA的等精度頻率計設計[J].電子元器件應用,2007,9(11):54-55.
[4]魏西峰.全同步數字頻率測量方法的研究[J].現代電子技術,2005,28(12):101-105.
[5]包本剛,何怡剛,朱湘萍.全同步數字頻率計的VHDL設計與仿真[J].現代電子技術,2007,30(20):176-178.
[6]林占江,林放.電子測量儀器原理與應用[M].北京:電子工業出版社,2006.
[7]孫涵芳.MCS51/96系列單片機原理及應用[M].北京:北京航空航天大學出版社,1994.
[8]譚會生.EDA技術及應用[M].西安:西安電子科技大學出版社,2004.
[9]金西.VHDL與復雜數學系統設計[M].西安:西安電子科技大學出版社,2003.
[10][美]Michael John,Sebastian Smith.專用集成電路[M].北京:電子工業出版社,2007.