李鑫彪,王笑怡
(中國電子科技集團公司第四十七研究所,沈陽110032)
基于FPGA的頻率測量儀設(shè)計
李鑫彪,王笑怡
(中國電子科技集團公司第四十七研究所,沈陽110032)
隨著可編程器件的快速發(fā)展,F(xiàn)PGA已經(jīng)廣泛應(yīng)用在各個領(lǐng)域。由于其性能的穩(wěn)定性和設(shè)計的靈活性,因此本設(shè)計也采用了FPGA為主控單元,實現(xiàn)了用于測量信號頻率的頻率測量儀。在保證精度的基礎(chǔ)上,用Verilog硬件描述語言制定了三個模塊,以實現(xiàn)系統(tǒng)的整體功能,并對系統(tǒng)實現(xiàn)的整體功能進行了仿真驗證。
現(xiàn)場可編程門陣列;頻率測量儀;高精度;高速度
頻率是各種信號源的一個重要物理量,是電子、通信等領(lǐng)域的一個重要研究對象,其大小和穩(wěn)定性往往可以決定一個器件或者整個系統(tǒng)的性能。因此,用一種簡單有效且精度較高的方法來測量一個信號的頻率是檢測一個信號頻率能否達到要求的一項重要工作,對單獨某個器件或者整個系統(tǒng)性能的穩(wěn)定性起到了有力的保障作用。
選用FPGA作為頻率測量儀的主控單元,是因為FPGA具有豐富的邏輯單元和IO口,系統(tǒng)可以方便地進行功能擴展,且其設(shè)計靈活方便,可以采用C/C++或Verilog HDL/VHDL進行程序或元器件的編寫和修改。此外,采用FPGA設(shè)計可以使整個系統(tǒng)采用純硬件結(jié)構(gòu),大大提高了系統(tǒng)的時實性。
頻率計的測量原理:給定一個閘門時間和一個已知頻率的標(biāo)準(zhǔn)信號,在給定的閘門時間T內(nèi),分別測量標(biāo)準(zhǔn)脈沖信號的個數(shù)Nx和要被測量信號的脈沖數(shù)Nb,則:被測信號的頻率為,其中fx為標(biāo)準(zhǔn)脈沖信號頻率。在忽略標(biāo)準(zhǔn)脈沖信號頻率fx的誤差情況下,可能產(chǎn)生的誤差為:δ=|f′b-fb|/fbe×100%,其中fbe為被測信號頻率的真實值,δ=|ΔNx|/Nx≤1/Nx=1/T×fx。由上式可見,測量的精度與閘門時間和標(biāo)準(zhǔn)信號的頻率成反比,閘門時間越長,標(biāo)準(zhǔn)信號的頻率越高,則誤差就越小。
標(biāo)準(zhǔn)信號的頻率為100MHz時,閘門時間和系統(tǒng)測量精度之間的關(guān)系如下:
表1 閘門時間與精度的對應(yīng)關(guān)系
可見,標(biāo)頻在100MHz,閘門時間為0.01s時,測量精度就可達到10-6。而標(biāo)準(zhǔn)信號的頻率在FPGA中通過鎖相環(huán)技術(shù)很容易達到100MHz,因此整個系統(tǒng)的測量精度很容易就可以達到很高。
設(shè)計總體分為三個部分,分別為計數(shù)部分part1,寄存器部分buffer和數(shù)據(jù)選擇部分chose,總體結(jié)構(gòu)如圖1所示。設(shè)計為雙頻率測量儀,可以同時測量兩路信號頻率,如果需要可以通過增加計數(shù)部分part1來增加測量信號的個數(shù)。
圖1 系統(tǒng)的整體結(jié)構(gòu)
3.2 計數(shù)部分part1
pin_bp為標(biāo)準(zhǔn)頻率輸入端,pin_door為閘門信號控制端,pin_cp為被測頻率信號輸入端,pin_out1[23..0]為在閘門時間內(nèi)標(biāo)準(zhǔn)頻率信號個數(shù)輸出端,pin_out2[15..0]為在閘門時間內(nèi)被測頻率信號個數(shù)輸出端。為保證頻率測量儀的精度,取標(biāo)準(zhǔn)頻率信號個數(shù)輸出端為24位,被測頻率信號個數(shù)輸出端為16位,如果需要可以通過Verilog HDL/VHDL硬件描述語言方便的改變計數(shù)器位數(shù),因此系統(tǒng)具有很高的靈活性,適用范圍比較大(見圖2)。
圖2 計數(shù)模塊
3.2 寄存器部分buffer
為保證數(shù)據(jù)讀取與處理的正確性,采用Verilog HDL語言編寫了一個寄存器,用于數(shù)據(jù)的正確讀取與處理,其中reset為復(fù)位鍵,當(dāng)其為低電平時,輸出都為“0”(見圖3)。
3.3 數(shù)據(jù)選擇部分chose
為節(jié)省系統(tǒng)的IO口資源,使系統(tǒng)可以擴展更多功能,文章設(shè)計了一個數(shù)據(jù)選擇器用于選擇數(shù)據(jù)輸出。在sel=0,rd=0的前提下,通過改變不同的add值選擇不同的輸出值。當(dāng)sel、rd其中有一個不為“0”時,輸出out為高阻“z”(見圖4)。
圖3 寄存器模塊
圖4 數(shù)據(jù)選擇模塊
為保證測量精度,減小±1誤差,閘門信號pin_ door如圖5所示。但實際閘門信號設(shè)計為兩步,第一步,當(dāng)測頻信號為高電平時,為中間閘門信號pin_ clk0的開始點,如圖5中的中間閘門所示;第二步,當(dāng)標(biāo)準(zhǔn)信號為高電平時,為最終閘門信號pin_clk1的開始點,最終閘門信號如圖5中的最終閘門所示,其系統(tǒng)仿真如圖6所示。
圖5 預(yù)置閘門與最終閘門的關(guān)系
圖6 預(yù)置閘門和實際閘門的驗證
圖6為驗證實驗圖,標(biāo)頻信號pin_bp的頻率比較低,pin_clk0和pin_clk1的時間差較長。在實際應(yīng)用中,為保證測量精度,標(biāo)頻信號的頻率往往較大,所以實際中的pin_clk0和pin_clk1的時間差很小。由圖6可知仿真結(jié)果和我們預(yù)期的結(jié)果一樣,所以證明了設(shè)計閘門時間控制的正確性。
圖7為整個系統(tǒng)仿真的部分圖,由仿真結(jié)果可以證明系統(tǒng)整體設(shè)計的正確性。
圖7 系統(tǒng)整體功能的仿真
設(shè)計采用了Altera公司Cyclon II系列的FPGA芯片作為系統(tǒng)主控單元,通過Verilog HDL編寫了三個模塊組成整個硬件系統(tǒng),其具有很高的靈活性,可以通過簡單地修改程序,來修改三個模塊,以實現(xiàn)不同場合的不同需要。其具有很高的精度,在保證系統(tǒng)標(biāo)準(zhǔn)頻率不變的基礎(chǔ)上,通過增加閘門時間來提高體統(tǒng)精度以保證不同場合對精度的不同要求。FPGA具有豐富的邏輯單元和IO口,因此,可以在本實驗的基礎(chǔ)上增加系統(tǒng)的功能和外接設(shè)備,從而可以更好的進行下一步的開發(fā)研究。
[1]王慧.基于FPGA的高速高精度頻率測量系統(tǒng)的實現(xiàn)[J].傳感世界,2006(1):27-29.
[2]張永安.基于CPLD的多功能等精度的數(shù)字頻率計的設(shè)計[D].大連:大連理工大學(xué),2004.
[3]周立功.SOPC嵌入式系統(tǒng)實驗教程[M].北京:北京航空航天大學(xué)出版社,2006.
Design of Frequency Measurement Instrument Based on FPGA
LIXin-biao,WANG Xiao-yi
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
With the rapid development of the programmable devices,F(xiàn)PGA has been widely used in various fields.As its stability of the performance and flexibility of the design,F(xiàn)PGA is also used as the main control unit in the system to design the frequencymeasurement instrument formeasuring the signal frequency.In order to guarantee the accuracy,Verilog hardware description language is used to develop threemodules to achieve the overall function of the system,and the simulation is conducted to the functionsmentioned above.
FPGA;Frequencymeasurement instrument;High precision;High speed
10.3969/j.issn.1002-2279.2014.05.002
TN492
:A
:1002-2279(2014)05-0005-03
李鑫彪(1989-),男,黑龍江省七臺河市人,碩士研究生,主研方向:嵌入式系統(tǒng)的設(shè)計及其應(yīng)用。
2013-8-8