專利名稱:一種矩陣鍵盤的快速掃描定位方法
技術領域:
該發明涉及于嵌入式系統(Embedded System)的控制領域中的一種矩陣鍵盤的快 速掃描定位方法,特別適用于嵌入式終端設備的組合鍵盤設計。
背景技術:
隨著嵌入式技術的不斷發展,當前的嵌入式終端設備廣泛采用鍵盤作為主要的輸 入設備,但是鍵盤作為一種嵌入式終端采用的輸入設備,依舊具有操作簡單,可靠性高,響 應時間迅速,穩定性好等特點,因而仍廣泛應用于工業控制領域及嵌入式終端設備上使用。由于鍵盤作為一種機械設備,在抬起和按下的時候會出現鍵盤抖動,并且造成電 壓信號在短時間內不穩定而出現毛刺現象,容易造成錯鍵、連續觸鍵甚至由此造成嚴重后 果,同時作為嵌入式矩陣鍵盤大多缺少對重復按鍵和組合鍵的支持,出現無法響應組合鍵 等現象
發明內容
本發明所要解決的技術問題主要是由于矩陣鍵盤自身的機械特性造成的鍵盤抖 動而引起錯鍵、連續觸鍵等錯誤以及缺少組合鍵和重復按鍵支持而提供的一種快速掃描定 位的方法。本方法可以有效的避免由于按鍵的抬起和按下造成的電平不穩定和毛刺現象, 并提供一種組合鍵的響應,從而達到快速掃描定位的效果。本發明還具有算法簡單、性能穩 健、控制精度高等特點。本發明一種矩陣鍵盤的快速掃描定位方法的技術方案,是嵌入式設備運用Linux 操作系統來實現的,所述的嵌入式設備包括矩陣鍵盤和寄存器,所述的方法包括以下步 驟A、鍵盤設備初始化和注冊鍵盤設備;B、系統等待鍵盤觸發中斷信號;C、鍵盤的按鍵按下或者抬起,觸發鍵盤中斷信號;D、系統響應中斷信號,進入鍵盤掃描步驟;F、判斷按鍵是否有效;如按鍵有效,則進入步驟G ;如按鍵無效,則進入步驟B ;G、輸出鍵盤鍵值到隊列并等待應用程序讀取。作為本發明的改進,包括以下步驟D當中所述鍵盤掃描步驟為系統調用內核定時器進行采樣定時操作,對按鍵進行行列掃描,并讀取當前行和當前列的鍵值。步驟F中判斷按鍵是否有效的方式為多次重復鍵盤掃描步驟,并對所獲得的鍵值 進行狀態判斷;如果多次采樣狀態相同,則處于穩定狀態,鍵值有效;如果多次采樣狀態不 同,鍵值無效。在步驟F和步驟G之間增加單鍵操作或組合鍵操作判斷步驟;如是單鍵操作,則進 入單鍵處理模式;如是組合鍵操作,則進入組合鍵處理模式。
所述單鍵操作或組合鍵操作判斷步驟是通過寄存器KPAS的數據判定是單鍵按 下、抬起或者是組合鍵按下、抬起。所述的單鍵處理模式為根據寄存器判斷鍵盤操作是否是單鍵抬起和按下,如果是 單鍵抬起,則對單鍵鍵值進行清空,并清空按鍵數目;如果單鍵按下,則記錄單鍵鍵值并上 報到隊列中,并將按鍵數目遞加。所述的組合鍵處理模式為根據寄存器數據對組合鍵進行判斷,首先通過按鍵數目 的增減來判斷是抬起或者按下,如果增加表示有鍵按下,將新的鍵值記錄,并將該鍵值上報 隊列,并將按鍵數目遞加;如果減少表示有鍵抬起,則清空上次的鍵值,并將按鍵數目遞減。本發明與背景技術相比具有如下優點 1.本發明采用快速掃描定位的方法可以有效的避免矩陣鍵盤由于自身機械特性 而造成的電平不穩和抖動現象,提高矩陣鍵盤的掃描定位的準確性。2.本發明采用的快速掃描定位的方法具有算法簡單、性能穩健、控制精度高等特
點ο
圖1是本發明的原理方框圖。
具體實施例方式參照圖1,本發明實現的方法原理框圖如圖1所示。嵌入式設備運用Linux操作系 統來實現,所述的嵌入式設備包括矩陣鍵盤和寄存器,其具體步驟如下1、本發明所述方法中,在內核啟動后,首先對鍵盤設備進行初始化操作,并注冊鍵 盤設備名稱、設備信息、驅動信息、設備讀寫等待等操作,并對KPC寄存器進行初始操作,包 括對矩陣鍵盤的輸入輸出、使能等部分;在本實例中通過函數pXa270_kp_init完成初始化 操作。2、鍵盤設備向系統申請中斷請求requestjrq,等待矩陣鍵盤觸發中斷信號;3、當矩陣鍵盤按下或者抬起后,觸發鍵盤中斷,系統驅動響應中斷后,等待進入定 時鍵盤掃描過程;4、系統調用內核定時器進行采樣定時操作,進行矩陣鍵盤的行列掃描,并讀取寄 存器數據,在本實例中,采用20ms定時時間。5、讀取寄存器來獲取當前鍵盤行的鍵值。在本實例中,通過獲取寄存器KPASMKP 和KPASMKPx_MKC[N],來獲取鍵盤當前行的鍵值。6、讀取寄存器來獲取當前鍵盤列的鍵值。在本實例中,通過獲取寄存器KPASMKP 和KPASMKPx_MKC[N],來獲取鍵盤當前列的鍵值。7、等待計時器結束;本實施例中,本方法通過三次采樣定時掃描矩陣鍵盤的行列 鍵值,對所獲得的鍵值進行狀態判斷;如果三次采樣狀態相同,則處于穩定狀態,則按鍵有 效,進入下一步驟8 ;如果三次采樣狀態不同,則按鍵無效,返回等待矩陣鍵盤觸發中斷信 號的步驟2;8、在確定按鍵有效后,通過寄存器KPAS的數據判定是單鍵按下或抬起,還是組合 鍵按下或抬起;
9、判斷鍵盤操作是否為單鍵操作,若是單鍵操作,則進入單鍵處理模式,進入步驟 10 ;若是組合鍵操作,則進入組合鍵處理模式,進入步驟11 ;10、所述單鍵處理模式是根據寄存器判斷鍵盤操作是否是單鍵抬起和按下,如果 是單鍵抬起,則對單鍵鍵值進行清空,并清空按鍵數目num_press ;如果單鍵按下,則記錄 單鍵鍵值并上報到隊列中,并將按鍵數目num_press遞加;11、所述的組合鍵處理模式是根據寄存器數據對組合鍵進行判斷,首先通過按鍵 數目的增減來判斷是抬起或者按下,如果增加表示有鍵按下,將新的鍵值記錄,并將該鍵值 上報隊列,并將按鍵數目num_press遞減;如果減少表示有鍵抬起,則清空上次的鍵值,并 將按鍵數目num_preSS遞減。12、最后,輸出鍵盤鍵值到隊列并等待應用程序讀取;本發明所述方法可對鍵盤鍵值進行同步化處理,在本實例中,調用函數input_ sync對鍵盤進行同步化處理;通過以上步驟,本發明所述方法完成矩陣鍵盤的快速掃描識別的過程。本發明工作原理如下本發明所述方法在矩陣鍵盤初始化后,響應由矩陣鍵盤按壓或者抬起觸發的中斷信號,通過鍵盤掃描判斷是否有按鍵按下,并通過定時器判斷按鍵狀態是否穩定,剔除出由 于按鍵引入的毛刺現象后,并進入單鍵識別模塊或組合鍵識別模塊,識別出正確的鍵值,并 存入隊列中,等待應用程序調用,完成矩陣鍵盤的快速掃描識別的過程。
權利要求
一種矩陣鍵盤的快速掃描定位方法,是嵌入式設備運用Linux操作系統來實現的,所述的嵌入式設備包括矩陣鍵盤和寄存器,其特征在于所述的方法包括以下步驟A、鍵盤設備初始化和注冊鍵盤設備;B、系統等待鍵盤觸發中斷信號;C、鍵盤的按鍵按下或者抬起,觸發鍵盤中斷信號;D、系統響應中斷信號,進入鍵盤掃描步驟;F、判斷按鍵是否有效;如按鍵有效,則進入步驟G;如按鍵無效,則進入步驟B;G、輸出鍵盤鍵值到隊列并等待應用程序讀取。
2.根據權利要求1所述的一種矩陣鍵盤的快速掃描定位方法,其特征在于步驟D當 中所述鍵盤掃描步驟為系統調用內核定時器進行采樣定時操作,對按鍵進行行列掃描,并 讀取當前行和當前列的鍵值。
3.根據權利要求2所述的一種矩陣鍵盤的快速掃描定位方法,其特征在于步驟F中 判斷按鍵是否有效的方式為多次重復鍵盤掃描步驟,并對所獲得的鍵值進行狀態判斷;如 果多次采樣狀態相同,則處于穩定狀態,鍵值有效;如果多次采樣狀態不同,鍵值無效。
4.根據權利要求3所述的一種矩陣鍵盤的快速掃描定位方法,其特征在于在步驟F 和步驟G之間增加單鍵操作或組合鍵操作判斷步驟;如是單鍵操作,則進入單鍵處理模式; 如是組合鍵操作,則進入組合鍵處理模式。
5.根據權利要求4所述的一種矩陣鍵盤的快速掃描定位方法,其特征在于所述單鍵 操作或組合鍵操作判斷步驟是通過寄存器KPAS的數據判定是單鍵按下、抬起或者是組合 鍵按下、抬起。
6.根據權利要求4所述的一種矩陣鍵盤的快速掃描定位方法,其特征在于所述的單 鍵處理模式為根據寄存器判斷鍵盤操作是否是單鍵抬起和按下,如果是單鍵抬起,則對單 鍵鍵值進行清空,并清空按鍵數目;如果單鍵按下,則記錄單鍵鍵值并上報到隊列中,并將 按鍵數目遞加。
7.根據權利要求4所述的一種矩陣鍵盤的快速掃描定位方法,其特征在于所述的組 合鍵處理模式為根據寄存器數據對組合鍵進行判斷,首先通過按鍵數目的增減來判斷是抬 起或者按下,如果增加表示有鍵按下,將新的鍵值記錄,并將該鍵值上報隊列,并將按鍵數 目遞加;如果減少表示有鍵抬起,則清空上次的鍵值,并將按鍵數目遞減。
全文摘要
本發明公開了一種矩陣鍵盤的快速掃描定位的方法,它涉及于嵌入式系統(Embedded System)的控制領域中的一種矩陣鍵盤的快速掃描定位的方法,特別適用于嵌入式終端設備的矩陣鍵盤設計。它包括鍵盤設備初始化和注冊鍵盤設備、系統等待鍵盤觸發中斷信號、觸發鍵盤中斷信號、系統響應中斷信號,進入鍵盤掃描、按鍵是否有效的判斷和輸出鍵盤鍵值到隊列并等待應用程序讀取等步驟。本發明的方法可以有效的避免矩陣鍵盤由于自身機械特性而造成的電平不穩和抖動現象,提高矩陣鍵盤的掃描定位的準確性、具有算法簡單、性能穩健、控制精度高等特點。
文檔編號G06F3/02GK101840268SQ201010153560
公開日2010年9月22日 申請日期2010年4月23日 優先權日2010年4月23日
發明者宋之民, 李曉鑫, 程延沛, 酒樂, 陳榮, 陳路路 申請人:中國電子科技集團公司第五十四研究所