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

  劉強(qiáng),徐鋒,賓小升

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

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

  關(guān)鍵詞:金融POS機(jī);矩陣鍵盤;字符輸入;驅(qū)動(dòng)設(shè)計(jì);控制開關(guān)

  0引言

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

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

1裝置設(shè)計(jì)

  1.1設(shè)計(jì)流程

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

  

001.jpg

  1.2硬件設(shè)計(jì)

  1.2.1設(shè)計(jì)思路

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

002.jpg

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

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

003.jpg

  1.2.2防抖動(dòng)設(shè)計(jì)

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

  1.3軟件設(shè)計(jì)

  1.3.1設(shè)計(jì)思路

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

 ?。?)GPIO初始化及配置

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

 ?。?)外部中斷配置

  為了接收到按鍵的中斷信號(hào),需要對(duì)列上的管腳進(jìn)行中斷配置,以便CPU中斷程序響應(yīng)按鍵對(duì)應(yīng)的中斷請(qǐng)求。

 ?。?)中斷驅(qū)動(dòng)程序的設(shè)計(jì)

  通過打開中斷,對(duì)應(yīng)按鍵按下后,CPU將會(huì)進(jìn)入相應(yīng)的中斷處理程序,此時(shí)需要清除相應(yīng)中斷信息,防止處理完成后再次快速中斷響應(yīng)。

 ?。?)鍵值的查詢和鍵值的確認(rèn)

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

  1.3.2驅(qū)動(dòng)程序設(shè)計(jì)

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

004.jpg

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

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

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

  typedef struct _KEYCONFIG

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

  {

  BYTE bSwtich;//輸入模式

  BYTEbKeyValue;//當(dāng)前鍵值

  BYTEbLastKey;//上次鍵值

  LONG lTimeout;//超時(shí)時(shí)間

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

  } KEYCONFIG, *PKEYCONFIG;

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

2終端測(cè)試

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

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

3結(jié)論

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

參考文獻(xiàn)

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

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

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

 ?。?] 尹淇燮.移動(dòng)通信終端的字母輸入裝置及其輸入方法[P].中國(guó):201080032267.9.4, 20100716.

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


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