基於FPGA的同步測周期高精度數字頻率計的設計

2021-01-08 電子產品世界

摘    要:本文介紹了一種同步測周期計數器的設計,並基於該計數器設計了一個高精度的數字頻率計。文中給出了計數器的VHDL編碼,並對頻率計的FPGA實現進行了仿真驗證,給出了測試結果。
關鍵詞:頻率計;VHDL;FPGA;周期測量

在現代數字電路設計中,採用FPGA結合硬體描述語言VHDL可以設計出各種複雜的時序和邏輯電路,具有設計靈活、可編程、高性能等優點。本文將介紹一種基於FPGA,採用同步測周期的方法來實現寬頻段高精度數字頻率計的設計。

圖1 同步測周期計數器

同步測周期頻率計的原理
在數字頻率計中,測周期計數器是主要的電路,其功能是:使用標準時鐘以被測頻率信號的一個周期為時限進行脈衝計數。傳統的測周期計數器採用門控計數器來實現,即採用一個同被測頻率信號周期寬度相同的門控脈衝來控制計數器的計停。其缺點在於無法實現對被測信號的連續測周期計數。
本文設計的同步測周期計數器如圖1所示。圖中計數器的計數時鐘為clk0, 頻率為f0;被測信號為clkx,頻率為fx。採用一個D觸發器對輸入的被測信號clkx進行同步,同步輸出為s0。在clk0的上升沿到來之前,如果clkx出現了上升跳變,則le信號變為高電平,計數器ct的重載信號和鎖存器cout的使能信號有效。當clk0的上升沿到來時,計數器的計數值鎖存,同時計數器重載為1,重新開始計數,le變為低電平。計數器在其他時間裡進行加1計數,鎖存器的值則保持不變。該測周期計數器能在clkx的每個上升沿之後輸出計數值,實現了對被測信號進行測周期計數,並始終輸出其最新一個周期的計數值,圖中cint端輸出一個clk0周期寬度的高脈衝,用於指示新的計數值鎖存。

圖2  同步測周期數字頻率計

圖3  頻率計cint的改進電路


設該計數器的測周期計數值為M0,由於同步測周期法的解析度為一個標準時鐘周期,因此有:
該同步測周期計數器的測周期計數值最小為2,要求被測信號高低電平的寬度大於一個標準時鐘周期。
基於上述同步測周期計數器,本文設計了如圖2所示的高精度數字頻率計。freq_div模塊是一個分頻器,對標準時鐘clk0進行係數為C0的分頻。頻率計採用了兩個同步測周期計數器同時工作,計數值輸出埠分別為cout和mout。為了避免由於同步測周期計數器中被測信號和標準時鐘不同步,le信號高電平的寬度不固定而造成的計數出錯,在實際應用中,採取將被測信號先經過一個D觸發器同步後再送入計數器的方法,以保證計數的可靠性,其計數值和頻率的關係仍滿足(1)式。設cout輸出的值為C,mout輸出的值為M,根據頻率計的結構,對於其中以clkx為計數時鐘的計數器,由(1)式得:

同理,對於以clk0為計數時鐘的計數器,有:

根據兩個測周期計數器的計數值M、C,被測信號的頻率按下式計算得到
                                    
根據(3)式,計算結果的最大誤差為:

相對誤差為:   

因此,只要使計數值C足夠大就可以保證頻率測量的精度。將(3)和(4)兩式相除並忽略小項得C和C0的關係如下:

給定C0,測周期計數值C的最大可變範圍為:。因此,根據實際測量精度的要求,設定適當的分頻器分頻係數C0,即可保證實際的測周期計數值C的大小在精度要求的範圍內。對於上述的數字頻率計,如果增大分頻器分頻係數C0,提高測周期計數器的計數範圍,可實現對輸入信號寬頻段高精度的頻率測量。

圖4 輸入被測信號周期為156ms時的仿真波形

數字頻率計的VHDL實現
上述的同步測周期數字頻率計在Altera 公司的FPGA開發平臺Quartus II中實現,模塊採用VHDL語言描述,具有通用性和可重用性。圖1中的同步測周期計數器的VHDL描述如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
entity freq_count is   --實體定義
port(  reset: in std_logic;  
    clk0 : in std_logic; 
    clkx : in std_logic; 
    cint : out std_logic; 
    cout : out std_logic_vector(23 downto 0));
