按鍵消抖 1功能概述 按鍵開關(guān)是各種電子設(shè)備不可或缺的人機接口,,如電腦的鍵盤等。實際應(yīng)用中,,按鍵開關(guān)通常為機械式彈性開關(guān),。當機械點斷開、閉合時,,由于機械觸點的彈性作用,,一個按鍵開關(guān)在閉合時不會馬上穩(wěn)定接通,斷開時也不會馬上斷開,,在閉合和斷開的瞬間均伴隨有一連串的抖動,。為保證系統(tǒng)及時正確識別,必須對這種情況作出相應(yīng)處理,。我們稱之為按鍵消抖,。 按鍵消抖可分為硬件消抖和軟件消抖。硬件消抖的原理是在信號輸入系統(tǒng)之前消除抖動干擾,,在按鍵較少的情況下比較適宜,。如果按鍵較多,則使用軟件消抖,。軟件消抖的實質(zhì)在于降低鍵盤輸入端口的采樣頻率,,將高頻抖動略去。需要注意的是,,軟件消抖需要占據(jù)一定的系統(tǒng)資源,。 盡管硬件消抖和軟件消抖能實現(xiàn)按鍵消抖功能,串行處理的方式都存在一定的局限性,,顯得不那么完美,。而硬件資源豐富的FPGA系統(tǒng)采用并行處理的模式,利用硬件來減輕軟件工作量,,通過硬件加速軟件消抖處理,,即可做到軟件消抖并行化,,因而在按鍵消抖處理方面具備非常明顯的優(yōu)勢。 優(yōu)秀的設(shè)計程序應(yīng)該是用最簡單的代碼(架構(gòu),、信號)實現(xiàn)功能,。在本例中,我們的只需要用4個信號界定,,并用很短的代碼即可,。下面我們先來看看功能要求: 在系統(tǒng)設(shè)計中,消除按鍵抖動的方法五花八門,,無論是硬件電路和軟件設(shè)計都十分成熟,。在本項目中,我們將用Verilog語言給出具體實現(xiàn)過程,,設(shè)計一個程序來檢查鍵值,,有效濾除按鍵抖動區(qū)間20 ms的毛刺脈沖。
2 設(shè)計思路 一般按鍵所用開關(guān)為機械彈性開關(guān),,由于機械觸點的彈性作用,每個按鍵開關(guān)在閉合時不會馬上穩(wěn)定地接通,,在斷開時也不會一下子斷開,。因而在閉合及斷開的瞬間均伴隨有一連串的抖動,如下圖,。抖動時間的長短由按鍵的機械特性決定,,一般為5 ms~10 ms。
圖1 按鍵抖動過程示意 當系統(tǒng)檢測出按鍵閉合后,,執(zhí)行一個延時程序,,產(chǎn)生5ms~10ms的延時;前沿抖動消失后,,再一次檢測鍵的狀態(tài),;如果仍保持閉合狀態(tài)電平,則確認為真正有鍵按下,。當檢測到按鍵釋放后,,也要給5ms~10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序,。本案例我們設(shè)置經(jīng)過20 ms后的高電平才是真正的按鍵功能,。 信號列表如下:
3 程序設(shè)計 模塊代碼
|
|
來自: FPGA培訓(xùn) > 《待分類》