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