《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 一種可實現(xiàn)字符輸入的矩陣鍵盤式金融POS機裝置設計研究
一種可實現(xiàn)字符輸入的矩陣鍵盤式金融POS機裝置設計研究
2016年微型機與應用第12期
劉強,徐鋒,賓小升
(廣東嶺南通股份有限公司,廣東 廣州,510110)
摘要: 目前大多數(shù)金融POS機僅支持數(shù)字輸入,而單一的數(shù)字輸入并不能完全滿足人們對金融POS機功能需求的提升,因此有必要改進傳統(tǒng)金融POS機的輸入機制,實現(xiàn)POS機的數(shù)字、字母和符號等字符的混合輸入。研究并提出一種通過控制開關(guān)和枚舉的形式,基于查表式的輕量級字符輸入的方法,實現(xiàn)簡單、快速、高效的混合輸入字符功能。
Abstract:
Key words :

  劉強,徐鋒,賓小升

 ?。◤V東嶺南通股份有限公司,廣東 廣州,510110)

  摘要:目前大多數(shù)金融POS機僅支持數(shù)字輸入,而單一的數(shù)字輸入并不能完全滿足人們對金融POS機功能需求的提升,因此有必要改進傳統(tǒng)金融POS機的輸入機制,實現(xiàn)POS機的數(shù)字、字母和符號等字符的混合輸入。研究并提出一種通過控制開關(guān)和枚舉的形式,基于查表式的輕量級字符輸入的方法,實現(xiàn)簡單、快速、高效的混合輸入字符功能。

  關(guān)鍵詞:金融POS機;矩陣鍵盤;字符輸入;驅(qū)動設計;控制開關(guān)

  0引言

  隨著信息技術(shù)的發(fā)展以及金融產(chǎn)品的更迭,金融POS設備已成為線下支付的重要手段。各個銀行紛紛推出各自的金融POS設備,這些設備通常外觀新穎小巧,攜帶方便且使用靈活,具備交易速度快、交易安全可靠等特點[1],因此深受商家和持卡用戶的喜愛。但在使用的過程中,此類產(chǎn)品也暴露出了一些不足,例如由于使用了矩陣鍵盤,造成多鍵共用,不支持多種混合輸入的突出問題[2]。

  雖然傳統(tǒng)手機采用的鍵盤布局與金融POS機類似,多種字符方法理論上可適用于金融POS設備,但金融POS設備大多采用簡單的過程化系統(tǒng)結(jié)構(gòu)設計模式,將傳統(tǒng)手機的輸入方法移植到金融POS裝置中十分困難,并且代價高昂。因此本文根據(jù)金融POS常使用的矩陣鍵盤的設計方法,研究一種通過控制開關(guān)切換,根據(jù)用戶輸入字符的情況,在屏幕特定的區(qū)域顯示待輸入的字符列表,由用戶根據(jù)需要進行選擇,從而實現(xiàn)混合輸入的方式。該方式使用簡單、操作方便,具有較好的推廣移植性,同時有效解決多種混合輸入模式的切換問題[34]。

1裝置設計

  1.1設計流程

  對金融POS矩陣鍵盤設計功能定義處理流程,關(guān)鍵步驟是在傳統(tǒng)的數(shù)字輸入基礎上增加一個判斷功能,嵌入數(shù)據(jù)和字符的顯示和輸入功能,實現(xiàn)混合輸入效果。設計流程如圖1所示。

  

001.jpg

  1.2硬件設計

  1.2.1設計思路

  本設計是基于矩陣鍵盤的金融POS機來實現(xiàn)多個字符共用同一步鍵,常用矩陣鍵盤式金融POS機面板如圖2所示。

