指纹密码锁设计论文.docx
- 文档编号:27435853
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:50
- 大小:3.73MB
指纹密码锁设计论文.docx
《指纹密码锁设计论文.docx》由会员分享,可在线阅读,更多相关《指纹密码锁设计论文.docx(50页珍藏版)》请在冰豆网上搜索。
指纹密码锁设计论文
南京工程学院
毕业设计说明书(论文)
作者:
毛仲义学号:
202120621
院系:
计算机工程学院
专业:
电子信息科学与技术
题目:
基于单片机的指纹密码锁设计
指导者:
勤 讲师
评阅者:
田丽鸿副教授
2016年5月南京
毕业设计说明书(论文)中文摘要
指纹密码锁是基于单片机开发的一个利用指纹识别技术完成解锁功能的智能系统。
本课题的主要任务是研究指纹录入、特征信息提取、生成模板并存储的原理,同时指纹传感器将实时采集到的信息和单片机进行交换。
单片机在逻辑上控制指纹相关操作的全过程。
本系统在Keil4环境下利用51C成功编写了一个支持指纹和键盘解锁的软件系统。
该系统中包括了指纹检测、指纹采集,模板匹配、键盘扫描、密码输入以及液晶显示等功能。
当指纹模板匹配成功或密码输入正确则启动开锁电路,反之,密码输入错误超过3次则开启报警电路。
完整模拟了现实开锁的真实过程。
关键词指纹锁 键盘扫描 液晶显示 报警电路
毕业设计说明书(论文)外文摘要
TitleFingerprintLockBasedonMicrocontronllers
Abstract
FingerprintLockisanintelligentsystemdevelopedbasingonmicrocontrollerwhichusesfingerprintidentificationtechnologytocompletetheunlockfunction.Themaintaskoftheprojectistostudythefingerprintinput,featureinformationextraction,principleoftemplategenerationandstorage.Meanwhile,thefingerprintsensorchangethereal-timecollectionofinformationwithmicrocontrollers.MCUcontrolsthewholeprocessoffingerprintrelatedoperationsinlogic.
ThesysteminKeil4environmentuses51Csuccessfullywrittenfingerprintandunlockedthekeyboardsupportingsoftwaresystem.Thesystemhaslotsoffunctionsincludingfingerprintdetection,fingerprintacquisition,templatematching,keyboardscan,passwordenteringandliquidcrystaldisplay.Whenthefingerprinttemplatematchingissuccessfulorthepasswordisenteredcorrectly,thelockcircuitstarts.Onthecontrary,enteringthewrongpasswordmorethanthreetimeswillopenthealarmcircuit,whichsimulatestherealrealityunlockingprocesscompletely
KeywordsFingerprintLock,KeyboardScan,LiquidCrystalDisplay,AlarmCircuit
目 录
第一章概述
1.1系统设计目的及意义
在日常的生活和工作中,住宅、物业、单位、银行的财产以及一些重要的资料的安全都会选择用加锁的办法来保证其安全。
但使用传统的机械锁,需要携带多把钥匙,而且一旦丢失、被盗或遗忘,不仅配置相当麻烦,而且可能被他人复制冒用,造成极大的安全隐患,甚至财产损失。
现代社会对安全的认证方式标准是简单、快捷和高效。
而生物特征识别技术具有随身携带、不易仿制等优点比之传统的方法更安全、方便和,恰好满足人们对防伪精度高,快捷高效的需求。
目前生物特征有手形、手指静脉、指纹、脸形、视网膜、虹膜、语音等,根据这些特征,分别研究出相应的识别技术,如手形识别、指纹识别、面部识别、虹膜识别等等。
但基于技术的理论和实际生产之间的差距,以及不同行业不同人群对于安全级别和使用场合的要求不同。
注定有些技术不能在大围普及使用,例如虹膜,虽然其安全系数最高,但成本也非常高,而且识别过程复杂,所以用在政府、军事及金融等高领域。
距离全民化还有很漫长的路要走。
虽然我国在手指静脉、虹膜、视网膜等生物特征识别领域要比国外的晚一点,但指纹识别技术却差不多和国外是同一时期开始的,所以无论在技术研究还是在市场上相关产品的普及都丝毫不比国外差。
指纹识别虽然成熟,但是并没有真正实现“飞入寻常百姓家”,为日常生活提供服务。
而指纹技术因其自身具有的优越特点注定会受到越来越多的关注,并最终实现全民化。
因此指纹识别作为一门高新且具有发展前景的热门技术,值得好好研究一下,所以本次毕业设计便选用指纹识别技术相关的课题。
除此之外,此次毕业设计需要熟练掌握单片机硬件设计方面的技术和软件编程的知识,之前学习的知识都是碎片化的,没有作为一个系统来考虑系统中各个模块如何部署,如何分工协作,所以毕业设计过程也是一个知识融合、系统化、精细化的过程,对于完善知识体系和理解实际开发流程有很大帮助。
1.2指纹识别原理及其前景
本次设计中比较重要的模块便是指纹传感器了,指纹识别技术的概念已经比较普遍,简单来说,是通过比较指纹上不同的细节特征点来区别不同的身份。
这些细节特征点是通过对指纹图像进行算法处理后得到的,体现在手指上则是凹凸不平的纹路的起点、终点、结合点和分叉点等可视化的信息。
每个人手指上的指纹就一个独一无二的“迷宫”,而每个迷宫的起点、终点、拐点都不同,正是由于这些不同的“特征点”成为区分每个人身份的重要标识。
当前,主要有两种采集指纹图像数据的方式:
光学识别、半导体识别。
光学识别是通过光学发射器发射的光线射在手指上后再反射回机器来获取指纹图像数据,并与之前采集好存储在模板库的指纹信息自动对比看是否一致,光学识别准确度受到手指是否干净、受伤、蜕皮的影响。
但是随着不断的优化,光学指纹传感器的精度已经很高,而且识别精度可以根据需求动态设定,同时价格也相对较低一点,因此本设计采用光学指纹传感器来完成。
指纹传感器采集好图像之后,使用指纹算法来实现指纹特征的提取、匹配、计算之后的特征点就是指纹模板库,每次都会自动把两个指纹的模板进行对比,计算其相似度来确定是是否为同一个指纹。
在应用方面,比较前沿的像华为的Mate、荣耀系列、三星、小米5、vivo、乐视、酷派等手机都有通过识别指纹来解锁的功能。
国外的近日有苹果公司的ApplePay,在2月18日正式进入中国后,和国不少银行合作用于在线支付,掀起了一股指纹支付的热潮。
由于其快捷方便而且安全系数高的特点迅速在全球蔓延开来受到年轻人的追捧。
但在技术方面归根结底还是通过手机上的指纹传感器采集用户数据准确匹配后来完成支付功能的。
在2016年智能手机领域指纹解锁和指纹支付将是中高端手机的标配。
未来随着指纹技术的逐渐成熟,生产成本的降低,将会在智能手机领域更加普及,甚至会广泛应用于我们日常生活的方方面面,为高品质的生活提供便利服务。
1.3系统设计流程
系统会在AltiumDesigner9开发平台上设计原理图,绘制PCB并制成单片机开发板,然后根据原理图将相关元器件焊接到开发板上。
软件部分在KeiluVision4开发平台上进行相关代码的编写和调试。
然后利用串口助手工具将代码下载到开发板进行运行,观察硬件各模块是否可以正常运行,以及测试结果是否能够满足需求,便于及时调整程序。
课题的主要任务是设计出一个可以录入指纹,并对录入指纹提取特征信息然后与指纹模板库进行匹配最终达到开锁功能的一个系统。
指纹模板库的建立需要首先采集指纹进行图像算法处理,提取特征点做成特征文件并进一步合成特征文件存储在Flash,每次开锁都会采集指纹并和存储的模板进行比对判断是否为同一个指纹以确定是否授权打开锁。
同时系统也支持指纹未录入时在键盘手动输入管理员密码进行解锁的功能。
本论文由五部分部分组成,其中第一部分为概述,第二三部分分别为系统硬件和软件设计过程,第四部分为系统调试测试过程,最后一部分为总结与展望。
第二章硬件系统设计
2.1硬件系统整体设计
本次设计是一个单片机相关的课题,主要设计硬件部分和软件部分,而所有工作开展都必须从设计原理图开始,只有设计出正确的原理图才能保证完成一个可以正常运行的硬件设备,软件可以不断调试,但硬件一经设计制作成品便不能再改变,所以硬件设计的每一个细节都要仔细推敲,反复验证,多仔细都不为过,尤其是没有单片机设计经验的话更应该注意。
而硬件设计的第一步便从新建一个工程开始,新建工程的过程比较繁复这里不做详述。
2.1.1系统框图设计
根据系统需要实现的功能进行需求分析,将功能模块化成一个个单元电路,每个单元独立设计、调试,留出与其他模块接口,最后在逻辑上进行嵌套调用实现整体设计,具体的硬件系统设计框图如图2-1所示。
图2-1硬件系统设计框图
2.1.2系统原理图设计
由于本次是模块化的设计,每个模块的电路分开设计,引脚之间的连接使用PlaceNetLabel连接,即电气连接。
虽然引脚没有连接在一起,但相同的NetLabel则表示两个硬件是物理连接的,这样避免了大量复杂的布线导致引脚之间的对应观察起来容易混淆的问题,因此使得本次的设计看起来逻辑上更加清晰明了,出了问题排查起来也更加容易。
硬件原理图的系统设计如图2-1所示。
图2-2硬件设计系统图
每个模块之间使用线框分割开来,但是这个线并不是连接元器件的线PlaceWire,这个线是有电气信号的不能使用,点击UtilityTools选择PlaceLain,还可以设置线的颜色,宽度等等,每个模块的功能有文字旁注,使得不懂原理图的人打开之后也知道每部分是实现什么功能的,点击UtilityTools,选择PlaceTestString,再点击table键输入需要的容即可,而且可以根据需要设置字体大小颜色等。
2.1.3系统PCB图设计
原理图设计完成后需要编译,查看有没有输出错误信息则将原理图更新到PCB文件开始布线,PCB布线首先影响的是板子的外形是否美观,当然最重要的还是板子能够稳定高效的运行。
而布线过程中需要进行相关的设置并遵守一定的规则才能达到这样的效果。
本次设计主要遵循了几个最重要的规则,由于单片机的晶振频率比较慢属于低速板,电气信号之间的干扰影响比较小,所以只要不犯明显的错误画出一个性能稳定且美观的板子还是很容易的。
首先走线要最短,保证走线最短就要将同一模块的元器件尽量靠近,尤其要将晶振电路靠近单片机芯片的引脚,否则板子是不能正常工作的。
这是最简单也是最重要的原则,决定了系统性能的稳定;其次电源和接地信号线要粗一些,本次设计使用30mil,而且布线过程中尽量避免90度走线,应使用45度拐角;最后板子要发到加工厂进行加工,出于对成本的考虑,板子面积控制在10*10cm。
本次设计的PCB是两层板,分为TopLayer层和BottomLayer层,设计完成后布线效果如图2-3和图2-4所示。
图2-3PCB的top层设计图
图2-4PCB的Bottom层设计图
2.2单片机最小系统设计
将CPU芯片、存储器芯片、I/O接口芯片和简单的I/O设备(小键盘、LED显示器)等装配在一块印刷电路板上,然后将应用程序下载进单片机,便构成一台简单的单片微型计算机,简称单片机。
最小系统即整个系统能够启动并进行工作的最小单元,缺一不可。
单片机也有自己的最小系统,分别是负责整个系统的运算和控制的单片机、为整个系统提供动力的电源电路、为整个系统提供时序节拍的晶振电路、可以使得系统随时从一个正常的初始状态开始执行的复位电路。
下边开始详细介绍单片机的最小系统以及相关的外围电路工作原理及设计实现。
2.2.1STC89C52单片机
STC89系列芯片是国公司宏晶科技研发生产的一款性能比较高的8位微控制器,且功耗更低。
由于STC89C52RC使用的是经典MCS-8051的核,所以指令代码完全兼容传统51单片机,这一点可以从使用keil4软件新建工程选择STC89C52RC芯片时的输出信息“8051-basedmicrocontrollerwith6T(6-clock)High-SpeedCore”中得到很好的证明。
STC89C52RC的主要特性如下:
工作电压:
3.8V-2.0V(3V)或5.5V-3.3V(5V)
8K字节FLASH(8KbytesflashROM)
512字节RAM(512bytesdataRAM)
32个I/O口(32-36I/OLines)
晶振频率围:
0到40MHz之间均可,本次设计采用11.0592M
可通过USB转串口工具连接单片机的RXD/P3.0,TXD/P3.1,VCC/20脚,GND/40脚,4个引脚即可完成用户程序的直接下载,但必须同时配合stc-isp-15xx-v6.57下载工具来实现(本次设计便是采用这种方法)。
下载时间长短由程序编译后的实际大小决定。
集成E2PROM存储功能(On-chipE2PROM)
增加看门狗功能(WDT:
即WatchdogTimer)
3个16位定时器/计数器T0、T1、T2(3Timers/Counters)
4个外部中断以及串口功能(UART)
STC89C52RC的引脚如图2-5所示。
图2-5STC89C52RC芯片引脚及扩展插针图
各引脚功能叙述如下:
VCC:
单片机的第40脚,电源输入端口
GND:
单片机的第20引脚,芯片的接地端口
P0口:
每一个引脚都可以作为输入输出使用。
P0口在当输入输出使用时由于是开漏的必须要加一个上拉电阻,本次设计使用一个10K的排阻。
P1口:
每一个引脚都可以作为输入输出使用。
P2口:
可直接作为输入输出口使用;寻址时可作为地址总线的高8位使用。
P3口:
每一个引脚都可以作为输入输出使用,除此之外,还定义了复用功能。
复用功能的定义如表2-1所示。
表2-1STC89C52P3口的第二功能
XTAL1:
接外部晶振的一端,输入端
XTAL2:
接外部晶振的另一端,输出端
2.2.2外部晶振电路
晶振即晶体振荡器的简称。
单片机执行汇编指令时,每条指令必须在固定的机器周期完成操作。
晶振的作用就是产生时钟周期,每12个时钟周期为一个机器周期。
一个完整的系统可能有成千上万条指令,所有的指令都必须按照一个时间刻度或者节拍有条不紊的执行,这个节拍就由晶振来提供。
单片机通过外接晶振,即外部提供时钟源,它结合单片机部电路产生单片机所需的时钟频率,其中晶振频率越高,单片机运算速度越快。
但一般单片机的速度都比较慢,所以外部时钟源进入单片机时部电路会进行12分频。
系统的时钟源使用11.0592M的晶振来提供,外部晶振电路设计采用晶振XTAL和电容C1、C2来构成,两个电容的一端接晶振,一端接地。
C1、C2和晶振构成并联谐振电路,最后通过XTAL1,XTAL2脚与单片机相连接,即可为单片机的所有指令的执行提供一个统一的时序。
本系统中C1和C2选择22PF,起微调的作用同时使时钟更加稳定。
晶振电路具体的接法如图2-6所示。
图2-6晶振电路原理图
本次设计的晶振为11.0592M,之所以选择11.0592M是因为单片机和指纹模块通信时波特率要求必须是9600bps,同时要在寄存器设置串口控制相关位装载TH和TL的值,只有在使用11.0592M的晶振时算出来的TH和TL是整数,而当使用12M晶振则装载进定时器的值是小数,这样取整后装载会有误差率。
所以为了满足本系统的要求选用11.0592M的晶振。
2.2.3复位电路的设计
复位电路的基本功能是:
单片机在上电启动时都需要进行复位,对CPU和各个模块的硬件进行初始化,并对一些寄存器以及存储设备装入厂商预设的值使其从初始状态进行运行。
如果在程序运行过程中出现错误或者其他硬件设备的异常导致需要引导单片机从重新开始运行时可以使用复位的方式来达到。
常用的复位方式有高电平复位和低电平复位,在本次设计中使用的STC8952RC芯片为高电平复位方式,即正常工作时复位引脚为低电平,按下复位按键时,复位引脚持续两个机器周期以上有效时间的高电平即可完成复位操作。
本次设计采用的复位电路为:
在单片机的复位引脚RESET上外接电阻R1和电容C3,以及一个独立的按键Sal来完成设计,连接方便,成本低廉,具体实现如图2-7所示。
图2-7复位模块原理图
本复位电路可实现上电复位和按键复位两种复位。
1 上电复位:
STC89系列单片机是通过高电平完成复位。
在VCC和GND之间串联一个电容和电阻,然后将复位引脚RSTET连接到电容和电阻之间,上电瞬间电容还未充电两端电压为0,相当于短路,RESET直接与VCC相连,复位操作只需要持续高电平两个机器周期的的有效时间就能完成复位,机器周期T=12/11.0592M(单位:
s),小数点后保留三位为0.001s。
两个机器周期约为0.002s,而电容充电需要t=R1*C3=0.1s,远远大于复位时间,即在电容充电未完成之前复位已经完成。
2 按键复位:
按键复位就是当复位开关被按下时,按键将与之并联的电容短路,直接将RESET与VCC接通,因此RESET被拉为高电平,同时电容C3沿回路放电,松开按钮开关,电容充电,延时后RESET为低电平,从而完成复位操作。
在本系统的复位电路中电容选10uF、电阻选10K。
2.3液晶显示模块-FYD12864-0402B
液晶就是液晶显示器的简称。
液晶显示器的原理主要是通过电流控制液晶分子按照一定的规则排列,同时配合背光来新实现我们需要显示的容及画面。
液晶的一大优点就是显示效果好,而且功耗低,使用起来简单又方便所以成为电子设计人员显示功能的首选。
本次设计采用FYD12864-0402B型号的液晶,这款液晶的显示方案同类型的点阵液晶屏相比,接口程序编写起来简单方便,价格也比较便宜。
FYD12864-0402B有串行和并行4位8位等多种通讯方式供使用者按照需求灵活选择,部自带中文字库和简单的图形字符可以让我们的显示容更加的丰富,设计出更加友好的人机交互体验。
每行最多可以显示8个汉字,4行共32个汉字,通过简单的电路设计和接口进行编程即可实现图形显示界面。
2.3.112864系列液晶的引脚功能
本次设计使用的显示器件为LCD12864,之所以选择除了它可以显示汉字之外,最重要的是它可以显示的容更多,这也是本次设计没有选择使用更加方便、接口更加简单的LCD1602的原因。
LCD12864共有20个引脚,各引脚说明如表2-2所示。
表2-2接口信号说明
本次设计中单片机和LCD之间数据的交换使用的是串口方式,所以D0~D7的引脚是悬空的,复位采用高电平,所以17脚也是悬空的,去除本身未定义的两个空脚16和18,剩下的本次设计都会用到。
2.3.2控制器接口说明
RS/RW的四种工作模式如表2-3。
表2-3RS/RW的四种工作模式
2.3.3指令说明
当单片机向模块发送指令前,必须先检测模块此时是否正在执行其他命令,即确认模块当前处于空闲状态。
通过读取BF标志位来判断,当BF=0,说明模块处于非忙碌状态可以接受指令,当BF=1,说明模块处于忙碌状态,需要延时等待。
由于实际中液晶的反应要比单片机的快,可以不用延时,不过为了可靠期间,还是规操作,即检测是否出于忙碌状态或者进行延时。
通过设置RE可以选择到底使用基本指令集还是扩充指令集,设置好RE的状态后,如果之后使用同一种指令集时,就不用再去修改RE的值了。
具体指令介绍如表2-4所示。
表2-4LCD常用指令介绍
2.3.412864与单片机连接图
12864与单片机的连接比较简单,其中引脚3和引脚19之间的电位器用来调节LCD12864的背光亮度,RS、RW、EN用来和单片机进行通讯时选择通讯方式(并行还是串行,本次设计使用串行通讯)以及读写命令和数据操作,集体设计图如图2-8所示。
图2-8LCD12864电路原理图
2.4按键控制部分电路
按键处于闭合还是断开状态可以通过检测电平来判断,具体高低电平到底对应哪种开关状态完全可以自行定义,本次设计中使用“0”表示闭合(即按键被按下),“1”表示断开状态。
微动开关实物图如图2-9所示。
图2-9微动开关实物图
微动开关封装尺寸及其引脚之间的关系如图2-10所示。
图2-10引脚封装尺寸图
但是由于矩阵键盘的设计采用的是微动开关,按键按下之后并不会锁死。
所以微小的振动则可能使按键的开关在极短时间闭合而造成干扰,微动开关的部构造如图2-11所示。
图2-11按键与触点示意图
为了排除单片机每次检测到反应按键闭合状态的电平都实实在在有被按下的,即有效电平,而不会是其他的抖动或者干扰造成的,需要对检测到的按键状态进行延时处理,即第一次检测到按键按下时,延时等待一段时间再次进行检测,如果按键状态依然是闭合,则说明按键的确是被按下,是有效的。
这种方法叫延时去抖,本次设计次用软件延时去抖来排除干扰因素。
按键按下时电平的抖动状态如图2-12所示。
图2-12按键闭合及断开前后的电压
按键设计应用场合不同分为两种,分别是独立式按键和矩阵式按键。
本次设计两种都有使用到,独立式用在手动复位电路,而矩阵式用在用户输入密码上。
2.4.1独立按键
独立式按键每个键各占用一个引脚,只要检测该引脚的电平就可以判断按键的状态。
这种设计方法每个按键需占用单片机的一个引脚,本次复位电路中用到的正是这种设计方法。
需要说明的是尽管微动开关有四个引脚,但是在实际原理图设计过程中只要连接其中上下任何一个即可使得开关正常工作。
因此原理图库中开关的原理图只有两个引脚,这一点可以从矩阵键盘电路中看到。
2.4.2矩阵按键
本次设计的数字及字母按键数量较多,至少需要13个,也就是说如果采用独立按键的方式需要占用单片机13个引脚,浪费大量I/O资源,而其他的模块也需要适应I/O,这样会导致I/O不够用的情况,因此采用了4*4的矩阵式键盘设计方法来解决这个问题。
矩阵式键盘的每个按键都有两个脚,一个脚接行线,另一个脚接列线,同一行的脚连在一个行线上,同一列的脚连在一个列线上,4*4的键盘则需要8根线,即占用单片机的8个引脚。
行线和列线相交处就是按键的位置。
当键被按下时,相交的行线和列线上的电平发生线与关系,线与其实就是相交的行线和列线上的电平进行逻辑与操作。
单片机通过检测行或列线上的电平变化可以确定哪个按键被按下。
线与的规则如下,其中1表示高电平,0表示低电平。
0·0=0;0·1=0;1·0=0;1·1=1
矩阵键盘的检测方法有行列扫描、反转扫描、中断扫描等多种方式。
本次设计中采用第一种方式实现按键检测,其中行线P1.0-P1.3,列线P1.4-P1.7。
完整步骤如下:
1 检测是否有按键按下。
让键盘的所有行线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指纹 密码锁 设计 论文