基于控制器设计的纹锁

发布者:bln898最新更新时间:2014-09-01 来源: eefocus关键字:指纹锁  单片机  控制器  自动识别系统 手机看文章 扫描二维码
随时随地手机看文章

       随着指纹自动识别系统体积的不断缩小,以及微处理器功能与速度的不断提高,复杂的指纹识别门锁控制算法已可以被固化到一块体积非常小的嵌入式微处理器模块上,该模块与指纹传感器、门锁控制机构组成的系统称为嵌入式指纹识别门锁系统。嵌入式指纹锁的应用领域十分广泛,有保险箱、实验室、楼道的身份确认等。本文基于指纹识别模块设计和实现了嵌入式指纹锁,给出了一套比较完整的软、硬件设计方案。

指纹识别门锁系统的硬件结构

      指纹识别门锁系统的硬件结构主要包括:指纹识别模块、微控制器、读写模块、电源管理和电控锁机构以及门锁功能所需的红外感应电路和液晶LCD显示等,其中核心部分是指纹识别模块和微控制器。指纹识别门锁系统的结构框图如图1所示,虚线内是指纹识别功能模块。

图1 指纹识别门锁系统的结构框图

       单片机门锁控制电路 门锁控制的核心结构是微控制器P89LPC932A1,它是一款单片封装的MCU,适合于许多要求高集成度、低成本的场合,可以满足多方面的性能要求。P89LPC932A1 集成了许多系统级的功能,这样可大大减少元件的数目、电路板面积以及系统的成本。

       MCU通过串口与指纹识别模块进行通讯,完成对指纹的录入、删除、身份确认,通过验证后电机控制门锁会执行开关门的动作。以单片机P89LPC932A1为核心的门锁控制电路原理图如图2所示。P89LPC932A1强大的I/O口多达26个,可以满足外设部分的键盘、LCD液晶显示、指示灯、按键、蜂鸣器等的需求。键盘是用来输入密码的,LCD显示用户注册的信息和ID号,双色指示灯和蜂鸣器用来提醒用户操作是否成功或是发出报警提示。

       另外,还有一些远程控制的按键开关,用于设备的上电或执行有关开关门的操作。具体设计可根据不同的应用场合和实际功能 需求增减外围器件,在尽量满足功能的前提下降低系统功耗。电机控制部分由单片机发出逻辑命令驱动电机进行开关锁动作。

       图中U1是电源控制芯片R1121N,它输出3.3V给单片机;U2是I2C读写模块E2PROM,指纹锁的开关门记录和密码等重要信息都保存在其中。R1121N是CMOS工艺电压调节器,具有很高的电压输出精度、很低的输入电流。

图2 门锁控制系统的电路原理图

图3 电机驱动控制原理图

单片机的低功耗设计

       低功耗系统设计的基本要求如下:

       1) 系统中所有的电路单元都具有功耗管理功能,即该电路单元在非有效操作期间都能被关断(没有功耗)。系统具有按有效时空占空比实施精细功耗管理的能力,能做到合理的系统功耗分配。
       2) 对于系统无法企及的微观有效操作,要求由电路静、动特性来满足功耗分配,即电路动态过程有功耗,电路静态时没有功耗。 本嵌入式门锁系统采用4节1.5V的电池供电,对无用功耗尽量要求降到最低,所以单片机的工作方式选择完全掉电模式。门锁系统低功耗的重要因素有电源电压,晶振频率,功能模块的设置,以及I/O口和外部电路的设置。

       在本系统中,选择3.3V作为单片机的供电电压;选择内部晶振,在节省外部资源的同时降低了功耗。当MCU进入完全掉电状态以后,可由看门狗定时器(利用复位或中断)、外部中断INT0/INT1、键盘中断、实时时钟等唤醒。INT0/INT1中断为下降沿/低电平有效,键盘中断为低电平有效,因此在进入中断前必须保证相应引脚为高电平,否则很难将MCU从完全掉电状态下唤醒。
       嵌入式系统的实时功耗管理能力表现在能保证系统按照有效操作时空占空比来实现系统时空的最大静态化运行,其中的核心技术是系统中时钟与信号流的控制与调度。在系统无效操作的时间和区域上,终止时钟运行或进入,禁止开关、脉冲信号进入。经过合理的任务分配后可以大大降低系统静态功耗,同时在硬件资源选择上作些调整。实验表明,经过合理任务分配后,系统的静态功耗可以降到10mA,正常工作时电流低于100mA。与同类产品相比,本系统的低功耗性能良好。

图4 系统初始化步骤

图5 带数组的通讯格式

