摘 要: 本文着重介绍如何利用AT89S51、触摸屏和触摸屏控制器ADS7846实现在线动态签名的三维数据采集和预处理。
由于触摸屏输入方便,轻薄便于携带等优点,现在越来越多的电子产品用触摸屏作为人机界面的输入设备。在动态签名认证中,亦采用触摸屏作为输入设备对笔迹进行数据采集。
系统主要由四线电阻式触摸屏,触摸屏控制器ADS7846,单片机89S51组成。系统框图如图1所示。
四线电阻式触摸屏
电阻触摸屏是采用电阻模拟量技术。它以一层玻璃作为基层,上面涂有一层透明氧化金属(ITO氧化铟)导电层,上面再盖有一层玻璃或是外表面硬化处理的光滑的塑料层,它的内表面也涂有一层ITO导电层,他们之间有许多细小的的透明隔离点把两导电层隔开绝缘,每当有笔或是手指按下时,两导电层就相互接触,从而形成了回路(图2)。
导电层的两端都涂有一条银胶,称为该工作面的一对电极,上下两个导电层一个是水平方向,一个是竖直方向,分别用来测量X和Y的坐标位置,在水平面上的电极称为X+电极和X-电极,在竖直平面的电极称为Y+电极和Y-电极。工作时,两个电极根据测量需要提供参考电压或是作为测量端对接触点的位置进行测量,当测量接触点X坐标的时候,导电层上的X+电极和X-电极分别接上参考电压和地,Y电极不加电压,那么X电极间会形成均匀的电压分布,用Y+电极作为测量点,得到的电压值通过A/D转换,就可对应的判断出接触点的X坐标。Y坐标亦是类似,只需改成对Y电极加电压而X电极不加电压即可。
测量触摸的压力的原理是和ITO(氧化铟)材料的自身特性有关, ITO导电膜的电导率公式为r=r0(1+l0/d),其中d为导电膜的厚度,所以ITO电导率和ITO导电膜的厚度成反比,所以当触摸的压力越大,接触点的ITO导电膜就越薄,所以相应的电导率就大,电阻就越小,所以,触摸压力的测量实质是测量接触ITO导电膜的电阻值。
ADS7846与AT89S51的通信
ADS7846是BURN-BROWN公司生产的专门用于四线电阻触摸屏数模转换芯片。内部有一个多通道的模拟开关组成的测量电路网络和12位的A/D转换器。工作时,7846根据数据输入口DIN收到不同的命令字打开相应的开关通道,并接受返回的模拟电压,通过A/D转换得出对应的数字量,再通过DOUT传回单片机。
AT89S51是ATMEL公司新推出的89C51的升级产品。
AT89S51与ADS7846的通信主要通过单片机的口与7846的CLK、CS、DOUT、DIN、BUSY五个引脚进行。当系统工作时,单片机首先通过片选信号选中7846,再通过DIN向7846发送命令控制字数据,并通过CLK引脚配以相应的时序脉冲,当BUSY位被置位后就通过DOUT数据输出口获取12位转换结果。
由于要求系统能采集包括X坐标、Y坐标和压力在内的三维数据,所以,先送打开测量X通道的命令字,返回得到的数字值即为X坐标,再送打开测量Y通道的命令字,得到的值为Y坐标。再依次得到Z1,Z2的值,通过转换公式
RTOUCH
就可计算出RTOUCH也就是压力Z的值(其中RX-plant是x轴电阻值大小,跟触摸屏的性能参数有关,X-PosiTIon即是开始得到的X坐标值)。
在此值得一提是,Z1、Z2仍然是转换后得12位的A/D转换的数字值,但通过转换公式得到的Z值实际上是接触点间两层ITO氧化膜的电阻值大小。这样就完成了在某一个时刻的三维信息采集。根据实际要求,利用定时器设定采样时间为10ms。采集的数据通过USB接口送到PC机保存,以供后续匹配处理。同时,采集的数据可以通过液晶显示屏显示,以便书写时观察。
图1 系统电路框图
图2 触摸屏的触摸示意图
图3 处理前的数据波形
图4 处理后的数据波形
触摸屏的初始化标定
由于触摸屏的一些边缘部分是无效的触摸区域,所以,实际转换出来的X坐标和Y坐标并不是从0到4095的,因此要进行初始化标定,通过转换公式使其在0到4095整个区间线性化,X坐标值的转换公式为X=(X-Xmin)×4095/(Xmax-Xmin),其中Xmax和Xmin分别是触摸屏有效触摸区域X方向的最大值和最小值。同理,Y坐标值所对应的转换公式为Y=(Y-Ymin)×4095/(Ymax-Ymin),其中Ymax和Ymin分别是触摸屏有效触摸区域Y方向的最大值和最小值。压力值表示的是电阻值大小,并不能直观的反映压力的大小,所以,根据实际需要,将其转换成与压力大小相对应的0到256级压力值。转换公式为Z=(Zmax-Z)×256/(Zmax-Zmin),其中Zmax和Zmin分别为书写笔与触摸屏接触时的最大电阻值和最小电阻值。
实验数据显示所用触摸屏的特性参数分别为:Xmax和Xmin分别为3860和180;Zmax和Zmin分别为3690和440,和分别为540和350。由于每块触摸屏和书写笔的物理特性都不尽相同,所以,每当更换触摸屏或是书写笔的时候系统都要进行重新初始化标定的工作。
数据的预处理
在数据采集的过程中,有许多因素影响数据的准确性,所以必须对数据做一些相应的预处理,以保证采集的数据的准确性。主要有以下几种因素:
书写抖动造成的漏点
在进行数据采集时会在连续的数据中出现零值点,出现零值点有两种可能:一种是正常书写时笔划的改变造成的,另一种就是由于触摸屏不够平整或是书写时的抖动造成笔迹的间断而造成的,区别的方法主要是看间断时间也就是零值连续出现的个数,一般抖动造成的间断时间小于设定的采样时间10ms,所以,抖动产生的零值在两个有效数据中间只能出现一个,可以认为是无效零值,而出现两个以上的连续零值便可以认为是笔划的改变而生成的有效零值而不作处理,当判断出某个零值为无效零值后,对其进行线性内插来弥补数据的丢失,即an=(an+1+an-1)/2,其中an是无效零值点,an-1和an+1分别是an的前面和后面的一个有效值。图3和图4分别是处理前和处理后的波形。
重复采集点的去除
由于书写者书写时的停顿,造成在在某一点多次重复采集,显然在后续的匹配中会与样本数据产生很大的误差,所以有必要删除重复的数据,每当判断出前后两个点的X坐标和Y坐标均相同的时候,就可以断定它们为重复点,则将后一个点删除,再用后续的点依次补上。这样保证了采集的数据能够真实的反映笔迹信息。
书写位置的校准
书写者每次书写时起笔的点不一定相同,这样,每次书写采样的结果都与样本模板里的采样值都有一个恒定的差别,因此有必要进行书写位置的校准,处理的方法是把采集到的第一个数据的X坐标和Y坐标与样本数据里第一个数据的X坐标和Y坐标作比较,公式分别为DX=(X1-X’1), DY=(Y1-Y’1),其中X1和Y1分别是采样数据的第一个点的X坐标值和Y坐标值, X’1和Y’1则是样本数据里的第一个点的X坐标值和Y坐标值, DX和DY则为采样的数据与样本数据在X方向和Y方向的偏移值。所以,校准公式为:Xn=Xn+DX,Yn=Yn+DY。
以上是对数据进行预处理的几种方法,预处理可以为后续笔迹的匹配提供更加准确的数据,并减轻匹配的运算量,因此预处理是笔迹匹配认证前的重要步骤,它的好坏将直接影响认证的精度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)