基于STM32 的门禁系统设计
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报警
电压过高或过低、指纹 不匹配、密码不匹配、 触发童锁、胁迫开锁
识别后处理 匹配开门、送显示 指纹 ID、不匹配
报警 图 2 门禁系统的软件架构
第2期
曹 兰:基于 STM32 的门禁系统设计
95
2.1 主程序设计 主 程 序 主 要 包 括 上 电 初 始 化 、指 纹 设 置 、密 码 设 置 、指 纹 识 别 模 块 、继 电 器 驱 动 模 块 、密 码 处 理 模
表 3 录入指纹时的应答包指令格式
字节数 名称 内容
2 bytes 包头 0XEF01
4 bytes 芯片地址
XXXX
1 byte 包标识
02
2 bytes 包长度
03H
N bytes 数据 xxH
2 bytes 校验和
sum
注:确认码=00H 表示录入成功;确认码=01H 表示包有错;确认码=02H 表示传感器上无手指;确认码=03H 表示录入不成功 .
第 23 卷 第 2 期 2021 年 6 月
漳州职业技术学院学报 Journal of Zhangzhou Institute of Technology
Vol. 23, No.2 Jun. 2021
文章编号 :1673-1417(2021)02-0092-06
doi:10.13908/ki.issn1673-1417.2021.02.0017
96
漳州职业技术学院学报
2021 年
过程中 ,遇到问题要参考它的数据手册 ,比如要提高指纹的反应速度 ,指纹生成特征、匹配指纹时 ,可 以调用它内部的函数。
硬件上电初始化设置 页地址、列地址、行地址
设置片选、读写 控制引脚
提示待显示 字符字模
设置显示 位置坐标
调用显示 函数送显示
图 4 LCD12864 显示流程图
LCD12864 模块流程图如图 4 所示。首先软件设置液晶显示的引脚连接 ,利用字模软件提取待显 示汉字的字模 ,并定义为数组进行访问。显示时 ,通过将字符的字模写入字符显示 RAM(DDRAM ), 再设置待显示的位置坐标 ,即可调用显示函数点亮相应的点阵来完成显示。 2.3 指纹识别流程
指纹识别时 ,先判断有无手指按下 ,若检测到手指有按下 ,则发送指令准备读取图像 ,接收包应 答之后 ,发送生成特征值指令 ,生成手指图像的特征值 ,并与系统存储的图像特征值进行比较匹配 , 匹配成功 ,则显示指纹 ID ,否则读取失败。如图 5 所示。
该系统的结构主要包括 6 个模块 ,门锁控制模块、主控制芯片、矩阵键盘模块、指纹识别模块、液 晶显示以及电源管理模块[4-5],如图 1 所示 ,其各个模块的实现方式如表 1。
电源管理
门锁电机
GP10
12C LED 显示模块
GP10 手指触摸传感器
指纹识别模块 UART
MCU STM32F103
GP10 GP10
开始
读取触摸感应 状态PS Sta10
N 感应到手指? Y
发送取图像指令 PS Getimage
等待接收应答包
N 读取到图像 Y
发送生成特征指令 PS Genchqr
参数:Buffer ID+1
等待接收应答包 N
接收? Y
发送搜索:PS Search 设置参数:Buffer ID StartPage:PageNum
N 重复 3 次
Y 启动报警
添加成功 删除成功
验证成功
输入两次要修改 的密码、以#号结束
LED显示:添 LED显示:删 加指纹成功 除指纹成功
LED显示:验 证指纹成功
N 判断两次是否
相同?
Y
LED显示: 修改成功
图 3 主程序流程图
上电 6 s 后进入休眠 ,在休眠状态下 ,可以通过指纹或密码开锁 ,或进行按键操作。当手指按压指 纹锁时 ,其内部的 DSP 芯片会处理数据 ,匹配指纹库中的指纹 ,并将结果发送给主单片机 ,单片机进 行处理 ,并发送给显示屏显示。若密码或指纹识别三次仍不通过 ,则会启动报警。 2.2 LCD12864 模块流程图
1 整体方案设计
本门禁系统主控制芯片采用 STM32 单片机 STM32F103,指纹识别模块采用 ATK-AS608 模块 ,并 用 LCD12864 显示处理的结果信息。尝试多种策略来提高系统识别和响应速度。实现的主要功能
收稿日期 :2021-04-04 基金项目 :福建省中青年教师教育科研项目(JAT191419) 作者简介:曹 兰(1982-),女,湖北天门人,讲师,硕士,主要从事人工智能、嵌入式系统研究。
文献[3]设计实现了基于单片机的电容式指纹识别系统。但考虑到 RFID 射频识别需要随身携带 IC 卡 ,有些不方便 ,纯指纹识别可能会出现无法读取或识别指纹而无法开门的小概率事件 ,本门禁系 统采取指纹识别和密码识别两种识别方式。
门 禁 系 统 的 基 本 组 成 主 要 包 括 身 份 识 别 、传 感 与 报 警 、处 理 与 控 制 、电 锁 与 执 行 、管 理 与 设 置 。 本 文从应用角度出发 ,针对家庭或小型办公场所的使用需求 ,主要从两个方面着手优化设计: 一是硬件 搭建上坚持低功耗设计 ,加入电源管理模块供电 ;二是在软件实现上 ,尝试多种策略来提高系统的响 应速度 ,并考虑多种情况下的报警处理 ,提高系统的安全性。
2 软件设计
本门禁系统针对家庭或小型办公场所的使用需求 ,在屋内增加一个童锁功能 ,可以防止儿童私自 外出 ,其软件构架如图 2 所示。
门禁系统上电
手指触碰按键
手指触碰指纹 窗品
触碰儿童锁
电源管理
手指注册阶段
图像采集、预处 理、特征提取、
数据库
按键处理
注册密码、 册除密码
识别阶段
图像采集、预处 理、特征提取、 匹配、识别处理
3 系统实现和测试
按如图 6 所示原理图连接电路 ,另接入电源管理模块 ,继电器 ,通过 usb 转串口 ,进行指纹的录入。 在系统调试过程中 ,遇到一些问题 ,比如 LCD 送显示时 ,在两个显示界面之间要加延时 ,否则待显 示数据会持续写入 ,看不到显示界面 ;取字模软件要设置横向取模 ,字节正序 ,否则会出现乱码 ;字符 写入 CGRAM(自定义字形 RAM)时必须要先写垂直地址坐标 ,再写水平地址坐标。指纹模块在使用
起始信号、有效数据、停止信号 起始信号、8bit 数据、1bit 应答、停止信号
1.1 主控制芯片。STM32F103 可以并行处理 32 位数据 ,相对于 51 单片机而言 ,处理信息和识别指纹的 时间会明显缩短。并且它的软件设计具有良好的可移植性和可扩展性[4]。 1.2 指 纹 模 块 。 AS608 芯 片 内 部 自 带 手 指 检 测 电 路 ,通 过 检 测 引 脚 (WAK)状 态 判 断 有 无 手 指 按 下 。 STM32F103 通过 USART 串口来实现对 AS608 指纹模块的控制 ,其发送和处理串口数据通讯协议格式 分为指令包、数据包、结束包 ,根据包标识来区分。具体为包标识是 02,为数据包 ;包标识是 01,为命 令包 ;包标识是 08,为结束包 ;所有的数据包都要加包头 0xEF01。数据包格式如表 2。
中的应用研究。对整个系统进行了综合测试 ,结果表明 :本智能指纹锁系统运行稳定 ,运行速度较快 ,适合家庭或小型办公
场所使用。
关键词 :门禁系统 ;指纹识别;STM32;AS608;低功耗
中图分类号 :TP391.9
文献标识码 :A
随着信息技术的不断发展 ,信息安全引起了人们的密切关注 ,门禁安全更是如此。文献[1-2]提出 目前门禁系统常用的生物识别技术有指纹 、人脸 、声纹 、虹膜等 ,指纹识别是其中应用最为广泛的一 种。指纹识别是将识别对象的指纹进行分类比对从而进行判别。目前国内外普遍关注的技术问题有 门 禁 系 统 的 功 耗(供 电)、系 统 的 安 全 性 、系 统 的 执 行 速 度 、与 其 他 智 能 家 电 的 系 统 集 成 化 、系 统 的 开 放性以及迈向云端应用(智能手机携带的虚拟凭证卡)等 5 个方面。不同于国内门禁系统的低成本和 人性化设计 ,国外门禁系统系统集成化功能强大 ,可提供成套的弱电集成方案 ,软件复杂 ,日常维护 和升级都需要专业的技术人员。
第2期
曹 兰:基于 STM32 的门禁系统设计
93
有 :通 过 usb 转 串 口 ,进 行 指 纹 的 录 入 。 通 过 编 程 软 件 keil4 将 程 序 烧 录 到 主 控 板 STM32F103, LCD12864 液晶屏幕显示“请输入您的指纹”,若指纹模块初始化失败 ,则显示“录入指纹失败”。用录 入指纹开锁 ,若指纹识别成功 ,电磁锁开锁 ;若指纹识别不成功 ,则语音提示“叮铃叮铃”,液晶显示 “识别指纹失败”,在这种情况下 ,还剩两次录入机会 ,若三次指纹识别均失败 ,则系统会报警。通过 密码也可以开锁 ,同样有三次机会。预先用矩阵键盘登记保存密码 ,登记密码时 ,需要 6-13 位字符 ,按 “#”号键结束。听到“请再输入同一密码”,再次在按键板上输入同一密码 ;听到“密码登记成功”,液晶屏 上会显示添加成功。用密码开锁时 ,若三次匹配失败 ,则系统会报警 ,液晶屏会显示“开门失败”。
等待接收应答包
N 接收? Y
显示指纹 ID
结束
图 5 主程序流程图
图 6 系统电路原理图
第2期
曹 兰:基于 STM32 的门禁系统设计
97
如图 7 所示,在逐个完成单个模块的软件调试后,进行整个系统级联。经过测试,系统最终完成了使 用指纹识别和输入密码来进行开关电控锁功能 ,并且系统运行稳定 、功耗低 、指纹锁开锁反应速度较快。
94
漳州职业技术学院学报
2021 年
表 2 数据包格式
字节数 名称 内容
2 bytes 包头 0XEF01
4 bytes 芯片地址
XXXX
1 byte 包标识
02
2 bytes 包长度
N bytes 数据
2 bytes 校验和
在录入指纹图像指令时 ,手指触摸传感器检测到信号时会发生读图像指令 ,指纹识别模块会发送 应答包 ,其应答包的格式如表 3。
块、语音报警模块等子程序构成 ,如图 3 所示。
锁系统上电
手指触碰指纹窗口
K1 键添 加指纹
K3 键删 除指纹
K5 键验证 指纹
K7 键添修 改密码
系统初始化
设备初始化
6 s 定制时 Y
进入休眠
输入指纹
输入密码
匹配成功 N 开门失败
Y 开门成功
蜂鸣器提示叮 铃叮铃、12864
显示失败
蜂鸣器提示叮铃叮 铃、LED显示开门 成功,显示指纹ID
报警 指示灯
SPI 存储模块
GP10
键盘模块
应急电源
图 1 门禁系统的结构框图
模块 指纹识别模块
存储模块 LCD 显示模块
表 1 门禁系统各个模块的实现方式
引脚连接 PA10(RX)、PA9(TX)
PA6、PA7 PB10-PB14
通信方式 USART(串口)
SPI I2C
通信协议 包头、芯片地址、包标识、包长度、数据包、结束包
基于 STM32 的门禁系统设计
曹兰
(漳州职业技术学院 电子工程学院,福建 漳州 363000)
摘 要 :系统搭建了由 STM32 单片机控制的智能门禁系统,有指纹识别模块、矩阵键盘模块、供电电路模块、液晶显示
等模块。可实现指纹识别和密码识别两种开锁方式。详细介绍了指纹识别模块 AS608 和液晶显示 LCD12864 在指纹锁系统
1.3 存储模块。STM32F103 通过 SPI 来与存储模块通信 ,依据通信协议 ,NSS 信号由高变低是 SPI 通信 的起始信号 ,NSS 信号由低变高是 SPI 通信的停止信号 ,SPI 使用 MOSI 及 MISO 信号线来传输数据 , 使用 SCK 信号线进行数据同步。 1.4 显示模块。SCL 为时钟信号输入端;SI 为串行数据输入端。STM32F103 通过 IIC 来与显示模块通信, 依据通信协议,SCL 线为 1,SDA 线由 1 向 0 的变化表示起始信号。主机与从机之间传输数据(8bit),数据 接收方的应答信号 ACK 为 0 是有效应答,数据传输完成后,SDA 线由 0 向 1 的变化表示停止信号。 1.5 按键模块。键盘电路用 4×4 矩阵键盘实现 ,采用逐行扫描法实现按键检测。 1.6 电源管理模块。门禁系统通过电源管理模块供电 ,当供电电压超过或低于额定范围时 ,或突发停 电时 ,备用电源会启动供电 ,不影响系统的正常工作 。 [9-10]