电机驱动电路

       机械驱动部分用小型的直流电动机来进行驱动。由于单片机的驱动能力极其有限,所以需要对单片机的输出进行驱动放大。这里采用BA6289逻辑控制芯片。它可以接收TTL 逻辑电平,用于驱动感性负载。它根据对门锁的不同操作进行逻辑控制,驱动电机的正反转,推动门锁上的锁舌进出。电机正转,锁舌退,实现开门动作;电机反转,锁舌进,实现关门动作。电机正反转控制电路的原理图如图3所示。

系统加密设计

       单片机系统一般都采用MCU+EPROM模式。通常EPROM都是透明的,虽然有许多的MCU都带有加密位,但现在已大多能破解。为了保护自行开发的指纹识别门锁算法,系统加密是个关键。常用的单片机加密技术有硬件加密和软件加密两种。软件加密不能防止别人复制,只能增加解剖分析的难度,安全性不足。

       现在很多的MCU都带有加密位,其中在单片机中运用得最成功的加密方法是总线烧毁法。即把单片机数据总线的特定I/O永久性地破坏,解密者即使擦除了加密位,也无法读出片内程序的正确代码。此外还有破坏EA引脚的方法。这种方法用来加密小程序比较成功,但由于总线已被破坏,因而不能再使用总线来扩展接口芯片和存储器,同时,片内存储器也不再具有重复编程特性。

系统软件设计

       该指纹识别门锁系统是完全自主开发的具有独立知识产权的软件,其完整的系统管理协议增强了软件的强壮性和可移植性,完整的指纹识别命令集使其可以自动进行指纹的注册、识别以及指纹数据的输出。系统软件总程序包括监测控制部分和通讯部分。监测控制部分包括了门锁控制软件诸如开关门、应急密码开门、指纹录入、指纹删除等程序,以及指纹识别管理、电源管理、定时器中断管理、看门狗、外部指令处理和I2C总线存储器等程序。

       通讯部分主要包括通讯协议和驱动程序,其中通讯协议包括数据接收、数据发送、校验、数据包处理等程序;设备驱动包括寄存器配置和系统状态控制等程序。

表1 指纹锁的性能指标

系统初始化

       嵌入式指纹锁系统在启动或复位之后,需要对系统硬件和软件运行环境进行初始化,这些工作由启动程序完成,启动程序通常采用汇编语言编写。写好启动程序是设计好嵌入式程序的关键,系统启动程序所执行的操作与具体的目标系统和开发系统相关,流程如图4所示。

指纹识别软件的协议命令集

       系统管理协议包括功能部件更新下载、设备复位、部件错误处理、检测注册的用户数量、检测存储器信息、检测安全级、设置安全级、检测每个用户注册的指纹数、设置每个用户录入的指纹数以及设置波特率等。指纹识别命令集包括自动ID注册用户、给定ID注册用户、删除给定ID用户、匹配删除用户、删除所有用户、给定ID用户识别、自动ID用户识别、提取特征信息、特征信息匹配、从模块获取特征信息以及在模块中存储特征信息等。下面给出该软件指纹识别协议命令集中自动用户注册部分的设计说明。

自动用户注册是指系统使用自动选择的ID号注册用户,如下:

STI_USER_REGISTR ATION:开始注册 
0x1b - 0x5e - 0x50 - Start ID NumberH- Start ID NumberL STI_USER_REGISTRATION _SUCCESS:注册成功 
0x1b - 0x5e - 0x51 - Start ID NumberH- Start ID NumberL  其中Start ID NumberH/ Start ID NumberL为注册开始时的ID值 STI_USER_REGISTR ATION_ERROR:注册失败 0x1b - 0x5e - 0x52 - 0x00- ID Number

单片机与指纹模块的通讯协议

       系统中的工作核心是指纹模块,它几乎包含了对指纹处理的所有操作。指纹识别模块通过RS232串口与使用者接口,使用者通过此接口来命令模块完成诸如指纹采集、指纹比对等一系列操作。单片机与指纹模块的通讯为半双工异步通讯,RS232接口缺省的波特率为9600bps。

       单片机与指纹模块的通讯,对命令、数据、结果的接收和发送都采用帧的形式进行,通讯格式内容包括包标识、地址码保留字、包长度、包内容和校验和。 由于通过串口通讯,在数据接收的开始有时会丢失一两个字节,所以在接收数据包时可能因为接收字节不完全而使程序陷入死循环。

       这里采用在规定时间内如果没有接收到数据则强行退出接收程序,而后重新接收数据的方法,由于指纹模块与单片机的工作频率非常快,根本不会影响该系统的工作。 同样,单片机和模块通过一串消息帧来传递命令,在程序编写时利用数组来存储Receive[Max]从模块接收到的数据,如图5所示。

       单片机通过串口向模块发送命令而后又等待接收命令时,经常丢失或有误一两个字节,这样导致数组Receive [Max]中数据会丢失一两个字节。

       参考指纹模块的通讯协议可知,消息帧中的大部分数据都相同,只有一两个不同的关键字且在数据帧的中间部分。所以,根据模块动作的几种可能情况在接收数据的数组Receive[Max]中搜索对应的一两个关键字,这样就可以正确判断模块的动作。