end entity freq_count;
architecture ar of freq_count is        
signal s0 : std_logic;
signal ct : std_logic_vector(23 downto 0);
begin
p0: process(reset,clk0) 
--計數器進程
begin
if reset='0' then
  s0<='0';
  cint<='1';
  cout<=conv_std_logic_vector(0,24);
else
if clk0'event and clk0='1' then
   s0<=clkx;
 if s0='0' and clkx='1' then
      cout<=ct;
   cint<='0';
  ct<=conv_std_logic_vector(1,24);
 else
   cint<='1';
   ct<=ct+1;
 end if;
end if;
end if;
end process p0;
end ar;
測周期計數值M、C分別由mout和cout埠輸出,通過一定的接口由微處理器或其他的數據處理模塊獲取,進行頻率的計算和顯示,根據實際的應用情況設計輸出接口,這裡不再詳述。當頻率計新一輪的測周期計數完成後,計數器通過cint和mint信號指示處理單元來獲取數據,其高電平脈衝的寬度為一個計數時鐘周期。當計數時鐘頻率很高時,一些慢速的單片機可能無法捕獲,因此(以cint信號為例)增加如圖3所示的電路。cint上升沿使D觸發器輸出引腳cdone置0,通知單片機取數,單片機讀結果時,相應的地址信號和讀信號有效使圖中的cint_set有效,cdone被復位為1,等待下一次cint脈衝的出現。通過該電路,慢速單片機就可以捕獲頻率計計數完成的指示信號。
為了使頻率計的設計更加靈活,頻率計中分頻器的分頻係數也可改為由外部輸入。在頻率計運行期間,由外部控制器設置不同的分頻係數C0,這樣可實現更寬範圍的頻率測量。

頻率計的仿真驗證
上述數字頻率計的VHDL設計在Altera公司的Quartus II開發平臺下進行了編譯和仿真,圖4是在clk0輸入10 MHz方波,clkx輸入周期為156ms(頻率為6.41KHz)方波,分頻係數C0取15000時的仿真波形。
本文採用Altera公司的FPGA FLEX10K10LC84-4來實現上述的頻率計,計數器計數值的處理和顯示由 51單片機來完成,同步測周期數字頻率計的參數和測試結果是:計數器寬度為24 bit;分頻係數C0取106;計數時鐘頻率f0為1MHz;FPGA邏輯單元的使用比例為41%;測量的頻率範圍是1Hz<fx<16MHz;測量誤差小於 10-5。

結語
本文設計的同步測周期計數器能夠直接對被測信號進行連續的測周期計數,可以在許多頻率測量的設計中取代門控計數器,使設計更加靈活。文中採用兩個同步測周期計數器設計的數字頻率計,無需選擇量程便可實現寬頻段高精度的頻率測量,並在FPGA中實現了系統集成。■

分頻器相關文章:分頻器原理 塵埃粒子計數器相關文章:塵埃粒子計數器原理

