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