系统测试

       根据门锁的安全性能指标设计测试方案,系统测试主要从以下几个方面进行:

1) 用不同质量的指纹:用大约500人次的不同指纹进行开锁、注册等测试;
2) 同一指纹在不同条件下:诸如干湿、破损、压力温度不同、位置角度不同、油污情况下进行开锁试验;
3) 不间断的工作方式:长时间的疲劳测试、频繁的开锁、关锁,测试系统的稳定性;
4) 人为制造紧急状况:电源不足情况下、恶性开锁、开锁后忘记关门、普通用户手指不能开门、取消非法用户权限等。 指纹锁的核心部分测试后的各项性能指标如表1所示。

结语

       经过大量的测试工作,本门锁系统的性能状态良好,满足安全性和易用性的指标要求。门锁系统从功能上具有授权录入指纹、按ID号或按级删除指纹、记录最近的10次开门记录,可录入150枚指纹。本系统采用了嵌入式的体系结构,以及精度高、反应快、功耗低、体积小的外围器件,配合成熟的指纹识别算法和完善的功能设计,以及应急开门方案、加密设计和低功耗设计。本嵌入式指纹锁的误识率为0.001%0.01%,拒识率为0.1%1%,处理速度低于0.3s,完全满足指纹识别产品的要求。由本系统为核心制作的小样本嵌入式指纹锁已于2005年末供应海外市场。

关键字:指纹锁  单片机  控制器  自动识别系统 引用地址:基于控制器设计的纹锁

上一篇:基于LonWorks的在系统编程技术
下一篇:彻底看穿双核CPU Intel与AMD多核处理器剖解

推荐阅读最新更新时间:2024-03-16 13:40

