基于51单片机的指纹识别.docx
《基于51单片机的指纹识别.docx》由会员分享,可在线阅读,更多相关《基于51单片机的指纹识别.docx(39页珍藏版)》请在冰点文库上搜索。
基于51单片机的指纹识别
基于51单片机的指纹识别
Abstract
Withtherapiddevelopmentofmodernscienceavarietyofnewtechnologies,ineverydaylife,weneedavarietyofauthenticationandavarietyofpasswordauthentication,aswellasavarietyofdeviceswithkeysforthesafeinstallationofsecuritysystems,etc.,socialprogressthedevelopmentoftechnology,topromotethetraditionalsecuritysystemresilienceincreasinglyweak.Thus,biometricapplications,bornaroundusbegantoentervarioussecuritysystems,biometricfingerprintidentificationasatypicalapplicationhasbeenverywidelyusedandrecognized,uniquefingerprintcharacteristics,lifeisnotforeveryoneonevariablecharacteristics,andeachperson'sfingerprintsarenotthesameindividual.
Thesystemuses89C52RCmicrocontrollerasthemainchip,itpassesbetweenthefingerprintrecognitionmoduleFM-180serialcommunicationwiththecommunicationmethodbyusingaliquidcrystaldisplayas12864,plussimpleperipheralcircuits,suchaskeyinput,LEDlightalarmcircuit,buzzercircuit,andfinallythroughthepreparationandproductionofsoftware,hardware,youcanimplementamicrocontrolleronthefingerprintinput,recognition,anddeletefunctionsoperatefingerprintidentificationsystem.
KeywordsFingerprintidentificationsystem;SCM89C52;LCD12864
1绪论
1.1课题的背景和意义
随着如今各种各样的高新技术的迅猛发展,在百姓日常生活中经常需要我们去确认各种身份的认证。
而在现在的大数据信息时代,每个人都拥有各种各样的大量认证密码,有一些是全数字的,还有一些是图像密码,例如手机开机密码,移动端支付密码,电脑开机密码,聊天软件登录密码等等,就单单这些移动端的密码都可以是无数个,更不要说还有一些更重要的安全密码,例如银行卡的支付密码等。
还有其他的一些比较传统的硬件机械安全防盗系统保险柜,大门钥匙、汽车钥匙、摩托车钥匙等等,随着现在时代的变化,科技的进步,传统的一些安全系统已经正在变得越来越脆弱了,因此,更先进更高级的生物识别技术开始走进我们的身边,出现在各种各样的安全系统中。
比如人脸识别、指纹识别、眼球视网膜识别等,而指纹识别作为生物识别里面一个比较成熟的已经获得了各行业界的认可的识别系统,广泛的被应用到安全系统中去。
指纹识别具有唯一性,每个人的每一个指纹都是独一无二的,可以说指纹是一个人身份的标志。
本系统采用的是STC89C52传统的51单片机作为主控MCU,由于其低功耗、编程灵活简单、外围设备丰富,性价比高,所以被广泛的应用在一些低端的电子设备中,在高端产品中由于实时性,扩展性上受到了比较大的限制,所以很少有其身影。
但是也有它自身的突出的优点和意义,那就是简单好用便宜,在本次设计中做为主芯片,跟指纹模块进行串口通信,加以简单的一些外围设备,很方便的可以完成指纹识别系统应该具备功能。
这对于我更好的理解指纹识别原理和单片机结构功能很有帮助,这也是选题的意义所在。
1.2生物识别技术概述
所谓生物识别技术就是,通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段,利用人体固有的生理特性,(如指纹、脸象、红膜等)和行为特征(如笔迹、声音、步态等)来进行个人身份的鉴定。
由于人体特征具有人所固有的不可复制的唯一性,这一生物密钥无法复制,失窃或被遗忘,利用生物识别技术进行身份认定,安全、可靠、准确。
目前已经出现了许多生物识别技术,如指纹识别、手掌几何学识别、虹膜识别、视网膜识别、面部识别、签名识
别、声音识别等,但其中一部分技术含量高的生物识别手段还处于实验阶段。
我们相信随着科学技术的飞速进步,将有越来越多的生物识别技术应用到实际生活中。
而根据国际生物识别小组在2009年作出的一个不完全统计,目前市场上已经有很多种针对人类的各个不同生理特征和行为的特征的应用。
比如视网膜识别、虹膜识别、人脸识别、指纹识别等,而其中应用最多的就是说指纹识别。
1.3指纹识别技术概述
每个人的每一个手指的皮肤都有一个不一样的花纹,是每个人的一个生物特征,这个特征具有一个非常重要的特点,那就是唯一性。
也就是说任何一个不同的手指的指纹都是不一样的,独一无二的。
在指纹识别技术中称这个指纹为指印,即是人手指的按印,如下图所示。
图1指纹指印
19世纪初,科学家们发现每个不同的指纹的两个非常重要的特征,一是两个不同手指的指纹纹脊不同,二是指纹纹脊的样式终生不变性。
这一研究发现使得指纹正式在犯罪鉴别中得以应用。
指纹指标技术把一个人跟他的指纹对应起来,通过比较他的指纹和事先已经存在的指纹做对比,从而确认这个人的真正身份。
每一个人的指纹的皮肤纹路在图案、断点和交叉点上各不相同,也就是说,唯一性的,独一无二的。
1.4本章小结
本文以51单片机为主芯片,采用指纹识别模块FM-180,液晶采用12864显示,加上其他外围的一些简单设备,可以实现对指纹的录入、指纹的识别、指纹的删除等共,组成了一个基于51单片机的指纹识别系统,从而对指纹识别算法的研究和单片机的结构更进一步的了解,并且根据硬件选型,选择了其中较为可行的方案,并制作和调试电路板。
具体的章节和各章的内容安排如下:
第一章阐述了本课题的研究背景和意义,同时介绍了生物识别特征的几个识别手段,最后介绍了指纹识别技术的概念。
第二章介绍了本文设计的要求,最后根据要求设计出合理的具体方案。
第三章介绍了本设计的硬件部分,包括主要的元器件选型,各个电路的设计和分析。
第四章介绍了本设计的软件部分,包括整个系统的方框图,功能的具体介绍,最后还简单介绍了开发环境。
第五章介绍了本系统的调试过程,主要是在整个系统的调试过程中遇到的问题和解决方法。
第六章是对本文的一个总结,以及提出对整个设计的一些不足。
2设计方案
2.1设计要求
本设计要求如下:
1、系统默认至少有一位管理员,没管理员的时候提示必须添加管理员方可操作;
2、可以对管理员进行添加,最多有2位,普通用户可以添加400多位;
3、录入指纹和删除指纹的时候必须管理员验证,验证成功才可以添加用户,否则不可以添加用户;
4、可以查看管理员和普通用户的数量;
5、可以对指纹进行删除,需管理员验证;
6、通过以上要求,制作出一套具有软件和硬件相结合的指纹考勤系统。
2.2设计方案
通过上节的设计要求,根据搜集资料并且结合自身所学知识,最后制定的本设计方案如下:
本设计以51单片机STC89C52作为主芯片,选取了指纹识别模块FM-180进行二次开发,该模块采用串口通信方式,按照指纹系统自定义的协议来跟单片机通信,单片机按照固定的协议去读取指纹系统的数据,同时对指纹系统发送指令进行控制,从而实现指纹的操作;而显示器选用LCD12864,液晶在系统运行中和各个不同功能模式的时候显示对应的提示内容;设计要求可对指纹进行录入、识别、删除等操作,通过不同的按键来完成,本设计采用了5个独立的按键,软件部分采用轮询检测IO电平来判断按键值;报警提示选用的元件是蜂鸣器和LED灯。
2.3本章小结
本章介绍了本课题设计的具体要求,最后根据设计要求制定的合理可行的具体方案。
3硬件设计
3.1主要元器件选型
3.1.1单片机选型
图2STC89C52
本设计中需要用到跟指纹模块进行通信,而经过对单片机与模块通信方式的多种比较后,决定采用比较简单的串口通信,而串口通信在大学课本里面也有讲过,自己用起来应该还是相对比较简单的。
串口通信的方式,几乎在任何一款单片机都有硬件支持的,只不过有的串口有多个,有一些少而已。
按照之前自己接触过的单片机,51单片机作为本次的单片机主控芯片,功能上是基本可以满足实现的,51单片机作为最经典的8位处理器,同时也是很多大学作为电子类专业的必选课程之一,可见其功能和实用性还是被大家认可的。
所以本次决定在STC89C52RC单片机和STC12C5A60S2这两个中选出一个作为主控芯片。
两者都是51内核,不同点有一下几点:
1、12C5A60S2是1T模式的,比普通的51单片机89C52可以快6~8倍,而定时器,串口为了兼容传统的51单片机,是可以设置为1T模式或者12T模式的;
2、12C5A60S2有两个独立的串口,而89C52只有一个串口,一般在调试过程中,有多个串口是最好的,可以调试看信息,找问题所在,而这次的设计显然不需要,只需要用到一个串口通信即可;
3、作为重要的对比,12C5A60S2的RAM有1280个字节,ROM有60K的存储空间,可见12C5A的容量是非常大的,而89C52的RAM和ROM就相对小很多,分别是512字节和8K,但实际上,作为本次的功能,已经足够了。
经过以上选择对比,最后决定选用STC89C52作为本次的主控芯片。
3.1.2指纹模块
作为本次的重要传感器,指纹识别模块无法自己去做,只能通过网上淘宝买现成的模块回来进行二次开发,市场有各种各样的指纹模块,价格也是五花八门,但实际上基本的协议还是比较相似的,只不过有的支持的协议指令多,有一些支持的指令相对来说比较少而已,本次需要用到的功能有录入指纹,识别指纹,清空指纹,显然这三个指令,几乎所有的模块都可以实现,根据最后筛选和价格比对,最后决定选用FM-180作为本次的指纹识别模块。
FM-180指纹模块,一体化结构,已经包含了算法芯片,其质量稳定,性能优异,产量稳定,多行业客户的实际选择,给您无忧的产品保障体系。
FM-180指纹模块由光学指纹传感器、高速DSP处理器、高性能指纹比对算法、大容量FLASH芯片等软硬件构成,集成了采集芯片和指纹算法芯片;性能稳定,结构简单,具有指纹录取、图像处理、指纹对比、指纹搜索和模板存储、手指感应输出等功能;采用8条精简指令,开发更简单。
产品特点:
◆ 功能完善:
独立完成指纹采集、指纹登记、指纹比对(1:
1)和指纹搜索(1:
N)功能。
◆ 体积小巧:
产品体积小巧,没有外接算法DSP芯片的电路板,已经集成一体,方便安装,故障少。
◆ 超低功耗:
产品整体功耗极低,适用于低功耗要求的场合。
◆ 抗静电能力强:
具有很强的抗静电能力,抗静电指标达到15KV以上。
◆ 应用开发简单:
开发者可根据提供的控制指令,自行指纹应用产品的开发,无需具备专业的指纹识别知识。
◆ 安全等级可调:
适用于不同的应用场合,安全等级可由用户设定调整。
技术参数:
供电电压:
DC4~6V
供电电流:
工作电流:
110mA(典型值)峰值电流:
140mA
指纹图像录入时间:
<0.3秒
匹配方式:
比对方式(1:
1)搜索方式(1:
N
特征文件:
256字节
模板文件:
512字节
存储容量400枚
安全等级:
3级
认假率(FAR):
<0.0001%
拒真率(FRR):
<1.0%
搜索时间:
<1.0秒(1:
1000时,均值)
上位机接口:
UART
通讯串口波特率:
57600bps
图3FM-180
3.1.3液晶显示
作为人机交互界面,显示器起到一个至关重要的元件,本文中需要将整个操作的过程完全显示在显示器上面,比如录取指纹,识别指纹是否正确还是错误等等。
下面就本设计的过程中对显示器的元件选型进行分析和对比。
方案1
图4数码管
采用数码管的形式来作为显示器,数码管是一种半导体发光器件,一般单独的数码管有7段的数码管和8段的数码管,8段的数码管比7段多了一个小数点的段,他们的显示单元都是发光二极管。
数码管还有共阳极和共阴极之分。
将每个发光二极管的正极连到一起,将负极单独分开,就是共阳极,反过来,将每个发光二极管的负极连着一起就是共阴极。
需要显示一个数字的时候,只需要把对应的发光二极管点亮即可组成一个数字显示,而一般采用的方法是动态扫描,使得每个发光二极管轮流的显示出来,由于单片机的速度很快,所以我们肉眼并不能看出来。
数码管价格便宜,使用简单,但是只能显示基本的数字,并不能显示一些比较复杂的字符,所以在一般需要显示复杂的电子设备中比较少见。
方案2
采用液晶LCD1602作为显示器,供电电压有3.3V和5V两种,能够同时显示16*2个字符,16列2行,其内部模块里面已经存储了160多个我们平时很普遍用到的的点阵字符图形,每一个字符符号都有一个固定的代码编码,只需要发送对应的代码编号给液晶模块,就会自动显示出来对应的字符,共有16个引脚,和单片机通信采用的是并行通信方式,即8个IO口,该模块优点是可以显示基本的字符符号,价格便宜。
但是也有其不足的地方,就是不能显示中文,而且只能是显示2行,和单片机通信需要8个IO口。
加上3个控制引脚,一般都需要用到11个IO口。
图5液晶1602
方案3
采用液晶12864,显示器12864液晶,可以显示中文,并且是自带字库,字库中有几千个常用的汉字,用起来基本是可以满足的,接口也是比较灵活,可以选择并行或者串行接法,串行接法只需要用到两根线。
液晶的引脚图如下图所示。
液晶的D0~D7是数据引脚,当液晶作为并行通信的时候,单片机要连接这8个数据口,而液晶的PSB引脚是选择并行或者串行的引脚,当低电平时为串行方式,当高电平时为并行方式。
由于串口方式接口更简单,和单片机通信只需要2个IO口,在电路图设计中更为方便,所以一般在设计中可选择该方式。
液晶还带了一个背光的对比度调节电位器,可以调节字体和背光之间的一个对比度,而现在很多液晶都已经出厂时就把这个电阻值定好了,无需在手动去调节。
表一液晶12864引脚
管脚号
管脚名称
电平
管脚功能描述
1
VSS
0V
电源地
2
VCC
3.0~+5V
电源正
3
V0
-
对比度(亮度)调整
4
RS(CS)
H/L
RS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
5
R/W(SID)
H/L
R/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
6
E(SCLK)
H/L
使能信号
7
DB0
H/L
三态数据线
8
DB1
H/L
三态数据线
9
DB2
H/L
三态数据线
10
DB3
H/L
三态数据线
11
DB4
H/L
三态数据线
12
DB5
H/L
三态数据线
13
DB6
H/L
三态数据线
14
DB7
H/L
三态数据线
15
PSB
H/L
H:
8位或4位并口方式,L:
串口方式
16
NC
-
空脚
17
/RESET
H/L
复位端,低电平有效
18
VOUT
-
LCD驱动电压输出端
19
A
VDD
背光源正端(+5V)
20
K
VSS
背光源负端
图6LCD12864
综上三个方案对比,最后选择液晶12864作为本次的显示器模块
3.2电路设计
3.2.1最小系统
单片机最小系统一般由晶振电路、复位电路和单片机组成,是整个设计系统中最基本的也是最简单的电路,只有简简单单的几个元件,2个电容和一个晶振连接单片机的XTAL1和XTAL2引脚,而一个电阻和一个电解电容连着单片机的复位引脚,看似这个电路非常简单,但这也关系着整个软件系统能不能正常工作,只有这个电路正常了,其他电路才有可能继续执行下去,由这个简单的电路,加上单片机最简单的启动程序,也就是我们平时所说的bootloader,简称为引导程序,这个引导程序是有芯片厂家出厂的时候就已经刷进去的,上电之后芯片会去执行这一段程序,包括配置一些寄存器和分频之类的操作,同时当我们去烧写程序的时候,也需要用到这个引导程序,通过PC发送固定码给芯片,芯片接受到后进进入这个程序开始接受用户程序,达到升级用户程序的功能,构成单片机最小系统。
单片机正常供电为直接5V,工作时RST复位引脚为低电平,手册上面说明只要单片机的复位脚超过2个机器周期的高电平,单片机就可以正常复位,所以按下复位按键,单片机复位。
图7最小系统电路
3.2.3液晶显示电路
本设计中,液晶显示起到一个人机交互的作用,尤其重要,试想如果没有界面提示的话,整个操作过程将很难去实现全部的功能。
液晶12864可以显示4行,每一行可以显示8个汉字,共可以显示32个汉字,对应这个系统来说,是足够的,一般出现不够行的情况下,大都是采用切换到第二个节目显示的方法;12864液晶跟单片机的通信方式有两种,一种是并行,一种是串行,对于串行来说,电路是比较简单不需要那么多的IO口,只需要两个IO就行,一发一收,但速率就比并行比较慢,而并行由于8个IO一起发送数据,因此要比较快,对于显示刷新频率要求不高的话,可以考虑用串行方式,毕竟电路简单,IO少,而本次的设计过程中采用的是并行方式,跟LCD液晶的通信端设置为P0端,而单片机的P0端默认是没有上拉的,因为也要在电路中给P0口接上一个8个电阻的排阻,阻值一般取1K,而液晶的第三脚作为背光调节亮度,可以接一个电阻器来改变该脚的电压值从而达到可以调节亮度的效果,由于没有现成的电位器,因此该引脚悬空操作,液晶也可以正常显示。
图8液晶12864电路图
3.2.4指纹通信电路
本文采用的指纹识别模块是集成的模块,跟单片机通信采用的是串口方式,波特率是57600,8位数据,一位停止位,无校验。
由于单片机需要外部晶振,所以在需要用到串口的电路中,该晶振都必须是为11.0592M的倍数,如果采用12M的话,波特率会有误差,会造成串口数据丢失的情况。
89C52单片机只有一个串口,所以用串口1跟指纹模块通信,单片机的RXD接指纹模块的TX,而单片机的TXD接指纹模块的RX。
通过指纹模块的数据手册,发送对应的指令给指纹模块,即可实现录入指纹、识别指纹、清空指纹等操作。
图9指纹通信电路
3.2.5蜂鸣器电路
图10蜂鸣器驱动电路
本次设计中,由于需要在录入指纹和识别指纹中对正确或者错误做出判断,因此在电路设计中加入了蜂鸣器来作为提醒报警响应的作用。
采用的是直流电压5V供电的有源蜂鸣器,但是一般的蜂鸣器在整个系统运行中需要比较大的电流,51单片机的IO口除了P0口外其他的都有一个弱上拉电阻,但IO的驱动电流也是非常低,不加外部的驱动电路是很难直接驱动的。
而最常用的就是用普通的三极管来放大电流驱动,该三极管在电路中的作用是开关电路并且放大电流,P37高电平为蜂鸣器响,低电平蜂鸣器停止。
报警提醒电路如图10所示。
3.2.6按键电路
图11按键电路
设计中有录入指纹功能、识别指纹功能、清除指纹库功能,这些功能的切换都是通过按键来实现的,按键一般有独立按键,矩阵键盘等,由于本次涉及到的按键不需要很多个,因此采用独立按键的形式,简单方便易操作,而按键电路用的是直接练到单片机的IO上面,通过对该IO口电平读取不同的值来区别按下还是弹开,按键用的是4脚按键,对角的两个引脚为一对,是导通的,随便一个引脚接地,对角IO接入单片机,按下按键时,4个引脚都接通,即与单片机连着的引脚也被拉低,单片机IO也响应被拉低,软件就认为此时按键被按下,执行按下操作,由于按下过程中有电压毛刺,所以软件一般采用10MS的延时来代替消抖动作。
3.2.7LED电路
LED作为电子电路中最常用的指示作用,本次中也用到了两个LED灯来作为系统的提示灯作用,一个为红色,一个为绿色,LED作为二极管的一个最典型元件,其两端也是有一个压降,一般1.3V左右,根据电子知识,只要在两端上有超过这个的压降,二极管就导通,为了保险起见,可以在单片机的IO口接上一个限流电阻,不至于上电时容易烧坏。
当单片机的P35和P36高电平的时候,LED灯就亮,反过来,当为低电平的时候,LED灯就灭。
图12LED电路
3.3本章小结
本章介绍了本设计的元器件选型以及各个电路部分的设计和分析。
4软件设计
4.1系统方框图
通过第二章的介绍,我们根据设计的要求采用STC89C52作为主控芯片,FM-180则作为本次最重要的指纹传感器,液晶12864作为人机交互界面,同时用独立按键来进行各个功能切换,蜂鸣器和LED灯作为报警提示,最后根据设计要求做出的方框图图下图所示:
图13系统结构框图
系统上电之后,经过一系列的初始化,比如串口初始化,定时器初始化,初始化完成后进入主程序。
由于单片机是单线程运行的,所以在主程序中采用一个while循环来执行整个的主程序。
4.2功能介绍
1、本系统设计了一个管理员的操作,即出厂时必须录入一个指纹,该指纹录入成功后就是该系统的管理员,方可进入主界面。
主界面的功能有识别指纹功能、添加管理员功能、添加普通用户功能、清空指纹库功能,而每个功能的选择是通过按键来切换的。
图14主界面
2、进入主界面之后可以对系统进行一系列的操作,管理员可以有2个,当录入达到2个时会有提示。
而要对系统的指纹进行录入普通用户和清空指纹库指纹都需要管理员验证。
当验证失败的时候液晶提示相对应的内容,只有验证成功了才可执行下一步操作。
图15管理员验证
3、当管理员验证成功后就可以录入普通用户了,该系统可以录入多达400多位的普通用户,录入过程中只需要按住手指不放,当录入完成后液晶提示录入成功字符同时显示出对应的指纹ID号。
同样的录入失败也会有同样的提示。
图16添加用户
4、清空指纹库的操作一样要经过管理员验证,验证成功后,系统将把所有的指纹删除,即清空指纹库。
这时候没有任何指纹,同样的提示要录入管理员,也就是恢复出厂设置。
图17清空指纹库
5、除了基本的录入指纹,识别指纹,清空指纹之外,板子还有一个查询按键,当按下该按键时,液晶显示出系统中已经存在的管理员和普通用户的数量,起到一个很好的查看作用。
图18查询界面
4.3开发环境介绍