刘强,徐锋,宾小升
(广东岭南通股份有限公司,广东 广州,510110)
:目前大多数金融POS机仅支持数字输入,而单一的数字输入并不能完全满足人们对金融POS机功能需求的提升,因此有必要改进传统金融POS机的输入机制,实现POS机的数字、字母和符号等字符的混合输入。研究并提出一种通过控制开关和枚举的形式,基于查表式的轻量级字符输入的方法,实现简单、快速、高效的混合输入字符功能。
:金融POS机;矩阵键盘;字符输入;驱动设计;控制开关
随着信息技术的发展以及金融产品的更迭,金融POS设备已成为线下支付的重要手段。各个银行纷纷推出各自的金融POS设备,这些设备通常外观新颖小巧,携带方便且使用灵活,具备交易速度快、交易安全可靠等特点[1],因此深受商家和持卡用户的喜爱。但在使用的过程中,此类产品也暴露出了一些不足,例如由于使用了矩阵键盘,造成多键共用,不支持多种混合输入的突出问题[2]。
虽然传统手机采用的键盘布局与金融POS机类似,多种字符方法理论上可适用于金融POS设备,但金融POS设备大多采用简单的过程化系统结构设计模式,将传统手机的输入方法移植到金融POS装置中十分困难,并且代价高昂。因此本文根据金融POS常使用的矩阵键盘的设计方法,研究一种通过控制开关切换,根据用户输入字符的情况,在屏幕特定的区域显示待输入的字符列表,由用户根据需要进行选择,从而实现混合输入的方式。该方式使用简单、操作方便,具有较好的推广移植性,同时有效解决多种混合输入模式的切换问题[34]。
1.1设计流程
对金融POS矩阵键盘设计功能定义处理流程,关键步骤是在传统的数字输入基础上增加一个判断功能,嵌入数据和字符的显示和输入功能,实现混合输入效果。设计流程如图1所示。
1.2硬件设计
1.2.1设计思路
本设计是基于矩阵键盘的金融POS机来实现多个字符共用同一步键,常用矩阵键盘式金融POS机面板如图2所示。
图2传统POS机键盘基于矩阵键盘式金融POS机实现字符的输入,关键电路设计如下。
本设计采用一个5×5的矩阵来表示21个键值,通过对10个主CPU芯片的管脚GPIO口扫描得到用户当前的按下的键值。在初始化阶段,ROW1~ROW5设置为推勉输出,且为低电平状态,LINE1~LINE5设置为上拉输入,并将LINE设置为外部中断模式。如果矩阵键盘中的1个按键按下,则10个交叉处所对应的LINE引脚发生中断,在中断处理程序中关闭中断,并将ROW1~ROW5依次修改为输入状态,再将LINE1~LINE5设置推勉输出,且为高电平状态,这时再遍历查询ROW1~ROW5的电平状态,查询所得高电平状态即可得到ROW线,通过LINE线和ROW即可确定十字位置,即键值。相关原理图如图3所示。
1.2.2防抖动设计
键盘驱动必须解决的一个问题是按键的抖动。在按键按下和抬起的过程中,电压信号会出现很多毛刺,这主要是由于机械按键的弹性作用引起的。尽管触点看起来非常稳定,而且快速地闭合,但相对于嵌入式处理器的运行速度来说,这种动作还是相对很慢的。这种脉冲在某些按键功能设计时,如果处理不当可能会带来灾难性的后果,所以必须对按键信号进行防抖检测。按键防抖检测的核心思想是在嵌入式处理器的几个时钟周期内,通过对按键信号进行多次访问,查看电平状态是否保存一致。如果保持一致,则说明按键状态已经稳定;否则,说明之前检测到的按键信号是抖动信号或外界信号干扰[5],系统将不会对其进行任何处理。
1.3软件设计
1.3.1设计思路
矩阵键盘驱动的设计主要分为:GPIO初始化及配置、外部中断的配置、中断驱动程序的设计、键值的查询和键值的确认。
(1)GPIO初始化及配置
根据CPU的芯片手册的配置方法,查询当前矩阵键盘所接的CPU管脚,将所有连接的管脚进行初始化,并对控制该管脚的时钟进行初始配置。
(2)外部中断配置
为了接收到按键的中断信号,需要对列上的管脚进行中断配置,以便CPU中断程序响应按键对应的中断请求。
(3)中断驱动程序的设计
通过打开中断,对应按键按下后,CPU将会进入相应的中断处理程序,此时需要清除相应中断信息,防止处理完成后再次快速中断响应。
(4)键值的查询和键值的确认
通过中断响应程序,可以定位到具体的LINE线的数值,此时再将ROW线设置为输入状态,修改LINE1~LINE5为推勉输出,由于通过上位电阻连接到3.3 V,因此为高电平状态,此时再次对ROW1~ROW5进行识别,当为高电平的ROW线时即为按键按下的键值,通过对LINE和ROW进行十字定位,即可确定按下的具体按健。
1.3.2驱动程序设计
当确定按键位置后,需要根据实际情况来选择显示的不同字符,如数字“7”与“PQRS”共用。根据金融POS的使用习惯,用户大多情况下以数字键为主。根据这一习惯,本设计装置在驱动中通过设置开关S实现输入模式的切换,当S=0时为数字模式,如图4所示,直接显示数字;当S=1时为字符模式,如图5所示,在一公用位置显示出待选择的所有字符,用户可根据序号选择期望的字符。
通过这种模式,当用户需要输入多种混合字母的时候,通过切换开关即可完成多种字符的复杂输入。用户确定按健数字的键值后,通过输入模
图4数字模式图5字符模式式开关(将21个键值中某一个特定键如F2作为输入模式开关键,通过此开关来控制数字和非数字的输入),向显示界面发送当前预定义的显示内容,根据提示即可完成字符或数字的输入。
在驱动程序设计中,定义了一个结构用于存储相关的参数来实现开关S,具体如下:
// 矩阵键盘结构
BYTE bSwtich;//输入模式
BYTEbKeyValue;//当前键值
BYTEbLastKey;//上次键值
LONG lTimeout;//超时时间
BYTE bNum;//按键次数
该结构主要用来存储用户每次按键的动作,bSwtich的值由界面上特定功能键F1控制,设备启动时默认为数字开启状态。当输入模式为bSwtich=0时,当前得到的数字即为键值bKeyValue;当输入模式为bSwtich=1时,且bNum=0时,将当前得到的键值赋值给bLastKey,并根据该键值显示对应用的非数字大写字符,大小写的控制功能由特殊字符健F2控制,使用方式与F1类似。
2终端测试
本文以一款普通的金融POS机为测试样机,通过上述方法进行设计,在意法半导体的F103系列的CPU上完成了相关设计和代码编写整合。
在测试过程中,本文采用了功能性测试与性能性测试相结合的方法,对各个部分分别进行了白盒测试和黑盒测试。测试结果显示本文所采用的方法具备验证可靠、简单、效率高且占用系统开销较小等优点,适用于普通金融POS输入方法的一般设计需求,具有较好的应用前景。
3结论
本文介绍了一种通过矩阵键盘,以开关控制的查表方法来实现多字符和数字混合输入的金融POS机字符输入工作原理和开发方案。通过真实案例测试证明该金融POS装置输入稳定、切换方便,能够较好地实现字符和数字的混合输入。目前,该方法已应用于岭南通P20(岭南通是指广东省公交一卡通互联互通系统)设备开发中,在岭南通电子票证项目的系统配置中,可以使用混合输入方法配置运行时的多项参数,取得了良好的应用效果。
参考文献
[1] 杨斌斌,张雪英,王玉宏.基于嵌入式Linux的矩阵键盘驱动程序研究与开发[J]. 现代电子技术,2009,32(2):3941.
[2] 习勇.POS终端支付发展趋势[A]. 第四届国家信息化发展论坛(中国.天津),2007.
[3] 蒋子刚,蒋弘山.数码键盘中文输入方法及其键位例[P].中国:02106335.4,20020223.
[4] 尹淇燮.移动通信终端的字母输入装置及其输入方法[P].中国:201080032267.9.4, 20100716.
[5] 叶童,林琪瑜,熊继平.软件无线电仿真及安全性研究[J]. 微型机与应用, 2015, 34(22):58.
Tags: