<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的高速高精度頻率測(cè)量的研究

          基于FPGA的高速高精度頻率測(cè)量的研究

          作者: 時(shí)間:2004-12-08 來源:網(wǎng)絡(luò) 收藏
          摘要:為核心的高速測(cè)量,不同于常用測(cè)頻法和測(cè)周期法。本文介紹的測(cè)頻方法,不僅消除了直接測(cè)頻方法中對(duì)測(cè)量需要采用分段測(cè)試的局際,而且在整個(gè)測(cè)試頻段內(nèi)能夠保持不變。又由于采用芯片來實(shí)現(xiàn)測(cè)量,因而具有高集成度、高速和高可靠性的特點(diǎn)。

          關(guān)鍵詞:頻率 測(cè)量

          引言

          在電子測(cè)量技術(shù)中,測(cè)頻是最基本的測(cè)量之一。常用的直接測(cè)頻方法在實(shí)用中有較大的局限性,其測(cè)量精度隨著被測(cè)信號(hào)頻率的下降而降低,并且對(duì)被測(cè)信號(hào)的計(jì)數(shù)要產(chǎn)生1個(gè)數(shù)字誤差。采用等精度頻率測(cè)量方法具有測(cè)量精度,測(cè)量精度保持恒定,不隨所測(cè)信號(hào)的變化而變化;并且結(jié)合現(xiàn)場(chǎng)可編程門陣列FPGA(Field Programmable Gate Array)具有集成度高、高速和高可靠性的特點(diǎn),使頻率的測(cè)頻范圍可達(dá)到0.1Hz~100MHz,測(cè)頻全域相對(duì)誤差恒為1/1 000 000,

          1 測(cè)頻原理及誤差分析

          常用的直接測(cè)頻方法主要有測(cè)頻法和測(cè)周期法兩種。測(cè)頻法就是在確定的閘門時(shí)間Tw內(nèi),記錄被測(cè)信號(hào)的變化周期數(shù)(或脈沖個(gè)數(shù))Nx,則被測(cè)信號(hào)的頻率為:fx=Nx/Tw。測(cè)周期法需要有標(biāo)準(zhǔn)信號(hào)的頻率fs,在待測(cè)信號(hào)的一個(gè)周期Tx內(nèi),記錄標(biāo)準(zhǔn)頻率的周期數(shù)Ns,則被測(cè)信號(hào)的頻率為:fx=fs/Ns。這兩種方法的計(jì)數(shù)值會(huì)產(chǎn)生1個(gè)字誤差,并且測(cè)試精度與計(jì)數(shù)器中記錄的數(shù)值Nx或Ns有關(guān)。為了保證測(cè)試精度,一般對(duì)于低頻信號(hào)采用測(cè)周期法;對(duì)于高頻信號(hào)采用測(cè)頻法,因此測(cè)試時(shí)很不方便,所以人門提出等精度測(cè)頻方法。

          等精度測(cè)頻方法是在直接測(cè)頻方法的基礎(chǔ)上發(fā)展起來的。它的閘門時(shí)間不是固定的值,而是被測(cè)信號(hào)周期的整數(shù)倍,即與被測(cè)信號(hào)同步,因此,測(cè)除了對(duì)被測(cè)信號(hào)計(jì)數(shù)所產(chǎn)生1個(gè)字誤差,并且達(dá)到了在整個(gè)測(cè)試頻段的等精度測(cè)量。其測(cè)頻原理如圖1所示。

          在測(cè)量過程中,有兩個(gè)計(jì)數(shù)器分別對(duì)標(biāo)準(zhǔn)信號(hào)和被測(cè)信號(hào)同時(shí)計(jì)數(shù)。首先給出閘門開啟信號(hào)(預(yù)置閘門上升沿),此時(shí)計(jì)數(shù)器并不開始計(jì)數(shù),而是等到被測(cè)信號(hào)的上升沿到來時(shí),計(jì)數(shù)器才真正開始計(jì)數(shù)。然后預(yù)置閘門關(guān)閉信號(hào)(下降沿)到時(shí),計(jì)數(shù)器并不立即停止計(jì)數(shù),而是等到被測(cè)信號(hào)的上升沿到來時(shí)才結(jié)束計(jì)數(shù),完成一次測(cè)量過程??梢钥闯?,實(shí)際閘門時(shí)間τ與預(yù)置閘門時(shí)間τ1并不嚴(yán)格相等,但差值不超過被測(cè)信號(hào)的一個(gè)周期。

          設(shè)在一次實(shí)際閘門時(shí)間τ中計(jì)數(shù)器對(duì)被測(cè)信號(hào)的計(jì)數(shù)值為Nx,對(duì)標(biāo)準(zhǔn)信號(hào)的計(jì)數(shù)值為Ns。標(biāo)準(zhǔn)信號(hào)的頻率為fs,則被測(cè)信號(hào)的頻率為

          由式(1)可知,若忽略標(biāo)頻fs的誤差,則等精度測(cè)頻可能產(chǎn)生的相對(duì)誤差為

          δ=(|fxc-fx|/fxe)100% (2)

          其中fxe為被測(cè)信號(hào)頻率的準(zhǔn)確值。

          在測(cè)量中,由于fx計(jì)數(shù)的起停時(shí)間都是由該信號(hào)的上升測(cè)觸發(fā)的,在閘門時(shí)間τ內(nèi)對(duì)fx的計(jì)數(shù)Nx無誤差(τ=NxTx);對(duì)fs的計(jì)數(shù)Ns最多相差一個(gè)數(shù)的誤差,即|ΔNs|≤1,其測(cè)量頻率為

          fxe=[Nx/(Ns+ΔNs)]/fs (3)

          將式(1)和(3)代入式(2),并整理得:

          δ=|ΔNs|/Ns≤1/Ns=1/(τfs)

          由上式可以看出,測(cè)量頻率的相對(duì)誤差與被測(cè)信號(hào)頻率的大小無關(guān),僅與閘門時(shí)間和標(biāo)準(zhǔn)信號(hào)頻率有關(guān),即實(shí)現(xiàn)了整個(gè)測(cè)試頻段的等精度測(cè)量。閘門時(shí)間越長(zhǎng),標(biāo)準(zhǔn)頻率越高,測(cè)頻的相對(duì)誤差就越小。標(biāo)準(zhǔn)頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產(chǎn)生,在保證測(cè)量精度不變的前提下,提高標(biāo)準(zhǔn)信號(hào)頻率,可使閘門時(shí)間縮短,即提高測(cè)試速度。表1所列為標(biāo)頻在10MHz時(shí)閘門時(shí)間與最大允許誤差的對(duì)應(yīng)關(guān)系。

          表1 閘門時(shí)間與精度的關(guān)系

          閘門時(shí)間/s精 度
          0.01
          0.1
          1
          10 -5
          10 -6
          10 -7

          等精度測(cè)頻的實(shí)現(xiàn)方法可簡(jiǎn)化為圖2所示的框圖。CNT1和CNT2是兩個(gè)可控計(jì)數(shù)器,標(biāo)準(zhǔn)頻率(fs)信號(hào)從CNT1的時(shí)鐘輸入端CLK輸入;經(jīng)整形后的被測(cè)信號(hào)(fx)從CNT2的時(shí)鐘輸入端CLK輸入。每個(gè)計(jì)數(shù)器中的CEN輸入端為時(shí)鐘使能端控制時(shí)鐘輸入。當(dāng)預(yù)置門信號(hào)為高電平(預(yù)置時(shí)間開始)時(shí),被測(cè)信號(hào)的上升沿通過D觸發(fā)器的輸出端,同時(shí)啟動(dòng)兩個(gè)計(jì)數(shù)器計(jì)數(shù);同樣,當(dāng)預(yù)置門信號(hào)為低電平(預(yù)置時(shí)間結(jié)束)時(shí),被測(cè)信號(hào)的上升沿通過D觸發(fā)器的輸出端,同時(shí)關(guān)閉計(jì)數(shù)器的計(jì)數(shù)。

          2 硬件設(shè)計(jì)

          在快速測(cè)量的要求下,要保證較高精度的測(cè)頻,必須采用較高的標(biāo)準(zhǔn)頻率信號(hào);而單片機(jī)受本身時(shí)鐘頻率和若干指令運(yùn)算的限制,測(cè)頻速度較慢,無法滿足高速、高精度的測(cè)頻要求。采用高集成度、高速的現(xiàn)場(chǎng)可編程門陣列FPGA為實(shí)現(xiàn)高速,高精度的測(cè)頻提供了保證。

          FPGA是20世紀(jì)90年代發(fā)展起來的大規(guī)??删幊踢壿嬈骷?,隨著EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù)和微電子技術(shù)的進(jìn)步,F(xiàn)PGA的時(shí)鐘延遲可達(dá)到ns級(jí),結(jié)合其并行工作方式,在超高速、實(shí)時(shí)測(cè)控方面有非常廣闊的應(yīng)用前景;并且FPGA具有高集成度、高可靠性,幾乎可將整個(gè)設(shè)計(jì)系統(tǒng)下載于同一芯片中,實(shí)現(xiàn)所謂片上系統(tǒng),從而大大縮小其體積。

          整個(gè)測(cè)頻系統(tǒng)分為多個(gè)功能模塊,如信號(hào)同步輸入、控制部件、分頻和計(jì)數(shù)部件、定時(shí)、脈沖寬度測(cè)量、數(shù)碼顯示、放大整形和標(biāo)頻信號(hào)等模塊。除數(shù)碼管、放大整形和標(biāo)頻信號(hào)外,其它模塊可集成于FPGA芯片中,并且各邏輯模塊用硬件描述語言HDL來描述其功能,如用VHDL或AHDL來對(duì)各功能模塊進(jìn)行邏輯描述。然后通過EDA開發(fā)平臺(tái),對(duì)設(shè)計(jì)文件自動(dòng)地完成邏輯編譯、邏輯化簡(jiǎn)、綜合及優(yōu)化、邏輯布局布線、邏輯仿真,最后對(duì)FPGA芯片進(jìn)行編程,以實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)要求。

          圖3所示為測(cè)頻主系統(tǒng)框圖。一片F(xiàn)PGA(EPF10K10LC84)可完成各種測(cè)試功能,可利用單片機(jī)完成數(shù)據(jù)處理和顯示輸出。在標(biāo)準(zhǔn)頻率信號(hào)為60MHz的情況下,其測(cè)量精度可達(dá)到1.110 -8,即能夠顯示近8位有效數(shù)字。其中A0~A7和B0~B7為兩計(jì)數(shù)器的計(jì)數(shù)值輸出。計(jì)數(shù)器是32位二進(jìn)制計(jì)數(shù)器(4個(gè)8位計(jì)數(shù)值)。單片機(jī)通過[R1,R0]數(shù)據(jù)讀出選通端分別從這兩個(gè)計(jì)數(shù)值輸出端讀出4個(gè)8位計(jì)數(shù)值,根據(jù)測(cè)頻和測(cè)脈寬原理公式計(jì)算出頻和脈沖寬度。STR為預(yù)置門啟動(dòng)輸入;F/T為測(cè)頻和測(cè)脈寬選擇;CH為自校/測(cè)頻選擇;Fa為自校頻率輸入端;Fs為標(biāo)準(zhǔn)頻率信號(hào)輸入端;Fx為經(jīng)過放大整形后的被測(cè)信號(hào)輸入端;END為計(jì)數(shù)結(jié)束狀態(tài)信號(hào)。

          FPGA中各功能模塊如圖4所示。

          圖4中,CH1和CH2為選擇器,CH1進(jìn)行自校/測(cè)頻選擇,CH2進(jìn)行測(cè)頻和測(cè)脈寬選擇。CONTRL1為控制模塊,控制被測(cè)信號(hào)fx和標(biāo)頻信號(hào)fs的導(dǎo)通,以及兩個(gè)計(jì)數(shù)器(CONTa和CONTb)的計(jì)數(shù)。CONTa和CONTb為32位計(jì)數(shù)器,分別以4個(gè)8位二進(jìn)制數(shù)輸出。

          圖4 FPGA中各功能模塊

          FPGA與單片機(jī)AT89C51的接口比較簡(jiǎn)單。圖3中的輸入/輸出端與單片機(jī)連接:A[7..0]與單片機(jī)P2端口相連接;B[7..0]與單片機(jī)P0口相連接;其它輸入/輸出端與單片機(jī)P3口相連接。

          結(jié)語

          隨著EDA技術(shù)和FPGA集成度的提高,F(xiàn)PGA不但包括了MCU(微控制器或單片機(jī))特點(diǎn),并兼有串、并行工作方式和高速、高可靠性以及寬口徑適用性等諸多方面的特點(diǎn)。單片機(jī)完成的數(shù)據(jù)處理功能也可集成在FPGA芯片中?;贔PGA的電子系統(tǒng)設(shè)計(jì)僅僅是各種邏輯模塊與IP核的邏輯合成和拼裝。測(cè)頻系統(tǒng)的標(biāo)準(zhǔn)信號(hào)頻率的提高,可進(jìn)一步提高測(cè)頻的精度或縮短測(cè)頻時(shí)間。



          關(guān)鍵詞: FPGA 高精度 頻率 量的研究

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();