《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > FPGA按鍵模式的研究與設計

FPGA按鍵模式的研究與設計

2009-03-19
作者:肖 看,朱光喜,劉文予

  摘 要: 對FPGA設計中使用按鍵的常見方式進行歸納概括,提出單鍵復鍵兩類共5種典型的按鍵模式:琴鍵、脈沖、乒乓、連發和長鍵模式,并對每種按鍵模式進行了分析與設計,同時給出了設計綜合的仿真結果。
  關鍵詞: FPGA;按鍵模式;抖動;單鍵;復鍵

?

  在FPGA系統設計中,按鍵是最常見的人機交互接口部件。在沒有微控制器參與的情況下,FPGA系統中按鍵的功能相對較弱,通常可以將按鍵抖動和按鍵處理結合起來統一考慮。關于按鍵的機械抖動問題,在以文獻[1]和文獻[2]為代表的一類文章中均有討論;關于矩陣形式的鍵盤掃描問題,在以文獻[3]和文獻[4]為代表的一類文章中有論述。值得關注的是,在文獻[3]中提到過對按鍵處理“能表示長時間按鍵的操作”的要求;在文獻[4]中也涉及到“單擊和連擊”兩種擊鍵情況。不論是文獻[3]的按鍵操作,還是文獻[4]的擊鍵操作,都可歸結為按鍵模式問題。目前針對FPGA按鍵模式討論的文章很少,因此本文專門探討FPGA的按鍵模式。
1 FPGA按鍵模式的分類
  常見的按鍵模式分為單鍵模式和復鍵模式兩類。所謂單鍵類,就是一次按鍵最多只能輸出一個有效鍵;而復鍵類,則指一次按鍵可以輸出多個有效鍵,通常通過按鍵時間的長短來區別多個有效鍵。
  單鍵類一般有三種按鍵模式:琴鍵模式、脈沖模式、乒乓模式。在琴鍵模式下,按下鍵時輸出有效電平,釋放鍵時輸出無效電平。在脈沖模式下,每按下一次鍵只輸出一個特定寬度的有效脈沖,其寬度常與時鐘寬度相同,可以直接用做計數脈沖。在乒乓模式下,每按下一次鍵,鍵輸出電平翻轉一次。
  復鍵類按鍵一般有連發模式和長鍵模式。復鍵類按鍵在按鍵持續時間未達到長按閾值時,輸出效果與單鍵類按鍵模式相同。與單鍵類按鍵模式的不同之處在于對持續按鍵的不同處理方式。連發模式是指持續按鍵一定時間以上,以一定頻率重復輸出有效鍵值。長鍵模式則是指持續按鍵達到一定時間以上,輸出另外一種不同的有效鍵值。為方便對比,將幾種按鍵模式的分類情況列在表1中。

?


2 單鍵類按鍵模式的設計
2.1 琴鍵模式的設計
  琴鍵模式是所有按鍵模式中相對最簡單的一種,只要考慮到按鍵的去抖問題就可以了。機械按鍵的抖動是由于觸點的彈性作用在開關切換的瞬間出現來回彈跳的不穩定現象,通常抖動的時間為10ms~20ms。在FPGA設計中,比較簡單的去抖方法就是用50Hz的頻率采樣按鍵,將20ms以內的按鍵抖動濾掉。在這種消抖方式下,去抖電路非常簡單,用D觸發器即可方便實現。其寄存器傳輸級(RTL)原理圖如圖1所示。

?


  不失一般性,假設按鍵輸出高電平有效(下同),經QuartusⅡ7.2功能仿真,得到其仿真波形如圖2所示。從波形圖可以看出,當鍵KeyIn按下時,在時鐘信號Clock_50Hz的上升沿到達后,輸出信號KeyOut持續為高電平,直到釋鍵后輸出才變為低電平。KeyIn比較密集的脈沖代表按鍵或釋鍵的抖動,從輸出信號KeyOut的波形可以看出按鍵與釋鍵過程的抖動均已去掉,處理后鍵值輸出的電平變化均與時鐘信號的上升沿同步。

2.2 脈沖模式的設計
  與琴鍵模式相比,脈沖模式的不同之處就是對其按鍵輸出有效電平限定了一個寬度,通常取時鐘寬度,即為一個時鐘寬度的脈沖。在琴鍵模式輸出的基礎上,再增加一個數字的微分環節,就可以獲得較窄寬度的脈沖。假設以正脈沖表示有效脈沖輸出(下同),其RTL原理圖如圖3所示。圖3左邊的D觸發器KeyTemp起到延遲的作用,它與KeyOut~0一并實現微分效果,檢測出上跳沿。圖3右邊的觸發器KeyOut~reg0則完成去抖功能。


  仿真后的輸出波形如圖4所示。從脈沖模式的仿真波形圖中可以看出,完成一次按鍵動作(包括按鍵和釋鍵),獲得一個時鐘寬度的正脈沖。為體現按鍵的靈敏性,正脈沖的輸出盡量靠近按鍵動作,通常在檢測到跳沿時即輸出正脈沖,正如圖4中KeyOut所示信號。


2.3 乒乓模式的設計
  在單鍵類按鍵模式中,乒乓模式與其他兩種模式的區別在于它的輸出并非是一次特定的有效脈沖,而是帶有輸出電平記憶功能,結果與原輸出電平相關,將原來的電平翻轉,即高電平變為低電平,或者低電平變為高電平,每次按鍵輸出電平翻轉一次。乒乓模式的電路只需在有效跳沿檢測的基礎上,再跟上一個T’觸發器做一個電平翻轉即可,其RTL原理圖如圖5所示。圖5右邊的D觸發器KeyOut~reg0構成T′觸發器的翻轉功能,同時兼去抖作用。

