基于FPGA的多通道頻率測量系統設計
摘要:設計了一種多通道頻率測量系統。系統由模擬開(kāi)關(guān)、信號調理電路、FPGA、總線(xiàn)驅動(dòng)電路構成,實(shí)現對頻率信號的分壓、放大、濾波、比較、測量,具備回路自測試功能,可與主設備進(jìn)行數據交互,具有精度高、可擴展、易維護的特點(diǎn),有一定的工程應用價(jià)值。
本文引用地址:http://dyxdggzs.com/article/201610/309017.htm頻率測量電路是很多檢測與控制系統的重要組成部分,在航空機載計算機領(lǐng)域具有廣泛的應用環(huán)境。隨著(zhù)檢測與控制系統復雜程度的提高,頻率測量電路也被提出了新的要求,例如多通道實(shí)時(shí)采集、高精度測量等。FPGA的特點(diǎn)是完全由用戶(hù)通過(guò)軟件進(jìn)行配置和編程,從而完成某種特定的功能,且可以反復擦寫(xiě),因此,以FPGA為核心進(jìn)行電路搭建已成為當前數字系統設計的主流方法。本文利用FPGA設計了一種多通道頻率測量系統,易于擴展,精度較高,符合實(shí)際的需求。
1 系統硬件設計
系統硬件由模擬開(kāi)關(guān)、信號調理電路、FPGA及其外圍電路、總線(xiàn)驅動(dòng)電路構成。
模擬開(kāi)關(guān)完成對頻率信號輸入通道的切換,當系統處于正常工作狀態(tài)時(shí),外部輸入的正弦信號經(jīng)模擬開(kāi)關(guān)進(jìn)入后級電路,進(jìn)行頻率測量;當系統處于自測試狀態(tài)時(shí),由FPGA產(chǎn)生一個(gè)頻率恒定的方波信號,該信號經(jīng)模擬開(kāi)關(guān)進(jìn)入后級電路進(jìn)行頻率測量,通過(guò)對比設定頻率和測量頻率的一致性來(lái)監測整個(gè)系統是否存在故障點(diǎn)。
信號調理電路完成對正弦信號的前級處理,設計準則是滿(mǎn)足全頻段信號的調理需求,分以下幾級電路:1)使用3個(gè)阻值相同的電阻對正弦信號進(jìn)行1/3分壓,防止高頻信號的幅值超過(guò)放大器及比較器的輸入電壓閾值;2)使用儀表放大器對正弦信號進(jìn)行放大,原因是低頻信號的幅值低于比較電壓,如果不進(jìn)行放大就不具備比較意義,而且放大器具有輸出電壓飽和特性,不會(huì )造成放大器的輸出電壓超過(guò)比較器的輸入電壓閾值;3)使用運算放大器及分立的阻容對正弦信號進(jìn)行二階RC濾波;4)使用比較器將正弦信號轉換成方波信號,供FPGA采集。
FPGA及其外圍電路是整個(gè)測量系統的核心。外圍電路包括以下幾個(gè)部分:1)電源轉換電路,將5V電源轉換為FPGA工作必需的3.3 V及2.5 V電源;2)程序存儲器電路,負責存儲可執行邏輯代碼,供FPGA工作時(shí)調用;3)JTAG接口電路,方便開(kāi)發(fā)者進(jìn)行可編程邏輯的燒寫(xiě)和調試。FPGA主要完成以下幾個(gè)功能:1)產(chǎn)生1路用于系統自測試的幅值為3.3 V、頻率為100 Hz的方波信號;2)進(jìn)行邏輯譯碼,根據總線(xiàn)指令控制模擬開(kāi)關(guān)及總線(xiàn)驅動(dòng)芯片的動(dòng)作;3)對輸入信號進(jìn)行數字濾波,測量信號頻率,并將計算結果送到數據總線(xiàn)上供主設備采集。
總線(xiàn)驅動(dòng)電路是測量系統與主設備進(jìn)行數據交互的橋梁,完成FPGA電平與LBE總線(xiàn)電平之間的相互轉換,并配合讀寫(xiě)時(shí)序控制數據的流通方向。當測量系統不需要與主設備進(jìn)行通信時(shí),關(guān)閉輸出使能開(kāi)關(guān),保證測量系統的數據不會(huì )干擾到總線(xiàn)數據。
系統硬件結構框圖如圖1所示。

2 可編程邏輯設計
2.1 測頻公式
測量頻率的方法主要有兩種:
1)測頻法。在給定時(shí)間T(N個(gè)基準信號f0)內對被測信號進(jìn)行周期計數,計數值為M,則被測信號的頻率為:

由于計數器只能計整數,所以誤差由△M=±1引起,計算結果的誤差為:

由式(2)可以看出,在時(shí)間T一定的情況下,頻率越高,相對誤差越小。
2)測周法。在被測信號一個(gè)周期內對基準脈沖f0計數,計數值為M,則被測信號的頻率為:

