在電子工程,資源勘探,儀器儀表等相關(guān)應(yīng)用中,頻率計(jì)是工程技術(shù)人員必不可少的測量工具。頻率測量也是電子測量技術(shù)中最基本最常見的測量之一。不少物理量的測量,如轉(zhuǎn)速、振動(dòng)頻率等的測量都涉及到或可以轉(zhuǎn)化為頻率的測量。目前,市場上有各種多功能、高精度、高頻率的數(shù)字頻率計(jì),但價(jià)格不菲。為適應(yīng)實(shí)際工作的需要,本文在簡述頻率測量的基本原理和方法的基礎(chǔ)上,提供一種基于FPGA的數(shù)字頻率計(jì)的設(shè)計(jì)和實(shí)現(xiàn)過程,本方案不但切實(shí)可行,而且具有成本低廉、小巧輕便、便于攜帶等特點(diǎn)。
1 數(shù)字頻率測量原理和方法及本系統(tǒng)硬件框架
數(shù)字頻率計(jì)是直接用十進(jìn)制數(shù)字來顯示被測信號(hào)頻率的一種測量裝置。它不僅可以測量正弦波、方波、三角波和尖脈沖信號(hào)的頻率。而且還可以測量它們的周期。數(shù)字頻率計(jì)在測量其他物理量如轉(zhuǎn)速、振動(dòng)頻率等方面也獲得廣泛應(yīng)用。
1.1 數(shù)字頻率的測頻原理和方法
眾所周知,所謂“頻率”就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù)。若在一定時(shí)間間隔T內(nèi)測得這個(gè)周期性信號(hào)的重復(fù)變化次數(shù)N,則其頻率可衰示為f=N/T 。
數(shù)字頻率計(jì)測頻率的原理框圖可示如圖1(a)。其中脈沖形成電路的作用是:將被測信號(hào)變成脈沖信號(hào),其重復(fù)頻率等于被測頻率fx。時(shí)間基準(zhǔn)信號(hào)發(fā)生器提供標(biāo)準(zhǔn)的時(shí)間脈沖信號(hào)、若其周期為1s。則門控電路的輸出信號(hào)持續(xù)時(shí)間亦準(zhǔn)確地等于1s。閘門電路由標(biāo)準(zhǔn)秒信號(hào)進(jìn)行控制,當(dāng)秒信號(hào)來到時(shí),閘門開通。被測脈沖信號(hào)通過閘門送到計(jì)數(shù)譯碼顯示電路。秒信號(hào)結(jié)束時(shí)閘門關(guān)閉,計(jì)數(shù)器停止計(jì)數(shù),各點(diǎn)的波形如圖1(b)所示。由于計(jì)數(shù)器計(jì)得的脈沖數(shù)N是在1秒時(shí)間內(nèi)的累計(jì)數(shù) 所以被測頻率fx=NHz。
目前,有三種常用的數(shù)字頻率測量方法:直接測量法(以下稱M法)、周期測量法(以下稱T法)和綜合測量法(以下稱M/T法)。M法是在給定的閘門時(shí)間內(nèi)測量被測信號(hào)的脈沖個(gè)數(shù),進(jìn)行換算得出被測信號(hào)的頻率。T法是通過測量被測信號(hào)一個(gè)周期時(shí)間計(jì)時(shí)信號(hào)的脈沖個(gè)數(shù),然后換算出被測信號(hào)的頻率。這兩種測量法的精度都與被測信號(hào)有關(guān),因而它們屬于非等精度測量法。而M/T法設(shè)實(shí)際閘門時(shí)間為t,被測信號(hào)周期數(shù)為Nx,則它通過測量被測信號(hào)數(shù)個(gè)周期的時(shí)間,然后換算得出被測信號(hào)的頻率,克服了測量精度對(duì)被測信號(hào)的依賴性。M/T法的核心思想是通過閘門信號(hào)與被測信號(hào)同步,將閘門時(shí)間t控制為被測信號(hào)周期長度的整數(shù)倍。測量時(shí),先打開預(yù)置閘門,當(dāng)檢測到被測閘門關(guān)閉時(shí),標(biāo)準(zhǔn)信號(hào)并不立即停止計(jì)數(shù),而是等檢測到的被測信號(hào)脈沖到達(dá)是才停止,完成被測信號(hào)的整數(shù)個(gè)周期的測量。測量的實(shí)際閘門時(shí)間與預(yù)置閘門時(shí)間可能不完全相同,但最大差值不超過被測信號(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í)間的長短對(duì)被測信號(hào)正脈沖進(jìn)行計(jì)數(shù);(2)掃描顯示模塊,對(duì)計(jì)數(shù)的結(jié)果進(jìn)行掃描顯示,從而完成整個(gè)測頻率的過程。外圍的電路相對(duì)簡單,只有信號(hào)輸入整形電路和數(shù)碼管顯示電路。
系統(tǒng)的工作原理是,被測信號(hào)經(jīng)整形生成矩形波輸入到控制核心芯片F(xiàn)PGA的計(jì)數(shù)模塊,計(jì)數(shù)模塊根據(jù)所提供的矩形波上升沿計(jì)數(shù),計(jì)數(shù)時(shí)間則由選通時(shí)間控制部分決定,根據(jù)頻率所處的范圍來決定檔位;將計(jì)數(shù)的結(jié)果給顯示電路,通過掃描,在數(shù)碼管上顯示頻率的大小。
整形電路是將待測信號(hào)整形變成計(jì)數(shù)器所要求的脈沖信號(hào)。電路形式采用由555定時(shí)器所構(gòu)成的施密特觸發(fā)器。若待測信號(hào)為正弦波,輸入整形電路,設(shè)置分析為瞬態(tài)分析,啟動(dòng)電路,其輸入、輸出波形如圖1(b)所示。由圖可見輸出為方波,二者頻率相同,頻率計(jì)測得方波的頻率即為正弦波的頻率。
2 基于FPGA的系統(tǒng)設(shè)計(jì)
2.1 EDA技術(shù)和VHDL語言的特點(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)鍵電路用一片或幾片專用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語言(HDL)完成系統(tǒng)行為級(jí)設(shè)計(jì),最后通過綜合器和適配器生成最終目標(biāo)器件。FPGA可以通過軟件編程對(duì)目標(biāo)器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時(shí)對(duì)設(shè)計(jì)進(jìn)行調(diào)整,具有集成度高、結(jié)構(gòu)靈活、開發(fā)周期短、快速可靠性高等特點(diǎn),數(shù)字設(shè)計(jì)在其中快速發(fā)展,應(yīng)用這種技術(shù)可使設(shè)計(jì)過程大大簡化。VHDL語言最大的特點(diǎn)是描述能力極強(qiáng),可以覆蓋邏輯設(shè)計(jì)的諸多領(lǐng)域和層次,并支持眾多的硬件模型。其特點(diǎn)包括:
(1)設(shè)計(jì)技術(shù)齊全,方法靈活,支持廣泛;
(2)系統(tǒng)硬件描述能力強(qiáng);
(3)VHDL語言可以與工藝無關(guān)地進(jìn)行編程;
(4)VHDL語言標(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ì)的測頻范圍可為1Hz~999MHz。系統(tǒng)在兼顧測量精度和測量反應(yīng)時(shí)間的基礎(chǔ)上,實(shí)現(xiàn)了量程的自動(dòng)轉(zhuǎn)換,測量可以全自動(dòng)地進(jìn)行。其控制和邏輯電路是基于quartus II和VHDL語言進(jìn)行設(shè)計(jì),外部電路相當(dāng)簡單。圖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)型電路更為簡單,更易于實(shí)現(xiàn)頻率計(jì)的小型化、微型化甚至芯片化設(shè)計(jì)。
頂層示意圖中的各模塊用VHDL語言生成后,再生成圖3所示的示意圖,經(jīng)編譯鏈接之后就可以下載到系統(tǒng)中。再在外部擴(kuò)展信號(hào)采集和相應(yīng)的數(shù)碼顯示電路,就可以完成一個(gè)相對(duì)簡單的數(shù)字頻率計(jì)。圖4是系統(tǒng)的整體框圖。
信號(hào)從被測信號(hào)輸入處輸入到波形整形電路后,經(jīng)過FPGA算法處理,再由數(shù)字顯示部分輸出。在數(shù)字顯示部分根據(jù)不同的檔位,可以把相應(yīng)的單位加入即可,人一檔時(shí)單位為Hz,二檔時(shí)為kHz,其余類推。
此外,在硬件電路設(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)能力不一定能夠滿足需要,因此提供驅(qū)動(dòng)能力也是設(shè)計(jì)時(shí)需要考慮的問題之一。同時(shí),時(shí)鐘設(shè)計(jì)是FPGA設(shè)計(jì)的核心問題之一,時(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)鍵的。
本文在介紹了頻率計(jì)的基本原理的基礎(chǔ)上,闡述了如何基于FPGA設(shè)計(jì)和實(shí)現(xiàn)自適應(yīng)頻率計(jì)的設(shè)計(jì),并且給出了完整的設(shè)計(jì)過程,以及針對(duì)設(shè)計(jì)中應(yīng)該注意的問題加以說明。其外,如果使用更高頻率的FPGA芯片,頻率計(jì)的量程上限可以進(jìn)一步的提高。
評(píng)論
查看更多