基于ATMEGA32的指纹识别防盗门锁的设计
0 前言
人体生物特征是人体所固有的生理特征与行为特征,如指纹、掌纹、面像、眼虹膜、视网膜、声音、签字、步态等。这些特征具有随身性,因而使用方便,不易遗忘或丢失;人体的生物特征与人体又是唯一绑定的,且具有人人不同的唯一性,因而防伪性好,不易伪造或被盗。所以,用人体生物特征来代替传统的以物识人的方法来鉴定个人的身份是一种认人不认物的直接验证方法,显然是最为安全可靠的,这也是现代社会发展的需要。
随着光电等科学技术的发展,人体生物特征识别这一实用性很强的高新技术也获得很大的发展与应用。其中以指纹识别技术发展最成熟,应用最早、也最广泛。由于每一个人的指纹的纹路在图案、断点和交叉点上各不相同,因而其指纹特征是唯一的,并且终身不变。依靠这种唯一性和稳定性,我们就可以把一个人同他的指纹对应起来。出现很多指纹识别传感器模块,本文设计了一款基于ATMEGA32作为核心处理器,采用上海一维公司的MRB200指纹识别模块,此指纹识别模块可以独立运行(脱离PC机运行),整个系统具有成本低,应用简单、易于开发等优点。
1、 控制方案设计
系统功能框图如图1
图1系统功能框图
本指纹识别门锁设计以单片机作为核心,通过MRB200指纹模块的采集系统采集指纹数据,具体方案为:接触指纹传感器时启动系统进入指纹对比状态,由CPU通过串口发对比命令给指纹识别模块,指纹识别模块收到CPU发来命令便开始采集用户指纹,并将采集到的指纹数据与指纹库里的所有指纹进行一一对比,如有相同则返回对比成功报文给CPU,指纹识别模块采集过程需进行三次,指纹识别模块将返回每次采样结果,CPU记录下三次的采集成功次数,如三次都采集成功,CPU便驱动蜂鸣器响一声,告诉来宾的指纹通过对比,同时CPU通过驱动电路控制电控锁打开门锁。按键和显示用来进行指纹管理。
2、系统硬件设计
本系统采用ATMEGA32单片机作为控制核心,控制系统主要包括MRB200指纹识别模块、液晶显示、设置按键、电子锁、蜂鸣器等部件。
系统硬件设计如图2
图2 系统硬件设计图
本设计采用了Atmel公司的AVR单片机Atmega32作为控制核心。AVR单片机的单周期指令能够保证高的执行效率和低成本,是精简指令集 CPU中的高性能器件。AVR单片机可以提供高达16MIPS的执行时间,具有32K字节的可编程Flash存储器,同时具备2K字节的静态RAM。 AVR单片机自带看门狗定时器,在强烈的电磁干扰条件下可以防止程序跑飞。本设计中采用的Atmega32还具有以下特点:
(1)内部包含有硬件乘法器,加快乘法运算速度;I/O端口引脚数多达23根;
(2)支持在线可编程功能,不需要频繁从电路板插拔芯片;带有可编程的支持同步传输的UART端口;
(3)支持三线传输SPI端口;具有方便的I2C总线端口;
(4)支持JTAG边界扫描电路;具有BOD低电压检测功能;
(5)内部有8路10位的A/D变换器;具有4个PMW,可以协同或单独工作;
(6) 内部带有实时时钟电路;工作频率最高可达16MHz。
CPU与 MRB200指纹识别模块的通讯接口说明
MRB200的VIN脚电源正输入端接4~6.5V,500mA;SLEEP脚睡眠状态控制(Low:关闭模块电源,High使模块处于正常上电状态,上电600ms后进入正常工作状态)与CPU的O脚相连;FINGERON脚采集状态标志(Low:不进行指纹采集,High指纹采集进行中)与 CPU的I脚相连;TX脚异步串行输出(3.3V逻辑电*)与CPU的RX脚相连;RX(3.3V逻辑电*)脚异步串行输入与CPU的TX脚相连;两芯片的GND直接相连。
CPU与指纹模块通讯为半双工异步串口通讯,CPU 通过串口与指纹识别模块进行通讯,完成对指纹的录入、删除、身份确认,通过验证后去驱动电路控制门锁执行开关门的动作。
为适应不同CPU的通讯速率,本指纹识别模块的通讯速率默认为19200bt/s,也可设置为(9600 bt/s 19200 bt/s 38400 bt/s 57600 bt/s 115200 bt/s ),传输帧格式为10位,1位起始位,8位数据位,1位停止位,无奇偶效验位。
指纹识别模块分为光电感应式和压电感应式两钟,光电感应式基本工作原理:光源发出一组光线,经过全反射棱镜一直角边照到压有手指指纹的玻璃表面,其反射光线经棱镜另一直角边投射到了CCD或CMOS半导体光电成像器件上。由于手指指纹的脊和谷对光线的反射不同,因而CCD或CMOS光电成像器件输出随手指指纹图像明暗变化而改变的电信号,经视频放大、A/D转换,输出数字指纹图像信息。压电感应式工作机理是基于对手指指纹的凹凸的不同压力感,利用半导体压敏传感器阵列的顶层的表面是具有弹性的压敏介质材料,当手指按压其上时,根据手指指纹的外表脊纹线的凹凸压力的大小转化为相应的电子信号,继而形成指纹图像。由于前者受光路的限制,无畸变型采集器的外形尺寸较大;而后者传感器厚度薄,采集面积较大,功耗与成本较低,容易集成到各类识别应用产品中。现在产品开发者越来越倾向后者。
本系统使用上海一维科技有限公司生产的MRB200压电感应式指纹识别传感器,它是一款体积小,感应能力强的指纹识别传感器,MRB200指纹模块采用了高速DSP作为核心处理器,它是一款能存储500枚指纹的独立采集比对模块,主要由指纹采集单元和指纹处理单元两部分组成。指纹采集系统主要负责采集指纹图象并传给指纹处理单元。指纹处理单元根据来自异步串行通讯口的命令来完成一系列的操作。如指纹比对、指纹登记、指纹删除等。指纹处理单元提供了与指纹采集单元相连的接口和与外部控制系统相连的异步串行通讯口。用户按照MRB200模块提供的控制指令,可自行开发出功能强大的指纹识别应用系统,无需具备指纹识别专业知识。.指纹识别模块通过串口与外部进行数据通讯
因为本系统为脱机运行系统,为方便用户使用,系统设置了4个按键和小型液晶显示:
通过按键和显现实现指纹管理操作步骤:
(1): 指纹录入:通过按键和液晶显示的提示可登记用户指纹,考虑到指纹录入的保密性,在登记指纹时,需输入管理员密码或先用管理员指纹登入管理操作界面,方可进行指纹的录入,同时显示该指纹的ID号,每录入成功一次蜂鸣器会响一声。
(2):指纹筛除:通过按键和液晶显示的提示输入管理员密码或先用管理员指纹登入管理操作界面,进入筛除用户指纹目录,输入指纹的ID号(如不知ID号可通过ID号查询功能查询自身的ID号),便可筛除该ID号的指纹。
(3):查询指纹ID号:通过按键和液晶显示的提示输入管理员密码或先用管理员指纹登入管理操作界面,进入指纹ID号查询目录,将手指放与识别头上,指纹识别模块采集指纹信息与指纹库对比并通过液晶显示对应的指纹ID号。
蜂鸣器:蜂鸣器用来提醒用户操作是否成功或是发出信息提示以及作报警之用。
电子锁:中控驱动电压12V(由于单片机的驱动能力极其有限,所以这里采用放大电路对单片机的输出进行驱动放大实现驱动)。
3、 系统软件设计
本系统软件设计采用结构化和模块化设计方法,便于功能扩展,本系统的软件设计采用C语言编写。程序模块包括:主程序、指纹采集、指纹比对等。
主程序的功能:系统在启动或复位之后, 需要对系统硬件和软件运行环境进行初始化, 这些工作由启动程序完成,其中包括MRB200、ATMEGA32 等的初始化。系统上电时,Atmega32 通过串口通讯对MRB200 进行设置,初始化CPU的I/O口,开启片内看门狗。进入主程序,扫描按键是否触发,如有按键触发则进入指纹管理界面(录入,筛除,查询指纹操作功能)。如未扫描到按键触发码则判断指纹识别头上是否有指纹(通过串口向指纹识别模块发送命令获得),如无指纹则整机进入休眠,如有指纹则通过串口发送指纹采集命令,(指纹识别模块自动将采集到的指纹数据与指纹库指纹进行一一对比并自动向CPU发送对比结果信息),如对比成功则进行第二次同样过程对比,直到三次对比都成功则CPU通过驱动电路控制电控锁打开门锁。如其中有一次对比失败则退出本次对比过程。
系统的低功耗设计:初始化配置完毕后,便等待用户的要求,此时为节省功耗,可将系统置于低功耗状态,如将CPU置于省电休眠模式。一旦用户有了输入,系统便退出低功耗状态,进入正常执行状态,控制软件判断用户的需求,执行相应的功能。
系统主要程序软件流程图如图3所示
图3系统主程序软件流程图
4、结语
本文采用性价比优异的指纹识别模块MRB200,设计了一种可防盗的指纹锁,体积小、性能稳定可高,除了提供方便的指纹开门外,还可提供门铃和多种报警功能:如使用非法手段开门时系统进行“非法开门报警”,掉电时系统进行“掉电报警”,指纹门锁遇非法拆卸时系统进行“非法拆卸”报警等。
文章创新点:本文设计了一个单片机ATMEGA32及MRB200指纹识别模块的防盗门锁(传统的指纹识别系统大多是基于以PC机为上位机的进行开发的系统),在产品设计中直接采用专业厂家的功能模块,不但能增加产品功能,还能节约开发成本,缩短开发周期。该系统外观小巧, 工作性能稳定, 适合于金融、保险、证券行业, 信息产业, 安防业等各个需要身份确认的场合。
本产品的电子设计单价20000元,由于它适用面广,特别可应用在安防业上,而当前的一方面房产(房价以*二位数涨与经济增长*乎持*)热,另一方面普通民众,对安全的迫切期望,由于指纹识别的唯一性,防伪性好,不易伪造或被盗。决定了它在广阔的房地产安防方面占有一席之地,因此可以说市场需求可观,按年销售2000套,则项目年经济效益四百万元。