由于計數器只能計整數,所以誤差由△M=±1引起,計算結果的誤差為:

由式(4)可以看出,在基準脈沖f0一定的情況下,頻率越低,相對誤差越小。
綜上所述,測頻法比較適合高頻信號,測周法比較適合低頻信號。本系統測量的正弦信號頻率范圍為20~3 300 Hz,為了提高測量精度,選用測周法的思想設計可編程邏輯電路。
2.2 可編程邏輯設計
可編程邏輯采用模塊化的設計思想,根據不同數量的通道需求,重復“調用”測頻模塊,配置邏輯電路,便于進(jìn)行功能擴展。測頻電路的原理如圖2所示,圖中帶有“D”字樣的功能塊表示D觸發(fā)器,帶有“mux”字樣的功能塊表示多路選擇器,帶有“count”或“cnt”字樣的功能塊表示計數器。

頻率測量的過(guò)程主要分為四個(gè)步驟:輸入信號同步、數字濾波、頻率計數、計數值輸出。
1)由于輸入被測頻率信號fre_in為異步信號,因此需要經(jīng)過(guò)兩級同步器對其進(jìn)行同步處理,得到同步后的頻率信號fre_reg1、fre_ reg2。
2)由于系統時(shí)鐘頻率為33 MHz,被測頻率信號的頻率相對較低,為了減少毛刺對頻率測量的影響,同時(shí)達到系統要求的可測頻率范圍,可對同步后的頻率信號進(jìn)行濾波處理,其上限截止頻率設為3 300 Hz,濾除毛刺信號,生成真實(shí)的被測頻率信號。其實(shí)現方法為:設置兩個(gè)減法計數器pos_num和neg_num,分別在fre_reg2的高電子和低電子期間進(jìn)行計數,其初始值均為4999。當pos_num和neg_num均可計數到0時(shí),說(shuō)明fre_reg2信號的頻率不超過(guò)3300Hz,生成真實(shí)的被測頻率信號fre_real1信號;如果pos_num和neg_num計數值不能達到0,則說(shuō)明fre_ reg2信號頻率大于3 300 Hz,將被視為毛刺信號被過(guò)濾掉。
3)對過(guò)濾后的真實(shí)被測頻率信號fre_real1進(jìn)行上升沿判斷,以確定頻率計數的起始與結束,控制頻率計數器的計數與輸出過(guò)程。
4)計數值輸出過(guò)程中,需設置count_delay來(lái)判斷頻率信號的周期是否大于1s,如果成立,則認定外部無(wú)頻率信號輸入,輸出值置為NAN(表示無(wú)窮大)。同時(shí),系統啟動(dòng)過(guò)程中頻率計數器已經(jīng)開(kāi)始工作,為了保證頻率計數的正確性,可設計cnt計數器,丟棄初次計數值。最后,將有效的計數值輸出給fre_data。
3 仿真驗證
使用ModelSim對可編程邏輯進(jìn)行仿真。測量對象為1000 Hz方波信號,時(shí)鐘頻率為33 M,因此時(shí)鐘計數值應該是33 000。任選信號周期內的一個(gè)時(shí)刻作為系統復位點(diǎn),仿真結果如圖3所示。從圖3可以看出,fre_data的值在第三個(gè)start信號凸起后變?yōu)?3 000,與理論值完全一致,說(shuō)明設計有效。

4 實(shí)測數據
使用信號發(fā)生器提供不同頻率的正弦信號,對系統進(jìn)行實(shí)測,所選取的頻率測試點(diǎn)覆蓋整個(gè)實(shí)際應用的頻率范圍,即20~3 300 Hz,且可以驗證可編程邏輯電路的數字濾波及延時(shí)判斷功能。同時(shí),為了更好的模擬發(fā)動(dòng)機實(shí)際情況,正弦信號的幅值應隨著(zhù)其頻率的增大而增大。實(shí)測數據如表1所示。

從表1可以看出,當輸入信號的頻率小于1Hz時(shí),系統的延時(shí)判斷功能生效,實(shí)測值為NAN(無(wú)窮大);當輸入信號的頻率大于3 300 Hz時(shí),系統的數字濾波功能生效,實(shí)測值為0;當輸入信號的頻率介于1~3 300 Hz之間時(shí),實(shí)測值的相對誤差不超過(guò)0.4%,與實(shí)際頻率基本一致。
5 結束語(yǔ)
文章提出了一種基于FPGA的多通道頻率測量系統的實(shí)現方法,主要創(chuàng )新點(diǎn)是利用可編程邏輯芯片搭建數字濾波電路,通過(guò)邏輯分析判別輸入信號是否切斷并做出響應,符合實(shí)際應用的需求。系統的擴展性強,電路結構相對簡(jiǎn)單,仿真及實(shí)測結果表明濾波效果明顯,測量精度較高,在工程領(lǐng)域具備適用價(jià)值。
評論