新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 在线签名识别系统的数据采集和USB通信

在线签名识别系统的数据采集和USB通信

作者: 时间:2013-10-26 来源:网络 收藏

3.3 上位机应用程序编写

USB应用程序可采用VB编写,设计时把对USB的访问做成动态链接库,这样可以节省程序、提高程序运行效率。实际上,只需要告诉VB系统动态链接库文件(DLL)的定位信息和声明读写USB端口的接口函数,就可以对USB端口进行操作。而在VB中若要访问动态链接库函数则必须把定位信息和函数声明放在一个后缀为bas的模块中。模块中的声明代码如下:

Public Declare Function ReadData Lib " C:\WINDOWS\system32\EasyUSB.dll " - (ByVal pipenum As Integer,recbuffer As Byte,ByVal ilen AsInteger,ByVal waittime As Integer)As Integer

在VB中可以用定时器控件来同步接收数据,也可以设置定时器的Interval属性,即触发定时器的间隔时间。当每次触发时间到达时,就可从USB接口接收数据。

签名的实时显示分为采集坐标的实时显示和签名笔迹的实时显示,其中采集坐标显示包含横纵坐标和压力坐标的显示。

签名坐标的实时显示可以用TextBox文本框控件来实现,但要用一个转换函数Str ()负责把采集到的整型数据转换为字符串类型,这样就可以直接在文本框显示了。

签名笔迹的实时显示稍微复杂一点,其实现方法是采用画线函数法,即当知道了两个点时就可以根据这两个点画线。每采集并接收到一个点时,就执行一次画线函数,以把当前的点和前一个点相连。这样,当你签名的时候,画线函数就会把你的书写笔迹呈现出来。

在进行画线时还要考虑干扰问题。由于液晶显示对签名采集芯片有一定的影响,因而可能造成采集数据的抖动,有时候还会出现非点(即本次采集到的值与前次和后一次的采集值相差较大),本设计虽然在系统硬件上做了一些抗干扰措施(比如加装滤波电容等),但效果不是很明显。

后经实验发现,通过软件去抖方法可以实现笔迹的平滑显示。具体去抖可从以下两个方面实现:第一是把两点之间的连线改为每四个点连一次,并把采集到的四个点的坐标值取平均值,从而缓解坐标值的抖动;第二是设定一个域值,当两个点之间的坐标绝对值之差不在该域值范围内时,即判定该点为非点,而不对该坐标值进行任何操作,直接舍弃。通过以上两个方面的措施可以去掉大多数的非点和抖动点,使曲线变得更加平滑。

图5所显示的是抗干扰处理前后所采集到的签名,图中箭头处即为受干扰的笔划。

签名笔迹实时显示的算法流程图如图6所示。

图7给出了VB应用程序下的实时显示界面。

4 结束语

本在线签名系统使用ADS7846实现了高速和高精度的,该芯片不仅能采集签名的横纵坐标,还能采集压力坐标,从而丰富了在线签名系统的动态签名信息,为以后的签名识别提供了更多的判断依据。本中采用USB接口来解决动态信息的采集设备和计算机之间的数据通信具有一定的现实意义。该方案可以准确实时地将采集到的签名数据传送到计算机。经测试,本系统传输信息的速度大于1Mbps,能够很好的满足系统的要求;同时由VB编写的人机界面还可实现签名的再现。

电容式触摸屏相关文章:电容式触摸屏原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