發布日期:2022-04-27 點擊率:10
輸入信號為例來介紹如何確定延時時間T。由于扭子開關的機械觸點存在彈性作用,當撥動開關時,都不可避免地要在觸點閉合及斷開的瞬間產生一連串的抖動。為了能夠更準確地估測撥動開關時產生的干擾脈沖寬度T‘,可以用示波器對開關信號進行多次測量,經測量發現這種扭子開關信號的抖動時間不會超過1. 5ms。圖1 為沒有經過濾波處理的開關信號波形。
圖1 中,橫坐標表示時間,每格代表50 μs,縱坐標表示電壓,每格表示1 V。從圖中可以明顯看出,在開關信號達到穩定狀態之前,有一連串的抖動,抖動時間不到1. 5 ms。這里根據實際情況,確定延時時間T = 2 ms。
1. 2 延時濾波程序設計
延時濾波程序采用一個計數器來實現,計數器的模值N 取決于延時時間T 和采樣時鐘CLK 的周期TCLK。若計數器的初始值為0 時,則N = T /TCLK -1。圖2 為編寫延時濾波程序的流程圖。
圖1 未經過濾波處理的開關信號
圖2 延遲濾波程序流程圖
當檢測到開關信號的狀態發生變化時( 這里以由‘0’變到‘1’為例) ,計數器開始計時,當計數器的計數值計到N 時,如果開關信號仍保持為變化之后的狀態‘1’,則輸出‘1’,否則,認為這是一個干擾脈沖,將其濾除。
當采樣時鐘的頻率為5 kHz 時,TCLK = 0. 2 ms,要實現2 ms 的延時時間,若計數器初始值為0,那么計數器模值N = 9。具體的VHDL 語言程序進程如下:
1. 3 延時濾波程序仿真
分別將開關信號din 設置成理想信號和抖動信號,利用QuartusⅡ8. 0 軟件進行仿真,圖3 和圖4 分別為理想信號和抖動信號的延時濾波仿真波形圖。
圖3 理想開關信號延時濾波仿真波形
圖4 抖動開關信號延時濾波仿真波形
圖中clk 為采樣時鐘,glrn 為復位信號,din 為開關輸入信號,dout 為延時濾波輸出信號。從圖3可以看出,從開關信號發生變化到輸出發生變化的時間延時為2 ms,從圖4 中可以看出,此延時濾波程序有效消除了扭子開關的抖動干擾,驗證了其理論可行性。
1. 4 延時濾波程序實際驗證
為了驗證此延時濾波程序的實際濾波效果,將其下載到Xilinx 公司的Spartan3 系列FPGA 芯片XC3S400 中,用示波器多次測量經過濾波后的開關信號,得到圖5 所示的輸出信號波形。圖5 中,橫坐標表示時間,每格代表10 μs,縱坐標表示電壓,每格表示1 V。從圖5 可以看出,經過濾波后的開關信號不再有抖動現象,此延時濾波程序的實際可靠性得到驗證。
圖5 延時濾波后的輸出信號波形
1. 5 延時濾波程序資源占用率
在電子電路的設計中,FPGA 的資源占用率是我們應該考慮的一個重要問題。如果FPGA 的資源占用率太大,會加重FPGA 的負擔,影響整個電路的運行速度。表1 為延時濾波程序在XC3S400 芯片中的資源占用情況。
表1 延時濾波程序的資源占用情況
1. 6 延時濾波的特點
延時濾波比較適合對脈沖寬度已知的干擾信號進行濾波,這樣可以更準確地確定延時時間,既不會因為延時時間太短而導致濾波不理想,又不會因為延時時間過長而導致資源浪費。而且,延時程序不僅可以有效地消除開關類信號的抖動,還可以濾去干擾、噪音等其他尖峰波,抗干擾強,可靠性高。
如果電路中存在多路輸入信號時,當檢測到任意一路輸入信號狀態發生變化時即執行延時程序,在執行延時程序的過程中將檢測不到其他輸入狀態的變化,所以能夠識別的動作間隔不可能小于延時時間T,特別是當多路輸入信號的狀態集中在短時間內變化時,電路的性能會嚴重下降。并且,由于頻繁執行延時程序,會影響系統的效率和實時性。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV