兩種基于FPGA的軟件濾波方法
隨著數(shù)字電子技術(shù)的發(fā)展,數(shù)字電路已由早期的分立元件逐漸發(fā)展成集成電路,對電路設(shè)計的要求越來越高。尤其是可編程邏輯器件的出現(xiàn),使得以硬件為載體、以計算機軟件為開發(fā)環(huán)境的現(xiàn)代數(shù)字系統(tǒng)的設(shè)計方法日趨成熟。可編程邏輯器件設(shè)計靈活、功能強大、可在線修改、效率高等優(yōu)點深受廣大電子設(shè)計人員青睞。目前,大多數(shù)現(xiàn)場可編程邏輯陣列( FPGA)芯片是電壓敏感型芯片,基于可重構(gòu)CMOS-SRAM單元結(jié)構(gòu),數(shù)據(jù)具有易失性,工作在低電壓狀態(tài),易受干擾,尤其在工控、軍用場合,外界電磁環(huán)境惡劣,電路耦合、空間輻射的雜波脈沖均會對FPGA工作的穩(wěn)定性產(chǎn)生影響。
干擾脈沖和毛刺信號是影響FPGA穩(wěn)定工作的主要因素,為了保證輸入信號每變化一次,電路只做出一次正確的響應(yīng),必須對輸入信號進行濾波處理。要實現(xiàn)信號濾波可以采用硬件濾波和軟件濾波兩種方法。與硬件濾波相比,軟件濾波不需要硬件電路的支持,從而可以減少元器件的使用,降低成本,更重要的是軟件濾波更易于修改,所以常采用軟件濾波的方法來實現(xiàn)電路中的信號濾波問題。通過VHDL語言編程實現(xiàn)信號濾波功能,介紹了延時濾波法和判決濾波法,并通過實驗證明了上述兩種濾波方法的可靠性。
1延時濾波
延時濾波法的濾波原理是對輸入信號的脈沖寬度進行鑒別,對那些與真實信號的寬度相差很大的干擾信號進行有效的抑制。具體的實現(xiàn)流程為在檢測到輸入信號的狀態(tài)發(fā)生變化后,延時一段時間T,脈沖寬度小于延時時間T的輸入信號被認為是干擾信號,將其濾除;脈沖寬度大于延時時間T的輸入信號則被認為是真實信號,將其輸出。針對不同脈沖寬度的干擾信號,可以通過設(shè)置不同的參數(shù)來實現(xiàn)相應(yīng)的信號延時,從而達到有效濾波的目的。
1. 1延時時間T的確定
延時時間T取決干擾信號的脈沖寬度T‘。延時時間T太短( T>T‘),會造成資源的浪費,降低電路的工作效率。
這里以某型號的扭子開關(guān)輸入信號為例來介紹如何確定延時時間T.由于扭子開關(guān)的機械觸點存在彈性作用,當撥動開關(guān)時,都不可避免地要在觸點閉合及斷開的瞬間產(chǎn)生一連串的抖動。為了能夠更準確地估測撥動開關(guān)時產(chǎn)生的干擾脈沖寬度T',可以用示波器對開關(guān)信號進行多次測量,經(jīng)測量發(fā)現(xiàn)這種扭子開關(guān)信號的抖動時間不會超過1.5ms.圖1為沒有經(jīng)過濾波處理的開關(guān)信號波形。
圖1中,橫坐標表示時間,每格代表50μs,縱坐標表示電壓,每格表示1 V.從圖中可以明顯看出,在開關(guān)信號達到穩(wěn)定狀態(tài)之前,有一連串的抖動,抖動時間不到1. 5 ms.這里根據(jù)實際情況,確定延時時間T = 2 ms.
1. 2延時濾波程序設(shè)計
延時濾波程序采用一個計數(shù)器來實現(xiàn),計數(shù)器的模值N取決于延時時間T和采樣時鐘CLK的周期TCLK.若計數(shù)器的初始值為0時,則N = T /TCLK-1.圖2為編寫延時濾波程序的流程圖。
圖1未經(jīng)過濾波處理的開關(guān)信號
圖2延遲濾波程序流程圖
當檢測到開關(guān)信號的狀態(tài)發(fā)生變化時(這里以由‘0’變到‘1’為例),計數(shù)器開始計時,當計數(shù)器的計數(shù)值計到N時,如果開關(guān)信號仍保持為變化之后的狀態(tài)‘1’,則輸出‘1’,否則,認為這是一個干擾脈沖,將其濾除。
當采樣時鐘的頻率為5 kHz時,TCLK = 0. 2 ms,要實現(xiàn)2 ms的延時時間,若計數(shù)器初始值為0,那么計數(shù)器模值N = 9.具體的VHDL語言程序進程如下:
濾波器相關(guān)文章:濾波器原理
fpga相關(guān)文章:fpga是什么
濾波器相關(guān)文章:濾波器原理
電源濾波器相關(guān)文章:電源濾波器原理
塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理 脈沖點火器相關(guān)文章:脈沖點火器原理 數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理
評論