002.jpg

  圖2傳統(tǒng)POS機鍵盤基于矩陣鍵盤式金融POS機實現(xiàn)字符的輸入,關(guān)鍵電路設計如下。

  本設計采用一個5×5的矩陣來表示21個鍵值,通過對10個主CPU芯片的管腳GPIO口掃描得到用戶當前的按下的鍵值。在初始化階段,ROW1~ROW5設置為推勉輸出,且為低電平狀態(tài),LINE1~LINE5設置為上拉輸入,并將LINE設置為外部中斷模式。如果矩陣鍵盤中的1個按鍵按下,則10個交叉處所對應的LINE引腳發(fā)生中斷,在中斷處理程序中關(guān)閉中斷,并將ROW1~ROW5依次修改為輸入狀態(tài),再將LINE1~LINE5設置推勉輸出,且為高電平狀態(tài),這時再遍歷查詢ROW1~ROW5的電平狀態(tài),查詢所得高電平狀態(tài)即可得到ROW線,通過LINE線和ROW即可確定十字位置,即鍵值。相關(guān)原理圖如圖3所示。

003.jpg

  1.2.2防抖動設計

  鍵盤驅(qū)動必須解決的一個問題是按鍵的抖動。在按鍵按下和抬起的過程中,電壓信號會出現(xiàn)很多毛刺,這主要是由于機械按鍵的彈性作用引起的。盡管觸點看起來非常穩(wěn)定,而且快速地閉合,但相對于嵌入式處理器的運行速度來說,這種動作還是相對很慢的。這種脈沖在某些按鍵功能設計時,如果處理不當可能會帶來災難性的后果,所以必須對按鍵信號進行防抖檢測。按鍵防抖檢測的核心思想是在嵌入式處理器的幾個時鐘周期內(nèi),通過對按鍵信號進行多次訪問,查看電平狀態(tài)是否保存一致。如果保持一致,則說明按鍵狀態(tài)已經(jīng)穩(wěn)定;否則,說明之前檢測到的按鍵信號是抖動信號或外界信號干擾[5],系統(tǒng)將不會對其進行任何處理。

  1.3軟件設計

  1.3.1設計思路

  矩陣鍵盤驅(qū)動的設計主要分為:GPIO初始化及配置、外部中斷的配置、中斷驅(qū)動程序的設計、鍵值的查詢和鍵值的確認。

  (1)GPIO初始化及配置

  根據(jù)CPU的芯片手冊的配置方法,查詢當前矩陣鍵盤所接的CPU管腳,將所有連接的管腳進行初始化,并對控制該管腳的時鐘進行初始配置。

 ?。?)外部中斷配置

  為了接收到按鍵的中斷信號,需要對列上的管腳進行中斷配置,以便CPU中斷程序響應按鍵對應的中斷請求。

  (3)中斷驅(qū)動程序的設計

  通過打開中斷,對應按鍵按下后,CPU將會進入相應的中斷處理程序,此時需要清除相應中斷信息,防止處理完成后再次快速中斷響應。

 ?。?)鍵值的查詢和鍵值的確認

  通過中斷響應程序,可以定位到具體的LINE線的數(shù)值,此時再將ROW線設置為輸入狀態(tài),修改LINE1~LINE5為推勉輸出,由于通過上位電阻連接到3.3 V,因此為高電平狀態(tài),此時再次對ROW1~ROW5進行識別,當為高電平的ROW線時即為按鍵按下的鍵值,通過對LINE和ROW進行十字定位,即可確定按下的具體按健。

  1.3.2驅(qū)動程序設計

  當確定按鍵位置后,需要根據(jù)實際情況來選擇顯示的不同字符,如數(shù)字“7”與“PQRS”共用。根據(jù)金融POS的使用習慣,用戶大多情況下以數(shù)字鍵為主。根據(jù)這一習慣,本設計裝置在驅(qū)動中通過設置開關(guān)S實現(xiàn)輸入模式的切換,當S=0時為數(shù)字模式,如圖4所示,直接顯示數(shù)字;當S=1時為字符模式,如圖5所示,在一公用位置顯示出待選擇的所有字符,用戶可根據(jù)序號選擇期望的字符。

004.jpg

  通過這種模式,當用戶需要輸入多種混合字母的時候,通過切換開關(guān)即可完成多種字符的復雜輸入。用戶確定按健數(shù)字的鍵值后,通過輸入模

  圖4數(shù)字模式圖5字符模式式開關(guān)(將21個鍵值中某一個特定鍵如F2作為輸入模式開關(guān)鍵,通過此開關(guān)來控制數(shù)字和非數(shù)字的輸入),向顯示界面發(fā)送當前預定義的顯示內(nèi)容,根據(jù)提示即可完成字符或數(shù)字的輸入。

  在驅(qū)動程序設計中,定義了一個結(jié)構(gòu)用于存儲相關(guān)的參數(shù)來實現(xiàn)開關(guān)S,具體如下:

  typedef struct _KEYCONFIG

  // 矩陣鍵盤結(jié)構(gòu)

  {

  BYTE bSwtich;//輸入模式

  BYTEbKeyValue;//當前鍵值

  BYTEbLastKey;//上次鍵值

  LONG lTimeout;//超時時間

  BYTE bNum;//按鍵次數(shù)

  } KEYCONFIG, *PKEYCONFIG;

  該結(jié)構(gòu)主要用來存儲用戶每次按鍵的動作,bSwtich的值由界面上特定功能鍵F1控制,設備啟動時默認為數(shù)字開啟狀態(tài)。當輸入模式為bSwtich=0時,當前得到的數(shù)字即為鍵值bKeyValue;當輸入模式為bSwtich=1時,且bNum=0時,將當前得到的鍵值賦值給bLastKey,并根據(jù)該鍵值顯示對應用的非數(shù)字大寫字符,大小寫的控制功能由特殊字符健F2控制,使用方式與F1類似。

2終端測試

  本文以一款普通的金融POS機為測試樣機,通過上述方法進行設計,在意法半導體的F103系列的CPU上完成了相關(guān)設計和代碼編寫整合。

  在測試過程中,本文采用了功能性測試與性能性測試相結(jié)合的方法,對各個部分分別進行了白盒測試和黑盒測試。測試結(jié)果顯示本文所采用的方法具備驗證可靠、簡單、效率高且占用系統(tǒng)開銷較小等優(yōu)點,適用于普通金融POS輸入方法的一般設計需求,具有較好的應用前景。

3結(jié)論

  本文介紹了一種通過矩陣鍵盤,以開關(guān)控制的查表方法來實現(xiàn)多字符和數(shù)字混合輸入的金融POS機字符輸入工作原理和開發(fā)方案。通過真實案例測試證明該金融POS裝置輸入穩(wěn)定、切換方便,能夠較好地實現(xiàn)字符和數(shù)字的混合輸入。目前,該方法已應用于嶺南通P20(嶺南通是指廣東省公交一卡通互聯(lián)互通系統(tǒng))設備開發(fā)中,在嶺南通電子票證項目的系統(tǒng)配置中,可以使用混合輸入方法配置運行時的多項參數(shù),取得了良好的應用效果。

參考文獻

 ?。?] 楊斌斌,張雪英,王玉宏.基于嵌入式Linux的矩陣鍵盤驅(qū)動程序研究與開發(fā)[J]. 現(xiàn)代電子技術(shù),2009,32(2):3941.

 ?。?] 習勇.POS終端支付發(fā)展趨勢[A]. 第四屆國家信息化發(fā)展論壇(中國.天津),2007.

 ?。?] 蔣子剛,蔣弘山.數(shù)碼鍵盤中文輸入方法及其鍵位例[P].中國:02106335.4,20020223.

  [4] 尹淇燮.移動通信終端的字母輸入裝置及其輸入方法[P].中國:201080032267.9.4, 20100716.

 ?。?] 葉童,林琪瑜,熊繼平.軟件無線電仿真及安全性研究[J]. 微型機與應用, 2015, 34(22):58.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。