基于单片机的远程指纹采集终端的设计
扫描二维码
随时随地手机看文章
1 引 言
指纹是指手指末端正面皮肤上凸凹不平产生的纹路。尽管指纹只是人体皮肤的一小部分,但是,它蕴涵大量的信息,每个人指纹的纹路在图案、断点和交叉点上是各不相同的。指纹识别是利用人体指纹的惟一性与不变性生理特征,将指纹作为人的一种“活的身份证”或一个随身携带的特殊印章来进行身份识别的一种技术,其通过比较输入的指纹特征和预先保存的合法指纹特征,来验证用户的真实身份。
指纹用来作为一个人的身份识别手段有着其他手段不可比拟的优越性。目前许多需要确定用户身份的场合都使用了嵌入式指纹识别设备,但这些设备受嵌入式系统限制,往往存储量小、速率慢,对于大型企业尤其是分布式企业的考勤难以胜任。
针对这一情况,设计一套基于企业内部局域网的指纹识别系统,系统终端通过以太网与数据处理服务器连接,将指纹算法的运行、指纹数据库的存储放在服务器端。整个系统具有存储量大、运算速度快、功能强等特点。
2 系统硬件设计
整个指纹识别系统的硬件结构设计框图如图1所示,其中数据处理服务器用以存放指纹数据库和进行指纹识别算法的实现,而指纹终端用于采集指纹和显示验证结果。
系统终端硬件结构如图2所示,其中单片机采用SST89E544RC,指纹传感器采用MBF200。
2.1 控制核心
系统采用SST89E544RC单片机作为控制核心。SST89系列是美国SST公司推出的高可靠、小扇区结构的FLASH单片机,内部嵌入40 kB的SuperFLASH。单片机内嵌IAP(在应用可编程)和ISP(在系统可编程)功能,不占用用户资源,通过串行口即可在系统仿真和编程,3~5 V工作电压,工作频率可达40 MHz。
2.2 指纹传感器
指纹识别认证系统的首要任务是如何采集到高质量指纹图像以保证后续任务的完成,而指纹图像质量不仅与指纹传感器自身的性能有关,也与数据传输通信接口的性能密切相关。以前的各种指纹识别系统属于光学识别系统,由于光不能穿透皮肤表层,所以只能够扫描手指皮肤的表面,或者扫描到死性皮肤层,但不能深入真皮层。在这种情况下,手指表面的干净程度,直接影响到识别的效果。[!--empirenews.page--]
对于指纹的采集,系统采用了富士通公司的指纹传感器MBF200,它属于电容性传感器。其电容性传感器阵列由二维金属电极组成,所有金属电极充当一个电容板,接触的手指充当第二个电容板,器件表面的钝化层作为两板的绝缘层。当手指触摸传感器表面时,指纹的高低不平就会在传感器阵列上产生变化的电容,从而引起二维阵列上电压的变化,并形成指纹传感图像。从而克服了以前光学识别系统出错率高、可能仿冒等问题,大大提高了该系统的安全性。
MBF200支持3种接口形式,即MCU接口模式、SPI接口模式和USB接口模式。系统采用微处理器接口模式,在此模式下可将MBF200与51系列单片机8位数据总线直接相连,其接口形式非常简单,且微处理器接口模式在MBF200的3种接口模式下,数据传送速率最高(30帧/s;USB模式13帧/s;SPI模式为10帧/s),可以满足对连续指纹图像采集和比对的需要。
2.3 数据存储器
为了保存指纹图像数据,必须为系统扩充外部存储器。MBF200一幅指纹扫描图像需要存储空间75 kB(256×300×8位),因此系统采用SST公司的FLASH存储器SST 39SF010A对数据存储器进行存储扩充,其容量为128 k×8位。由于51单片机地址线只有16位,系统采用P1口对存储空间进行分段访问。其中,指纹图像数据及识别数据采用固定地址进行存储,数据读取易实现。
2.4 显示模块
LCD显示器用于显示中文界面信息。为了方便系统设计,采用带有中文字库的LCD显示模块HTM12232Z。
3 软件设计
3.1 系统程序流程
系统软件功能包括主程序、指纹获取功能模块、通信模块、定时模块、显示模块。系统上电初始化后与服务器建立连接,取得服务器时间调用显示模块显示中文界面及系统时间,然后等待指纹传感器信号。系统主要工作流程如图3所示。
3.2 TCP/IP协议的精简设计
3.2.1 TCP/IP协议精简
考虑嵌入式系统CPU处理能力和系统存储能力限制,系统以高效、节省资源为目标,对TCP/IP协议进行精简(见表1),仅实现了通信必须的ARP,IP,ICMP和UDP协议。
在链路层上,系统必须实现IEEE802.3所规定的CDMA/CD协议,而此协议只要采用通用的以太网接口芯片就可支持。为了保证系统在以太网中的通信,系统实现了ARP应答协议,该协议用于将IP地址映射成以太网MAC地址。[!--empirenews.page--]
在网络层,由于系统要求能够在Intranet进行通信,因此系统要实现IP协议。同时,为了能够测试系统与网络的连接,系统实现了ICMP协议中的Ping应答协议。
在传输层,TCP为2台主机提供面向连接的、可靠的、无重复的双向数据流传输服务,但其实现对系统资源的耗费非常大。而UDP的实现比较简单,它在嵌人式应用场合可以很好的应用。考虑到系统的简化及速度的要求,采用UDP协议,为了确保UDP数据的到达,在应用程序中采用了重复发送、回复确认的方式来保证数据的正确性。
在应用层,由于本嵌入式系统无HTTP,FTP等应用,所以其中的协议无需实现。
3.2.2 TCP/IP协议实现
首先对协议中使用的公共数据结构进行定义:如MAC地址格式、IP地址格式、系统的地址配置、缓冲区格式及大小。其中MAC,IP地址格式都是固定的,系统的配置用于确定系统的IP地址及端口以及MAC地址值。由于系统中传送的数据较大,必须定义用于传送数据的缓冲区,长度为1 500 B,而接收的数据十分简单,因此无需缓冲区。
其次,定义ARP数据帧头结构及ARP高速缓冲表,数据帧必须根据标准定义,高速缓冲表至少要含有IP地址及相对应的MAC地址2项。由于本系统连接的对象只有数据服务器,因此,在系统初始化建立连接时填入ARP缓冲表信息,而不必实现定时更新。
接着,根据以太网标准定义IP及ICMP数据帧格式。网络层的的主要工作有:对上一层传下来的数据包,加上IP首部和IP校验和,发往下一层;以及对下一层传上来的数据包,进行校验和检查,若正确去掉IP首部,送往上一层;对收到的ICMP的回显请求包,按照格式组装1个ICMP的回显应答包并发送,以便于响应服务器的PING程序。
最后,根据标准定义UDP数据帧格式。这一层的主要工作有:对应用层传下来的数据包,加上UDP首部和UDP校验和,发往下一层。以及对下一层传上来的数据包,进行校验和检查,若正确去掉UDP首部,提出数据送给应用层。
3.3 数据通信的实现
根据系统上传数据量大而接收数据量很小的特点,加之单片机的处理速度有限,系统将数据传送程序放人到主程序中进行调用,而接收数据采用中断方式。
当本地系统有数据要发送时,首先在传输层将数据加上UDP首部,再调用网络层函数给其加IP首部,然后到链路层从ARP表中查询MAC地址,填入相应位置,并发给网络驱动程序传到以太网上。
当收到网络中断就读取数据,根据包的种类分别传给ARP或IP协议,由每一层自行处理数据,最后调用显示程序显示接收到的识别结果。
4 结 语
系统针对目前嵌人式指纹识别设备存储量小、处理速率慢的现状,采用高性能51系统单片机作为处理核心与MBF200连接并工作于MCU模式下,设计实现了一款高性的网络指纹采集识别终端。系统利用数据处理服务器海量存储及处理速度高,可实现快速复杂匹配算法的优点。系统采集速率高,识别性能好。系统可广泛应用于各类企业考勤应用。