苗 軍,謝曉斌,謝曉玲,安雅麗
(1.甘肅電器科學(xué)研究院,甘肅天水741018;2.甘肅省高低壓電氣研發(fā)檢測技術(shù)重點(diǎn)實(shí)驗(yàn)室,甘肅天水741018)
數(shù)字頻率計(jì)的系統(tǒng)設(shè)計(jì)與仿真研究
苗 軍1,2,謝曉斌1,2,謝曉玲1,2,安雅麗1,2
(1.甘肅電器科學(xué)研究院,甘肅天水741018;2.甘肅省高低壓電氣研發(fā)檢測技術(shù)重點(diǎn)實(shí)驗(yàn)室,甘肅天水741018)
數(shù)字頻率計(jì)是一種基本的測量儀器,被廣泛應(yīng)用于航天、電子、測控等領(lǐng)域。采用等精度頻率測量方法具有測量精度保持恒定,不隨所測信號的變化而變化的特點(diǎn)。利用等精度測量原理,通過FPGA運(yùn)用VHDL編程,利用FPGA(現(xiàn)場可編程門陣列)芯片設(shè)計(jì)了一個(gè)8位數(shù)字式等精度頻率計(jì),該頻率計(jì)的測量范圍為0MHz-100MHz,利用QUARTUSⅡ集成開發(fā)環(huán)境進(jìn)行編輯、綜合、波形仿真,并下載到CPLD器件中,經(jīng)實(shí)際電路測試,仿真和實(shí)驗(yàn)結(jié)果表明,該頻率計(jì)有較高的實(shí)用性和可靠性。
VHDL語言;頻率測量;數(shù)字頻率計(jì)
隨著IC技術(shù)的發(fā)展,電子設(shè)計(jì)自動化(Electronic Design Automation,EDA)己經(jīng)逐漸成為重要的設(shè)計(jì)手段,被廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如CPLD、FPGA)的應(yīng)用,為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性[1]。EDA技術(shù)的出現(xiàn),極大地提高了電路設(shè)計(jì)的效率和可操作性,F(xiàn)PGA能提供良好的濾波器設(shè)計(jì),而且能完成DSP高級數(shù)據(jù)處理功能,因而FPGA在現(xiàn)代通信領(lǐng)域方面獲得廣泛應(yīng)用。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)[2]。數(shù)字頻率計(jì)是數(shù)字電路中的一個(gè)典型應(yīng)用,隨著復(fù)雜可編程邏輯器件(CPLD)的廣泛應(yīng)用,以EDA工具作為開發(fā)手段,運(yùn)用VHDL語言將使整個(gè)系統(tǒng)大大簡化,提高整體的性能和可靠性。采用VHDL編程設(shè)計(jì)實(shí)現(xiàn)的數(shù)字頻率計(jì),除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分外,其余全部在一片F(xiàn)PGA芯片上實(shí)現(xiàn)。整個(gè)系統(tǒng)非常精簡,且具有靈活的現(xiàn)場可更改性[3]。
本研究利用VHDL在FPGA器件上實(shí)現(xiàn)一種8位數(shù)字頻率計(jì)測頻系統(tǒng),能夠用十進(jìn)制數(shù)碼顯示被測信號的頻率,不僅能夠測量正弦波、方波和三角波等信號的頻率,而且能對其他多種頻率信號進(jìn)行測量。具有體積小、可靠性高、功耗低的特點(diǎn)。
數(shù)字頻率計(jì)的設(shè)計(jì)原理實(shí)際上是測量單位時(shí)間內(nèi)的周期數(shù)。該方法免去了實(shí)測以前的預(yù)測,同時(shí)節(jié)省了劃分頻段的時(shí)間,克服了原來高頻段采用測頻模式、低頻段采用測周期模式的測量方法中存在換擋速度慢的缺點(diǎn)[4]。采用一個(gè)標(biāo)準(zhǔn)的基準(zhǔn)時(shí)鐘,在單位時(shí)間(1s)里對被測信號的脈沖數(shù)進(jìn)行計(jì)數(shù),即為信號的頻率。直接測頻法只適合測量頻率較高的信號,不能滿足在整個(gè)測量頻段內(nèi)的測量精度保持不變的要求[5]。為解決低頻段測量的不準(zhǔn)確問題,采用門控信號和被測信號對計(jì)數(shù)器的使能信號進(jìn)行雙重控制,大大提高了準(zhǔn)確度。
等精度測頻方法是在直接測頻方法的基礎(chǔ)上發(fā)展起來的。它的閘門時(shí)間不是固定的值,而是被測信號周期的整數(shù)倍,即與被測信號同步,因此,避除了對被測信號計(jì)數(shù)所產(chǎn)生±1個(gè)字誤差,并且達(dá)到了在整個(gè)測試頻段的等精度測量[6]。其測頻原理如圖1所示。在測量過程中,有兩個(gè)計(jì)數(shù)器分別對標(biāo)準(zhǔn)信號和被測信號同時(shí)計(jì)數(shù)。
圖1 等精度測頻原理波形圖
等精度測頻的實(shí)現(xiàn)方法可簡化為圖2所示。CNT1和CNT2是兩個(gè)可控計(jì)數(shù)器,標(biāo)準(zhǔn)頻率信號從CNT1的時(shí)鐘輸入端CLK輸入;經(jīng)整形后的被測信號從CNT2的時(shí)鐘輸入端CLK輸入。在預(yù)置門時(shí)間和常規(guī)測頻閘門時(shí)間相同而被測信號頻率不同的情況下,等精度測量法的測量精度不變。
圖2 等精度測頻實(shí)現(xiàn)原理圖
在誤差分析方面,測量頻率的相對誤差與被測信號頻率的大小無關(guān),僅與閘門時(shí)間和標(biāo)準(zhǔn)信號頻率有關(guān),即實(shí)現(xiàn)了整個(gè)測試頻段的等精度測量[7]。閘門時(shí)間越長,標(biāo)準(zhǔn)頻率越高,測頻的相對誤差就越小。標(biāo)準(zhǔn)頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產(chǎn)生,在保證測量精度不變的前提下,提高標(biāo)準(zhǔn)信號頻率,可使閘門時(shí)間縮短,即提高測試速度[8]。
數(shù)字頻率計(jì)的系統(tǒng)框圖如圖3所示。主要由5個(gè)模塊組成,分別是信號源模塊、控制模塊、計(jì)數(shù)模塊、鎖存器模塊和顯示器模塊。
圖3 數(shù)字頻率計(jì)的系統(tǒng)框圖
根據(jù)數(shù)字頻率計(jì)的系統(tǒng)原理,cnt控制信號發(fā)生器,reg32b為鎖存器,Cnt10為十進(jìn)制計(jì)數(shù)器,display為七段譯碼顯示驅(qū)動電路,可以將頻率計(jì)數(shù)的結(jié)果譯成能在數(shù)碼管上顯示的相對應(yīng)的阿拉伯?dāng)?shù)字,便于讀取測量的結(jié)果。為了實(shí)現(xiàn)系統(tǒng)功能,測頻控制信號發(fā)生器testctl、計(jì)數(shù)器Cnt10、鎖存器reg32b存在一個(gè)工作時(shí)序的問題,設(shè)計(jì)時(shí)需要綜合考慮[9]。8位數(shù)字頻率計(jì)的頂層框圖設(shè)計(jì)包括信號源模塊(F1MHz、CNT)、頻率計(jì)模塊(FREQ)和顯示模塊(display)三大模塊。
信號源是為了產(chǎn)生1MHz的門控信號和待測的定頻信號,而對輸入系統(tǒng)時(shí)鐘clk(50MHz)進(jìn)行分頻的模塊,設(shè)計(jì)源代碼PIN1MHz.VHD對輸入系統(tǒng)時(shí)鐘clk(50MHz)進(jìn)行分頻產(chǎn)生1MHz信號。PIN1MHz封裝如圖4所示,圖中CLKIN為接入的100MHz信號,圖中CLKOUT為接到CNT的CLK的1MHz的信號。
圖4 PIN1MHz封裝圖
PIN1MHz的工作時(shí)序仿真圖如圖5所示:
圖5 信號源模塊仿真圖
從PIN1MHz的工作時(shí)序仿真圖可以看出,由系統(tǒng)時(shí)鐘提供的100MHz的輸入信號,經(jīng)過信號源模塊,通過100分頻產(chǎn)生1MHz的時(shí)鐘信號,達(dá)到了設(shè)計(jì)所需的預(yù)期效果[10]。
CNT的封裝如圖6所示,圖中CLK為PIN1MHz輸入的1MHz信號,freq1為輸出給控制信號發(fā)生器的1Hz信號,7812Hz的輸出頻率freq7812被作為顯示模塊的時(shí)鐘輸入,freq488、freq1953、freq31250、freq125K、freq500K作為待測信號。CNT的工作時(shí)序仿真圖如圖7所示。
圖6 CNT封裝圖
圖7 CNT的時(shí)序仿真圖
當(dāng)1MHz頻率波形輸入后,分別產(chǎn)生了設(shè)計(jì)所需要的500kHz的輸出頻freq500k,125kHz的輸出頻率freq125k,31250Hz的輸出頻freq31250,7812Hz的輸出頻率freq7812,1953Hz的輸出頻率freq1953,488Hz的輸出頻率freq488,1Hz的輸出頻率freq1。
控制模塊的作用是產(chǎn)生測頻所需要的各種控制信號[11]??刂菩盘柕臉?biāo)準(zhǔn)輸入時(shí)鐘為1Hz,每兩個(gè)時(shí)鐘周期進(jìn)行一次頻率測量。該模塊產(chǎn)生的3個(gè)控制信號,分別為 TSTEN、LOAD、CLR_CNT。測頻控制產(chǎn)生器如圖8所示,圖中CLK接CNT的FREQ1的1Hz的信號,TSTEN為計(jì)數(shù)允許信號,接計(jì)數(shù)器CNT10的ENA,CLR_CNT信號用于在每次測量開始時(shí),對計(jì)數(shù)器進(jìn)行復(fù)位,接計(jì)數(shù)器CNT10的CLR,LOAD接鎖存器的LOAD。
圖8 TESTCTL的封裝圖
測頻控制信號發(fā)生器TESTCTL的工作時(shí)序圖,控制模塊的幾個(gè)控制信號的時(shí)序關(guān)系圖如圖9所示。
圖9 TESTCTL的時(shí)序仿真圖
從圖中可看出,計(jì)數(shù)使能信號TSTEN在1s的高電平后,利用其反相值的上跳沿產(chǎn)生一個(gè)鎖存信號LOAD,隨后產(chǎn)生清0信號上跳沿CLR_CNT。為了產(chǎn)生這個(gè)時(shí)序圖需首先建立一個(gè)由D觸發(fā)器構(gòu)成的二分頻器,在每次時(shí)鐘CLK上升沿到來時(shí)令其翻轉(zhuǎn)[12]。其中,控制信號時(shí)鐘clk的頻率取1Hz,而信號TSTEN的脈寬恰好為1s,可以用作閘門信號。此時(shí),根據(jù)測頻的時(shí)序要求,可得出信號LOAD和CLR_CNT的邏輯描述。由圖知,在計(jì)數(shù)完成后,計(jì)數(shù)使能信號TETEN在1s的高電平后,利用其反相值的上跳沿產(chǎn)生一個(gè)鎖存信號LOAD,0.5s后,CLR_CNT 產(chǎn)生一個(gè)請零信號上跳沿[13]。
鎖存器模塊在測量模塊測量完成后,在load信號的上升沿時(shí)刻將測量值鎖存到寄存器中,然后輸出到顯示模塊[14]。鎖存器REG32B的封裝如圖10所示,圖中LOAD接控制測頻產(chǎn)生器TESTCT的 LOAD,而 DIN[31..0]接計(jì)數(shù)器 CNT10 的 CQ[3..0],DOUT[31..0]接顯示器 display的 in 端。32 位鎖存器REG32B的工作時(shí)序圖如圖11所示。
圖10 REG32B的封裝圖
圖11 REG32B的時(shí)序仿真圖
本程序是用來實(shí)現(xiàn)鎖存器模塊的功能,但它的程序相當(dāng)簡單,在鎖存信號load的上升沿到來時(shí),鎖存器將測量值鎖存到寄存器,然后輸出到顯示模塊[15]。但從仿真圖11中可以明顯地看出,鎖存輸出并不是立即進(jìn)行的,而是經(jīng)歷了一個(gè)短暫的延時(shí),這是由于硬件引起的。
計(jì)數(shù)器模塊是由8個(gè)帶有異步清零端,進(jìn)位信號輸出的模為10的計(jì)數(shù)模塊級連而成。通過(freq.vhd)進(jìn)行元件例化實(shí)現(xiàn)。此十進(jìn)制計(jì)數(shù)器的特點(diǎn)是,有一時(shí)鐘使能輸入端ENA,用于鎖定計(jì)數(shù)器。當(dāng)高電平計(jì)數(shù)允許,低電平時(shí)計(jì)數(shù)禁止。計(jì)數(shù)器模塊用于對輸入信號的脈沖進(jìn)行計(jì)數(shù),該模塊必須有計(jì)數(shù)允許、異步清零等端口,以便于控制模塊對其進(jìn)行控制[16]。
CNT10的封裝如圖12所示,其中CLR為復(fù)位接TESTCTL的 CLR_CNT端,ENA 接 TESTCTL的TSTEN 端,CQ[3..0]接鎖存器的 DOUT[31..0]端。
圖12 CNT10的封裝圖
有時(shí)鐘使能的十進(jìn)制計(jì)數(shù)器CNT10的工作時(shí)序仿真如圖13所示。
圖13 CNT10的時(shí)序仿真圖
此程序模塊實(shí)現(xiàn)的功能是帶使能端的10進(jìn)制計(jì)數(shù)。程序要求只有當(dāng)使能端信號為高電平時(shí)計(jì)數(shù)器才能正常工作,每個(gè)時(shí)鐘的上升沿到來時(shí)計(jì)數(shù)器加1,因?yàn)檫@里要實(shí)現(xiàn)的是10進(jìn)制計(jì)數(shù),所以當(dāng)計(jì)數(shù)到10時(shí)計(jì)數(shù)器清零,同時(shí)產(chǎn)生進(jìn)位信號,這里的進(jìn)位信號僅為一個(gè)脈沖信號,一旦計(jì)數(shù)從10變?yōu)?,脈沖信號立即變?yōu)榈碗娖?。同時(shí)該計(jì)數(shù)器也應(yīng)帶有清零信號,一旦清零信號為高電平,計(jì)數(shù)器立即清零[17]。
3.7.1 顯示模塊設(shè)計(jì)
本研究中設(shè)計(jì)了一個(gè)3位的循環(huán)計(jì)數(shù)器,將計(jì)數(shù)結(jié)果輸入到譯碼器,譯碼結(jié)果輸出即可依次使能每個(gè)LED。display模塊的頂層如圖14所示。CNT計(jì)數(shù)產(chǎn)生掃描信號(位碼),LED模塊用于查表產(chǎn)生LED段碼輸出。圖中in0~in7接鎖存器的DOUT[31..0]端。
圖14 display的封裝圖
display工作時(shí)序圖如圖15所示。
圖15 display工作時(shí)序圖
用8個(gè)LED將待測頻率顯示出來,將通過十進(jìn)制計(jì)數(shù)器的時(shí)鐘信號CLK,輸出為時(shí)鐘信號計(jì)數(shù)譯碼后的顯示驅(qū)動端,在八段LED譯碼為對應(yīng)的八段二進(jìn)制編碼,并由數(shù)碼顯示器顯示出來。圖15所示為相應(yīng)二進(jìn)制編碼與相對應(yīng)的屏顯數(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個(gè)LED顯示器組成的掃描數(shù)碼顯示器[19]。3.7.3 譯碼器
74138譯碼器作為數(shù)據(jù)分配器的功能表如表1所示。
表1 74LS138編碼器作為數(shù)據(jù)分配器的功能表
74LS138的3個(gè)譯碼輸入C、B、A用做數(shù)據(jù)分配器的地址輸入,8個(gè)輸出Y0-Y7用做8路數(shù)據(jù)輸出,3個(gè)輸入控制端中的EN2A用做數(shù)據(jù)輸入端,EN2B 接地,EN1用做使能端[6]。當(dāng) EN1=1,允許數(shù)據(jù)分配,若需要將輸入數(shù)據(jù)轉(zhuǎn)送至輸出端Y2,地址輸入應(yīng)為CBA=010,由功能表可得:
而其余輸出端均為高電平。因此,當(dāng)?shù)刂稢BA=010時(shí),只有輸出端Y2得到與輸入相同的數(shù)據(jù)波形。本研究通過運(yùn)用QUARTUSⅡ集成開發(fā)環(huán)境對各功能模塊進(jìn)行編輯、綜合、波形仿真,對各功能模塊的的仿真圖及其仿真功能做了設(shè)計(jì)分析,對本設(shè)計(jì)的實(shí)現(xiàn)起到了主要作用[20]。
本研究對等精度頻率計(jì)進(jìn)行了系統(tǒng)的設(shè)計(jì)。介紹了頻率測量的一般方法,著重介紹等精度測頻原理并進(jìn)行了誤差分析,利用等精度測量原理,通過FPGA運(yùn)用VHDL編程,利用FPGA(現(xiàn)場可編程門陣列)芯片設(shè)計(jì)了一個(gè)8位數(shù)字式等精度頻率計(jì),該頻率計(jì)的測量范圍為0MHz-100MHz,利用QUARTUSⅡ集成開發(fā)環(huán)境進(jìn)行編輯、綜合、波形仿真,并下載到FPGA器件中,經(jīng)實(shí)際電路測試、仿真和實(shí)驗(yàn)結(jié)果表明,該頻率計(jì)有較高的實(shí)用性和可靠性,達(dá)到預(yù)期的結(jié)果。和傳統(tǒng)的頻率計(jì)相比,利用FPGA設(shè)計(jì)的頻率計(jì)簡化了電路板設(shè)計(jì),提高了系統(tǒng)設(shè)計(jì)的實(shí)用性和可靠性,實(shí)現(xiàn)數(shù)字系統(tǒng)的軟件化,這也是數(shù)字邏輯設(shè)計(jì)的趨勢。
[1]潘 松.EDA實(shí)用技術(shù)教程[M].北京:科學(xué)出版社,2003.
[2]潘 松.EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2013.
[3]黃 任.AVR單片機(jī)與CPLD/FPGA綜合應(yīng)用入門[M].北京:北京航空航天大學(xué)出版社,2004.
[4]許發(fā)翔等.基于FPGA的數(shù)字頻率計(jì)的設(shè)計(jì)[J].電子制作,2014(23).
[5]熊瀟等.高精度頻率計(jì)的設(shè)計(jì)與研究[D].武漢科技大學(xué),2014.
[6]唐海斌等.基于FPGA的一種測頻方法的研究[J].電子世界,2014(17).
[7]宋萬杰等.CPLD技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1999.
[8]劉寶琴等.ALTERA可編程器件及應(yīng)用[M].北京:清華大學(xué)出版社,1995.
[9]億特科技.CPLD/FPGA應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)[M].北京:人民郵電出版社,2005.
[10]杜娟等.基于FPGA的等精度數(shù)字頻率計(jì)設(shè)計(jì)[J].南陽理工學(xué)院學(xué)報(bào),2015(04).
[11]求是科技.CPLD/FPGA應(yīng)用開發(fā)技術(shù)與工程實(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 高級應(yīng)用開發(fā)指南[M].北京:電子工業(yè)出版社,2003.
[14]程云長.可編程邏輯器件與VHDL語言[M].北京.科學(xué)出版社,2005.
[15]廖裕評等.CPLD數(shù)字電路設(shè)計(jì)—使用MAX+PLUSⅡ[M].北京:清華大學(xué)出版社,2001.
[16]盧毅等.VHDL與數(shù)字電路設(shè)計(jì)[M].北京:科學(xué)出版社,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ù)教學(xué)中的應(yīng)用[J].沈陽師范大學(xué)學(xué)報(bào)(自然科學(xué)版),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ù)字頻率計(jì)的設(shè)計(jì)與研究[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),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-),男,工程師,本科,研究方向?yàn)殡姎庠O(shè)計(jì)及電器檢測技術(shù)?,F(xiàn)就職于甘肅電器科學(xué)研究院
2017-05-01
1005—7277(2017)02—0035—06