1功能概述
按鍵開(kāi)關(guān)是各種電子設(shè)備不可或缺的人機(jī)接口个绍,如電腦的鍵盤等勒葱。實(shí)際應(yīng)用中,按鍵開(kāi)關(guān)通常為機(jī)械式彈性開(kāi)關(guān)巴柿。當(dāng)機(jī)械點(diǎn)斷開(kāi)凛虽、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用广恢,一個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定接通凯旋,斷開(kāi)時(shí)也不會(huì)馬上斷開(kāi),在閉合和斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng)钉迷。為保證系統(tǒng)及時(shí)正確識(shí)別至非,必須對(duì)這種情況作出相應(yīng)處理。我們稱之為按鍵消抖篷牌。
按鍵消抖可分為硬件消抖和軟件消抖睡蟋。硬件消抖的原理是在信號(hào)輸入系統(tǒng)之前消除抖動(dòng)干擾,在按鍵較少的情況下比較適宜枷颊。如果按鍵較多戳杀,則使用軟件消抖。軟件消抖的實(shí)質(zhì)在于降低鍵盤輸入端口的采樣頻率夭苗,將高頻抖動(dòng)略去信卡。需要注意的是,軟件消抖需要占據(jù)一定的系統(tǒng)資源题造。
盡管硬件消抖和軟件消抖能實(shí)現(xiàn)按鍵消抖功能傍菇,串行處理的方式都存在一定的局限性,顯得不那么完美界赔。而硬件資源豐富的FPGA系統(tǒng)采用并行處理的模式丢习,利用硬件來(lái)減輕軟件工作量牵触,通過(guò)硬件加速軟件消抖處理,即可做到軟件消抖并行化咐低,因而在按鍵消抖處理方面具備非常明顯的優(yōu)勢(shì)揽思。
優(yōu)秀的設(shè)計(jì)程序應(yīng)該是用最簡(jiǎn)單的代碼(架構(gòu)、信號(hào))實(shí)現(xiàn)功能见擦。在本例中钉汗,我們的只需要用4個(gè)信號(hào)界定,并用很短的代碼即可鲤屡。下面我們先來(lái)看看功能要求:
在系統(tǒng)設(shè)計(jì)中损痰,消除按鍵抖動(dòng)的方法五花八門,無(wú)論是硬件電路和軟件設(shè)計(jì)都十分成熟酒来。在本項(xiàng)目中卢未,我們將用Verilog語(yǔ)言給出具體實(shí)現(xiàn)過(guò)程,設(shè)計(jì)一個(gè)程序來(lái)檢查鍵值堰汉,有效濾除按鍵抖動(dòng)區(qū)間20 ms的毛刺脈沖尝丐。
2設(shè)計(jì)思路
一般按鍵所用開(kāi)關(guān)為機(jī)械彈性開(kāi)關(guān),由于機(jī)械觸點(diǎn)的彈性作用衡奥,每個(gè)按鍵開(kāi)關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開(kāi)時(shí)也不會(huì)一下子斷開(kāi)远荠。因而在閉合及斷開(kāi)的瞬間均伴隨有一連串的抖動(dòng)矮固,如下圖。抖動(dòng)時(shí)間的長(zhǎng)短由按鍵的機(jī)械特性決定譬淳,一般為5 ms~10 ms档址。