博主主页:单片机辅导设计
博主简介:专注单片机技术领域和毕业设计项目。
主要介绍
在科学技术飞速发展的今天,社会对身份识别的要求越来越高,尤其是在企业管理的人员签到、工作考勤等活动中对身份识别的高效性和可靠性的需求更为迫切。传统的身份识别方式已经难以满足信息高度机密化的现代社会的需求。但随着计算机运算能力的不断增强以及相关算法的不断完善,指纹识别技术在身份识别领域的应用越来越普遍。
因此,将指纹识别技术应用于签到考勤中,做成指纹打卡机,能够很好的满足现代社会的要求。本设计以STC12系列单片机作为主控芯片,设计一个满足基本考勤要求的指纹打卡机系统。整个系统最终功能包括指纹登记、指纹签到签退、指纹信息删除以及打卡时间显示等,能够基本满足一般的考勤需要。
关键词: 指纹 打卡机 单片机
一、本设计的研究内容
本课题,主要是针对传统考勤系统易作假、难管理、低效率等不足,利用指纹识别技术、单片机控制技术等手段,设计一种高效、可靠、便捷的指纹打卡机。其功能满足指纹登记、指纹考勤(签到、签退)、指纹修改和删除等。整个系统以增强型STC12系列单片机作为主控芯片,实现对指纹模块(FM-70)、显示模块(LCD1602)、按键模块等各部分的控制,从而构成一台完整独立的指纹打卡机。
该打卡机设计为脱机型打卡机[9],不需要PC的参与就可以独立完成考勤功能,实用性强。这就避免由于上层控制端(如PC机)出现故障或者不匹配而导致指纹打卡机无法正常工作的情况。另外,脱机型打卡机灵活性强,只需要提供相适应的电源,就能够在各种各样的场合使用。与联机型指纹打卡机相比,脱机型指纹打卡机不需要依靠复杂的数据库技术,系统结构简明直观,一定程度上降低了开发难度。
传统的指纹打卡机一般采用指纹图像统计方法[7]来进行指纹识别,即将采集到的指纹图像与指纹库里的指纹图像进行统计比较,计算出两者的相似度,当相似度达到设定值,则判断两幅指纹图像来自同一人,从而实现身份认证。但这种方法存在比较明显的缺点,因为采集指纹图像时,会由于指纹清洁度或手指滑动、旋转、角度等问题,导致同一根手指采集到的指纹图像相差较大,从而使得误识率和拒识率偏高。针对这点,本设计采用的是指纹图像特征对比的方法,即通过比较两幅指纹图像的特征结构,来判断两幅指纹图像是否来自同一个人。即使由于各种原因导致前后采集的两幅指纹图像差异较大,但两者之间的特征结构依然相差不大。因此,利用特征对比的方法能很好解决上述问题。
特征对比包括两个部分:特征提取、特征匹配。为了更好地降低指纹识别的误识率和拒识率,本设计采用8邻点统计提取方法[4]和点模式匹配算法[4]。
(1)特征提取
在提取特征之前,需要进行细化,步骤如下:
①从整幅指纹图像中,找出所有纹线边界点;
②判断该边界点是否该删除;
对边界点P(图2-1),顶替两个特征量nsum和tsum,他们的值分别为
nsum= (1)
tsum= (2)
如果P点的值同时满足tsum=2,nsum≠1且nsum<6,则可以将其删除(像素值置为0)。
图1-1 8邻点分布图
③对下一个边界点进行判断,直到整幅指纹图像都没有可以删除的边界点为止。
指纹细节特征点(端点和分叉点)的提取是按照8邻点统计方法进行的。目标像素点P以及其8邻点的定义如图1-1所示,对目标像素点P,计算其nsum和tsum的值。工式(1)描述为:如果naum=1,则P为纹线端点;如果nsum=3,则P为纹线分叉点。该公式必须在指纹纹线被严格细化成单像素宽的情况下,才能正常工作。公式(2)描述为:如果tsum=2,则P为纹线端点;如果tsum=6,则P为纹线分叉点。该公式不仅适用于完全细化的图像,还适用于未完全细化的图像。
由于存在大量噪声,所以需要注意对原始细节特征点集中的伪特征进行删除。
(2)特征匹配
特征匹配又分为两种:特征对比、特征搜索。特征对比就是把待识别指纹特征文件与模块中的一个模板文件进行匹配,即1:1方式;特征搜索就是把待识别指纹文件与模块中的多个模板进行匹配,即1:N方式。
目前比较先进的匹配算法为点模式匹配算法[4]:从待识点集中选择任意一个特征点pi,再从模板点集中选择任一个特征点qk,然后把两者组成一对特征点对。分别在待识指纹图像和模板指纹图像中确定出两个距离它们最近的特征点p1、p2和q1、q2组成特征点子集。这样,分别在待识指纹图像和模板指纹图像中就形成了两个三角形(pi,p1,p2)和(qk,q1,q2),通过判断这两个三角形的相似度来确定特征点对是否匹配。
三角形相似度判断的步骤如下:①分别计算顶点pi和qk所对应的边长; ②如果,说明两个三角形所对应的一条边不等长,即两个三角形不可能相似,结束本次判断;③选择新的顶点pi和qb,以及距离它们最近的两个特征点,返回第①步;④否则,分别计算和。如果且,则两个三角形的三边近似相等,也就是两个三角形近似全等。·
二、 系统方案的制定
2.1系统功能要求
本设计的基本功能要求如下:
功能1:录入功能,录入人员的指纹信息,并同时输入对应的编号,并在显示屏上显示,系统自动保存;
功能2:指纹打卡功能(包括签到、签退),人员输入指纹信息,若不存在,系统提示错误;若存在,则系统自动输出对应的人员编号信息,记录并显示打卡时间;
功能3:信息删除和修改功能,系统可以随意修改或删除人员信息。
根据功能要求,拟出三种方案。
三、系统硬件设计
3.1系统整体设计
根据课题设计的功能要求,并综合成本、性能和开发难度等因素,最终确定好整个系统的硬件结构,其电路图、最终实物图分别如图3-1、图3-2所示。
图3-1 系统电路图
图3-2 系统实物图
按键模块和蜂鸣器由P3口驱动。另外,电源模块设计为5V直流电输入,并附加一个LED灯作为系统通电标志。
三、系统软件设计
4.1系统主程序设计
利用STC12C5A60S2作为主控芯片设计指纹打卡机,其主程序流程图如图4-1所示。
图4-1 系统主程序流程图
四、结论
根据设计要求,本系统已基本实现以下功能:①人员指纹登录,系统上电后,各模块初始化,通过按键选择指纹登录功能,系统进入指纹登录模式,人员可以把自己的指纹信息存入到系统当中并进行编号;②人员考勤签到,通过按键选择指纹签到模式,签到模式又分为签到与签退,第一次指纹打卡为签到,系统将签到人的指纹信息与指纹库中的指纹模板进行匹配,若指纹符合,则签到成功,液晶屏显示签到时间和签到人员的编号。若指纹不符合,则液晶屏不显示;第二次指纹打卡为签退,系统将签退人的指纹信息与指纹库中的指纹模板进行匹配,若指纹符合,则签退成功,液晶屏同时显示签到签退时间;③指纹信息删除,通过按键选择指纹删除模式,系统清除指纹库里的所有指纹模板。
虽然该系统基本满足指纹打卡需求,但功能相对简单,而且还有很多需要完善的地方,如指纹存储容量不够大,显示信息不够详细,删除功能并没做到真正的随意删除和修改等。在以后的学习当中,我会对系统作进一步改进。
目录
目录
第1章 引言 1
1.1 指纹识别的研究意义 1
1.2 指纹识别的国内外发展现状 2
1.3 本设计的研究内容 2
第2章 系统方案的制定 6
2.1 系统功能要求 6
2.2 方案一 6
2.3 方案二 7
2.4 方案三 7
2.5 最终方案确定 8
第3章 系统硬件设计 9
3.1 系统整体设计 9
3.2 系统主控模块(STC12C5A60S2系列) 10
3.3 指纹识别模块(FM-70) 12
3.2.1 FM-70的特点 12
3.2.2 FM-70管脚功能 13
3.2.3 FM-70内部资源介绍 14
3.3.4 FM-70主要指令 14
3.4 显示模块(LCD1602) 15
3.5 独立按键模块 17
3.6 时钟模块(DS1302) 18
3.7 蜂鸣器 19
第4章 系统软件设计 21
4.1 系统主程序设计 21
4.2 指纹采集程序设计 23
4.3 指纹签到程序设计 26
4.4 指纹删除程序设计 28
4.5 开发环境介绍(Keil) 30
结 论 32
致 谢 33
参考文献 34