基于STM32指纹识别密码锁控制系统的设计与实现毕业论文.docx
《基于STM32指纹识别密码锁控制系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《基于STM32指纹识别密码锁控制系统的设计与实现毕业论文.docx(30页珍藏版)》请在冰豆网上搜索。
基于STM32指纹识别密码锁控制系统的设计与实现毕业论文
本科生毕业论文(设计)
题目:
基于STM-32指纹密码锁控制系统的设计与实现
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
基于STM-32指纹密码锁控制系统的设计与实现
摘要:
本文首先介绍了指纹密码锁控制系统的开发背景和意义,简单介绍了一些国内外常见的指纹识别装置和指纹识别密码锁,并指出了当前指纹识别控制系统存在的问题,再根据完整的指纹识别模块指令确定了本系统的目标和要求,以战舰STM-32为开发平台进行了系统的总体结构设计,阐述了系统的软、硬件组成,并重点探讨了指纹识别模块、键盘模块、LCD液晶显示模块和报警模块等几个主要功能模块的设计与实现。
最后,对系统的设计与实现做相应总结。
关键词:
指纹识别;战舰STM32;模式识别
DesignandImplementationofSTM32-basedfingerprintcombinationlockcontrolSystem
Abstract:
Thispaperintroducesthefingerprintlockcontrolsystemdevelopmentbackgroundandsignificancesimply,introducedsomecommonfingerprintidentificationdeviceandfingerprintidentificationcombinationlockathomeandabroad,andpointsouttheproblemsexistinginthecurrentfingerprintidentificationcontrolsystem,accordingtothecompletefingerprintidentificationmoduleinstructiontodeterminetheobjectivesandrequirementsofthissystem,thewarshipSTM-32asadevelopmentplatformfortheoverallstructureofthesystemdesign,thispaperexpoundsthehardwareandsoftwareofthesystem,andprobesintotheinputfingerprintidentificationmodule,keyboardmodule,LCDliquidcrystaldisplaymoduleandalarmmodule,etc.Severalmainfunctionmoduledesignandimplementation.Finally,summarizesthedesignandimplementationofthesystem.
Keywords:
Fingerprintidentification;WarshipSTM32;Patternrecognition
1绪论
1.1开发背景和意义
指纹就是我们人类手指末端指腹上由凹凸的皮肤所形成的纹路,是人类在进化过程中自然形成的[1]。
指纹具有唯一性、遗传性和不变性。
它的复杂程度足以提供用于鉴别的足够特征。
到目前为止,尚未发现有不同的人拥有相同的指纹,所以每个人的指纹也是独一无二。
由于指纹是每个人所特有的标记,指纹逐渐成为警方追捕疑犯的重要线索[1]。
随着现代信息化的大潮流,指纹识别已经不仅仅运用于追捕嫌犯,更多的也走向大众化。
现代科技的高速发展,光电传感器应运而生,以指纹识别技术作为桥梁与指纹生理特征相结合,便产生了指纹识别为核心的各种指纹识别仪器。
指纹密码锁就是其中比较典型的一种。
指纹的唯一性和多样性使得这种生理特征与现代科技相结合运用使我们的信息安全、经济安全、人身安全的保障相比较于传统的锁具更加具有可靠性和多样性。
科技的不断革新使得指纹密码锁的研究和设计开发也依然在不断地革新完善中。
随着旧问题的解决,新问题也会不断的出现。
因此研究和开发以指纹识别技术为核心的指纹密码锁能够更好的了解当前科技与生物生理特征有效结合的程度,对于当前指纹密码锁的研究所存在的问题和研究程度以及之后的发展方向有更深入的了解。
同时,在开发和设计过程中,我们也能够更好的运用和巩固所学到的计算机知识。
1.2国内外研究现状
1.2.1总体研究现状
现在国内外指纹识别技术基本上都是采用基于细节点特征的指纹识别技术,从研究角度来说,国内外的差距并不明显。
由于具有广阔的市场前景,也受到了越来越广泛的重视,国外很多著名的IT厂商、电子厂商都在积极推进AFIS技术的研究工作[1]。
国内对于指纹识别锁的研究正在不断提升,也在不断的向广大百姓普及。
目前指纹锁产品正逐步走向中国家庭,中国消费者对指纹锁的认知已经越来越广泛,但是国内对于AFIS主要侧重于研究角度,很长一段时间没有在实际应用中实践,所以这些技术和实际的市场需求间还有不少差距[2]。
而实际从事指纹应用的公司没有自己的技术,在技术上依然有着很大的提升和改善空间。
指纹应用到计算机信息安全加密应用是目前国际公认未来最有前途的新兴市场,凡是用密码方式验证的都可以统统采用指纹验证模式。
指纹识别密码锁,指纹识别技术的发展得益于现代电子集成制造技术和快速可靠的算法的研究。
尽管指纹只是人体皮肤的一小部分,但用于识别的数据量相当大,对这些数据进行比对也不是简单的相等与不相等的问题,而是使用需要进行大量运算的模糊匹配算法。
现代电子集成制造技术使得我们可以制造相当小的指纹图象读取设备,同时飞速发展的个人计算机运算速度提供了在微机甚至单片机上可以进行两个指纹的比对运算的可能。
另外,匹配算法可靠性也不断提高,指纹识别技术经已经常实用[3]。
1.2.2指纹采集技术的研究现状
指纹识别技术实际上包括了“指纹采集技术”和“指纹识别技术”。
指纹采集技术经过了较长时间的发展,其过程也随着传感技术的发展而受到影响以及推动。
第一代“指纹采集技术”主要采用的就是“按压留痕”的方式,通过“油墨-指纹图像”的方式进行采集[2],存在不完整、不安全的一些缺点。
那么第二代“指纹采集技术”在传感器的发展带动下,开始采用自动化和数字化的采集方式、指纹的信息以数字信息的形式进行表示和存储。
比较有代表性的采集仪器就有光学指纹采集仪、半导体压感指纹采集仪、温感指纹采集仪以及电容式指纹采集仪。
这种采集方式比较方便,安全性、完整性和可处理性较高。
“指纹采集技术”的原理就是根据嵴和峪的几何特性、物理特性和生物特性的不同,得到不同的反馈信号值[3]。
再根据不同的反馈信号值绘成指纹图像。
现在国内外的指纹采集流程主要有分割、二值化、增强滤波、细化。
其中分割方法现在主要采用方向法、方差法、以及改进的方差法。
其中改进的方差法,在方差分割的基础上进行开闭运算,是较为成熟的分割方法。
二值化方法主要有方向图、静态阈值二值化以及基于方向场的二值化。
增强滤波则是基于上述的方向图的基础上进行平均滤波。
细化现在主要运用快速细化算法和改进的OPTA算法。
上述这些过程虽然能够形成较为完善的指纹图像。
但是依然存在问题,在图像的分割细化处理中,会减少指纹的特征,从而降低指纹采集的有效性和真实性。
目前国内外对于这个问题正在不断的研究和完善新的算法。
1.2.3指纹识别技术的研究现状
“指纹识别技术”其实是属于模式识别的范畴。
它通过特定的数学算法分析指纹特征,然后判定两枚指纹特征的相似度。
主要通过指纹特征分析和匹配两个过程进行实现。
其中指纹特征分析是对指纹采集之后的图像的整体特征和细节特征进行提取和鉴别[3]。
现在国内外对于图像特征的提取主要是对特征点的提取和处理来实现,主要对细化图端点和交叉点进行处理。
匹配是指指纹图案的整体和细节特征按照模式识别的原理进行比对,是指已经录入注册的指纹和尚需验证的指纹之间进行比对,是对已经处理好的特征值进行比较[4]。
现在国内外对于匹配主要从两个方面进行特征的判断。
对于整体特征的匹配主要进行指纹纹形的分类判断以及指纹嵴密度的判断。
局部匹配则是对于细节点进行类型、坐标、质量以及方向上的匹配,也有包括一组指纹特征值之间所形成的拓扑关系进行比对和匹配。
其中特征点的匹配现在采有嵴线长度的匹配、三角形边长匹配以及点类型匹配。
当然这些匹配方法并不是最完善的,存在着一定的匹配盲区,不能说很完整很正确的进行匹配。
目前国内外正在不断的研究和完善新的指纹特征匹配算法。
1.3本文主要研究内容和章节安排
本文主要以战舰STM-32作为开发平台通过对指纹录入识别模块、键盘模块、LCD液晶显示模块和报警模块等几个主要功能模块的设计和整合来模拟实现指纹密码锁的控制。
这一设计通过对完整的指纹模块的指令研究以及指纹的识别处理,熟悉简单的图像处理以及STM32系列ARM单片机的使用。
本文研究的内容主要包括六章:
第一章是绪论,主要说明了本设计的开发背景和意义,还有这个项目在国内外的当前研究状况。
第二章是系统总体结构设计,根据系统的总体要求设计系统软硬件的总体结构。
第三章是系统硬件模块设计与实现,主要阐述系统的硬件模块的设计以及具体实现方法。
第四章是系统软件模块的设计与实现,主要阐述了系统功能实现的软件设计以及具体实现方法。
第五章是系统实现结果,主要展示了系统的实现的功能和结果。
第六章是总结与展望,总结本次设计所取得的成果和依旧存在的问题并对下一步改进工作做了展望。
2系统总体结构设计
2.1系统设计总体要求
基于STM-32的指纹密码锁控制系统是以战舰STM32开发板为开发平台,配合FM-180指纹识别模块和开发板自带的2.8寸TFT彩色LCD液晶显示屏幕,利用keiluvision4开发软件环件开发,通过软硬件模块的整合和控制模拟实现控制指纹密码锁,熟悉数据的读写功能实现。
本次设计通过完整的指纹识别模块实现指纹的录入和识别。
根据战舰STM-32开发板的按键实现录入和识别模式的转换,并通过LCD液晶显示屏显示当前的模式状态和录入和识别状态,同时通过蜂鸣器发出不同间隔和次数的蜂鸣声对应相应的状态。
一、设计的具体功能要求如下:
1、通过按键控制指纹录入模式和指纹识别模式的转换;
2、录入模式下再次按录入键能够继续录入指纹;
3、通过按键能够清除所有内部存储的指纹;
4、蜂鸣器针对成功或失败不同结果下发出不同间隔和次数的蜂鸣;
5、录入成功生成的指纹号和识别成功对应的指纹号在LCD上显示;
6、LCD显示不同的模式以及录入和识别成功或失败不同结果进行显示。
二、开发工具
以战舰STM32-V3.0开发板为主控模块,用FM-180指纹识别模块作为从属模块对其发出相应的指令进行指纹的采集和识别处理,用2.8寸TFT彩屏作为显示模块,以KeiluVision4为开发环境,J-Link仿真工具和串口调试工具作为辅助工具。
2.2硬件总体结构设计
本系统的硬件由以下几个部分组成(如图2.1):
图2.1系统硬件结构图
由硬件结构图可以看出:
指纹通过FM-180指纹识别模块采集处理;并将处理后的指纹特征值等以数据包的形式发给主控模块;主控模块发送指令包对FM-180指纹识别模块进行控制以及对键盘模块、报警模块、LCD液晶显示模块进行控制。
在LCD液晶显示屏上显示录入和识别成功的指纹号码。
报警模块中以开发板自带的蜂鸣器为主,在不同的状态和结果下进行不同间隔和次数的蜂鸣。
键盘模块主要通过三个按键分别实现模式转换、录入、清除等功能。
2.3软件总体结构设计
本系统的软件由以下几个部分组成(如图2.2):
图2.2系统软件结构图
由系统软件机构图可以看出,主控制器作为主要的控制中心对其他四个模块进行控制,其中指纹识别主要接收主控制器的指令并发送数据给主控制器并且对输入指纹进行采集处理。
显示屏显示各个状态特别是录入的指纹号和识别的指纹号。
按键主要实现模式切换、指纹录入、指纹清除三个功能。
报警程序以蜂鸣器为主,通过驱动程序实现不同状态下不同次数和间隔的蜂鸣。
3系统硬件模块设计与实现
3.1指纹识别模块设计与实现
指纹识别模块选用FM-180指纹识别设备实现,FM-180亮背景光学头指纹识别设备采用光学指纹传感器,由高性能DSP处理器和FLAH等芯片构成。
供电电压3.6-6.0V,供电电流<120mA,匹配方式有比对方式(1:
1)和搜索方式(1:
N)如图3.2所示:
图3.1FM-180指纹识别模块实物图
FM-180是完整的指纹识别模块,不需要其他外围部件,模块始终处于从属地位[5],控制端也就是战舰STM32开发板的CPU通过不同的指令让模块完成各项功能。
CPU的指令、模块的应答以及数据的交换都是按照规定格式的数据包来进行数据通信。
指令/数据包一共分三类:
包标识=01为命令包;包标识=02为数据包,并且允许有后续数据包传入;包标识=08是最后数据包,作为结束包。
所有的数据包都要加包头:
0xEF01.
指纹识别模块与战舰STM32的CPU进行串行通讯时,通过外部引脚与STM32开发板相连接。
指纹识别模块的引脚定义如表3.1所示:
表3.1指纹识别模块引脚定义表
引脚号码
名称
类型
功能描述
1
Vin
输入
电源正输入端
2
TD
输出
串行数据输出。
TTL逻辑电平。
3
RD
输入
串行数据输入。
TTL逻辑电平。
4
GND
—
信号地。
内部与电源地连接。
STM32开发板板载的USB串口和STM32F103ZET6的串口通过P6连接起来的,其中USART1_RX和USART1_TX是相对于STM32F103ZET6来说的。
通过PA9和PA10接口与外部设备连接就能实现和外部设备的串行通信。
串口1选择接口原理图如图3.3所示:
图3.2STM32的USB串口/串口1选择接口图
指纹识别模块的RXD与STM32开发板的PA9口连接,指纹识别模块的TXD与STM32开发板的PA10口连接。
这样就能实现指纹识别模块与STM32开发板的CPU进行数据串口通信。
这样STM32的CPU就能通过串口1的PA10口对指纹识别模块发送规定格式的命令包,就能实现对外部的指纹识别设备的控制操作,让外部指纹识别设备完成指纹的采集、存储、识别等功能。
FM-180指纹识别模块具有512字节的存储区域,能够存储采集中同一个指纹的两个特征值的合并之和。
CPU通过读或者写外部指纹设备寄存器来调取或者存储不同的配置状态以及指纹图像特征值。
外部指纹识别设备也能够通过串口1的PA9口对接收到的指令发出应答,并以数据包的形式发送给STM32的CPU,完成指令应答。
通过串口1的数据通信,就能实现STM32的CPU与外部指纹识别设备数据交互,实现控制与反馈,也实现了本次设计最基本和核心的功能,也就是指纹的录入和识别。
3.2LCD液晶显示模块设计与实现
LCD显示模块选用与战舰STM32配套的2.8寸TFT液晶显示屏实现,与主板的TFTLCD模块接口相接。
支持16位真彩显示,显示分辨率为320×240,接口为16位的80接口。
TFTLCD模块接口如图3.4所示:
图3.32.8寸TFTLCD模块接口图
从图3.3可以看出,TFTLCD模块采用16位的并方式与外部连接,其中CS:
是TFTLCD片选信号,通过LCD_CS发送高电平给TFTLCD能使TFT工作。
WR:
向TFTLCD写入数据,当输入低电平时可以通过并行数据口写入数据。
RD:
从TFTLCD读取数据,当输入高电平时可以通过并行数据口读出数据。
D[15:
0]:
16位双向数据线,用于双向传送16位数据。
根据上述LCD液晶显示屏的原理以及电平逻辑,STM32开发板的CPU在接受到外部设备执行操作的应答信号之后,就可以对LCD液晶显示屏并行数据口、读写口以及片选等使能口输入对应的电平信号和数据,从而显示指纹的录入、识别、清除等各个模式下的操作结果。
这样,通过LCD液晶显示屏系统就能及时的将操作结果反映给用户。
3.3键盘模块设计与实现
STM32开发板自带四个按键,键盘模块涉及3个按键,其中按键KEY0接PE4;按键KEY1接PE3;按键KEY2接PE2。
按键另一端采用开关形式与GND相连,三个按键与STM32的连接原理如图3.5所示:
图3.4按键与STM32连接原理图
通过按键按下的时候向STM32开发板的CPU发出外部中断信号,从而使得CPU发出不同按键对应的操作指令,实现模式的切换、指纹的持续录入以及指纹的清除等功能。
当KEY0按下时,切换录入和识别模式并且由LCD显示当前模式;在录入模式下按下KEY1可以进行指纹的录入;按下KEY2则删除所有已经存储的指纹。
3.4报警模块设计与实现
报警模块主要通过对蜂鸣器的控制来实现。
STM32开发板自带蜂鸣器,蜂鸣器的驱动信号连接在STM32的PB8上,与STM32的连接原理如图3.6所示:
图3.5蜂鸣器与STM-32连接原理图
采用NPN三极管(S8050)驱动蜂鸣器,R60作为防止蜂鸣器误发声音。
当PB8输出高电平时,蜂鸣器发声;PB8输出低电平的时候,蜂鸣器停止发出声音。
CPU在接收到指纹识别设备在指纹录入、识别以及清除不同状态下执行结果的信号后,对蜂鸣器的串行通信口PB8发出对应的高低电平,并通过内部时钟对不同间隔进行控制。
在指纹的在指纹识别模块与STM-32CPU握手成功时,CPU向PB8口置较长一段时间的高电平,使得蜂鸣器发出一次较长时间的蜂鸣声。
同样的道理,在删除指纹时发出一次较长的蜂鸣声;在指纹录入中采集两次指纹时,第一次蜂鸣器发出一次较短蜂鸣声,第二次则是连续发出两次较短促的蜂鸣声;当指纹识别失败时,连续发出三次短促的蜂鸣声。
4系统软件模块设计与实现
4.1键盘模块程序设计与实现
键盘模块主要通过STM32上自带的按键进行设计与实现。
通过对STM32开发板的CPU写入程序对按键不同状态下返回的信息值进行处理和控制,就能实现键盘模块的不同按键功能。
首先要通过voidKEY_Init(void)函数对按键进行初始化,再利用KEY_Scan()函数扫描是否有按键按下,而其定义的mode参数则是来控制是否支持按键连续按下,可以防止一次多触发或者实现长按检测,这是按键的初始化准备过程。
键盘模块主要的按键功能的程序流程图如图4.1所示:
图4.1按键功能程序流程图
modeflag以0和1作为判别当前模式的特征值,当按键KEY0按下时,进入切换模式状态,并且将modeflag取相反值;当按键KEY1按下时则是进入录入模式;当按键KEY2按下时,清除所有指纹的状态值clearflag置1,发出清除信号,清除所有已经录入存储的指纹。
4.2报警模块程序设计与实现
报警模块是以战舰STM32开发板自带的蜂鸣器作为设计和实现的对象。
蜂鸣器通过PB8口与CPU相连接,对蜂鸣器的控制实际上就是通过CPU向PB8口发送不同时间间隔和次数的高电平或者低电平,从而控制蜂鸣器在不同状态下的蜂鸣次数和间隔时间。
首先,利用voidBEEP_Init(void)对蜂鸣器进行初始化,使能GPIOB端时钟,采用推挽输出并初始化PB8口,当PB8口输出为0时关闭蜂鸣器的输出。
这是整个蜂鸣器的初始化过程,之后就是对蜂鸣器不同状态下的蜂鸣进行设置。
主要的程序流程图如图4.2所示:
图4.2蜂鸣器程序流程图
从图4.2中可以看出,在不同的模式处理下,蜂鸣器有不同的蜂鸣状态。
在开始CPU与指纹识别模块握手成功,置BEEP=1,并设置延时,再置BEEP=0蜂鸣器会响一次;同样,在指纹录入状态下,由于指纹一共采集两次,所以第一次采集成功响一次,第二次采集成功响两次;在指纹识别状态下,识别失败连续短促的响三次,识别成功响一次。
指纹清除状态下,清除所有指纹,蜂鸣器长响一次。
这样,在对应不同的指纹操作状态已经成功与否,能够通过蜂鸣器实现报警。
4.3LCD液晶显示模块程序设计与实现
LCD液晶显示模块主要是用来显示当前状态以及不同操作下显示不同操作结果。
这一功能主要通过对战舰STM32开发板配套的2.8寸TFTLCD液晶屏的数据写入并显示来实现。
状态显示和结果显示都通过CPU写入数据并在LCD上显示。
对于LCD液晶