苗 軍,謝曉斌,謝曉玲,安雅麗
(1.甘肅電器科學研究院,甘肅天水741018;2.甘肅省高低壓電氣研發(fā)檢測技術(shù)重點實驗室,甘肅天水741018)
數(shù)字頻率計的系統(tǒng)設(shè)計與仿真研究
苗 軍1,2,謝曉斌1,2,謝曉玲1,2,安雅麗1,2
(1.甘肅電器科學研究院,甘肅天水741018;2.甘肅省高低壓電氣研發(fā)檢測技術(shù)重點實驗室,甘肅天水741018)
數(shù)字頻率計是一種基本的測量儀器,被廣泛應用于航天、電子、測控等領(lǐng)域。采用等精度頻率測量方法具有測量精度保持恒定,不隨所測信號的變化而變化的特點。利用等精度測量原理,通過FPGA運用VHDL編程,利用FPGA(現(xiàn)場可編程門陣列)芯片設(shè)計了一個8位數(shù)字式等精度頻率計,該頻率計的測量范圍為0MHz-100MHz,利用QUARTUSⅡ集成開發(fā)環(huán)境進行編輯、綜合、波形仿真,并下載到CPLD器件中,經(jīng)實際電路測試,仿真和實驗結(jié)果表明,該頻率計有較高的實用性和可靠性。
VHDL語言;頻率測量;數(shù)字頻率計
隨著IC技術(shù)的發(fā)展,電子設(shè)計自動化(Electronic Design Automation,EDA)己經(jīng)逐漸成為重要的設(shè)計手段,被廣泛應用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。在電子技術(shù)設(shè)計領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應用,為數(shù)字系統(tǒng)的設(shè)計帶來了極大的靈活性[1]。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計的效率和可操作性,F(xiàn)PGA能提供良好的濾波器設(shè)計,而且能完成DSP高級數(shù)據(jù)處理功能,因而FPGA在現(xiàn)代通信領(lǐng)域方面獲得廣泛應用。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點[2]。數(shù)字頻率計是數(shù)字電路中的一個典型應用,隨著復雜可編程邏輯器件(CPLD)的廣泛應用,以EDA工具作為開發(fā)手段,運用VHDL語言將使整個系統(tǒng)大大簡化,提高整體的性能和可靠性。采用VHDL編程設(shè)計實現(xiàn)的數(shù)字頻率計,除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分外,其余全部在一片F(xiàn)PGA芯片上實現(xiàn)。整個系統(tǒng)非常精簡,且具有靈活的現(xiàn)場可更改性[3]。
本研究利用VHDL在FPGA器件上實現(xiàn)一種8位數(shù)字頻率計測頻系統(tǒng),能夠用十進制數(shù)碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且能對其他多種頻率信號進行測量。具有體積小、可靠性高、功耗低的特點。
數(shù)字頻率計的設(shè)計原理實際上是測量單位時間內(nèi)的周期數(shù)。該方法免去了實測以前的預測,同時節(jié)省了劃分頻段的時間,克服了原來高頻段采用測頻模式、低頻段采用測周期模式的測量方法中存在換擋速度慢的缺點[4]。采用一個標準的基準時鐘,在單位時間(1s)里對被測信號的脈沖數(shù)進行計數(shù),即為信號的頻率。直接測頻法只適合測量頻率較高的信號,不能滿足在整個測量頻段內(nèi)的測量精度保持不變的要求[5]。為解決低頻段測量的不準確問題,采用門控信號和被測信號對計數(shù)器的使能信號進行雙重控制,大大提高了準確度。
等精度測頻方法是在直接測頻方法的基礎(chǔ)上發(fā)展起來的。它的閘門時間不是固定的值,而是被測信號周期的整數(shù)倍,即與被測信號同步,因此,避除了對被測信號計數(shù)所產(chǎn)生±1個字誤差,并且達到了在整個測試頻段的等精度測量[6]。其測頻原理如圖1所示。在測量過程中,有兩個計數(shù)器分別對標準信號和被測信號同時計數(shù)。
圖1 等精度測頻原理波形圖
等精度測頻的實現(xiàn)方法可簡化為圖2所示。CNT1和CNT2是兩個可控計數(shù)器,標準頻率信號從CNT1的時鐘輸入端CLK輸入;經(jīng)整形后的被測信號從CNT2的時鐘輸入端CLK輸入。在預置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變。
圖2 等精度測頻實現(xiàn)原理圖
在誤差分析方面,測量頻率的相對誤差與被測信號頻率的大小無關(guān),僅與閘門時間和標準信號頻率有關(guān),即實現(xiàn)了整個測試頻段的等精度測量[7]。閘門時間越長,標準頻率越高,測頻的相對誤差就越小。標準頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產(chǎn)生,在保證測量精度不變的前提下,提高標準信號頻率,可使閘門時間縮短,即提高測試速度[8]。
數(shù)字頻率計的系統(tǒng)框圖如圖3所示。主要由5個模塊組成,分別是信號源模塊、控制模塊、計數(shù)模塊、鎖存器模塊和顯示器模塊。
圖3 數(shù)字頻率計的系統(tǒng)框圖
根據(jù)數(shù)字頻率計的系統(tǒng)原理,cnt控制信號發(fā)生器,reg32b為鎖存器,Cnt10為十進制計數(shù)器,display為七段譯碼顯示驅(qū)動電路,可以將頻率計數(shù)的結(jié)果譯成能在數(shù)碼管上顯示的相對應的阿拉伯數(shù)字,便于讀取測量的結(jié)果。為了實現(xiàn)系統(tǒng)功能,測頻控制信號發(fā)生器testctl、計數(shù)器Cnt10、鎖存器reg32b存在一個工作時序的問題,設(shè)計時需要綜合考慮[9]。8位數(shù)字頻率計的頂層框圖設(shè)計包括信號源模塊(F1MHz、CNT)、頻率計模塊(FREQ)和顯示模塊(display)三大模塊。
信號源是為了產(chǎn)生1MHz的門控信號和待測的定頻信號,而對輸入系統(tǒng)時鐘clk(50MHz)進行分頻的模塊,設(shè)計源代碼PIN1MHz.VHD對輸入系統(tǒng)時鐘clk(50MHz)進行分頻產(chǎn)生1MHz信號。PIN1MHz封裝如圖4所示,圖中CLKIN為接入的100MHz信號,圖中CLKOUT為接到CNT的CLK的1MHz的信號。
圖4 PIN1MHz封裝圖
PIN1MHz的工作時序仿真圖如圖5所示:
圖5 信號源模塊仿真圖
從PIN1MHz的工作時序仿真圖可以看出,由系統(tǒng)時鐘提供的100MHz的輸入信號,經(jīng)過信號源模塊,通過100分頻產(chǎn)生1MHz的時鐘信號,達到了設(shè)計所需的預期效果[10]。
CNT的封裝如圖6所示,圖中CLK為PIN1MHz輸入的1MHz信號,freq1為輸出給控制信號發(fā)生器的1Hz信號,7812Hz的輸出頻率freq7812被作為顯示模塊的時鐘輸入,freq488、freq1953、freq31250、freq125K、freq500K作為待測信號。CNT的工作時序仿真圖如圖7所示。
圖6 CNT封裝圖
圖7 CNT的時序仿真圖
當1MHz頻率波形輸入后,分別產(chǎn)生了設(shè)計所需要的500kHz的輸出頻freq500k,125kHz的輸出頻率freq125k,31250Hz的輸出頻freq31250,7812Hz的輸出頻率freq7812,1953Hz的輸出頻率freq1953,488Hz的輸出頻率freq488,1Hz的輸出頻率freq1。
控制模塊的作用是產(chǎn)生測頻所需要的各種控制信號[11]??刂菩盘柕臉藴瘦斎霑r鐘為1Hz,每兩個時鐘周期進行一次頻率測量。該模塊產(chǎn)生的3個控制信號,分別為 TSTEN、LOAD、CLR_CNT。測頻控制產(chǎn)生器如圖8所示,圖中CLK接CNT的FREQ1的1Hz的信號,TSTEN為計數(shù)允許信號,接計數(shù)器CNT10的ENA,CLR_CNT信號用于在每次測量開始時,對計數(shù)器進行復位,接計數(shù)器CNT10的CLR,LOAD接鎖存器的LOAD。
圖8 TESTCTL的封裝圖
測頻控制信號發(fā)生器TESTCTL的工作時序圖,控制模塊的幾個控制信號的時序關(guān)系圖如圖9所示。
圖9 TESTCTL的時序仿真圖
從圖中可看出,計數(shù)使能信號TSTEN在1s的高電平后,利用其反相值的上跳沿產(chǎn)生一個鎖存信號LOAD,隨后產(chǎn)生清0信號上跳沿CLR_CNT。為了產(chǎn)生這個時序圖需首先建立一個由D觸發(fā)器構(gòu)成的二分頻器,在每次時鐘CLK上升沿到來時令其翻轉(zhuǎn)[12]。其中,控制信號時鐘clk的頻率取1Hz,而信號TSTEN的脈寬恰好為1s,可以用作閘門信號。此時,根據(jù)測頻的時序要求,可得出信號LOAD和CLR_CNT的邏輯描述。由圖知,在計數(shù)完成后,計數(shù)使能信號TETEN在1s的高電平后,利用其反相值的上跳沿產(chǎn)生一個鎖存信號LOAD,0.5s后,CLR_CNT 產(chǎn)生一個請零信號上跳沿[13]。
鎖存器模塊在測量模塊測量完成后,在load信號的上升沿時刻將測量值鎖存到寄存器中,然后輸出到顯示模塊[14]。鎖存器REG32B的封裝如圖10所示,圖中LOAD接控制測頻產(chǎn)生器TESTCT的 LOAD,而 DIN[31..0]接計數(shù)器 CNT10 的 CQ[3..0],DOUT[31..0]接顯示器 display的 in 端。32 位鎖存器REG32B的工作時序圖如圖11所示。
圖10 REG32B的封裝圖
圖11 REG32B的時序仿真圖
本程序是用來實現(xiàn)鎖存器模塊的功能,但它的程序相當簡單,在鎖存信號load的上升沿到來時,鎖存器將測量值鎖存到寄存器,然后輸出到顯示模塊[15]。但從仿真圖11中可以明顯地看出,鎖存輸出并不是立即進行的,而是經(jīng)歷了一個短暫的延時,這是由于硬件引起的。
計數(shù)器模塊是由8個帶有異步清零端,進位信號輸出的模為10的計數(shù)模塊級連而成。通過(freq.vhd)進行元件例化實現(xiàn)。此十進制計數(shù)器的特點是,有一時鐘使能輸入端ENA,用于鎖定計數(shù)器。當高電平計數(shù)允許,低電平時計數(shù)禁止。計數(shù)器模塊用于對輸入信號的脈沖進行計數(shù),該模塊必須有計數(shù)允許、異步清零等端口,以便于控制模塊對其進行控制[16]。
CNT10的封裝如圖12所示,其中CLR為復位接TESTCTL的 CLR_CNT端,ENA 接 TESTCTL的TSTEN 端,CQ[3..0]接鎖存器的 DOUT[31..0]端。
圖12 CNT10的封裝圖
有時鐘使能的十進制計數(shù)器CNT10的工作時序仿真如圖13所示。
圖13 CNT10的時序仿真圖
此程序模塊實現(xiàn)的功能是帶使能端的10進制計數(shù)。程序要求只有當使能端信號為高電平時計數(shù)器才能正常工作,每個時鐘的上升沿到來時計數(shù)器加1,因為這里要實現(xiàn)的是10進制計數(shù),所以當計數(shù)到10時計數(shù)器清零,同時產(chǎn)生進位信號,這里的進位信號僅為一個脈沖信號,一旦計數(shù)從10變?yōu)?,脈沖信號立即變?yōu)榈碗娖?。同時該計數(shù)器也應帶有清零信號,一旦清零信號為高電平,計數(shù)器立即清零[17]。
3.7.1 顯示模塊設(shè)計
本研究中設(shè)計了一個3位的循環(huán)計數(shù)器,將計數(shù)結(jié)果輸入到譯碼器,譯碼結(jié)果輸出即可依次使能每個LED。display模塊的頂層如圖14所示。CNT計數(shù)產(chǎn)生掃描信號(位碼),LED模塊用于查表產(chǎn)生LED段碼輸出。圖中in0~in7接鎖存器的DOUT[31..0]端。
圖14 display的封裝圖
display工作時序圖如圖15所示。
圖15 display工作時序圖
用8個LED將待測頻率顯示出來,將通過十進制計數(shù)器的時鐘信號CLK,輸出為時鐘信號計數(shù)譯碼后的顯示驅(qū)動端,在八段LED譯碼為對應的八段二進制編碼,并由數(shù)碼顯示器顯示出來。圖15所示為相應二進制編碼與相對應的屏顯數(shù)字[18]。
3.7.2 顯示電路
圖16 display硬件結(jié)構(gòu)圖
此部分如圖16所示,圖中主要由0-7循環(huán)累加器、3-8譯碼器、BCD-7段顯示譯碼器、8選1多路數(shù)據(jù)開關(guān)和8個LED顯示器組成的掃描數(shù)碼顯示器[19]。3.7.3 譯碼器
74138譯碼器作為數(shù)據(jù)分配器的功能表如表1所示。
表1 74LS138編碼器作為數(shù)據(jù)分配器的功能表
74LS138的3個譯碼輸入C、B、A用做數(shù)據(jù)分配器的地址輸入,8個輸出Y0-Y7用做8路數(shù)據(jù)輸出,3個輸入控制端中的EN2A用做數(shù)據(jù)輸入端,EN2B 接地,EN1用做使能端[6]。當 EN1=1,允許數(shù)據(jù)分配,若需要將輸入數(shù)據(jù)轉(zhuǎn)送至輸出端Y2,地址輸入應為CBA=010,由功能表可得:
而其余輸出端均為高電平。因此,當?shù)刂稢BA=010時,只有輸出端Y2得到與輸入相同的數(shù)據(jù)波形。本研究通過運用QUARTUSⅡ集成開發(fā)環(huán)境對各功能模塊進行編輯、綜合、波形仿真,對各功能模塊的的仿真圖及其仿真功能做了設(shè)計分析,對本設(shè)計的實現(xiàn)起到了主要作用[20]。
本研究對等精度頻率計進行了系統(tǒng)的設(shè)計。介紹了頻率測量的一般方法,著重介紹等精度測頻原理并進行了誤差分析,利用等精度測量原理,通過FPGA運用VHDL編程,利用FPGA(現(xiàn)場可編程門陣列)芯片設(shè)計了一個8位數(shù)字式等精度頻率計,該頻率計的測量范圍為0MHz-100MHz,利用QUARTUSⅡ集成開發(fā)環(huán)境進行編輯、綜合、波形仿真,并下載到FPGA器件中,經(jīng)實際電路測試、仿真和實驗結(jié)果表明,該頻率計有較高的實用性和可靠性,達到預期的結(jié)果。和傳統(tǒng)的頻率計相比,利用FPGA設(shè)計的頻率計簡化了電路板設(shè)計,提高了系統(tǒng)設(shè)計的實用性和可靠性,實現(xiàn)數(shù)字系統(tǒng)的軟件化,這也是數(shù)字邏輯設(shè)計的趨勢。
[1]潘 松.EDA實用技術(shù)教程[M].北京:科學出版社,2003.
[2]潘 松.EDA技術(shù)與VHDL[M].北京:清華大學出版社,2013.
[3]黃 任.AVR單片機與CPLD/FPGA綜合應用入門[M].北京:北京航空航天大學出版社,2004.
[4]許發(fā)翔等.基于FPGA的數(shù)字頻率計的設(shè)計[J].電子制作,2014(23).
[5]熊瀟等.高精度頻率計的設(shè)計與研究[D].武漢科技大學,2014.
[6]唐海斌等.基于FPGA的一種測頻方法的研究[J].電子世界,2014(17).
[7]宋萬杰等.CPLD技術(shù)及應用[M].西安:西安電子科技大學出版社,1999.
[8]劉寶琴等.ALTERA可編程器件及應用[M].北京:清華大學出版社,1995.
[9]億特科技.CPLD/FPGA應用系統(tǒng)設(shè)計與產(chǎn)品開發(fā)[M].北京:人民郵電出版社,2005.
[10]杜娟等.基于FPGA的等精度數(shù)字頻率計設(shè)計[J].南陽理工學院學報,2015(04).
[11]求是科技.CPLD/FPGA應用開發(fā)技術(shù)與工程實踐[M].北京:人民郵電出版社,2005.
[12]Electronic design automation(EDA)solutions for ESD-robust design and verification.Dzerzhinsky,MG.Custom Integrated Circuits Conference,2012
[13]任曉東.CPLD/FPGA 高級應用開發(fā)指南[M].北京:電子工業(yè)出版社,2003.
[14]程云長.可編程邏輯器件與VHDL語言[M].北京.科學出版社,2005.
[15]廖裕評等.CPLD數(shù)字電路設(shè)計—使用MAX+PLUSⅡ[M].北京:清華大學出版社,2001.
[16]盧毅等.VHDL與數(shù)字電路設(shè)計[M].北京:科學出版社,2001.
[17]XIE Meng,SHEN Zhong -Ru.The project of frequence based on CPLD.Microc-omputer Information[J],2011,27(4):58-59.
[18]張玉梅等.QuartusⅡ仿真軟件在數(shù)字電子技術(shù)教學中的應用[J].沈陽師范大學學報(自然科學版),2014(01).
[19]MIAO Rong-xia,DAI Bao-h(huán)ua,WANG Ying-li,WANG Kun.The System of Har -dware Measuring Frequency Based on CPLD.Machinery & Electronics[J],2008(8):55-56.
[20]凌振寶等.多功能數(shù)字頻率計的設(shè)計與研究[J].吉林大學學報(信息科學版),2011(04).
System design and simulation of digital frequency meter
MIAO Jun1,2,XIE Xiao-bin1,2,XIE Xiao-ling1,2,AN Ya-li1,2
(1.Gansu Electric Apparatus Research Institute,Tianshui 741020,China;2.Key Laboratory of High-low Voltage Electrical Apparatus Inspection Technology,Tianshui 741018,China)
The digital frequency meter is a basic measuring instrument.It is widely used in aerospace,electronics,monitoring and other fields.The equal precision frequency measurement can keep constant accuracy which will not change with the variable measured signals.A 8-bit digital frequency meter is designed with the sequal precision measuring principle and using VHDL programming and FPGA (Field Programmable Gate Array) chip.This frequency meter measuring range is 0MHz-100MHz,and which can use QUARTUS Ⅱintegrated development environment for editing,synthesising,simulating and downloading.The actual testing and experimental results show that the frequency meter has high reliability and has good practical value.
VHDL;frequency measurement;digital frequency meter
TM131
A
苗 軍(1968-),男,工程師,本科,研究方向為電氣設(shè)計及電器檢測技術(shù)?,F(xiàn)就職于甘肅電器科學研究院
2017-05-01
1005—7277(2017)02—0035—06