?


  乒乓模式電路仿真后的輸出波形如圖6所示。從乒乓模式的仿真波形圖中可以看出,完成一次按鍵動作(包括按鍵和釋鍵),輸出信號KeyOut的電平翻轉一次。

3 復鍵類按鍵模式的設計
3.1 連發模式的設計

  連發模式的按鍵過程分為兩個階段。兩個階段的劃分以預先設定的按鍵時間tTH為閾值,當按鍵持續時間小于tTH時,輸出處于單鍵值階段,可以為琴鍵模式的有效電平,也可以為脈沖模式的有效脈沖。當按鍵持續時間大于tTH時,通常輸出一個一定頻率的脈沖序列,直到釋放按鍵為止。連發模式的設計較單鍵類模式復雜,通常用硬件描述語言完成。其設計的控制核心可以用一個有限狀態機(FSM)表述,如圖7所示。該FSM包括“空閑”、“單鍵”和“連發”三個狀態。空閑態是初始狀態,沒有鍵按下時總是處于空閑態。單鍵態表示有鍵按下,但是按鍵持續時間不到tTH。當鍵持續按下時間超過tTH時,系統處于連發態。在空閑態,系統輸出低電平;在單鍵態,系統輸出一個正脈沖(也可以根據要求輸出有效電平);在連發態,系統輸出一個特定頻率的脈沖序列。

?

  連發態下序列的輸出頻率是依據自己的應用要求設定的。閾值tTH的大小表征人按鍵時間的長短界限,通常選1~3s,比較符合人的按鍵習慣。為方便仿真,假設閾值tTH=1s,1s內輸出一個時鐘周期寬度的正脈沖,1s后以10Hz的頻率輸出寬度為時鐘周期的正脈沖序列。按照有限狀態機采用Verilog硬件描述語言進行設計(設計代碼略去),設計綜合后的仿真輸出波形如圖8所示。圖8中的信號KeyIn模擬出兩次按鍵過程,前兩個“黑塊”分別代表一次按鍵及釋鍵過程,由于按鍵持續時間短,系統只輸出一個正脈沖信號。第二次按鍵動作從第3個“黑塊”處開始,并一直持續按下不放,可以從KeyOut信號波形上看出,先輸出一個正脈沖,等待1s后,開始輸出頻率為10Hz的脈沖序列。


3.2 長鍵模式的設計
  長鍵模式的按鍵過程與連發模式基本相同,其狀態轉換示意圖如圖9所示。比較圖9與圖7,差別僅在于圖7的連發態換成了圖9的長鍵態,用以區別兩者在此時不同的狀態輸出。


  長鍵模式的仿真波形如圖10所示。為有效表示長鍵模式在長鍵態時的輸出,引入第二個輸出信號KeyOutL。當按鍵處于單鍵態時,KeyOut輸出為高電平(也可以是有效脈沖),否則為低電平。當按鍵處于長鍵態時,KeyOutL輸出為高電平(也可以是有效脈沖),否則為低電平。

?


  按鍵是最不可缺少的人機交互設備之一。按鍵的去抖與模式處理是最基本的兩個按鍵處理問題。在FPGA系統的設計背景下,按鍵的兩個基本問題常放在一起考慮,但是目前國內的文獻資料對這種情況的論述很少。
  本文針對FPGA設計中使用按鍵的常見方式進行歸納概括,提出單鍵復鍵兩類共5種典型的按鍵模式,并對每種按鍵模式進行了分析與設計,同時給出了QuartusII7.2下的功能仿真結果。這幾種典型的按鍵模式在一般的嵌入式系統設計中也是值得借鑒與參考的。


參考文獻
[1] 谷長龍,李小英.基于FPGA器件的消除按鍵抖動方法研究[J].吉林化工學院學報,2006,23(3):53-55.
[2] 方龍,肖獻保,李威.關于消除按鍵機械抖動的研究[J].廣西輕工業,2008(1):92,105.
[3] 王志輝,林水生.基于FPGA的鍵盤掃描模塊的設計與實現[J].國外電子元器件,2006(5):67-69.
[4] 張志利,侯傳勛,蔡偉,等.全功能硬件掃描鍵盤控制器IP核的實現[J].電子技術應用,2006,33(10).

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 免费看的一级毛片 | 在线精品亚洲 | 国产精品久久久久久久久免费观看 | 在线毛片观看 | 黄色大片在线免费看 | 成人性生活视频 | 午夜影片 | 91社区在线观看精品 | 天天操天天操天天射 | 国产免费理论片在线观看 | 日本国产在线视频 | 午夜精品视频在线看 | 午夜成年视频 | 2022国产精品手机在线观看 | 伊人久久大香线焦在观看 | 精品国产免费人成高清 | 中文字幕成人免费高清在线视频 | 午夜视频高清在线aaa | 国外成人免费高清激情视频 | 91免费精品视频 | 欧美精品亚洲网站 | 成年午夜一级毛片视频 | a在线免费观看视频 | 国产成人aa免费视频 | 欧美区在线观看 | 亚洲一区视频在线播放 | 在线看国产精品 | 日韩精品www| 亚洲男女一区二区三区出奶水了 | jpnesxxx日本 | 亚洲国产成人久久一区久久 | 欧美视频第一区 | 色播五月激情五月 | 国产短视频精品一区二区三区 | 亚洲精品午夜国产va久久 | 日韩美a一级毛片 | 张柏芝国产一区在线观看 | 在线观看精品视频一区二区三区 | 亚洲欧美日韩综合网导航 | 国产aⅴ一区二区三区 | 91久久国产青草亚洲 |