基于FPGA自適應(yīng)數(shù)字頻率計(jì)的設(shè)計(jì)
在電子工程,資源勘探,儀器儀表等相關(guān)應(yīng)用中,頻率計(jì)是工程技術(shù)人員必不可少的測(cè)量工具。頻率測(cè)量也是電子測(cè)量技術(shù)中最基本最常見(jiàn)的測(cè)量之一。不少物理量的測(cè)量,如轉(zhuǎn)速、振動(dòng)頻率等的測(cè)量都涉及到或可以轉(zhuǎn)化為頻率的測(cè)量。目前,市場(chǎng)上有各種多功能、高精度、高頻率的數(shù)字頻率計(jì),但價(jià)格不菲。為適應(yīng)實(shí)際工作的需要,本文在簡(jiǎn)述頻率測(cè)量的基本原理和方法的基礎(chǔ)上,提供一種基于FPGA的數(shù)字頻率計(jì)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程,本方案不但切實(shí)可行,而且具有成本低廉、小巧輕便、便于攜帶等特點(diǎn)。
本文引用地址:http://www.ex-cimer.com/article/201708/362967.htm1 數(shù)字頻率測(cè)量原理和方法及本系統(tǒng)硬件框架
數(shù)字頻率計(jì)是直接用十進(jìn)制數(shù)字來(lái)顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置。它不僅可以測(cè)量正弦波、方波、三角波和尖脈沖信號(hào)的頻率。而且還可以測(cè)量它們的周期。數(shù)字頻率計(jì)在測(cè)量其他物理量如轉(zhuǎn)速、振動(dòng)頻率等方面也獲得廣泛應(yīng)用。
1.1 數(shù)字頻率的測(cè)頻原理和方法
眾所周知,所謂“頻率”就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得這個(gè)周期性信號(hào)的重復(fù)變化次數(shù)N,則其頻率可衰示為f=N/T 。
數(shù)字頻率計(jì)測(cè)頻率的原理框圖可示如圖1(a)。其中脈沖形成電路的作用是:將被測(cè)信號(hào)變成脈沖信號(hào),其重復(fù)頻率等于被測(cè)頻率fx。時(shí)間基準(zhǔn)信號(hào)發(fā)生器提供標(biāo)準(zhǔn)的時(shí)間脈沖信號(hào)、若其周期為1s。則門(mén)控電路的輸出信號(hào)持續(xù)時(shí)間亦準(zhǔn)確地等于1s。閘門(mén)電路由標(biāo)準(zhǔn)秒信號(hào)進(jìn)行控制,當(dāng)秒信號(hào)來(lái)到時(shí),閘門(mén)開(kāi)通.被測(cè)脈沖信號(hào)通過(guò)閘門(mén)送到計(jì)數(shù)譯碼顯示電路。秒信號(hào)結(jié)束時(shí)閘門(mén)關(guān)閉,計(jì)數(shù)器停止計(jì)數(shù),各點(diǎn)的波形如圖1(b)所示。由于計(jì)數(shù)器計(jì)得的脈沖數(shù)N是在1秒時(shí)間內(nèi)的累計(jì)數(shù) 所以被測(cè)頻率fx=NHz。
目前,有三種常用的數(shù)字頻率測(cè)量方法:直接測(cè)量法(以下稱(chēng)M法)、周期測(cè)量法(以下稱(chēng)T法)和綜合測(cè)量法(以下稱(chēng)M/T法)。M法是在給定的閘門(mén)時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù),進(jìn)行換算得出被測(cè)信號(hào)的頻率。T法是通過(guò)測(cè)量被測(cè)信號(hào)一個(gè)周期時(shí)間計(jì)時(shí)信號(hào)的脈沖個(gè)數(shù),然后換算出被測(cè)信號(hào)的頻率。這兩種測(cè)量法的精度都與被測(cè)信號(hào)有關(guān),因而它們屬于非等精度測(cè)量法。而M/T法設(shè)實(shí)際閘門(mén)時(shí)間為t,被測(cè)信號(hào)周期數(shù)為Nx,則它通過(guò)測(cè)量被測(cè)信號(hào)數(shù)個(gè)周期的時(shí)間,然后換算得出被測(cè)信號(hào)的頻率,克服了測(cè)量精度對(duì)被測(cè)信號(hào)的依賴(lài)性。M/T法的核心思想是通過(guò)閘門(mén)信號(hào)與被測(cè)信號(hào)同步,將閘門(mén)時(shí)間t控制為被測(cè)信號(hào)周期長(zhǎng)度的整數(shù)倍。測(cè)量時(shí),先打開(kāi)預(yù)置閘門(mén),當(dāng)檢測(cè)到被測(cè)閘門(mén)關(guān)閉時(shí),標(biāo)準(zhǔn)信號(hào)并不立即停止計(jì)數(shù),而是等檢測(cè)到的被測(cè)信號(hào)脈沖到達(dá)是才停止,完成被測(cè)信號(hào)的整數(shù)個(gè)周期的測(cè)量。測(cè)量的實(shí)際閘門(mén)時(shí)間與預(yù)置閘門(mén)時(shí)間可能不完全相同,但最大差值不超過(guò)被測(cè)信號(hào)的一個(gè)周期。
1.2 系統(tǒng)的硬件框架設(shè)計(jì)
本系統(tǒng)由脈沖輸入電路、整形電路、核心控制電路(由FPGA構(gòu)成)和輸出顯示電路組成,如圖2所示。
控制的核心芯片是FPGA,它由兩大功能模塊組成:(1)頻率計(jì)數(shù)模塊,包含兩個(gè)部分,選通時(shí)間控制部分,可改變選通時(shí)間;計(jì)數(shù)部分,根據(jù)選通時(shí)間的長(zhǎng)短對(duì)被測(cè)信號(hào)正脈沖進(jìn)行計(jì)數(shù);(2)掃描顯示模塊,對(duì)計(jì)數(shù)的結(jié)果進(jìn)行掃描顯示,從而完成整個(gè)測(cè)頻率的過(guò)程。外圍的電路相對(duì)簡(jiǎn)單,只有信號(hào)輸入整形電路和數(shù)碼管顯示電路。
系統(tǒng)的工作原理是,被測(cè)信號(hào)經(jīng)整形生成矩形波輸入到控制核心芯片F(xiàn)PGA的計(jì)數(shù)模塊,計(jì)數(shù)模塊根據(jù)所提供的矩形波上升沿計(jì)數(shù),計(jì)數(shù)時(shí)間則由選通時(shí)間控制部分決定,根據(jù)頻率所處的范圍來(lái)決定檔位;將計(jì)數(shù)的結(jié)果給顯示電路,通過(guò)掃描,在數(shù)碼管上顯示頻率的大小。
整形電路是將待測(cè)信號(hào)整形變成計(jì)數(shù)器所要求的脈沖信號(hào)。電路形式采用由555定時(shí)器所構(gòu)成的施密特觸發(fā)器。若待測(cè)信號(hào)為正弦波,輸入整形電路,設(shè)置分析為瞬態(tài)分析,啟動(dòng)電路,其輸入、輸出波形如圖1(b)所示。由圖可見(jiàn)輸出為方波,二者頻率相同,頻率計(jì)測(cè)得方波的頻率即為正弦波的頻率。
2 基于FPGA的系統(tǒng)設(shè)計(jì)
2.1 EDA技術(shù)和VHDL語(yǔ)言的特點(diǎn)
EDA(電子設(shè)計(jì)自動(dòng)化)代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員按照“自頂向下”(Top Down)的設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專(zhuān)用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語(yǔ)言(HDL)完成系統(tǒng)行為級(jí)設(shè)計(jì),最后通過(guò)綜合器和適配器生成最終目標(biāo)器件。FPGA可以通過(guò)軟件編程對(duì)目標(biāo)器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時(shí)對(duì)設(shè)計(jì)進(jìn)行調(diào)整,具有集成度高、結(jié)構(gòu)靈活、開(kāi)發(fā)周期短、快速可靠性高等特點(diǎn),數(shù)字設(shè)計(jì)在其中快速發(fā)展,應(yīng)用這種技術(shù)可使設(shè)計(jì)過(guò)程大大簡(jiǎn)化。VHDL語(yǔ)言最大的特點(diǎn)是描述能力極強(qiáng),可以覆蓋邏輯設(shè)計(jì)的諸多領(lǐng)域和層次,并支持眾多的硬件模型。其特點(diǎn)包括:
(1)設(shè)計(jì)技術(shù)齊全,方法靈活,支持廣泛;
(2)系統(tǒng)硬件描述能力強(qiáng);
(3)VHDL語(yǔ)言可以與工藝無(wú)關(guān)地進(jìn)行編程;
(4)VHDL語(yǔ)言標(biāo)準(zhǔn)、規(guī)范,易于共享和重用。
2.2 系統(tǒng)設(shè)計(jì)
設(shè)計(jì)采用實(shí)驗(yàn)教學(xué)中常用的altera公司的FLEX10K10系列芯片,該芯片的反應(yīng)時(shí)間可達(dá)ns級(jí),頻率計(jì)的測(cè)頻范圍可為1Hz~999MHz。系統(tǒng)在兼顧測(cè)量精度和測(cè)量反應(yīng)時(shí)間的基礎(chǔ)上,實(shí)現(xiàn)了量程的自動(dòng)轉(zhuǎn)換,測(cè)量可以全自動(dòng)地進(jìn)行。其控制和邏輯電路是基于quartus II和VHDL語(yǔ)言進(jìn)行設(shè)計(jì),外部電路相當(dāng)簡(jiǎn)單。圖3是本設(shè)計(jì)的頂層示意圖。設(shè)計(jì)主要由分頻模塊、控制模塊、鎖存模塊等共七個(gè)模塊組成。脈沖信號(hào)由fsin引腳輸入到cntrl模塊,由clr引腳和fdiv輸出信號(hào)q共同決定fsin的有效性,并由cntd實(shí)現(xiàn)自適應(yīng)控制,當(dāng)fsin的頻率高出或低于某個(gè)量程,cntrl模塊會(huì)根據(jù)具體的值選擇相應(yīng)合適的量程(本設(shè)計(jì)共有分為1~9999Hz、10~99.99kHz、100~999.9kHz、1M~999M等四個(gè)量程)。再經(jīng)由lock鎖存之后,由dspnum選擇具體的通路,由dspsel和disp實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,掃描顯示模塊有dspsel控制七段數(shù)碼管的片選信號(hào),間鎖存保存的BCD碼數(shù)據(jù)動(dòng)態(tài)掃描譯碼,以十進(jìn)制形式顯示。以上的各功能模塊都是在FLEX10K10中,用VHDL予以實(shí)現(xiàn)的,較之以往的傳統(tǒng)型電路更為簡(jiǎn)單,更易于實(shí)現(xiàn)頻率計(jì)的小型化、微型化甚至芯片化設(shè)計(jì)。
頂層示意圖中的各模塊用VHDL語(yǔ)言生成后,再生成圖3所示的示意圖,經(jīng)編譯鏈接之后就可以下載到系統(tǒng)中。再在外部擴(kuò)展信號(hào)采集和相應(yīng)的數(shù)碼顯示電路,就可以完成一個(gè)相對(duì)簡(jiǎn)單的數(shù)字頻率計(jì)。圖4是系統(tǒng)的整體框圖。
信號(hào)從被測(cè)信號(hào)輸入處輸入到波形整形電路后,經(jīng)過(guò)FPGA算法處理,再由數(shù)字顯示部分輸出。在數(shù)字顯示部分根據(jù)不同的檔位,可以把相應(yīng)的單位加入即可,人一檔時(shí)單位為Hz,二檔時(shí)為kHz,其余類(lèi)推。
此外,在硬件電路設(shè)計(jì)時(shí),應(yīng)注意FPGA的接口部分,包括電平轉(zhuǎn)換、標(biāo)準(zhǔn)CPU接口等等。比如FPGA器件的I/O電壓不能達(dá)到TTL電平,則需要添加必要的電平轉(zhuǎn)換芯片,即通常指的Transceiver。又如,驅(qū)動(dòng)LED等功能的需要是經(jīng)常遇到的,但FPGA器件的驅(qū)動(dòng)能力不一定能夠滿(mǎn)足需要,因此提供驅(qū)動(dòng)能力也是設(shè)計(jì)時(shí)需要考慮的問(wèn)題之一。同時(shí),時(shí)鐘設(shè)計(jì)是FPGA設(shè)計(jì)的核心問(wèn)題之一,時(shí)鐘系統(tǒng)的不穩(wěn)定和不合理,往往不能發(fā)揮器件的全部功能和潛力,嚴(yán)重時(shí)還會(huì)導(dǎo)致系統(tǒng)失敗。對(duì)于多時(shí)鐘、多速率系統(tǒng),如何做到全局同步設(shè)計(jì)、保證時(shí)延特性、達(dá)到設(shè)計(jì)速率等,對(duì)系統(tǒng)成功都是極為關(guān)鍵的。
3 結(jié)束語(yǔ)
本文在介紹了頻率計(jì)的基本原理的基礎(chǔ)上,闡述了如何基于FPGA設(shè)計(jì)和實(shí)現(xiàn)自適應(yīng)頻率計(jì)的設(shè)計(jì),并且給出了完整的設(shè)計(jì)過(guò)程,以及針對(duì)設(shè)計(jì)中應(yīng)該注意的問(wèn)題加以說(shuō)明。其外,如果使用更高頻率的FPGA芯片,頻率計(jì)的量程上限可以進(jìn)一步的提高。
評(píng)論