资源描述
基于51单片机指纹电子密码锁设计摘 要随着人民生活水平的提高,如何实现家庭防盗这一问题也变得尤其突出,传统的机械锁由于其构造简单,安全性低,无法满足人们的需求。随着电子产品向智能化和微型化的不断发展,单片机已成为电子产品研制和开发中首选的控制器,所以具有防盗报警功能的电子密码锁控制系统逐渐代替传统的机械式密码控制系统,克服了机械式密码锁控制的密码量少,安全性能差的缺点。在传统的身份认证中,我们往往使用密码加密法,但是这种方法只是防君子不防小人。在高明的黑客眼里,由几个字符组成的密码脆弱得不堪一击。现在,科技的发展让我们有了新的选择生物识别技术。将生物识别技术应用于笔记本、门锁等方面,可以对文件、财产起保护作用,并且可以进行身份识别。生物识别技术的发展主要起始于指纹研究,它亦是目前应用最为广泛的生物识别技术。本设计开发了一款基于单片机的指纹识别电子密码锁系统。该系统以STC89C52单片机作为模块核心,通过串口通信控制ZFM-60指纹模块实现录取指纹并存储指纹数据,并通过HS12864-15C液晶显示比对流程及比对结果,辅以直流继电器与发光二极管模拟开锁的动作。本系统具有体积小、性价比高、传输速度快、适合家庭及单位使用。关键词:单片机,密码锁,指纹识别 51 single fingerprint-based electronic code lock designABSTRACTWith the improvement of peoples living standards, how to achieve family security issue has become particularly prominent, the traditional mechanical locks because of its simple structure, low security, can not meet peoples needs. As electronic products to intelligent miniaturized and the continuous development of SCM has become the electronic product research and development preferred controller, the electronic lock control system with anti-theft alarm function gradually replace the traditional mechanical control systems with code, overcome password less, poor safety performance shortcomings of mechanical lock control.In traditional identity, we tend to use password encryption method, but this method only anti-anti-villain is not a gentleman. In the eyes of clever hackers, password consists of several characters fragile too vulnerable. Now, the development of science and technology so that we have a new option - biometrics. The biometric technology used in notebook, door locks, etc., they can file for protection of property, and can be identifiable. biometric technology in fingerprint primary origin research, it is also the most widely used biometric technology. The system design of fingerprint recognition electron password lock based on Single-chip microprocessor is developed in the thesis. The system STC89C52 MCU as the core module, through the serial communication control ZFM-60 fingerprint module for taking fingerprints and store fingerprint data and liquid crystal display by HS12864-15C ratio than on the processes and results, supported by simulation of DC relays and LEDs unlock action. The system is small, cost-effective, and fast and suitable for families and units.Key Words:Single-chip microprocessor, password, Fingerprint recognitionII目 录第一章 绪论11.1课题研究意义11.2国内外指纹密码锁发展历史及现状31.3本文主要内容4第二章 整体设计方案52.1 方案比较与论证52.2系统总体设计72.2.1 系统功能描述72.2.2系统总体框架72.3本章小节8第三章 系统硬件设计93.1单片机及最小系统93.1.1 STC89C52单片机介绍93.1.2外部晶振设计123.1.3复位电路设计133.2 指纹模块设计153.2.1指纹识别技术简介153.2.2 指纹模块简介163.2.3 指纹模块指令183.2.4 指纹模块接口电路设计213.3 按键电路设计213.4液晶显示模块设计233.4.1 FYD12864工作流程243.4.2 FYD12864指令说明243.4.3 FYD12864液晶显示接口电路设计293.5 本章小节31第四章 系统软件设计324.1 系统工作过程分析324.2主程序流程图334.3键盘程序流程设计354.4 LCD显示模块程序流程设计354.5 指纹识别程序设计364.5.1 指纹模块通讯协议说明364.5.2 指纹模版的采集存储384.5.3 指纹比对程序设计394.6Keil编程404.7本章小结41第五章 实物制作与调试425.1 电路的焊接425.2 程序的烧写445.3 小灯、继电器的调试455.4 液晶的调试455.5 指纹模块、按键的调试465.6 本章小结47总结48参考文献49附录一50附录二51英文原文56中文翻译65第一章 绪论我们今天的工作生活中,很多场合需要身份验证。而基于传统的标志的身份认证技术由于受到证件伪造以及密码破解等手段的威胁,逐渐表现得有些不足。如何保护自己的重要文件,如何保证自己的隐私不被泄露?在传统的身份验证下,我们倾向于使用密码加密方法,但这种方法“只是防得住君子,防不住小人”。在高明黑客的眼中,密码由几个字符脆弱得不堪一击。现在,科学技术的发展,使我们有了新的选择 - 生物识别技术。在笔记本,门锁等加上生物识别的技术,它们可以对文件财产进行保护,并且是高安全性,高效率的。生物识别技术是基于对人的外貌,声音和对其它生物特征身份验证的科学解决方案,现有的生物识别技术,包括指纹识别技术一般,掌纹识别,视网膜识别,虹膜识别,脸部识别技术,语音识别技术和手写识别技术1。生物识别技术的主要优点是:1,减少,杜绝假冒身份,确认真实身份; 2,降低管理成本,免去了人工身份认证过程; 3,人性化,减少或消除使用卡,钥匙或密码等问题。指纹是研究生物特征识别技术的起源,它也是应用最广泛的生物识别技术。指纹识别技术的发展依靠于现代电子集成制造技术和快速可靠的算法的研究。虽然指纹是人体皮肤的一小部分,但其中所包含的数据信息却大到我们难以想象。对这些包含的数据信息对比不是一个简单的问题,而是使用模糊匹配算法,加以大量的操作。现代电子集成制造技术使我们能够制造相对小的指纹图像读取装置,而在计算速度迅速发展的今天,使在单片机上进行两个指纹的对比运算成为可能。此外,匹配算法的可靠性也在不断提高,使得指纹识别技术越来越成熟2。1.1课题研究意义随着社会的发展和技术的进步,传统的安全防盗系统面临极大的挑战。长久以来,安防系统验证身份的方法是验证一个人是否持有有效的信物,如照片、密码、钥匙、磁卡和IC卡等。因此从本质上来看,这种方法验证的是该人持有的某种“物”,而不是验证该人本身。只要“物”的有效性得到确认,则持有该“物”的人的身份也就随之得到确认。这种通过“物”来确认人的身份的办法存在的漏洞是显而易见的:“物”的丢失或出错都会导致合法的人无法被认证,并且各种信物容易被伪造、破译。在网络化时代的今天,我们每个人都拥有大量的认证密码,比如开机密码、邮箱密码、银行密码、论坛登陆密码等等;密码作为身份识别的标志已被广泛采用。密码容易被遗忘,也有被人窃取的可能,无论是在智能化还是安全性能方面都已经不能满足需求,现在的各种钥匙,如门锁钥匙,汽车钥匙,保险柜钥匙等也如同密码一样存在显而易见的漏洞。这些传统的安全系统所采用的方式,随着社会的发展,其安全性越来越脆弱不堪一击。但是我们不能回避这个尴尬的问题,我们的生活中随时都需要进行个人身份的确认和权限的认定,尤其是在信息社会,人们对于安全性的要求越来越高,同时也希望认证的方式简单快速。为了解决这一存在已久的问题,人们把目光转向了近年来兴起的生物识别技术,希望能借助人体的生理特征或行为动作来进行身份识别。这样就可以不必携带大串钥匙,也不用费心去记各种密码。生物特征和钥匙、密码相比具有唯一性,不可复制性,例如指纹,专家推论以全球 60 亿人口计算,300 年内都不会有两个相同的指纹出现。以电子商务、电子银行的安全认证为例,目前在电子商务中经常出现他人假冒当事人的身份,如果通过生物特征进行认证,就可有效防止此类事件的发生。另外,网络、数据库和关键文件等的安全控制,机密计算机的登陆认证,银行 ATM、POS 终端等的安全认证,蜂窝电话,PDA 的使用认证等等,都可以依靠生物特征来认证。可见,生物特征识别不但有可观的经济效益,还有不可估量的国家信息安全效益。1997年比尔盖茨曾这样预言:“生物识别技术即利用人的生理特征,如指纹、虹膜等来识别个人的身份,将成为未来几年IT产业的重要革新。,指纹识别技术在生物识别技术中相对来看是发展的最成熟的识别技术,指纹锁则是指纹识别技术的代表作品,指纹锁在当今安防系统中应运而生成为继机械锁、密码锁、感应锁之后另一代门锁的代表,单体指纹代替钥匙或者密码成为开锁工具,大大降低了安防系统的潜在安全隐患,主要是因为指纹的独特生理附属性,在一段比较长的历史时期内避免了遗失、被盗、被复制的隐患,因此目前看来指纹锁几乎完美的解决了传统门锁存在的问题,但是一把合格的指纹锁,须采用国际领先水平的智能芯片和高标准的安装材料,这就决定了其刚性成本很高,同时由于拥有极高的科技附加值,指纹锁市场价格普遍比较昂贵,近年来指纹识别产品在各个行业的大规模开始应用,以及人们对于智能化和安全性能的追求为指纹锁的市场拓展创造了有利条件,因此可以预见,指纹锁将迎来一个改变安防系统的历史机遇。现代社会越来越需要高效,可靠的身份识别系统。可分离人身份的传统方式,如口令,密码,身份。可以进行假冒,伪造,盗窃,或者破译,不能完全满足现代社会经济活动和社会安全的需要。作为最传统和最先进的生物鉴定方法,指纹具有很强的相对稳定性。从六个月胎儿完全形成指纹到死后尸体腐烂,指纹结构,整体分布的统计特性并没有显著的改变,显然指纹具有其唯一性。至今仍然无法找到两个人有相同的指纹,甚至是同卵双胞胎都是不一样的指纹。从易用性,安全性,成熟度和成本以及其他方面综合比较,指纹识别技术将成为未来人的生理特征识别的主流技术。自动指纹识别技术创建了一个个人身份识别的新时代,指纹识别的应用使我们生活更加安全,方便【5】。以单片机为控制器的技术已经发展的非常成熟,因为它的控制性能和高可靠性的优点,电子产品与单片机控制是分不开的,如电饭煲,洗衣机,汽车等都需要微处理器控制。学习单片机的基础知识后,我们需要在实践中把所学知识组织起来,在现实生活中应用它,所以我联系指纹识别技术和单片机的原理与应用选择了基于单片机的指纹识别系统这个课题,我希望我的设计可以完成简单的身份认证,给身份认证提供方便。1.2国内外指纹密码锁发展历史及现状生物识别技术在传统安防系统面临尴尬的时候,给人们带来了希望,并且在今后一个很长的历史时期都将是缓解了安防压力的有力保障,生物识别技术主要包括指纹识别、人脸识别、掌形识别、指静脉识别、红膜识别、视网膜识别、声音识别等,由于各种生物识别技术的差异,只有基于指纹识别技术的产品有希望在近几年大规模的投入民用的市场,因此指纹识别产品将是世界各国在生物识别技术领域发展和投入的重点。一方面,指纹识别产品的快速发展得益于低价位取像设备的引入及其飞速发展,以及可靠的比对算法的研究发展,另一方面,指纹识别技术和其他的很多技术一样,也是从专用走向公用,逐渐成为人们关注的前沿高科技之一,而现在俨然已经成为了各种高科技产品的标识。苹果公司计划推出带有指纹登陆模块的手机,微软公司推出了可单独操作的指纹辨认器;IBM 开始出售附有指纹辨认器的手提电脑;韩国 LG 电子公司也推出了一种通过指纹启动的手机。但是必须指出的是指纹科技产业作为新兴的高科技智能产业,其技术上存在难以逾越的高度,迄今为止,全球指纹科技产品也刚刚处于起步阶段,国内市场上还没有产生真正意义上的指纹科技产品强势品牌,目前在中国市场上已经有一些指纹锁厂家进入市场开发阶段,如杭州锦江科技、新加坡玺玛克、深圳爱迪尔和长春鸿达等,但这些公司的全国性业务还没有完全做开,一般的指纹锁厂家都是通过直销方式为政府机关、金融系统提供产品。目前世界上指纹锁主要以德国与韩国为代表,无论是在技术还是工艺方面都占据着优势,而国内的岭南锁系主要是做组合安装,自主技术和工艺水平偏低。国外的指纹锁品牌借助北京奥运会登陆中国,强势的占据了指纹锁的高端市场,而国内技术和工艺偏低的指纹锁产品只是艰难的占据着低端市场,因此和国外品牌的利润相比相距甚远,传统的门锁需要新一代的锁来更替,在这样巨大的市场需求下,国内许多企业纷纷研制开发指纹安防产品,然而经过最初几年的市场突围,指纹锁却一直没有大规模的普及应用。众多厂家倒在了市场引导阶段,成为指纹锁市场开拓大军的先烈。而现在指纹锁市场已经基本被打开,指纹锁将迎来一个快速发展的时期。1.3本文主要内容基于指纹识别的电子锁系统设计主要由单片机、指纹模块、电子锁、液晶显示屏、ADC键盘、时钟几个部分构成,围绕指纹锁为核心功能设计的一个系统,在第二章中对设计方案的选择作重点介绍。第三章介绍系统硬件电路设计,第四章介绍系统软件设计,第五章介绍实物制作与调试。第二章 整体设计方案基于指纹识别的电子锁系统是针对以指纹图像采集、识别为核心而开发出的系统。系统会控制指纹模块搜索是否有手指放上,一旦感应到有手指,就立即采集指纹图像,并将采集到的图像转化成特征并存储下来。通过比对该特征和模版特征来控制是否开锁。该系统利用人体指纹各异性和不变性,为用户提供加密手段,使用时只需用户将手指放在指纹传感器的采集窗口上,即可完成采集任务,操作十分方便快捷。系统的液晶显示屏可以显示出指纹模块采集、转化、合并、存储、比对各个流程的结果,系统另外还有指纹模版的存入功能,用户可以随意存入或者删除指纹模块中的模版,只要指纹模块中有该用户的指纹模版,该用户就可以通过指纹开锁。2.1 方案比较与论证方案一:采用数字电路控制使用数字锁电路的好处是设计简单。以74L112双JK触发器构造的数字逻辑电路作为控制核心的密码锁,一共有16个用户输入键,其中只有12有效的密码按键。,另一种是干扰按钮,如果按下干扰按钮键盘输入电路会自动清零,以前输入的密码无效,需要重新输入:电路报警触点接通三次,电路将锁定键盘10秒,以防止他人非法操作。电路有两大部分组成:备用电源(UPS)和密码锁电路,其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码检测、执行电路、开锁电路、报警电路、键盘输入次数锁定电路。其原理方框图如图2-1所示图2-1 数字密码锁方案 方案二:以单片机为核心的控制方案首先,设备可灵活编程:一是编程过程中可以根据自己的设计要求编写程序为自己的设计,可以通过下载的方式将根据设计编写的程序写入设备,如果你想更换程序,就可以把以前输入的程序擦拭后,自己将程序重写下载写入到设备,这样可以同时使用户节约成本和提高安全性。其次是在单片上丰富灵活的I / O端口,这些端口可以添加多个组件,以增加其功能用来实现的其他机械锁不可能完成的任务。因为可以加温度显示,时间显示,甚至通过I / O端口添加远程控制功能,这些都可以通过添加各种组件来完成。但是如果在其他机械锁中,完成这些功能,需要加入额外的专用组件。最终控制的准确性,对所有的锁来说准确性是最重要的,因为它是保证安全性的前提,如果精度不足够高的话,就很难得到适当的安全保障,单片机的准确性是比较不错的。单片机为核心的控制方案不仅可以实现基本锁定功能,可以添加一些额外的功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大程度上扩展功能,而且还可以方便的对系统进行升级所以我们采用以单片机为核心的控制方案。2.2系统总体设计2.2.1 系统功能描述本系统是根据指纹采集,识别模块开发出的指纹识别电子密码锁系统。该系统使用一个搜索手指指纹模块,一旦搜索到手指,立即采集手指指纹图像,并且将所收集的图像以数据形式发送。它利用人类指纹各向异性和不变性,为用户提供加密。只需把你的手指平放在指纹采集仪的采集窗口上完成指纹采集,操作十分方便。其主要功能是通过液晶显示屏显示出了各个过程和指纹对比结果。采集指纹图像之前,指纹模块必须检测是否在传感器表面上出现手指,所以应该有这种指纹录入的功能。简单的描述本次设计的功能即使用指纹模块检测、录入指纹,将比对的数据显示在液晶屏幕上。本系统拥有一次最多录入三个指纹的能力该系统的主要功能有以下几个方面:1录入指纹:系统预先要有录入指纹的功能,即将个人的指纹通过指纹采集器采集用户指纹的特征信息。 2合成指纹模板并存储:通过光电转换后,将指纹特征值和对应的 ID 号存储到存储器中。上位机只要有上传指纹的命令,模块可以立即将数据传送到指定位置。3搜索指纹库比对指纹:当有指纹录入时,模块会响应上位机指令搜索指纹库比对指纹,同时液晶显示比对结果,继电器动作、发光二极管亮。2.2.2系统总体框架系统的总体框架是指根据设计任务要求,对系统所需元件、设备参数进行必要的计算,通过认真研究、分析、比较选定设备型号,再将设备、元件通过可靠的接口电路联系起来构成一个完整的系统。在系统的整体方案确定之前,先要明确设计要求,然后对系统硬件、软件进行设计,其中包括绘制原理框图、电路图,对原理进行必要说明,综合考虑系统的性能和稳定性要求,以保证所设计的系统达到预期的要求。通过查阅大量的文献资料、综合分析考虑 。主控芯片选用STC89C51单片机。系统总体框图如图2-2所示图2-2 系统总体框架图2.3本章小节本章开头分别分析了采用数字电路控制和采用单片机控制的优缺点。根据总体设计原则,最终确定本系统采用单片机控制的方案。在采用单片机控制方案确定后,本章又给出了该系统的总体设计。并简单的对系统功能进行了描述,最后给出了系统的总体框架图。本章是本设计的前提,为接下来的工作打下了基础。第三章 系统硬件设计系统的硬件电路设计主要是根据系统整体框图来具体的设计各个部分的电路,主要包括STC89C52单片机外围电路设计、指纹模块ZFM-60电路、ADC键盘电路、液晶FYD12864电路几部分。3.1单片机及最小系统3.1.1 STC89C52单片机介绍单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。现在可以说单片机是百花齐放的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,它们各具特色,互成互补,为单片机的应用提供广阔的天地【6】。纵观单片机的发展过程,可以预示单片机的发展趋势。MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。【7】STC89C52RC单片机是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。主要特性如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz用户应用程序空间为8K字节片上集成512字节RAM通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片具有EEPROM功能具有看门狗功能共3个16位定时器/计数器。即定时器T0、T1、T2外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒通用异步串行口(UART),还可用定时器软件实现多个UART工作温度范围:-40+85(工业级)/075(商业级)PDIP封装STC89C52RC单片机的工作模式掉电模式:典型功耗0.1A,可由外部中断唤醒,中断返回后,继续执行原程序空闲模式:典型功耗2mA正常工作模式:典型功耗4mA7mA掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备下图3-1为STC89C52RC引脚功能说明。图3-1 STC89C52引脚图VCC(40引脚):电源电压VSS(20引脚):接地P0口:为8位准双向I/O接口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1),可启动4个TTL负载。P1口:为8位准双向I/O接口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1),可启动4个TTL负载。P2口:为8位准双向I/O接口,当它作为I/O接口使用时,可直接连接外部I/O设备;在接有片外存储器或扩展I/O且寻址范围超过256字节时,P2口可用做高8位的地址总线。P3口:为8位准双向I/O接口,还可以将每一位用于第二功能,第二功能的定义见表3-1。表3-1 STC89C52 P3口的第二功能端口功能第二功能P3.0RXD(串行输入口)P3.1TXD(串行输入口)P3.2INT/0(外中断0)P3.3INT/1(外中断1)P3.4T0(定时/计数器0)P3.5T0(定时/计数器1)P3.6外部数据存储器写选通P3.7外部数据存储器读选通XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。本设计的主程序主要由液晶显示、通讯子按键程序组成。主程序的工作流程描述如下:首先初始化各种硬件功能模块进行初始化。包括开机液晶显示、键盘扫描、指纹模块建立通信。3.1.2外部晶振设计单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,它结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十,高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡8。单片机晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。STC89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。STC89C52的内部有一个用于构成振荡器的高增益反相放大器,通过XTAL1,XTAL2外部接上一片作为反馈元件的晶体,与C1和C2构成了并联谐振电路,使其构成自激振荡器,电容的值具有微调的作用,我们取30pF,具体的接法如图3-2外部晶振电路。图3-2 外部晶振电路STC89C52的工作频率范围在024MHz。我们选用的是11.0592MHz的晶振,振荡周期约为1s机器周期约为0.1s,所以这个晶振可以满足这个系统的要求。并且晶振不能离单片机太远,不然使用外部晶振进行软件调试时就会发现找不到信号。3.1.3复位电路设计单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值9。单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位,当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。复位电路由按键复位和上电复位两部分组成。(1)上电复位:STC89系列单片机为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10F。(2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。本系统采用的复位电路如图3-3所示。单片机在上电瞬间,RC电路充电,RST引脚端出现正脉冲,只要RST端保持两个机器周期以上的高电平,就能使单片机有效复位。其中电容选10uF、电阻选10K。图3-3 复位电路3.2 指纹模块设计3.2.1指纹识别技术简介指纹识别技术的原理和其他生物识别技术的原理类似。它是使用指纹特征对个体身份进行分辨和识别。指纹识别技术是所有生物识别技术中最成熟的,也是应用最广泛的。这主要是因为使用指纹识别对用户来说非常简单,而且指纹识别准确率很高。严格地说,指纹识别的原理包括指纹采集原理、指纹特征提取原理和指纹特征匹配原理三大部分3。指纹采集原理是基于指纹或生理特性,通过各种指纹传感技术来显示出他的特征,并将指纹图案用数字化表示。由于指纹脊和谷的不同的几何特征,主要表现为脊是突起,谷是凹陷的, 所以当暴露于光,反射光的强度是不同的。当接触于平面上,形成在平面压力是不同的。在另一方面,由于指纹的脊和谷的不同的物理特性,主要表现为:脊和谷的温度不同,其导电性也是不同的,他们反馈的波长就不相同。根据这些几何特征,生理特征的不同,把人的指纹采集到计算机系统中形成一个指纹图象。指纹特征分析原理是通过对指纹图案的整体特征和细节特征进行提取,鉴别。理想的指纹图像是一幅黑白相间的二值图像。但是由于指纹通常是用按压的方式得到的,因此,油墨、纸张、手指的状况以及皮肤的变形等原因都会导致指纹图像不理想。另外,通过扫描仪或者摄像机进行数字化的时候,由于光照的影响,也会引入各种噪声。这些因素都使灰度图像不能直接用来匹配。因此,有必要选择合适的特征来描述指纹征来描述指纹4。通常采用的结构特征有2种层次:1)全局特征。所描述的是指纹的全局纹路结构,如图3-4所示,利用计算机处理时具体划分为:弓型、环型、螺旋型。其他的指纹图案都基于这3种基本图案。图3-4 指纹基本纹路图案2)局部特征。断点和分叉是最常用的指纹局部结构特征,也称为细节特征。采用这种特征的一个例子是细节坐标模型,也就是使用指纹的细节点及其坐标和其他一些特征来描述指纹。对于指纹身份鉴定,特别是对现场的模糊指纹进行认定的时候所使用的信息是细节特征点,如图3-5中的小桥、三角点、分叉点、端点和环。图3-5 指纹图像人们根据纹路的局部结构特征共定义了150多种细节特征,如果同时使用所有的这些特征,将很难自动而且迅速地从指纹图像中提取并且区分他们。通常,自动指纹鉴定系统只使用其中2种主要的特征,即分叉点和断点。其他细节特征都可以用他们的组合来表示。例如小桥是由2个端点组成的,而环是由2个分叉点组成的。指纹特征值匹配原理是对指纹图案的整体特征和细节特征按模式识别的原理进行比对匹配。匹配是在已经登记指纹与当前需要验证的指纹之间进行的。匹配操作不是对两个指纹图像做比较,而是将已经数字化的指纹特征值进行匹配。3.2.2 指纹模块简介指纹模块里面主要是DSP芯片,型号为AS606,加上外面的CMOS芯片,CMOS芯片主要是对指纹进行“照相”,生成指纹特征,如下图所示就是一个指纹模板,录入两次这样的指纹特征就能生成一个指纹模板。具体的工作过程是:扫描指纹(录入图像)、生成特征、合成模板(建立一个指纹库文件,成功录入一个指纹)。图3-6 指纹模版指纹模板就是“照一次相”,将指纹模块里面的CMOS芯片采集一次指纹信息,然后进行模糊处理生成0和1两种记录信息,存入指纹模块的FLASH芯片里面。当切换到识别模式的时候,指纹模块就会先让CMOS芯片采集一次指纹,然后和FLASH芯片的数据进行对比。看是不是存在,如果存在就能返回是几号指纹。这样我们就能通过单片机或者电脑进行指纹识别与登记了。具体指纹模块介绍如下:此指纹模块型号是:ZFM60,此模块上里面包含了:1、光学头2、通信连接线3、DSP芯片4、稳压芯片5、FLASH芯片6、CMSO传感器等部件组成。主要技术指标:供电电压:DC 3.87.0V背光颜色:绿色亮灯方式:长亮/闪烁供电电流:工作电流:65mA峰值电流:95mA指纹图像录入时间:0.5秒窗口面积:14.519.4mm匹配方式:比对方式(1:1)搜索方式(1:N)特征文件:256字节模板文件:512字节存储容量:1000枚安全等级:3级(从低到高:1、2、3、4、5)认假率(FAR):0.001%(安全等级为3时)拒真率(FRR):1.0%(安全等级为3时)搜索时间:1.0秒(1:500时,均值)上位机接口:UART(TTL逻辑电平)通讯波特率(UART):(9600N)bps其中N=112(默认值N=6,即57600bps)3.2.3 指纹模块指令进行指纹模块的操作是通过单片机的串口发送与接收命令完成的。我们先通过串口给指纹模块发送命令,然后等待指纹模块传回数据。再通过单片机进行数据的处理,从而判断命令有没有执行。主要为以下几条命令。1)开机的时候进行模块握手,从而判断模块是不是连接正常。命令如下:验证口令:指令包格式:2bytes4bytes1 byte2 bytes1 byte4bytes2bytes包头模块地址包标识包长度指令码口令校验和0xEF01Xxxx01H07H13HPasswordSUM应答包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H 表示口令验证正确;确认码=01H 表示收包有错;确认码=13H 表示口令不正确;2)生成指纹模板需要进行如下四个个命令:录入图像、生成特征、合成指纹模板、存储指纹模板。录入指纹图像指令:指令包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度指令码校验和0xEF01Xxxx01H03H01HSUM应答包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H 表示录入成功;确认码=01H 表示收包有错;确认码=02H 表示传感器上无手指;确认码=03H 表示录入不成功;图像生成特征 Img2Tz指令:指令包格式:2bytes4bytes1 byte2 bytes1 byte1 byte2 bytes包头模块地址包标识包长度指令码缓冲区号校验和0xEF01Xxxx01H04H02HBufferIDSUM应答包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H 表示生成特征成功;确认码=01H 表示收包有错;确认码=06H 表示指纹图像太乱而生不成特征;确认码=07H 表示指纹图像正常,但特征点太少而生不成特征;确认码=15H 表示图像缓冲区内没有有效原始图而生不成图像;特征合成模板RegMode1指令:功能说明:将CharBuffer1与CharBuffer2中的特征文件合成特征模板。指令包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度指令码校验和0xEF01Xxxx01H03H05HSUM应答包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H 表示合并成功;确认码=01H 表示收包有错;确认码=0aH 表示合并失败(两枚指纹不属于同一手指);存储模板 Store指令:指令包格式:2bytes4bytes1byte2 bytes1 byte1 byte2 bytes2bytes包头模块地址包标识包长度指令码缓冲区号位置号校验和0xEF01XXXX01H06H06HBufferIDPageIDSUM应答包格式:2bytes4bytes1 byte2 bytes1 byte2bytes包头模块地址包标识包长度确认码校验和0xEF01Xxxx07H03HxxHSUM注:确认码=00H 表示储存成功;确认码=01H 表示收包有错;经过以上四个步骤与命令,我们就录入了一个指纹,重复以上步骤,我们可以再录入其它指纹。3)指纹识别是先转换到识别模式,然后不断的探测是不是有指纹出现在光学采集头上。如果有则扫描指纹,与库里面的指纹进行比对,如果是就读出是几号指纹。模块会自动探测是不是有指纹,如果有则发送下面的命令:搜索指纹Search指令:指令包格式:2bytes4bytes1byte2bytes1byte1byte2bytes2bytes2bytes包头模块地址包标识包长度指令码缓冲区号参数参数校验和0xEF01Xxxx01H08H04HIDStarPagePageNumSUM应答包格式:2bytes4bytes1byte2bytes1byte2bytes2bytes2bytes包头模块地址包标识包长度确认码页码得分校验和0xEF01Xxxx07H07HxxHSUM注:确认码=00H 表示搜索到;确认码=09H 表示没有搜索;如果搜索到就返回相应的指纹号,如果没有就会返回0。3.2.4 指纹模块接口电路设计ZFM60系列独立式指纹识别模块引脚功能:模块中引脚1与电源相连,引脚2接单片机的RXD端,引脚3接单片机的TXD端,引脚4悬空,引脚5接地。表3-2如下:表3-2指纹识别模块引脚功能引脚号名称类型功能描述1Vinin电源正输入端2TDout串行数据输出。TTL 逻辑电平3RDin串行数据输入。TTL 逻辑电平4GND信号地。内部与电源地连接指纹模块电路如图3-7所示图3-7 指纹模块接口图3.3 按键电路设计按键的闭合与否反应在电压上就是呈现出高电平或低电平,如果高电平表示断开,那么低电平则表示闭合,通过电平的高低状态的检测可确认键按下与否。为了确保CPU对一次按键动作只确认一次,并且防止干扰信号的影响,必需加入消除电平抖动的措施,下图3-8为按键抖动示意。消除抖动通常有硬、软硬两种方法,硬件消除抖动可采取双稳态电路或滤波消抖电路;软件消抖是在第一次检测到有键按下时,执行一段延时程序再确认该键是否仍闭合,如果还是闭合状态则确认该键按下,从而消除抖动和干扰影响。按键接口设计有两种方法,独立式按键和矩阵式键盘。独立式按键各键相独立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于该设计方案IO资源浪费大。故此方法只适用于按键少或其他控制功能很简单的场合。由于本设计中的按键较多,考虑系统可靠性和键盘设计的简单所以采用矩阵按键。本系统的按键电路如图3-9所示,按键按下是呈低电平,我们采用软件消抖来减少对的单片机影响。有键按下前沿抖动 按键确定 后沿抖动图3-8 按键闭合及断开前后的电压矩阵式键盘由行线和列线组成,按键位于行、列的交叉点上。当键被按下时,其交点的行线和列线接通,相应的行线或列线上的电平发生变化,单片机通过检测行或列线上的电平变化可以确定哪个按键被按下。矩阵键盘的检测方法有多种,常见的有:逐点扫描法、逐行扫描法、全局扫描法。在本实例中我们采用逐行扫描法来实现按键检测,其中P1.4-P1.7作为列线,P1.0-P1.3作为行线。识别过程如下:1、判断键盘中是否有键按下。设置所有行线为输出口,并输出低电平;设置列线为输入口,读取列线上的电平状态,只要有一列的电平为低,就表示有按键按下,并且被按下的键位于电平为低的列线与4跟行线相交叉的4个按键中,若所有列线都为高电平,表示没有按键按下;2、判断被按下按键所在的位置。在确认有键按下后(进行按键消抖处理后),接下来就是确定具体哪个案件被按下,方法是:依次将每根行线设置为输出口,并输出低电平(同时剩余行线输出高电平),然后逐列检查每根列线的电平状态,若某列为低电平,则该列线与设置为输出低电平的行线交叉处的按键就是被按下的按键。3、按键位置确定后,接下来就要给矩阵键盘中的每个按键进行编号,也就是进行按键编码,程序设计中常用计算法和查表法两种方式对按键进行编码,本实例采用计算法编码。图3-9按键电路3.4液晶显示模块设计液晶是一种高分子材料,因为其特殊的物理、化学、光学特性,20世纪中叶开始广泛应用在轻薄型显示器上。液晶显示器的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。为叙述简便,通常把各种液晶显示器都直接叫做液晶。液晶体积小、功耗低、现实操作简单,但是它有一个致命的弱点,其使用温度范围很窄,通用型液晶正常工作温度范围为0C+55C,存储温度范围为-20C+60C,因此在设计相应产品时,务必要考虑周全,选取合适的液晶。3.4.1 FYD12864工作流程1)基本操作时序:读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:D0D7=数据读数据:输入:RS=H,RW=H,E=H 输出:无写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无2)状态字说明表3-3状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA06当前数据地址指针的数值STA7读写操作使能1:禁止 0:允许对控制器每次进行读写操作之前都必须进行读写检测,确保STA7为0。实际上,由于单片机的操作速度慢于液晶控制器反应速度,因此可以不进行读/写检测,或只进行简短延时即可。3.4.2 FYD12864指令说明表3-4 指令集(RE=0:基本指令集)指令指令码说明RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除显示0000000001将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”地址归位000000001X设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;这个指令并不改变DDRAM的内容进入点设定00000001I/DS指定在资料的读取与写入时,设定游标移动方向及指定显示的移位I/D=1:游标向右移,DDRAM地址计数器(AC)加1I/D=0:游标向左移,DDRAM地址计数器(AC)减1S:显示画面整体位移显示状态开/关0000001DCBD=1:整体显示ONC=1:游标ONB=1:游标位置ON游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位元;这个指令并不改变DDRAM的内容S/C=0,R/L=0: 游标向左移动S/C=0,R/L=1:游标向右移动功能设定00001DLX0REXXDL=1 (必须设为1)RE=1: 扩充指令集动作RE=0: 基本指令集动作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器(AC)设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址到地址计数器(AC)设定DDRAM地址001AC6AC5AC4AC3AC2AC1AC0设定DDRAM地址到地址计数器(AC)读取忙碌标志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写资料到RAM10D7D6D5D4D3D2D1D0写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)读出RAM的值11D7D6D5D4D3D2D1D0从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)表3-5指令表(RE=1:扩充指令集)指令指令码说明RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式00000000
展开阅读全文