单片机最小系统软硬件设计
该单片机最小系统具有的功能: (1)具有2位LED数码管显示功能。 (2)具有八路发光二极管显示各种流水灯。 (3)可以完成各种奏乐,报警等发声音类实验。 (4)具有复位功能。 功能分析 (1)两位LED数码管显示功能,我们可以利用单片机的P0口接两个数码管来现这个功能; (2)八路发光二极管显示可以利用P1口接八个发光二极管实现这个功能; (3)各种奏乐、报警等发声功能可以采用P2.0这个引脚接一蜂鸣器来实现。 (4)利用单片机的第9脚可以设计成复位系统,我们采用按键复位;利用单片机的18、19脚可以设计成时钟电路,我们利用单片机的内部振荡方式设计的。 设计框图 硬件电路设计 根据本系统的功能,和单片机的工作条件
[单片机]
<font color='red'>单片机</font>最小系统软硬件设计
单片机控制的数字触发器
摘要 介绍了8051单片机在晶阐管触发电路中的应用,同时有单片机与上位机进行串口通讯的软件设计。由软件控制可产生不同顺序的6组触发脉冲。 关键词 单片机 VB 晶阐管 数字触发器 电力电子技术研究的内容包括三个方面:电力电子器件、变流电路和控制电路。电力电子变流技术在工业化领域有着广泛的应用。家用电器节能灯、电子拖动、电炉控制系统中已采用相控整流技术。但多数触发装置普遍是模拟的,调节十分的不便,触发精度差、故障率高。采用单片机来控制晶阐管的触发,是晶阐管应用的发展趋势。本文介绍了一种由8051单片机组成的触发控制系统,可实现高分辨率的数字触发器。 1 系统硬件组成及其原理 系统硬件组成如图1,被控对象是三相全
[应用]
单片机系统与掉电保护电路的可靠性提高方案
1 问题的提出 在以单片机为核心的智能仪表及过程控制系统中常常需要长时间保存实时参数。通常可采用E2PROM、FLASH MEMORY以及以随机存贮器为基础内置电池的非易失芯片来实现。E2PROM、 FLASHMEMORY属于可在线修改的ROM器件,它解决了应用系统中实时参数掉电保存的难题,但这类芯片写入速度慢(ms级),擦写次数有限(万次级),有些器件擦写次数虽达百万次,对某些应用系统而言,其写入次数仍然是有限的。因此这类芯片只能用在需要保护的数据量小且写入不频繁的系统中。对那些需要大容量高速反复存取实时参数的系统,只能用随机存贮器RAM加掉电保护电路实现。掉电保护系统一般由低功耗的CMOS-RAM、供电电路及控制电路组成。
[单片机]
<font color='red'>单片机</font>系统与掉电保护电路的可靠性提高方案
51单片机的键盘检测原理
一、独立键盘检测 1、按键的检测原理 单片机的I/O口既可以作为输出也可以作为输入使用,检测按键时用的是输入功能。把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一个高电平,然后让单片机不断地检测该I/O口是否变成了低电平,当按键闭合时,相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平就说明按键被按下,然后执行相应的指令。 2、实验板原理图 独立按键S2,S3,S4,S5分别连接单片机的P3^4,5,6,7。 3、去抖动操作 由于使用的是弹性小按键,就是一个机械触点的器件。在按下时会有微观上的机械抖动,反应到电平就是高,低,高,低,抖动的长短与机械特性有关,一般在5~
[单片机]
51<font color='red'>单片机</font>的键盘检测原理
基于ARM的嵌入式航空拖靶高度控制器设计
0 引言 航空拖靶是一种由飞机拖曳飞行的特殊的无人飞行器,一套完整的拖靶系统主要包括拖带飞机、收放缆装置、拖缆和拖靶。其中拖带飞机一般为有人或无人驾驶飞机,收放缆装置一般为挂装在飞机上的电动或气动式绞车,拖缆是通过绞车收放的一根长约几千米而直径只有几毫米的钢缆,拖靶多为外形类似导弹的无动力飞行器,由拖缆牵引飞行。主要用途是模拟敌方来袭的导弹类目标,为己方对空导弹、火炮等防空武器系统试验或训练提供模拟目标。 随着技术的进步,现代反舰导弹多采取“超低空掠海飞行”的突防方式。与之相应,20世纪80年代以来,用于模拟反舰导弹类目标的航空拖靶,也向着这一方向快速发展。而这类拖靶都要装有高度控制器,才能实现模拟导弹的超低空掠海定高飞行能
[单片机]
基于ARM的嵌入式航空拖靶高度<font color='red'>控制器</font>设计
PIC单片机的内部RC振荡器的校准
在PIC的单片机中有多种型号有内部RC振荡器的功能,从而省去了晶振,不但节省了成本,并且我们还多了两个IO端口可以使用。 但是,由于RC振荡器中电阻、电容的离散性很大,因此,在有内部RC振荡器的单片机中,它的内部RAM中都会有一个名为OSCCAL的校准寄存器,通过置入不同的数值来微调RC振荡器的振荡频率。并且,单片机的程序存储器中,也会有一个特殊的字来储存工厂生产时测得的校准值。下面我以常用的12C508A和12F629为例加以说明。 12C508A的复位矢量是程序的最高字0x1FF,这个字节生产商已经固定的烧写为MOVLW 0xXX,指令执行后,W寄存器中即为校准值XX,当我们需要校准时,那么,在紧接着的地址0x0应该是一条这
[单片机]
单片机之C语言(初学者如何简单的学C?)
芯片的发展趋势是存储容量越来越大,价格越来越便宜。所以我们应该用C来写单片机程序,不提倡用汇编。 每一款单片机的C语言大部分用法都相同,我个人的经验不同系列的单片机的c语言的使用只有两处的写法不同,1)对一个I/O口的控制 2)中断程序。 当你拿起那厚厚一本的C语言的书籍,心里面也是沉垫垫的。一本书下来难道都是我们要用到的吗?其实不然。我们将把单片机要用的到提出来。让复杂变简单,事实上这些在一般情况下已经足够用了。 1 、变量的声明我们只要用到两个 : 无符号字符型 unsigned char 无符号整型 unsigned int 什么时候用 字符型 什么时候用 整型 取决于你要用多大数。 如PIC单片机
[单片机]
基于单片机的电子密码锁设计
当前虽然许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。 电子密码锁具有安全性能高、成本低、功耗低、操作简单等优点使其作为防盗卫士的角色越来越重要。现有国内市场上的电子密码锁有的是通过购买一些产品模块再开发,不具备自主知识产权;有的是自主研发的,但其功耗与成本都比较高,不具备广泛的应用价值。为了克服这些缺点,从经济实用角度出发,采用单片机AT89S5l与低功耗CMOS型E2PROM AT24C02作为主控器件与数据存储器单元,设计一款可更改密码,具
[工业控制]
基于<font color='red'>单片机</font>的电子密码锁设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved