劉強,,徐鋒,賓小升
?。◤V東嶺南通股份有限公司,,廣東 廣州,510110)
摘要:目前大多數(shù)金融POS機僅支持數(shù)字輸入,,而單一的數(shù)字輸入并不能完全滿足人們對金融POS機功能需求的提升,,因此有必要改進傳統(tǒng)金融POS機的輸入機制,實現(xiàn)POS機的數(shù)字,、字母和符號等字符的混合輸入,。研究并提出一種通過控制開關(guān)和枚舉的形式,,基于查表式的輕量級字符輸入的方法,,實現(xiàn)簡單、快速,、高效的混合輸入字符功能,。
關(guān)鍵詞:金融POS機;矩陣鍵盤,;字符輸入,;驅(qū)動設(shè)計;控制開關(guān)
0引言
隨著信息技術(shù)的發(fā)展以及金融產(chǎn)品的更迭,,金融POS設(shè)備已成為線下支付的重要手段,。各個銀行紛紛推出各自的金融POS設(shè)備,這些設(shè)備通常外觀新穎小巧,,攜帶方便且使用靈活,,具備交易速度快、交易安全可靠等特點[1],,因此深受商家和持卡用戶的喜愛,。但在使用的過程中,,此類產(chǎn)品也暴露出了一些不足,例如由于使用了矩陣鍵盤,,造成多鍵共用,,不支持多種混合輸入的突出問題[2]。
雖然傳統(tǒng)手機采用的鍵盤布局與金融POS機類似,,多種字符方法理論上可適用于金融POS設(shè)備,,但金融POS設(shè)備大多采用簡單的過程化系統(tǒng)結(jié)構(gòu)設(shè)計模式,將傳統(tǒng)手機的輸入方法移植到金融POS裝置中十分困難,,并且代價高昂,。因此本文根據(jù)金融POS常使用的矩陣鍵盤的設(shè)計方法,研究一種通過控制開關(guān)切換,,根據(jù)用戶輸入字符的情況,,在屏幕特定的區(qū)域顯示待輸入的字符列表,由用戶根據(jù)需要進行選擇,,從而實現(xiàn)混合輸入的方式,。該方式使用簡單、操作方便,,具有較好的推廣移植性,,同時有效解決多種混合輸入模式的切換問題[34]。
1裝置設(shè)計
1.1設(shè)計流程
對金融POS矩陣鍵盤設(shè)計功能定義處理流程,,關(guān)鍵步驟是在傳統(tǒng)的數(shù)字輸入基礎(chǔ)上增加一個判斷功能,,嵌入數(shù)據(jù)和字符的顯示和輸入功能,實現(xiàn)混合輸入效果,。設(shè)計流程如圖1所示,。
1.2硬件設(shè)計
1.2.1設(shè)計思路
本設(shè)計是基于矩陣鍵盤的金融POS機來實現(xiàn)多個字符共用同一步鍵,常用矩陣鍵盤式金融POS機面板如圖2所示,。
圖2傳統(tǒng)POS機鍵盤基于矩陣鍵盤式金融POS機實現(xiàn)字符的輸入,,關(guān)鍵電路設(shè)計如下。
本設(shè)計采用一個5×5的矩陣來表示21個鍵值,,通過對10個主CPU芯片的管腳GPIO口掃描得到用戶當(dāng)前的按下的鍵值,。在初始化階段,ROW1~ROW5設(shè)置為推勉輸出,,且為低電平狀態(tài),,LINE1~LINE5設(shè)置為上拉輸入,并將LINE設(shè)置為外部中斷模式,。如果矩陣鍵盤中的1個按鍵按下,,則10個交叉處所對應(yīng)的LINE引腳發(fā)生中斷,在中斷處理程序中關(guān)閉中斷,,并將ROW1~ROW5依次修改為輸入狀態(tài),,再將LINE1~LINE5設(shè)置推勉輸出,,且為高電平狀態(tài),這時再遍歷查詢ROW1~ROW5的電平狀態(tài),,查詢所得高電平狀態(tài)即可得到ROW線,,通過LINE線和ROW即可確定十字位置,即鍵值,。相關(guān)原理圖如圖3所示,。
1.2.2防抖動設(shè)計
鍵盤驅(qū)動必須解決的一個問題是按鍵的抖動。在按鍵按下和抬起的過程中,,電壓信號會出現(xiàn)很多毛刺,,這主要是由于機械按鍵的彈性作用引起的。盡管觸點看起來非常穩(wěn)定,,而且快速地閉合,,但相對于嵌入式處理器的運行速度來說,這種動作還是相對很慢的,。這種脈沖在某些按鍵功能設(shè)計時,,如果處理不當(dāng)可能會帶來災(zāi)難性的后果,所以必須對按鍵信號進行防抖檢測,。按鍵防抖檢測的核心思想是在嵌入式處理器的幾個時鐘周期內(nèi),,通過對按鍵信號進行多次訪問,查看電平狀態(tài)是否保存一致,。如果保持一致,,則說明按鍵狀態(tài)已經(jīng)穩(wěn)定;否則,,說明之前檢測到的按鍵信號是抖動信號或外界信號干擾[5],,系統(tǒng)將不會對其進行任何處理。
1.3軟件設(shè)計
1.3.1設(shè)計思路
矩陣鍵盤驅(qū)動的設(shè)計主要分為:GPIO初始化及配置,、外部中斷的配置,、中斷驅(qū)動程序的設(shè)計、鍵值的查詢和鍵值的確認,。
(1)GPIO初始化及配置
根據(jù)CPU的芯片手冊的配置方法,,查詢當(dāng)前矩陣鍵盤所接的CPU管腳,,將所有連接的管腳進行初始化,并對控制該管腳的時鐘進行初始配置,。
?。?)外部中斷配置
為了接收到按鍵的中斷信號,需要對列上的管腳進行中斷配置,,以便CPU中斷程序響應(yīng)按鍵對應(yīng)的中斷請求,。
?。?)中斷驅(qū)動程序的設(shè)計
通過打開中斷,對應(yīng)按鍵按下后,,CPU將會進入相應(yīng)的中斷處理程序,,此時需要清除相應(yīng)中斷信息,防止處理完成后再次快速中斷響應(yīng),。
?。?)鍵值的查詢和鍵值的確認
通過中斷響應(yīng)程序,可以定位到具體的LINE線的數(shù)值,,此時再將ROW線設(shè)置為輸入狀態(tài),,修改LINE1~LINE5為推勉輸出,由于通過上位電阻連接到3.3 V,,因此為高電平狀態(tài),,此時再次對ROW1~ROW5進行識別,當(dāng)為高電平的ROW線時即為按鍵按下的鍵值,,通過對LINE和ROW進行十字定位,,即可確定按下的具體按健。
1.3.2驅(qū)動程序設(shè)計
當(dāng)確定按鍵位置后,,需要根據(jù)實際情況來選擇顯示的不同字符,,如數(shù)字“7”與“PQRS”共用。根據(jù)金融POS的使用習(xí)慣,,用戶大多情況下以數(shù)字鍵為主,。根據(jù)這一習(xí)慣,本設(shè)計裝置在驅(qū)動中通過設(shè)置開關(guān)S實現(xiàn)輸入模式的切換,,當(dāng)S=0時為數(shù)字模式,,如圖4所示,直接顯示數(shù)字,;當(dāng)S=1時為字符模式,,如圖5所示,在一公用位置顯示出待選擇的所有字符,,用戶可根據(jù)序號選擇期望的字符,。
通過這種模式,當(dāng)用戶需要輸入多種混合字母的時候,,通過切換開關(guān)即可完成多種字符的復(fù)雜輸入,。用戶確定按健數(shù)字的鍵值后,通過輸入模
圖4數(shù)字模式圖5字符模式式開關(guān)(將21個鍵值中某一個特定鍵如F2作為輸入模式開關(guān)鍵,,通過此開關(guān)來控制數(shù)字和非數(shù)字的輸入),,向顯示界面發(fā)送當(dāng)前預(yù)定義的顯示內(nèi)容,根據(jù)提示即可完成字符或數(shù)字的輸入,。
在驅(qū)動程序設(shè)計中,,定義了一個結(jié)構(gòu)用于存儲相關(guān)的參數(shù)來實現(xiàn)開關(guān)S,,具體如下:
typedef struct _KEYCONFIG
// 矩陣鍵盤結(jié)構(gòu)
{
BYTE bSwtich;//輸入模式
BYTEbKeyValue;//當(dāng)前鍵值
BYTEbLastKey;//上次鍵值
LONG lTimeout;//超時時間
BYTE bNum;//按鍵次數(shù)
} KEYCONFIG, *PKEYCONFIG;
該結(jié)構(gòu)主要用來存儲用戶每次按鍵的動作,,bSwtich的值由界面上特定功能鍵F1控制,,設(shè)備啟動時默認為數(shù)字開啟狀態(tài)。當(dāng)輸入模式為bSwtich=0時,,當(dāng)前得到的數(shù)字即為鍵值bKeyValue,;當(dāng)輸入模式為bSwtich=1時,且bNum=0時,,將當(dāng)前得到的鍵值賦值給bLastKey,,并根據(jù)該鍵值顯示對應(yīng)用的非數(shù)字大寫字符,大小寫的控制功能由特殊字符健F2控制,,使用方式與F1類似,。
2終端測試
本文以一款普通的金融POS機為測試樣機,通過上述方法進行設(shè)計,,在意法半導(dǎo)體的F103系列的CPU上完成了相關(guān)設(shè)計和代碼編寫整合,。
在測試過程中,本文采用了功能性測試與性能性測試相結(jié)合的方法,,對各個部分分別進行了白盒測試和黑盒測試,。測試結(jié)果顯示本文所采用的方法具備驗證可靠、簡單,、效率高且占用系統(tǒng)開銷較小等優(yōu)點,,適用于普通金融POS輸入方法的一般設(shè)計需求,具有較好的應(yīng)用前景,。
3結(jié)論
本文介紹了一種通過矩陣鍵盤,,以開關(guān)控制的查表方法來實現(xiàn)多字符和數(shù)字混合輸入的金融POS機字符輸入工作原理和開發(fā)方案。通過真實案例測試證明該金融POS裝置輸入穩(wěn)定,、切換方便,,能夠較好地實現(xiàn)字符和數(shù)字的混合輸入。目前,,該方法已應(yīng)用于嶺南通P20(嶺南通是指廣東省公交一卡通互聯(lián)互通系統(tǒng))設(shè)備開發(fā)中,,在嶺南通電子票證項目的系統(tǒng)配置中,可以使用混合輸入方法配置運行時的多項參數(shù),,取得了良好的應(yīng)用效果,。
參考文獻
[1] 楊斌斌,張雪英,王玉宏.基于嵌入式Linux的矩陣鍵盤驅(qū)動程序研究與開發(fā)[J]. 現(xiàn)代電子技術(shù),2009,32(2):3941.
?。?] 習(xí)勇.POS終端支付發(fā)展趨勢[A]. 第四屆國家信息化發(fā)展論壇(中國.天津),2007.
?。?] 蔣子剛,蔣弘山.數(shù)碼鍵盤中文輸入方法及其鍵位例[P].中國:02106335.4,,20020223.
?。?] 尹淇燮.移動通信終端的字母輸入裝置及其輸入方法[P].中國:201080032267.9.4, 20100716.
[5] 葉童,林琪瑜,熊繼平.軟件無線電仿真及安全性研究[J]. 微型機與應(yīng)用, 2015, 34(22):58.