1 引言
本課題來源于一個無紙記錄儀的項目。在該項目中要求無紙記錄儀中有一路通道將工業現場采集到的頻率信號測量并顯示出來。傳統的測頻系統大多采用單片機加邏輯器件構成,而這類測頻系統存在測頻速度慢、準確度低、可靠性差的缺點,故而使測量儀表達不到工業現場的要求。鑒于此,本文設計了一種基于嵌入式微處理器SEP3203和FPGA的測頻系統。將嵌入式微處理器靈活的控制功能與FPGA的設計靈活、高速和高可靠性的特點有機結合,從而達到工業現場的實時測量要求,而且該測頻系統具有可重構性。
2 測頻原理
常用的直接測頻方法主要有測頻法和測周期法2種。測頻法就是在確定的閘門時間tw內,記錄被測信號的變化周期數(或脈沖個數)Nχ,被測信號的頻率為fχ=Nχ/tw。測周期法需要有標準信號的頻率fs,在待測信號的一個周期內tχ,記錄標準頻率的周期數Ns,被測信號的頻率為fχ=fs/Ns。這2種方法的計數值會產生±1個字的誤差,并且測試精度與計數器中記錄的數值Nχ或Ns有關。為了保證測試精度,一般對于低頻信號采用測周期法,對于高頻信號采用測頻法,這樣測試時很不方便,所以人們提出了等精度測頻的方法。
等精度測頻方法是在直接測頻方法的基礎上發展起來的,他的閘門時間不是固定的值,而是被測信號周期的整數倍,即與被測信號同步,消除了對被測信號計數所產生±1個字的誤差,達到了在整個測試頻段內保持等精度測量。
在測量過程中,有2個計數器分別對標準信號和被測信號同時計數。首先給出閘門開啟信號(預置閘門上升沿),此時計數器并不開始計數,而是等到被測信號的上升沿到來時,計數器才真正開始計數。然后預置閘門關閉信號(下降沿)到時,計數器并不立即停止計數,而是等到被測信號的上升沿到來時才結束計數,完成1次測量過程。從而實現了實際門控信號與被測信號的同步,進而消除對被測信號計數產生的一個脈沖的誤差。
設在1次實際閘門時間τ中計數器對被測信號的計數值為Nχ,對標準信號的計數值為Ns。標準信號的頻率為fs,則被測信號的頻率為:
fχ=(Nχ/Ns)×fs (1)
3 誤差分析
由式(1)可知,若忽略標頻的誤差,則等精度測頻可能產生的相對誤差為:
δ=(fχ-fe/fe)×100% (2)
其中,fe為被測信號頻率的準確值。在測量中,由于fχ計數的起停時間都是由該信號的上升沿觸發的,在閘門時間τ內對fχ的計數Nχ無誤差(τ=Nχtχ);對fs的計數Ns最多相差1個數的誤差,即│△Ns│≤1,其測量頻率為:
fe=[Nχ/(Ns+△Ns)]/fs (3)
將式(1)和式(3)代入式(2),并整理得:
δ=│△Ns│/Ns≤1/Ns-1/(τ×fs) (4)
由上式可以看出:測量頻率的相對誤差與被測信號頻率的大小無關,僅與閘門時間和標準信號頻率有關,即實現了整個測試頻段的等精度測量。閘門時間越長,標準頻率越高,測頻的相對誤差就越小。標準頻率可由穩定度好、精度高的高頻晶體振蕩器產生,在保證測量精度不變的前提下,提高標準信號頻率,可使閘門時間縮短,即提高測試速度。
4 設計實現
(1)前級電路
即首先對待測信號進行處理使其達到與后級電路相兼容的脈沖信號。
第一級電路是由開關三極管組成的零偏置放大電路,以保證放大電路具有良好的高頻響應,當輸入信號為零或負電壓時,三極管工作在截止狀態,輸出為高電平,當輸入為正電壓時,三極管工作在飽和狀態(導通),輸出電壓隨輸入電壓上升而下降。零偏置放大電路把如正弦波樣的正負交替波形變換成單向脈沖,這使得該電路可以測量任意方波信號、正弦波信號、鋸齒波信號、三角波信號等頻率。
第二級采用的是施密特非門觸發器CC74HC14,是對放大器輸出的信號進行整形,使其輸出的信號成為與后級電路相兼容的脈沖信號。
(2)后級電路
各模塊用硬件描述語言Verilog HDL描述,通過EDA工具(ModelSim,Synplify,QuartusⅡ)進行編譯、仿真、延時分析、管腳調整、綜合等步驟,最后燒錄到FPGA芯片中。將芯片與被測信號的放大整形模塊等外圍電路相連接,通過調試便完成了整個設計。
工作過程表示如下:
d_trigger實體實現門控信號和被測信號TCLK同步控制功能,內部有一個受被測信號TCLK上升沿同步的D觸發器和預置門控信號CL共同作用產生實際的門控信號。counter32b1和counter32b2分別對標準頻率BCLK和被測頻率TCLK計數,內部為帶異步復位的32位二進制計數器的時序進程。mux64_8是數據選擇器,根據地址信號se1不同取值,64位數據依次從data_out[7:0]端輸出。
即當CLR為1,D觸發器及兩個計數器清零。當預置門控信號CL為1時,及經放大整形后的被測信號TCLK上升沿到來時,同步電路輸出dout=1,帶使能端的2個計數器開始計數;當預置門控信號CL為0時,被測信號TCLK下一個上升沿到來時,同步電路輸出dout=0,即ena1=ena2=0,2個計數器停止計數。然后根據地址信號se1不同取值,64位數據依次從data_out[7:0]端輸出送入后端的乘法器和除法器模塊,按公式計算出被測頻率的值。
(3)嵌入式微處理器讀取測頻結果
本系統采用東南大學國家集成電路工程中心自主研發的嵌入式微處理器SEP 3203,并通過JTAG仿真器連接到PC機上的集成調試環境(IDE)軟件平臺,在IDE中統一完成C語言的編輯、編譯、連接。IDE選擇了ARM公司的開發軟件ADS 1.2,利用處理機的Embedded-ICE性能,通過JTAG接口實現實時的仿真調試。整個系統具有高性能、低功耗、低成本的特點。
FPGA與嵌入式微處理器SEP 3203之間采用總線的方式進行數據交換,也就是將FPGA看作總線上的一個并行外部設備。FPGA通過一個SRAM接口與嵌入式微處理器SEP 3203相通信。即從嵌入式微處理器SEF‘3203的角度來看,FPGA與嵌入式微處理器SEP3203之間的通信就相當于SEP 3203與一個SRAM之間的通信。在程序中讀寫指定區域的地址,可以實現對FPGA的讀寫操作。
處理器SEP 3203的外部存儲器接口(EMI)提供了6個可配置的片選信號:CSA,CSB,CSC,CSD,CSE,CSF,用來實現對ROM,SRAM,NOR FLASH的片選。其中CSE,CSF、可以配置成SDRAM片選信號。FPGA模塊使用的是CSB片選信號。CSB片選的默認地址范圍為0x24000000~0x27FFFFFF,即FPGA組成的外設映射在SEP3203的地址空間為0x24000000~0x27FFFFFF,所以SEP3203在訪問FPGA時只需讀寫該地址空間中的任何一個地址,SEP3203能自動產生相應的總線操作,從而讀取到FPGA的測頻結果。
5 仿真及驗證
例1:標準頻率Fs為1 MHz;待測頻率Fχ為1 kHz。
看出Ns=0x7DOH=2 000;Nχ=0x2H=2,故測得頻率Fχ=(N=/Ns)*Fχ=1 kHz。
例2:標準頻率Fs為1 MHz;待測頻率Fχ為7.288 kHz。
看出Ns=0x80AH=2 058;Nχ=0xFH=15,故測得頻率Fχ=(Nχ/Ns)*Fs=7 288.630 Hz。
采用等精度頻率測量方法測量精度保持恒定,不隨所測信號的變化而變化,再結合FPGA集成度高、高速和高可靠性的特點,使頻率的測頻范圍可達到0.1~1×10 8Hz,測頻全域的相對誤差恒定。
6 結語
本測頻系統將嵌入式微處理器靈活的控制功能與FPGA器件的結合,突破了傳統電子系統的設計模式,使系統開發速度快、成本低、系統性能大幅度提高。因此,在目前的電子設計中,充分利用嵌入式微處理器+FPGA結構將起到事半功倍的效果。
責任編輯:gt
-
FPGA
+關注
關注
1626文章
21678瀏覽量
602032 -
嵌入式
+關注
關注
5072文章
19026瀏覽量
303517 -
微處理器
+關注
關注
11文章
2247瀏覽量
82331
發布評論請先 登錄
相關推薦
評論