摘 要
:
本文设计了一种基于单片机
STC89C52
的电子指纹密码锁控制系统
,
其由硬件和软件组成
。
硬 件 采 用STC89C52 芯片作为控制核心
,
结合光学指纹识别模块
FM-206
,
并辅以液晶显示模块
、
键盘输入模块
、
开锁控制电路和报警电路等。
软件包括系统的初始化设置和工作过程所有操作的程序
。
关键词
:
电子密码锁
;
指纹识别
;
单片机
据科学统计
,
在全世界
60
亿人口当中
,
除了几十名生来就没有指纹的特殊人物之外,
没有相同的指纹,
因而电子指纹密码锁成为人们的首选
。
它是把功能强大的单片机芯片放进了锁具,
并采用指纹作为“
钥匙
”。
指纹密码锁采用新型安全可靠的指纹识别技术作为开锁条件,
在控制锁具开闭的基础功能外,
加上一系列更安全更智能化的功能
,
取代传统机械钥匙模式,
极大地提高了安全性能
。
本文提出了一种基于单片机的电子密码锁设计方案。
一、单片机的指纹密码锁系统硬件部分设计
基于单片机
STC89C52
的指纹密码锁系统硬件部分主要由指纹识别模块、
单片机
、
电源
、
通信
、
报警、
控制
、
按键和液晶显示器
LCD1602
等构成
,
在无需上位机参与管理的情况下,
构成具有指纹录入
指纹清除和搜索等功能的智能型模块
。 这一硬件分的工作是采用 C
语言构建系统程序
,
通过执行不同的按键动作,
使单片机向模块发送相应指令
,
以完成对应功能。
在完成硬件与软件匹配调试后
,
整体可构成一个独立的指纹识别系统,
也作为一个完整的外部设备。
(
一
)
控制芯片模块
单片机的指纹密码锁系统的核心控制部分使用单片机芯片 STC89C52
,
其功能引脚模型图及其最小系统连接如图 1
所示
。
它的主要技术特征是可以实现低能耗,
在节电模式下有两种工作方式
,
单片机内部工作频率最低可以达到 0 Hz
。
在空闲模式下,
微处理器停止工作
,
允许数据存储器和串口等 其它部分继续工作。
在掉电保护方式下
,
单片机不 工作,
但数据存储器内容不会清空
,
当有复位信号和新的中断信号时单片机会继续工作。
(
二
)
指纹模块
光学指纹模块
FM-206
是以高性能高速数字信号 DSP
处理器
AS601
为核心
,
结合具有高精度的光学指纹传感器组成一体化结构,
能在没有上位机的情况下也可以在单独使用[2]
。
它的主要功能和特点有指纹采集对比、
图像数据处理和存储
,
并可以通过串行接口与计算机连接,
方便进行二次开发应用
。本系统以串口方式实现光学指纹模块 FM-206和单片机 STC89C52
之间的通信
。
单片机的
P3.0
脚(RXD
)
接指纹模块的第
2
脚
(
TD
:
串行数据输出
),实现指纹模块发送数据由单片机接收。
单片机的P3.1 脚
(
TXD
)
接指纹模块的第
3
脚
(
RD
:
串行数据输入),
实现单片机发送数据由指纹模块接收
。
并将光学指纹模块 FM-206
第
4
脚
(
GND
:
信号地
)
与单片机 STC89C52
的
GND
脚连接
。
光学指纹模块
FM-206 与
STC89C52
单片机接线方式如图
2
所示
。
(
三
)
其它硬件模块
按键键盘由三个独立按键组合而成
,
按键一端接地,
另一端分别接在单片机芯片
STC89C52
的
I/O口的 P3.2
、
P3.3
、
P3.4
引脚上
,
三个独立按键的功能分别是录入、
识别和清除的控制
,
这种按键键盘硬件结构简单,
性能可靠
,
三个按键的结果可以由软件编程识别得出。
液晶显示器采用
LCD1602
。
单片机芯片
STC89C52 的
P0.0
~
P0.7
分别与液晶显示器
LCD1602
的DB0~
DB7
连接
;
单片机芯片
STC89C52
的
P2.5
、
P2.6
、P2.7 分 别 与
LCD1602
液 晶 显 示 器 的
RS
、
RW
、
E
连接。
本系统开关锁控制部分采用电磁继电器作为执行机构,
单片机
STC89C52
处理得出的开关锁信号经过其端口 P1.4
引脚输出
,
再经过三极管驱动电磁继电器,
控制电磁锁机械机构的吸合与断开
,
同时可以 通 过 LED
同 步 指 示
。
报 警 部 分 是 通 过 单 片 机STC89C52 的
P1.5
口线
,
经驱动器驱动蜂鸣器发声
。由于单片机 STC89C52
电路所需电源为
5 V
直流电,
光学指纹模块
FM-206
所需电源为
3.3 V
直流电,
考虑到在一些场合只有
220 V
交流电
,
没有方便可用的稳定直流电源,
为了增加该电子指纹密码锁系统的适用性,
所以在供电模块上还增加了整流稳压电路。
二、单片机的指纹密码锁系统软件部分设计
软件部分设计
,
包括系统的初始化设置和工作过程所有操作的程序。
具体有系统主程序
,
单片机
、全 局 变 量、
串 行 接 口
、
按 键
、
定时中断等初始化操作,
按键扫描
、
输入和执行按键功能的子程序
,
指纹输入、
搜索
、
比对子程序
,
构建收集指纹信息库
,
执行对机械机构的控制
。
(
一
)
指纹识别模块
FM-206
指令系统
1.指令数据包格式及其定义
指 纹 识 别 模 块
FM -206
的 工 作 是 由 单 片 机STC89C52 发送相关命令对其操作来实现
。
单片机与指纹识别模块之间数据指令传输都采用指定格式数据包,
必须进行数据包的格式定义
。
系统工作时,
指令只能由单片机
STC89C52
下发给指纹识别模块 FM-206
,
而指纹识别模块
FM-206
向单片机STC89C52 应答
。
指纹识别模块
FM-206
在收到指令后,
应通过应答包
,
将命令执行情况上报给单片机STC89C52。
单片机
STC89C52
只有在收到模块的应答包后,
才能确认指纹识别模块
FM-206
的收包情况与指令执行情况。
2.验证口令、存储模板和搜索指纹参数的格式及其定义
指纹识别模块
FM-206
在上电完成初始化工作以后,
等待接收单片机
STC89C52
命令
。
在收到正确命令后,
迅速执行相应的操作
,
在操作完成后返回对应的信息。
在指纹识别模块
FM-206
执行命令的过程中,
指纹识 别 模 块
FM-206
不会响应单片机STC89C52 发出的其它命令
。
可以通过录入指纹
、
指纹搜索来完成比对功能,
也可以通过上传特征
、
下载特征来实现远程指纹比对功能。
(
1
)
验证口令
验证口令的有关参数
、
格式及其定义
。
输入参数:
PassWord
。
返回参数
:
①
0x00H
(
口令验证正确
);② 0x01H
(
收包有错
);
③
0x13H
(
口令不正确
)。
指令代码:
0x13
。
(
2
)
存储模板
存储模板的功能说明
:
将指定的特征缓冲区中的模板数据存储到 Flash
指纹库中指定位置
;
输入参数:
BufferID
(
缓冲区号
)
+PageID
(
指纹库位置号
,两个字节,
高字节在前
);
返回参数
:
0x00H
(
储存成功),
0x01H
(
收包有错
),
0x0bH
(
超出指纹库范围
),0x18H(
FLASH
出错
);
指令代码
:
0x06H
。
(
3
)
搜索指纹
搜索指纹的输入参数
:
BufferID+StartPage+PageNum;
返回参数
:
0x00H+PageNum
(
搜索到
),
0x01H+PageNum(
收包有错
),
0x09H+PageNum
(
没搜索到
)。
(
二
)
指纹程序
系统指纹识别模块部分主要在键盘的控制下完成指纹的录入、
删除
、
比对
。
系统构建指纹库后
,
系统将识别来自指纹模块的信息,
确认是否需要是该锁的指纹密码。
1.
录入指纹流程
按一下
“
指纹录入
”
按键
,
指纹采集头亮起
,
将手指放到指纹模块的透明的树脂玻璃上,
就可以录入指纹了,
单片机向指纹模块发出命令
,
指纹模块获取指纹图像,
其后执行图像处理相关计算并将处理的值存入缓存区,
一个指纹要录入
2
次
,
录入
2
次是为了确保这个指纹特征。
若第一次添加成功
,
蜂鸣器响一声,
则指纹采集头再次点亮
,
然后蜂鸣器响两声,
表示此用户信息添加成功
,
指纹模块处 理两次信息成功后,
通过串口向单片机发送应答信号
,此时液晶显示器 LCD1602
屏幕上显示录入的这个指纹 ID
号
。
如果想录入多个手指的指纹每次首先都要按一下“
指纹录入
”
按键
,
重复上述操作即可
(
用户 ID
自动递增
)。
2.
搜索指纹流程
需要验证用户即识别指纹时
,
按一下
“
模式转换”
按键
,
执行搜索比对操作
,
进入到指纹识别模式就可以识别指纹了。
单片机向指纹模块发送采集图像并进行 1
:
N
比对命令
,
比对成功后
,
液晶显示器
LCD1602
上显示用户
ID
,
若用户不存在
,则返回相应信息,
液晶显示器
LCD1602
上显示
error
。
(
三
)
其它程序
当操作不同功能按键或者返回不同的应答信号时,
液晶显示器
LCD1602
显示相应的内容
,
需要设计显示程序。
单片机
STC89C52
和指纹模块
FM-206
的通信首先需要将串口初始化,
即设定二者之间的串口通信命令。
初始化的波特率为
9600 bps
,
传送的是无校验位帧格式。
当单片机检测到发送缓存有数据时
,开始向指纹模块发送数据,
指纹模块收到命令后
,进行相应操作响应,
随后向单片机返回各种结果的应答。
键盘按钮模块由三个独立触点按钮组成
,
三个按钮分别一端连接在单片机 STC89C52
三个不同的I/O 端口上
,
另一端通过限流电阻接地
。
按键功能由单片机 STC89C52
内程序控制
,
当有按钮按下时
,
该按钮所在支路接通并由单片机程序识别,
作出相关操作。
三、单片机的指纹密码锁系统程序调试及电路仿真
单片机的指纹密码锁系统程序编写完成之后
,采用 keilc51
单片机仿真软件对编写程序经过反复调试,
并在电脑上进行模拟仿真确认无误以后
,
最后在 keilc51
软件中生成单片机
STC89C52
可识别的十六进制文件,
指纹模块仿真图见图
3
所示
。
仿真操作时通过串口模块发送模拟的指纹模块指令,就可以从 LCD1602
显示模块中看到当前指纹采集系统的工作状态和经对比后指纹采集的信息是否正确。
四、结论
本文提出的指纹密码锁采用单片机
STC89C52和光学指纹模块 FM-206
制作的指纹密码锁硬件系统,
在系统内结合电子信息技术中的微控制器技术,
指纹识别技术
。
无论是指纹识别精度
,
还是系统稳定性都满足大部分应用场合,
并且还可在硬件和软件进行后续拓展,
增加新的功能
,
具有一定的推广价值。