相關焦點

  • 基於FPGA與有限狀態機的高精度測角系統的設計與實
    光電編碼器是利用光柵衍射原理實現位移數字變換的,光電編碼器作為一種高精度的測角傳感器已普遍應用於伺服跟蹤系統中,它具有精度高、響應快、性能穩定可靠等優點。光電編碼器按編碼方式主要分為兩類:增量式與絕對式。由於增量式光電編碼器成本低、測角的精度高,因此本系統的增量式光電編碼器選用Renishaw公司的高精度圓光柵。
  • 基於FPGA高精度浮點運算器的FFT設計與仿真
    摘要 基於IEEE浮點表示格式及FFT算法,提出一種基2FFT的FPGA方法,完成了基於FPGA高精度浮點運算器的FFT的設計。利用VHDL語言描述了蝶形運算過程及地址產生單元,其仿真波形基本能正確的表示輸出結果。
  • 一種基於FPGA的全光纖電流互感器控制電路設計
    隨著FPGA技術的發展,FPGA不僅被用來進行精密時序控制,而且可以實現複雜數位訊號處理功能。本文利用FPGA來實現精密時序控制的同時,實現非常複雜的信號處理算法,並以FPGA為核心器件完成光纖電流互感器信號檢測和控制電路設計,利用該電路控制光纖電流互感器傳感頭進行電流測試和標定。試驗結果表明,系統控制精度達到0.2 S級測量準確度的要求。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    本文引用地址:http://www.eepw.com.cn/article/21345.htm 本次設計採用了性價比較高的數位訊號處理晶片tms320vc5509作為語音識別處理器,具有較快的處理速度,使機器人在脫機狀態下,獨立完成複雜的語音信號處理和動作指令控制,fpga系統的開發降低了時序控制電路和邏輯電路在pcb板所佔的面積[1],使機器人的"大腦"的語音處理部分微型化、低功耗。
  • 基於FPGA的高精度頻率電壓轉換系統設計實現
    傳感器輸出的脈衝頻率信號經信號調理電路調理後輸入FPGA,FPGA測量脈衝信號的頻率,根據系統精度要求,需設計Q格式定點運算,測得的頻率經FPGA定點運算後得到與頻率大小成線性關係的D/A轉換的數字量,控制串行DAC7551輸出相應的電壓值。實驗結果表明,系統的轉換精度優於0.1%,改變系統的設計參數可實現更高精度的頻率信號到電壓信號的轉換。
  • 基於FPGA的巴特沃茲IIR數字帶通濾波器設計
    其中IIR數字濾波器和FIR數字濾波器是目前人們使用較多的兩種。數字濾波器通常採用計算機軟體、專用數字濾波器、DSP器件或可編程邏輯器件(如FPGA) 實現。因為,用FPGA實現數字濾波器具有實時性強、靈活性高、處理速度快以及小批量生產成本低等優點,所以得到了較為廣泛的應用。本文以巴特沃思數字帶通濾波器為例,較為詳細地介紹了其設計和實現方法。
  • 基於FPGA的結構光圖像中心線提取
    編者按:在線結構光視覺三維測量系統中,為了實現對結構光圖像線條紋中心的實時高精度提取,本文採用了極值法、閾值法和灰度重心法相結合的中心線提取方法。利用現場可編程門陣列器件(FPGA)的流水線技術以及並行技術的硬體設計來完成運算,保證了光條紋中心點的實時準確提取。
  • 基於FPGA的RCN226絕對式編碼器通信接口設計
    本文研製了一種用於交流伺服系統中的基於FPGA的絕對式編碼器智能接口,實現與絕對式編碼器的雙工通信,接收高速數據流,同時在FPGA內部開闢RAM空間,將收到的編碼器數據存入RAM中,DSP可以以訪問內存的方式讀取數據,提高了工作速度。同時,該接口還具有奇偶校驗等糾錯功能,完全可以替代廠家提供的接收晶片,大幅度降低了產品成本。
  • 基於FPGA的VGA顯示模式和像素頻率的識別
    隨著數字影像技術的不斷發展,使得視頻採集卡的需求不斷增加,在電子通信與信息處理領域得到廣泛應用。而傳統的視頻採集卡硬體實現複雜,難於向便攜、嵌入的方向發展。因此,設計一種硬體簡單、使用方便、便於嵌入到系統中的視頻信號採集電路具有重要的意義。隨著FPGA(現場可編程門陣列)集成度的增加、功耗和價格的不斷降低,現在的視頻採集卡的實現可以由FPGA來實現。
  • 基於STC15W408S和HX711的高精度數字顯示電子秤的設計
    考慮到電子衡器的性價比、穩定度及精度,設計了一款集傳感器技術、電子技術和網絡技術於一體的多功能、小功耗、簡單易用、速度快的高精度數位化電子秤。  1、基於HX711的高精度電子秤結構與原理  高精度電子秤以STC15W408S單片機作為主控部件,連接各個子模塊,子模塊主要包括電源模塊、信號採集轉換模塊、LCD顯示模塊、鍵盤模塊以及報警模塊等,其系統原理圖如圖1所示。
  • YB4365/YB4345數字光標直讀示波器的設計與實現
    【摘 要】 設計了基於單片機W78E58控制的YB4365/4345數字光標直讀示波器系統,介紹了其功能特點及測試信號與字符顯示原理,重點闡述了該示波器的硬體設計。
  • 一種基於FPGA的實時紅外圖像預處理方法
    針對這一問題,提出一種基於FPGA的實時紅外圖像預處理方法。該方法採用了流水線技術來並行完成非均勻校正、空間濾波、直方圖統計等多個紅外圖像預處理算法,對系統結構進行了改進和優化。經過實驗測試驗證,該方法合理可行,能夠實時高效地完成紅外圖像預處理任務。與DSP圖像預處理系統相比可以節約將近50%的處理時間。
  • 基於FPGA+MATLAB的串行多階FIR濾波器設計
    本文引用地址:http://www.eepw.com.cn/article/236081.htm關鍵詞 FPGA;FIR數字濾波器;Matlab;仿真數字濾波器是用於過濾時間離散信號的數字系統,通過對抽樣數據進行數學處理達到頻域濾波的目的。
  • 最新版頻率計的測量方法以及基本原理
    頻率計又稱為頻率計數器,是一種專門對被測信號頻率進行測量的電子測量儀器。頻率計主要由四個部分構成:時基(T)電路、輸入電路、計數顯示電路以及控制電路。   頻率,即是信號周期的倒數,也就是說,信號每單位時間完成周期的個數,一般取一秒為基本單位時間。
  • 高精度數字失真度測量儀的設計
    這種方式的失真度儀的性能主要依賴於硬體設計,調試和校準工作煩瑣,一般只能實現固定1個或幾個頻率的失真度測量,其測量誤差隨著失真度降低而加大,並且隨著器件老化,電路的穩定性和可靠性降低。  諧波分析法類似於頻譜分析,通常是藉助數字方式的以FFF(快速傅立葉變換)為基礎的算法,或者採用模擬方式的選頻測量方法,從而獲得基波和各次諧波的功率,計算出失真度。
  • 基於FPGA的複數浮點協方差矩陣實現
    O 引言 協方差矩陣的計算是信號處理領域的典型運算,是實現多級嵌套維納濾波器、空間譜估計、相干源個數估計以及仿射不變量模式識別的關鍵部分,廣泛應用於雷達、聲吶、數字圖像處理等領域。
  • 基於fpga二維小波變換核的實時可重構電路
    項目背景及可行性分析本文引用地址:http://www.eepw.com.cn/article/266432.htm  2.1 項目名稱及摘要:  基於fpga二維小波變換核的實時可重構電路  現場可編程門陣列為可進化設計提供了一個理想的模板
  • 基於OMAP-L138的數字示波器硬體設計
    最大限度提高實時採樣率和波形捕獲能力成為了國內外眾多數字示波器生產廠商研究的重點,實時採樣率和波形捕獲率的提高又必然帶來大量高速波形數據的傳輸、保存和處理的問題。因此,作為數字示波器數據處理和系統控制的中樞,微處理器性能至關重要。本文選用TI公司的雙核 DSP OMAP-L138作為本設計的微處理器,並實現了一種數字示波器微處理器硬體設計。
  • 基於FPGA的交流電測量儀的設計
    目前根據採集信號的不同,可分直流採樣和交流採樣兩種方式,直流採樣雖然設計簡單,但無法實現實時信號的採集;變送器的精度和穩定性對測量精度有很大影響,無法滿足電力系統實時性、可靠性的要求 。交流採樣法按照一定規律對被測信號的瞬時值進行實時採樣, 再按設計的算法進行數值處理, 從而獲得測量值。與直流採樣法相比更易獲得高精度、高穩定性的測量結果。
  • 基於AD5933的高精度生物阻抗測量方法*
    目前針對生物阻抗測量系統的研究和文章很多,主要集中在對整個測量系統某組成部分的設計。顯然,這些研究和設計工作均在某一方面對生物阻抗測量系統的精度提高做出了貢獻,但是單一的方法對精度的提高有限,本文採用ADI公司的高度集成的阻抗測量晶片AD5933設計了一種精度高的阻抗測量方法,利用比例測量,DFT數字解調,軟體校準和補償四項技術,整體上提高了系統的測量精度。