基于FPGA的多通道頻率測量系統(tǒng)設計
摘要:設計了一種多通道頻率測量系統(tǒng)。系統(tǒng)由模擬開關、信號調理電路、FPGA、總線驅動電路構成,實現(xiàn)對頻率信號的分壓、放大、濾波、比較、測量,具備回路自測試功能,可與主設備進行數據交互,具有精度高、可擴展、易維護的特點,有一定的工程應用價值。
頻率測量電路是很多檢測與控制系統(tǒng)的重要組成部分,在航空機載計算機領域具有廣泛的應用環(huán)境。隨著檢測與控制系統(tǒng)復雜程度的提高,頻率測量電路也被提出了新的要求,例如多通道實時采集、高精度測量等。FPGA的特點是完全由用戶通過軟件進行配置和編程,從而完成某種特定的功能,且可以反復擦寫,因此,以FPGA為核心進行電路搭建已成為當前數字系統(tǒng)設計的主流方法。本文利用FPGA設計了一種多通道頻率測量系統(tǒng),易于擴展,精度較高,符合實際的需求。
1 系統(tǒng)硬件設計
系統(tǒng)硬件由模擬開關、信號調理電路、FPGA及其外圍電路、總線驅動電路構成。
模擬開關完成對頻率信號輸入通道的切換,當系統(tǒng)處于正常工作狀態(tài)時,外部輸入的正弦信號經模擬開關進入后級電路,進行頻率測量;當系統(tǒng)處于自測試狀態(tài)時,由FPGA產生一個頻率恒定的方波信號,該信號經模擬開關進入后級電路進行頻率測量,通過對比設定頻率和測量頻率的一致性來監(jiān)測整個系統(tǒng)是否存在故障點。
信號調理電路完成對正弦信號的前級處理,設計準則是滿足全頻段信號的調理需求,分以下幾級電路:1)使用3個阻值相同的電阻對正弦信號進行1/3分壓,防止高頻信號的幅值超過放大器及比較器的輸入電壓閾值;2)使用儀表放大器對正弦信號進行放大,原因是低頻信號的幅值低于比較電壓,如果不進行放大就不具備比較意義,而且放大器具有輸出電壓飽和特性,不會造成放大器的輸出電壓超過比較器的輸入電壓閾值;3)使用運算放大器及分立的阻容對正弦信號進行二階RC濾波;4)使用比較器將正弦信號轉換成方波信號,供FPGA采集。
FPGA及其外圍電路是整個測量系統(tǒng)的核心。外圍電路包括以下幾個部分:1)電源轉換電路,將5V電源轉換為FPGA工作必需的3.3 V及2.5 V電源;2)程序存儲器電路,負責存儲可執(zhí)行邏輯代碼,供FPGA工作時調用;3)JTAG接口電路,方便開發(fā)者進行可編程邏輯的燒寫和調試。FPGA主要完成以下幾個功能:1)產生1路用于系統(tǒng)自測試的幅值為3.3 V、頻率為100 Hz的方波信號;2)進行邏輯譯碼,根據總線指令控制模擬開關及總線驅動芯片的動作;3)對輸入信號進行數字濾波,測量信號頻率,并將計算結果送到數據總線上供主設備采集。
總線驅動電路是測量系統(tǒng)與主設備進行數據交互的橋梁,完成FPGA電平與LBE總線電平之間的相互轉換,并配合讀寫時序控制數據的流通方向。當測量系統(tǒng)不需要與主設備進行通信時,關閉輸出使能開關,保證測量系統(tǒng)的數據不會干擾到總線數據。
系統(tǒng)硬件結構框圖如圖1所示。
2 可編程邏輯設計
2.1 測頻公式
測量頻率的方法主要有兩種:
1)測頻法。在給定時間T(N個基準信號f0)內對被測信號進行周期計數,計數值為M,則被測信號的頻率為:
由于計數器只能計整數,所以誤差由△M=±1引起,計算結果的誤差為:
由式(2)可以看出,在時間T一定的情況下,頻率越高,相對誤差越小。
2)測周法。在被測信號一個周期內對基準脈沖f0計數,計數值為M,則被測信號的頻率為:
由于計數器只能計整數,所以誤差由△M=±1引起,計算結果的誤差為:
由式(4)可以看出,在基準脈沖f0一定的情況下,頻率越低,相對誤差越小。
綜上所述,測頻法比較適合高頻信號,測周法比較適合低頻信號。本系統(tǒng)測量的正弦信號頻率范圍為20~3 300 Hz,為了提高測量精度,選用測周法的思想設計可編程邏輯電路。
2.2 可編程邏輯設計
可編程邏輯采用模塊化的設計思想,根據不同數量的通道需求,重復“調用”測頻模塊,配置邏輯電路,便于進行功能擴展。測頻電路的原理如圖2所示,圖中帶有“D”字樣的功能塊表示D觸發(fā)器,帶有“mux”字樣的功能塊表示多路選擇器,帶有“count”或“cnt”字樣的功能塊表示計數器。
頻率測量的過程主要分為四個步驟:輸入信號同步、數字濾波、頻率計數、計數值輸出。
1)由于輸入被測頻率信號fre_in為異步信號,因此需要經過兩級同步器對其進行同步處理,得到同步后的頻率信號fre_reg1、fre_ reg2。
2)由于系統(tǒng)時鐘頻率為33 MHz,被測頻率信號的頻率相對較低,為了減少毛刺對頻率測量的影響,同時達到系統(tǒng)要求的可測頻率范圍,可對同步后的頻率信號進行濾波處理,其上限截止頻率設為3 300 Hz,濾除毛刺信號,生成真實的被測頻率信號。其實現(xiàn)方法為:設置兩個減法計數器pos_num和neg_num,分別在fre_reg2的高電子和低電子期間進行計數,其初始值均為4999。當pos_num和neg_num均可計數到0時,說明fre_reg2信號的頻率不超過3300Hz,生成真實的被測頻率信號fre_real1信號;如果pos_num和neg_num計數值不能達到0,則說明fre_ reg2信號頻率大于3 300 Hz,將被視為毛刺信號被過濾掉。
3)對過濾后的真實被測頻率信號fre_real1進行上升沿判斷,以確定頻率計數的起始與結束,控制頻率計數器的計數與輸出過程。
4)計數值輸出過程中,需設置count_delay來判斷頻率信號的周期是否大于1s,如果成立,則認定外部無頻率信號輸入,輸出值置為NAN(表示無窮大)。同時,系統(tǒng)啟動過程中頻率計數器已經開始工作,為了保證頻率計數的正確性,可設計cnt計數器,丟棄初次計數值。最后,將有效的計數值輸出給fre_data。
3 仿真驗證
使用ModelSim對可編程邏輯進行仿真。測量對象為1000 Hz方波信號,時鐘頻率為33 M,因此時鐘計數值應該是33 000。任選信號周期內的一個時刻作為系統(tǒng)復位點,仿真結果如圖3所示。從圖3可以看出,fre_data的值在第三個start信號凸起后變?yōu)?3 000,與理論值完全一致,說明設計有效。
4 實測數據
使用信號發(fā)生器提供不同頻率的正弦信號,對系統(tǒng)進行實測,所選取的頻率測試點覆蓋整個實際應用的頻率范圍,即20~3 300 Hz,且可以驗證可編程邏輯電路的數字濾波及延時判斷功能。同時,為了更好的模擬發(fā)動機實際情況,正弦信號的幅值應隨著其頻率的增大而增大。實測數據如表1所示。
從表1可以看出,當輸入信號的頻率小于1Hz時,系統(tǒng)的延時判斷功能生效,實測值為NAN(無窮大);當輸入信號的頻率大于3 300 Hz時,系統(tǒng)的數字濾波功能生效,實測值為0;當輸入信號的頻率介于1~3 300 Hz之間時,實測值的相對誤差不超過0.4%,與實際頻率基本一致。
5 結束語
文章提出了一種基于FPGA的多通道頻率測量系統(tǒng)的實現(xiàn)方法,主要創(chuàng)新點是利用可編程邏輯芯片搭建數字濾波電路,通過邏輯分析判別輸入信號是否切斷并做出響應,符合實際應用的需求。系統(tǒng)的擴展性強,電路結構相對簡單,仿真及實測結果表明濾波效果明顯,測量精度較高,在工程領域具備適用價值。