摘 要
随着社会经济与科技的发展,使用场合对门禁系统的安全需求也愈来愈高,无论家居或写字楼,以前单一的门
禁已经无法适应现代人类对生活环境和管理方式的要求。在当今,随着互联网技术与物联网技术以及智慧科技的发
展大潮下,既要保证门禁系统的安全,又要满足新时代人们对智能化的追求。针对目前市场上大部分的电子门禁系
统,均像单一的指纹解锁、单一的磁卡解锁和单一的输入密码解锁为主的单一性和门禁系统不完善的弊端。现今利
用已有技术,将多种门禁解锁方式集成一体,多种技术并行和完善管理系统形成的完整闭环,从而提升人们生活家
居的安全性、便捷式和智能化。
设计一种基于单片机的多功能门禁系统方案设计和实现,以实现数字密码、指纹识别和智能IC卡等现代化多功能新型解锁方式及完善的管理系统。使门禁制度在增加了安全系数的同时,也在极大程度上适应了当代我国人民日
趋现代化和智能化的生活特点,给那些行动不便的人带来了方便,让人类的生活更加智能、人性化。
关键词: 门禁系统;多功能解锁;STC89C52
1绪论
1.1课题背景
智能门锁拥有诸多优点,近年来在新房装修、旧房改造中受到不少消费者的欢迎。特别是物联网和互联网技术
的引进和快速的发展,近年来,智能门锁的市场销量份额占比迅速增长,技术更新快,行业飞速发展。同比去年市
场数量而言,中国的智能门锁产品通过网络电子商务平台 市场销售数量达到了458万个,同比上升了31.4%。
智能门锁这种类型的产品其实很多年前就出现了,开锁方式也百花齐放,刚开始是密码锁,后来出现了刷磁卡
的门锁,近些年来,随着生物识别技术的发展,指纹采集识别和人脸识别等新型生物技术门锁踊跃出现。但是市面
上的智能门锁模块化成本过于昂贵,而且门禁管理系统不够完善且居多智能门锁解锁方式单一性,在安全性又不能
得到良好的保障。在此背景下,研究国内外智能门锁的现状,对基于单片机的多功能门禁系统设计有一定的研究拓
展。
1.2国内外研究现状
1.2.1智能门锁发展历程
随着市场和技术的变迁,智能门锁历经了4次迭代更新。1.0时代,随着工业集成电路的成熟,电子元器件性能
部分也趋于稳定。便出现了一种使用"卡片+密码"的解锁方式,但仍然存在大部分机械按键式密码键盘门禁解锁。随
后指纹采集识别模块技术的引进,又诞生了智能门锁2.0时代。但是随着人类生活条件日益优越以及社会对电子门锁
技术安全需求的的增加,为适应人类的需要,科技的不断更新,将人脸识别、虹膜识别、手指静脉识别等高度安全
的高级生物识别技术成功导入了电子锁领域,从而出现了智能门锁3.0时代。基于物联网和互联网的技术日趋成熟,
开启了智能门锁人工智能的4.0时代,人工智能逐渐广泛的运用到智能门锁领域,实现人、通信设备、人工智能系统
之间的云端连接与通信,从而实现云端远程报警、监控、开启、控制智能化运用。可见,将多种门禁解锁方式集成
一体,多种技术并行和完善管理系统形成现代化多功能新型解锁方式是未来智能门锁的发展趋势。
1.2.2国外研究现状
国外的智能电子锁技术发展得较早,现已有了近四十年的发展史,但在核心技术上日韩都还处在非联网状态,
技术上大多以密码锁、卡片门禁等形式,在欧美发达国家少有生物标识类型的电子锁具生产,目前大多使用的都是
单密码门禁锁、单蓝牙芯片组门禁锁和单指纹门禁锁的电子产品门锁,功能也较为简单。
1.2.3国内研究现状
我国的电子锁业务起步并发展于20世纪90年代,已发展了二十余年,最初期主要由以磁卡感应式的智能电子
锁,在酒店使用居多;到现在进入二十一世纪之后,指纹锁、人脸识别锁等技术引进市场,智能门锁也得到迅速猛
飞发展,逐步迈入智能家居领域进军;但是智能门锁技术居多仍以模仿、借鉴国外的电子锁为主,技术不具备科技,而且门锁市场混乱,单价不一,导致目前市场上的智能门锁价格昂贵。从中国消费者观点来看,不仅要求门
锁安全性高、智能便捷,而且价格也是主要考虑范围。
1.3课题意义
随着人类安全意识的日益提高,人类对房屋和办公楼的门禁锁的防盗性能也提出了越来越高的要求。传统的机
械锁虽价格相对低廉,但因为机器构造的局限,钥匙技术上易于复制,也易于撬锁,因此无法有效保证使用者住宅
中的人身安全。然而,经常发生的情况是,用户忘记携带、丢失钥匙并被锁在门外。高端智能门锁虽然防盗系统性
能优越,但是却价格昂贵,为一般使用者的门锁选购增加了巨大经济压力。为了适应人类的对门禁锁使用需求,并
提出其高端安全、方便和智能的智能门禁锁理念,现今使用了比较普遍的以数字密钥、指纹识别和智能IC卡识别为
核心技术,将多种技术手段并行,并通过完善门禁管理,将人类的生物特征和智能设备通过数码、字符、图像图形
等信息处理,形成于电子信息的密钥,而这种组合的信息也能够使电子防盗锁系统具有更高密的保密性。
随着非接触式识别技术的成熟,从而引进智能射频识别模块,在识别普通卡片基础上,而且具有NFC功能的智能
门锁,可以读取内置NFC的手机、手表、手环的信息,实现用智能设备开锁,给人们生活解锁方式带来便捷。NFC的
扩展功能,不同于非接触式IC卡。NFC能够实现双方通讯。如果是支持NFC的智能产品或者IC卡,数据信息就能够读
取或写入。当手机硬件存储器含有加密信息或者经过加密数据处理的处理器支持情况下,安全性更加提高,而且在
解决非接触的问题上,还解决用户经常得随身携带IC卡和很多的钥匙造成生活中很多不便,也容易丢失的问题,只
需一台智能设备在手便可解决出入门。指纹识别模块可以根据快速可靠的算法识别人体皮肤的一小部分,不仅可以
提取识别大量指纹皮肤数据,而且保密安全性高。在以上两种智能物联网技术的设计上,保留了传统的数字密码,
更为适用广泛人群,使产品广阔的扩展和产品多样化。智能门锁集成电路的设计,PCBA电路板集成于多种解锁技术
且兼容其他模块电路,使得多功能智能门锁在门禁系统上不仅提高安全性能、降低电路功耗,还具备成本低、操作
方便等优点。
1.4本文主要工作
通过对当今国内的市面上的电子锁现状认识和对具体要求的剖析,本研究设计主要从经济实用和人性智能化的
角度考虑,采用STC89C52单片机,研制了一款具有现代化多功能新型解锁方式及完善的管理系统。设计方案主要分
为五部分:AS608 指纹识别模块、4×4 数字按键矩阵键、RFID-RC522射频识别模块、LCD12864显示屏模块、
AT24C02存储芯片模块。
本次系统设计与论文中主要的研究内容为:
1.基础功能控制电路的元器件选型与布局设计。
2.显示屏、指纹识别模块、RF射频识别模块、系统控制芯片的方案选择。
3.三大模块工作状态程序设计与STC89C52单片机联调的程序设计。
4.指纹采集、RFID-RC522射频识别和AT24C02存储数字密码的三大模块的存储读取控制。
5.通过矩阵键盘的实时操作与LCD12864液晶屏的界面交互形成人机功能选择。
6.将矩阵键盘、指纹识别和IC卡识别三大模块功能集成在一起形成一个可操作可视化的智能门禁管理系统。
2系统方案设计
该门禁系统方案设计采用的是以STC89C52单片机为核心控制芯片,再经过对相应的外设电路的规划设计硬件部
分且与程序设计编译联合调试,将门禁系统设计为数字密码、指纹识别和智能IC卡的模式解锁方案,通过任意一种
解锁方式就能够实现门禁解锁,且可以通过管理员密码进入门禁管理系统。根据上述技术方案,本次产品使用的硬
件主要包括AS608指纹识别模组、4×4数字按键矩阵键、RFID-RC522识别模块、12864液晶屏显示模块、继电器驱动
控制模块等组成,来实现多模式解锁、智能管理的门禁系统。
2.1方案选择
在硬件电路规划设计之前,需要确定产品的基本逻辑功能和初步方案,再经过对比不同模块之间的成本和特
性,最后选定最适于本产品设计的硬件,以实现元器件的最优的功能效果并且节省生产成本。
2.1.1主控芯片的选择
方案一:STC89C52单片机
采用STC89C52系统单片机为控制核心芯片。STC89C52是采用互补金属氧化物半导体技术打造的一款高性能、低
功耗的8位微处理器,片内仅有8K的存储内存空间,但是可以实现在线实时编程烧录的Flash存储器。STC89C52单片
机的微型计算机核心MCU使用MCU-51内部指令,完全可以兼容于MCU-51,而MCU通过升级改版,芯片功能也更加完善
与强大,已经拥有了以往的很多传统51单片机所不具备的功能。[1]例如,该芯片还同时具备了4k的EEPROM存储功
能,在不需要通过掉电保持Flash储存数据时,用户可直接通过MCU。内部存储器在数据不超出于程序区范围内的情
况下,而不需要转移出外部存储芯片中存储。STC89C52型单片机芯片,具备开发难度低、成本可控等优点。[1]所以
在嵌入式简单开发中,这款芯片是最好的选择。
方案二:MSP430单片机
采用MSP430系列单片机为控制核心。该芯片是美国德克萨斯仪表有限公司(TI)于一九九六年提出,经过了多年
考验,仍然是一款高可靠性的MCU。它是一款16位的混合信号处理器,因其采用的是精简指令集,并且功耗超低而被
广泛使用。它之所以被称为混合信号处理器,是因为它在同一块芯片内整合了许多不同性能的模拟集成电路、微处
理器,以及数字申路单元。因为其低功耗的特性,故多用于采用电池供电的手持式的仪器仪表当中。但是其开发难
度大、可参考的资料相对较少、价格昂贵。所以在本简单的设计中不宜采用。
通过STC89C52与MSP430这两款单片机的性能、功能等参数以及成本的对比,最终选择STC89C52单片机为主控芯
片。
2.1.2显示模块的选择
方案一:LCD12864
LCD12864是一个常见的工业LCD。128X64自带的中文字体,是支持八位或四位并行通讯以及二线或三线串行通讯
的IIC通讯模块。LCD12864屏幕不仅具备128×64的分辨率和8×4、16×16两种模式显示效果,而且内置微处理芯片
存储16×8点ASCII字符集和16×16点汉字分别有128个和8192个。在这种开发条件下,足够满足此次设计显示开发使
用。利用显示模块简单便捷的使用指令实现灵活的交互界面模式,建立中文人与机交互系统图文用户界面。[1]低电
压和低功耗也是它的另一种显著特点。它有三种屏幕显示颜色:黄绿色、蓝色和灰色。虽然LCD12864功能强大,但显
示内容字符太大,给人的感觉浪费了大量屏幕空间,但该模块的价格也略低于相同点阵的图形LCD模块。
图 2.1 LCD12864引脚图
方案二:LED数码管动态显示
LED点阵屏是点阵发光的二极管阵列根据其一定数量的发光顺序排列所共同构成的一种显示装置。LED点阵屏的
产品价格比较低廉,对于显示简单数字图形和书写简单易懂的英文字母来说会显得更加适合。具有功率损耗小,无多
余热量,耐冲击,长寿命显示等诸多优势,配合单片机应用能够完美达到各种显示效果。但正因为如此其在跟电脑连接
到单片机上的数据传输时候就必须要占用一个较多的串行I/O口才能进行数据通信,同时,单片机上的串行I/O口的电
流信号输出处理能力不足如果需要驱动LED点阵屏还需要外接驱动电路。这些潜在的问题导致数码管并不适合用在本
设计中,另外其较多的引脚在焊接的时候也更容易出错。
综上所述,最终为了使得普遍适用人群更加的清晰观看屏幕的显视。LCD12864又具备显示内容比较大的特点,
所以本次产品的显示模块上选用LCD12864。
2.1.3数据存储芯片的选择
方案一:芯片内置EEPROM功能
STC89C5X系列芯片内部都具备配置EEPROM功能,程序数据可以通过可擦可编程只读存储器功能保存到单片机芯
片。STC89C5X的EEPROM主要利用ISP/IAP技术,读写数据存储在内存EEPROM功能扇区芯片。但是由于微型计算机的内
部存储器能力大小限制,STC89C5X的EEPROM起始位置大小是0X2000,512字节数据为一个扇区,且EEPROM的内部存储
能力存储容量大小则仅为2K Byte空间数据。
方案二:AT24C02数据存储芯片
预先设置的密钥可存储在AT24C02数据存储芯片。AT24C02系列芯片是一个采用新型的互补金属氧化物半导体技
术封装的2K位的串行E2PROM,从根源实质上降低器件的工作功耗。具备16字节页的读写缓存空间,而且内置空间可
以存储256个8位Byte。不仅可以存储单片机外溢的程序数据,还带有特殊专门的写保护功能,在存储数字密码的数
据时,起到掉电不失数据的作用。
考虑到在内存数据处理方面不同,单片机内的EEPROM需要在读写前先擦除整个扇区,程序设计开发存在困难和
麻烦。且相较于AT24C02还具有掉电存储单元的功能,在系统供电突然中断的时刻还能够保留并存储预先所设置的密
码信息数据,最终决定采用AT24C02作为数据存储芯片。
2.1.4指纹识别模块的选择
方案一:光学指纹识别
光指纹采集识别技术以借助光学感应原理获取指纹的光学图像,在通过图像对比辨认识别。模组内置芯片集成
DSP算法和指纹识别算法处理单元,从而可以在短时间下有效的收集处理图片信息和确定指纹特征。模组中还设置了
串口、USB通信等端口,使用者不需掌握繁杂的图像处理和指纹识别等算法。而只需按照通信协议,使用简单的串口
和USB控制模块。
方案二:半导体指纹识别
半导体指纹识别模组主要借助人体温度、按压手指的压强以及硬件元器件电容特性原理和产生的感应电磁场,
对人体指纹表皮纹路特征进行采集并通过算法对比处理识别指纹特征图像。模块的可靠性之高是因为仅识别活体指
纹,可穿透皮肤毛层。可防止模拟指纹破解。但是技术处理复杂,在技术开发上造成困难,而且成本比其他指纹识
别模块成本偏高,在技术资源上占用太多资源和成本资源上造成浪费。
综合以上指纹识别技术考虑,采用型号AS608光学指纹识别模块。
2.1.5射频识别模块的选择
经过对高集成读写卡系统芯片的对比研究表明,在MFRC522和MFRC500以及MFC530之间具有不少相似,但同时又
具有不少差异点与优点。本次设计选用的非接触式读写卡射频识别模块是采用MFRC522的原装芯片,有着非接触式通
讯高集成、低电压、低功耗、小尺寸、低成本等优势。采用3.3V统一电源供电,工作频率为27.12MHz。通过几行简
单的SPI连接,就能够可以直接与用户的任何CPU主板连接和通信,这样就可以缩短布线,减小了PCB的体积,从而降
低了成本。还能够确保模块工作稳定安全运行,读写卡距离长,兼容双向数据通信。且RFID-RC522的内部发射器也
无需外置有源集成电路就可以驱动读写,天线电磁感应电流可以进行与符合卡片和NFC技术标准的通信。接收器电路部分则实现了稳定可靠的卡片信息数据解调和编码,提高了抗干扰性。所以RFID-RC522是应用智能仪表和便携式手
持设备识别研发的较好选择。
2.1.6人机交互控制器的选择
方案一:独立按键
独立按键中的每一个按键都赋予相对应的功能和具体函数,而且单片机I/O端口只能单独接入单一功能按键,这
样每按下一键都必须单独消抖检测处理。[1]而一旦实际需要的按键数量相对较多,将会占据大量I/O接口,从而耗
费单片机的MCU端口资源,造成其他外围元器件设计布局上产生问题,同时对按键的反应速度也会下降。
方案二:44矩阵键盘
44矩阵键盘是16个独立按键有序的阵列组成,独立按键的控制开关引脚两端依次并入行线和列线,然后再将各行线
与列线都连到单片机I/O接口,通过采集键盘是否按下则需要通过扫描的方式来完成,通过高低电平状态控制按键输
出,采用计算法对确定按键进行编码输入。44矩阵键盘连接如图2.3所示,16个独立按键仅占据了单片机8个I/O端
口,大大的节省了I/O端口资源。
通过考虑单片机I/O端口资源的利用和功能设计的需求,最终决定选用44矩阵键盘作为输入控制设备。
2.2系统总体结构设计
本系统方案总体结构设计如图2.4所示,控制流程为:通过密码输入、指纹识别和IC卡的读卡三种不同的方式进
行完成对应的验证进入门禁系统。成功进入门禁后辅以直流继电器驱动控制电磁锁作出开锁的动作,所有的控制命
令都是由主控芯片STC89C52单片机发出指令。整个系统由主控芯片、液晶显示模块、AT24C02存储芯片、数字按键矩
阵键盘、指纹采集识别模块、RF射频识别模块、报警提示电路和直流继电器控制驱动模块等电路模块组成。本次系
统设计主控芯片选型选用STC89C52单片机,利用直流继电器驱动控制实现智能门锁的开启和关闭。整体系统设计主
要实现功能为:
1)密钥解锁:通过矩阵键盘数字按键输入预先设置的数字密码进行解锁,若密钥对比一致,则辅以直流继电器驱动
控制电磁锁成功解锁门禁功能。
2)指纹采集识别解锁:AS608指纹模块通过SPI串行接口进行有效通信。指纹模块主要利用获取指纹图像信息和存储
指纹数据信息的功能,将数字化扫描过程图像与模块内存储结果数据量比较,若对比匹配为正确指纹信息,则反馈
信号通过直流继电器驱动电路辅助下控制电磁锁成功解锁门禁功能。
3)智能IC卡解锁:引进非接触式通信方式和协议,具有NFC功能,可进行双向通信。通过智能IC卡进入RFID-RC522
标准读卡范围后,使用读卡器读卡,经解读器读取并解密信息之后,并将其送至中央网络系统完成相应数据处理
后,,由单片机控制器将信号和系统内存中预先保存的信号加以校验,在校验合格后,则辅以直流继电器驱动控制
电磁锁成功解锁门禁功能。
4)采用了12864汉字图形点阵液晶显示电路模块显示实时操作内容与提示,通过模块元器件选型、规划设计电路和
通过软件整体流程、功能逻辑的搭建,在数字按键矩阵键盘模式下,可以选择进入管理门禁系统功能且兼容删除、
退出、确定、上翻、下翻等功能按键操作。管理员也可以使用管理密码进入管理界面设置,通过管理权限进行添加
指纹录入与删除、写入与删除智能IC卡以及修改密码。且数字密钥通过预先设定六位数密钥存放在置储存器AT24C02
芯片中,使门禁系统掉电密钥不会丢失,无须反复更改密钥。
图 2.4 系统总体结构流程图
3系统硬件设计
3.1 STC89C52最小系统
STC89C52单片机的最小控制系统,最基本单元包含供电、复位控制电路、振荡电路以及拓展外围电路构成。复
位集成电路是先通过电源和正负电解电容元器件串联,在上拉电阻连接,然后经由微动按键和电容器一并连接RST脚
输入,从而构成RC的充放电复位控制回路,以确保单片机或微型计算机在RST高电平时有充分时间实现芯片复位有
效,且恢复低电平并步入真正的状态。此系列内含有RCC的振荡时钟,不过由于精准度并非很高,所以通过单片机的
振荡引脚XTAL1和XTAL2均外接石英晶体和瓷片电容器上,以形成外部时钟电路。其他扩展外围电路模块部分:P2口接
4x4矩阵按键模块,P2.0口接继电器控制信号模块,P2.1~P2.2口接数据存储模块,P2.3口接蜂鸣器灯显报警模块,
P2.5P2.7口接LCD显示模块,P3.0P3.2口接指纹采集模块,以及P3.3~P3.7口接RFID-RC522智能IC卡识别显示模
块。单片机最小控制系统的基本电路构造如图3.1所示。
图 3.1 STC89C52单片机最小系统图
3.2 LCD显示控制
在本设计中,采用了LCD12864液晶显示屏,该LCD显示控制模块无论硬件电路结构还是显示内容程序都比其他显
示模块简洁和方便,兼容支持串联或者并联多种通信连接方式且自带中文字库,所以在显示模块的设计开发过程中
开发难道程度较为适中,而且无需设计模块以外驱动芯片。为了节约单片机IO口占用串口和避免显示内容ASCII二进
制编码字符过于繁琐,因此,本次电路设计通过串行通信方式工作,电路设计原理如图3.2所示。
PSB:并/串接口选择。(L-串联;H-并联)
RS(CS):12864LCD 串联片选信号。(L-锁存;H-接收数据)
R/W():LCD读闪频管脚(串联的数据口),主要通过控制管脚的时序高低电平来选择SID数据口指令或者数据的
读取与写入。
E(CLK):只有当时时钟CLK在低电平下,SID数据线上的数据才允许改变;当时钟CLK在高电平时,其对应连接的
SID数据线上的数据指令也就保持正常稳定(不能变化)。
3.3 AS608指纹采集模块
在本课题设计中,选用型号AS608光学指纹采集识别模块,模组内置芯片集成DSP算法芯片和指纹识别算法处理
单元,且包含内部芯片存储空间,从而达到实现快速地对指纹表皮进行采集并生成有效指纹特征图像、识别和存
储。主控单片机与外围识别模块之间主要采用通用的TX和RX串行协议进行通信,就可以实现控制指纹识别、删除和
添加的操作。
AS608指纹传感器采用Tx、Rx串口的方式与单片机进行数据传输实现串行数据传输通信,所以只需要将AS608 指
纹模块Tx、Rx串口通信引脚分别连接到单片机的P3.0(Rx)、P3.1(Tx)端口引脚上就可以正常通信控制指纹传感器,
3.4 RFID-RC522识别模块
本设计中采用的MF RC522射频模块便是依靠这一原理进行工作的。该模块是由NXP有限公司研制的,适用于“三
表”中的一种低电流,低功耗,小体量的非接触式读卡芯片,MF RC522 利用了先进的调制和解调概念,完全集成了
在13.56MHz 下所有类型的被动非接触式通信方式和协议。
RFID技术的基本工作原理并不复杂:RFID-RC522识别模块模块是非接触式RF射频识别的一系列,该模块主要由读
写器及RFID卡两部分组成。读取卡装置是由一个高频磁场通讯模块和一个频率发送主控单元组成;该系统仅包括微
集成电路芯片、数据存储媒质和天线,用于进行信号的收发。电子标签又称为射频标签、应答器、数据载体,是一
种无电池的可感测装置。该标签在进入该磁场感应区域后,金属线圈经过磁能生电获得感应电流后经过升压电路作
为芯片的电源,该解码器会发出的RF射频信号,并利用该信号(电磁场感应获得的能量)所产生的信息传送至该芯
片内储存。或者在特定的频率下标签可以主动向主机发送信息,通过对数据依序的读取和译码处理后,由接收解读
器向中心信息系统进行相关的数据的运算处理。[2]标准SPI是全双工接口通信模式,主机和从机可以分别通过MOSI
和MISO线路同时发送和接收数据。本设计中,采用已经设计好的RC522模块通过SPI接口通讯的方式与单片机连接。
这种连接方式最高传输速率可达3400Kbit/s。具体SPI通信模式引脚工作说明参见表3.3。通过根据串行时钟沿时序
图同步数据的移位和采样,从而控制数据的写入或读取的状态。
表3.3 RFID-RC522模块SPI通信模式引脚说明
VCC 要连接到2.5v到3.3v中,如果连接5v的接口可能会烧坏此RC522模块;
14
RST 位和断点输入引脚。低频时RC522关闭,包括振荡器,输入引脚,串口外围接口的关闭;
GND 接地
IRQ 中断警告引脚,当RFID标签靠近该设备时,通过此引脚进行触发。
MISO 此接口为当SPI(串口外围接口)开启时有效。
MOSI 该引脚为此模块的SPI(串口外围接口)
SCK 接收SPI提供的脉冲信号。
SDA 当SPI启动时,该引脚为输入信号,
由于RFID-RC522识别模块的工作电压为2.5v到3.3v,而单片机系统电源电压为5V,如果直接连接5v的接口,
RC522该模块很可能被击穿损坏,所以采用HT7133稳压三极管设计5V转3.3V低功耗稳压电路,
3.5 44矩阵式键盘模块设计
键盘的连接方法有两种选择:独立键盘和矩阵键盘。独立式按键各个键都是彼此独立的,而且每个按键都需要接
入单片机单独的IO端口。当检查到按键输入线的电平状态,就可以识别对应按键状态信息。该方案虽然电路设计简
单,软件程序逻辑简便,但每个按键都必须占用单片机的I/O口,令I/O口资源遭到了很大地浪费。所以,这个方式只适
合于按键少或其他简单操作功能的应用场景。因为在本设计中的按键需求较多,倘若使用独立键盘,会导致大量的I
/O口被占用,不能满足后续其他功能的需要。所以本设计采用的是扫描式矩阵按键。44矩阵键盘原理图如图3.6所
示。
因此,本课题设计中所使用的键盘是44矩阵键盘模块,通常分为数字区0123456789#和英文字母功能区ABCD#,
智能门禁系统的正常解锁和进入管理页面,均需要通过矩阵键盘的数字区输入对应的开锁密码或者管理员密
码。在管理页面中,可以通过功能按键编辑指纹信息、设置修改开锁密码;亦可以对IC卡进行管理。英文字母对应
的是系统的功能操作,参照表3.4所示。倘若用户多次输入错误密码,系统会进入锁定状态,此时只能通过复位按
键,将MCU复位;方可再次输入密码解锁。4*4矩阵键盘的对应16个按键功能表如表3.4所示。
3.6 数据存储电路设计
本设计采用了AT24C02时钟芯片,这款芯片提供了2024位的连续的可擦除的可编程的只读的存储器,有256字节
的内部储存空间,可以计算出其地址长度是8位。
AT24C02型芯片作为单片机的被总线寻址外部存储芯片,A0、A1、A2三个引脚均接到GND上,而WP的写入保护引
脚则通常接到GND,以便于读/写操作功能。[3]芯片SDA和SCL两个引脚则依次接到单片机的P2.1、P2.2引脚上。双向
串行数据/地址在SDA引脚上传输,用途于发送或接收的所有数据信息;而SCL引脚则作为串行时钟输入管脚,用来控
制所有数据发送或接收的时序和传输方向。
3.7继电器驱动电路设计
继电器开关是由电流控制磁线圈的元器件。通常应用于控制电流导通和截止的电路中。在本次电路设计中继电
器直接接入单片机I/O端口控制时,由于单片机I/O端口直接输出的电流过小无法满足继电器工作吸合电流,导致不
足以驱动控制电子门锁的开关闭合。针对此问题点,在电路设计中增加S8550-PNP三极管开关电路,通过单片机I/O
端口输出高低电平与三极管基极状态控制开与关。当单片机I/O端口输出高电平三极管截止有效时,继电器电磁圈的
磁场消失,门锁打开;当单片机I/O口提供的低电平三极管导通有效时,输入电流放大,电磁线圈内形成了巨大的磁
性区,使得继电器吸合,门锁关闭。
3.8报警电路设计
有源蜂鸣器额定电流通常比较大,倘若欲想串联到单片机的I/O端口通过高低电平直接控制,但是I/O端口输出
的电路远低于5V有源蜂鸣器额定电流,从而无法驱动蜂鸣器工作。因此本设计选用的是8550三极管,也即PNP型的三
极管。通过三极管基极与1K电阻串联到单片机的I/O输出端口控制三极管特性导通和截止。当I/O端口输出低电平,
三极管导通有效时,导通输出大电压电流,因而蜂鸣器鸣响,LED指示灯亮起;当I/O端口提供高电平,三极管截
止,蜂鸣器工作电流趋近于零,从而蜂鸣器终止鸣响[1]。报警电路如下3.10所示。
图 3.10 报警电路图
4系统软件设计
在系统的软件设计过程中,主要分成三步走,第一步先对LCD12864显示屏的程序进行设计编译,确保文字和字
符可以正常显示。在设计编译矩阵键盘的按键矩阵扫描程序与LCD屏联调输出结果,确定按键正常触发且输出的返回
键值正确,然后在将界面显示与按键所触发的功能关联起来,最后将所有界面关联起来。第二步在按三大模块化程序编译,第一,数字密钥输入模块自动解锁;第二,指纹采集与识别模块自动解锁;和第三,智能IC卡识别模块自
动解锁。达成多种技术并行能能正常门禁解锁方式。第三步将三大模块化延伸,可达到修改密码、录入和删除指
纹、注册和删除IC卡的管理门禁信息系统。
4.1系统主程序设计
作为一个多功能门禁管理系统,该设计应该具有界面显示,管理系统逻辑切换,数字密码解锁,指纹识别解
锁,智能IC卡识别解锁。当门禁系统上电后会先对各个外设IO口进行初始化配置,默认显示首页界面,然后可以以
三种解锁方式任何一种解锁。主程序流程图如下4.1所示。功能选择操作流程详见附录A,系统管理操作流程详见附
图 4.1 主程序流程图
4.2界面功能设计
本课题设计中,由于各个功能逻辑的执行与显示内容形成操作的交互和可视化同步,因此将各个显示界面数组
都赋予相对应的内容和功能逻辑。矩阵键盘的按键操作的触发可以控制主控芯片单片机下发界面数组与功能逻辑的
地址或者指令执行内容和功能的切换,界面功能设计分别具有首页界面,数字密码输入显示界面,系统管理与操作
界面,提示界面,界面子函数是通过界面数组switch会随着矩阵按键switch数组变化来判断计入,每次触发矩阵按
键switch数组和其他功能进行时都会判断事件改变界面数组switch的值,从而调取不同界面的显示内容和功能逻
辑,如果界面数组没有发生改变返回值,那么主函数的循环将停留在单个界面这一步,不会继续执行下一个动作指
令,但是一旦执行进入死循环函数,对操作按键和界面的switch数组不断调用会对界面数组发生变化加以判断。对
应的操作会在界面内有着对应的显示,功能逻辑的基本操作与切换显示内容的关联性使得门禁系统有用户交互感和
实时可视化。界面流程如图4.2所示。系统管理界面操作流程详见附录B。
图 4.2 界面流程图
4.3LCD显示程序设计
由于LCD12864本身自带汉字字库字模,所以我们只需要对12864控制I/O口定义,根据LCD12864工作时序进行发
送与接收字节。液晶显示LCD12864在显示字符图形时,首先在LCD12864工作之前将程序数据初始化,重新赋值一些
变量,在通过特殊定义的命令将第一位字节要求显示的具体位置地址写入,设置标定的起始光标,之后在借助串行
同步时序高低电平控制数据通过SID串行数据口依次写入指令数据到LCD12864的液晶显示即可。当写入显示第一个内
容地址后,程序可以根据输入需要显示的位置坐标计算出相应的地址,随后显示内容地址将自动递加一。在数据地
址或指令的传输前提条件下,得先检查写入指令是否忙状态;在进入下一个功能的程序之前要清除文本内容。
4.4AS608指纹识别模块功能程序设计
AS608模块与单片机通讯模式是采用常用的Tx、Rx串口通讯协议,主控芯片程序通过调用对应的数据包来发送指
令,从而实现指纹功能信息的录入或删除。[1]例如当门禁管理系统获取到矩阵按键值为录入或删除指纹时,则进入
指纹数据库的管理执行过程中,实现指纹的登记、删除和清空任务。当门禁系统通过指纹采集模块感应扫描到的指
纹特征信息,AS608指纹模块首先发送采集的指纹信息记录图像+生成的特征,然后在将采集到的图像信息加以高速
DSP算法芯片处理,发送指纹匹配指令,搜索内存芯片指纹信息,自动验证指纹。如果指纹图像匹配成功,则返回成
功解锁,否则返回失败。[1]搜索指纹功能流程如图4.4所示。
4.544矩阵键盘及按键功能程序设计
本次设计为了节省主控芯片STC89C52资源,采用逐行列扫描式进行矩阵键盘的扫描转换的二进制数值调用
switch数组返回按键值,按键呈低电平有效。按键消抖通常采用软件加以延迟来处理,提高按键触发返回值的有效
性。根据矩阵键盘扫描原理,单片机IO端口置空时,引脚默认高电平,因此在将按键按下时,首先向列线输入低电
平,通过检查行线得到的高低电平状态来判断按键的位置在哪一行,反之给行相应位置输入口输入低电平,44矩阵
键盘工作原理是通过检查相应行线或列线上的电平变化来判断键的位置。按键计算编码电平变化反馈至单片机IO口
信号转换为二进制编码有效执行。具体的矩阵键盘扫描函数流程图如4.5所示。
通过逐行列扫描式进行矩阵键盘的扫描调用switch数组返回按码实现获取数字按键数值和功能按键的矩阵按键
信息并按键处理。按下键盘任何一键都可以默认进入密钥输入模式,然后在键盘数字区输入预先设置的数字密码,
数字密码输入所对应的键盘数字字符时将变量赋予ASCII字符“*”号显示。
英文字母区主要通过界面ShowMode显示模式switch数组和功能按键返回值的联调处理条件下实现以下功能,A按
键实现向上翻,B按键实现向下翻,C按键是用来返回上个界面,D按键是进入管理系统界面,*按键是删除按键,#按
键是确认按键。当D按键按下切入管理系统设置密码输入界面,通过输入管理员密码进入管理操作模式下,可以通过
功能按键编辑指纹信息、设置修改开锁密码;亦可以对IC卡进行管理。
4.6RFID-RC522识别模块功能程序设计
RFID-RC522在启动识别工作之前,首先初始化微处理器MF RC522芯片和存储寄存器配置相关变量参数,然后在
晶振电路起振保持时序和数据传输引脚稳定情况下,MF RC522芯片就可以正常接收STC89C52主控芯片的命令执行操
作。一旦有IC卡进入感应区有效范围内,芯片需要请求唤醒开始寻卡,如果寻卡失败会再次寻卡,直到寻卡成功后
才会执行 if( ucStatusReturn == MI_OK )里面的代码。寻到卡后通过防冲撞算法选择要操作的IC卡片,防止多张
卡片重叠造成的数据错 误,密码校验成功后进行读写操作输出相应的ID序列号,从而实现与IC卡片和NFC设备双向
通信。然后通过LCD12864串口读与写程序显示在液晶LCD上。读卡程序执行一系列的操作流程如图4.7所示。
4.7AT24C02存储程序设计
AT24C02在存储程序设计中,主要通过应用延时、起始信号、中断信号、发送字节、接收字节和读写数据以上几
类功能函数来实现数据的写入、读取、存储、增减和显示。根据参考芯片每一步的工作时序图,模拟I2C总线上两条
双向通信信号线(数据线SDA和时钟线SCL)的信号,从而实现数据正常传输。而实现数字密码的存储和修改删除。
在数字密码模式下,输入的6位相应数字密码需要跟存储芯片数组信息进行对比,倘若密钥输入正确,则智能门锁成
功打开;否则提示密钥错误,重新再次输入正确密钥。当用户连续三次输入错误信息,系统会进入锁定状态,此时只能通过复位按键,将MCU复位;方可再次输入密码解锁。
工作时序基本操作:数据传输时序和总线的方向需要通过串行SCL时钟线来控制,保障数据传输工作有序正常,
从而达到产生起止两大条件。SDA线上的数据状态跟随时钟SCL线时序的变化而改变写入或者读取数据状态。因此
AT24C02的起始和停止条件通过SDA状态的改变来判断。[4]AT24C02读/写操作时序图参见图4.8所示。
图 4.8 AT24C02读/写时序图
5系统调试与分析
5.1硬件介绍
在电子电路规划设计工作完成后,在keil的软件程序设计编译并生成hex文件代码后,PC端安装串口端口下载程
序软件STC后,通过通信串口和主控芯片TX、RX通信引脚连接后,把“基于单片机得多功能门禁系统设计”的整体系
统程序一并烧录入STC89C52单片机核心芯片中。产品设计硬件模块组成部分如图5.1所示。
图 5.1 “基于单片机得多功能门禁系统设计”硬件部分图
系统上电,程序初始化后会自动进入首页界面,
5.2功能演示
5.2.1数字密码解锁功能
按下键盘任意一键进入数字密码输入界面,然后输入6位预先设置数字密钥,按‘#’键确定,若密钥输入正
确,提示“门打开”界面;否则提示“密码错误,请再次输入”界面。
5.2.2指纹识别解锁界面
在系统首页界面,可以直接使用指纹识别解锁,若识别当前指纹与录入指纹信息结果图像对比一致,则提示门
锁状态和指纹信息对应编号——“门已打开+编号:XXX”界面;否则提示“指纹错误”界面。
5.2.3智能IC卡识别界面
在系统首页界面,可以直接使用智能IC卡识别锁,当卡片或者具有NFC智能设备靠近RFID-RC522射频自动感应区
内,就可以对其进行解码识别卡号信息,若识别卡片信息与预先注册卡片ID信息一致,则提示门锁状态和卡片信息
5.2.4系统管理功能界面
首先按下“D”进入管理按键,输入6位正确管理密码,若输入密码正确,进入系统管理功能界面;否则提示
在系统管理功能界面可以通过“A”按键上翻、“B”按键下翻、“C”按键退出、“*”按键删除和“#”按键确
定等功能按键和数字键盘实现密码设置、IC卡登记和指纹录入等门禁系统管理功能。密码设置中要求新密码输入不
一致才能正确修改完成;IC卡登记功能可以注册和注销IC卡片信息;指纹录入管理可以录入指纹、删除指纹和清空
指纹信息处理。
图 5.7 系统管理功能界面图
5.3软硬调试过程中遇到的问题
5.3.1LCD12864显示过程中的问题
解决方法:在本设计中使用到的LCD12864显示屏,具备汉字字库显示和绘图显示,但是在将每一行的数据进行
读取和显示时,出现每一行内容显示不下或者不会自动换行,通过查液晶手册发现,字库显示和绘图显示的方式不
一样,发现原因是需要标定起始地址位置。
另一个问题则是显示出现了花屏的现象,一开始自以为汉字字库和图形的显示内容只需要显示其部分内容另一
部分内容就会被自动擦除数据,但是实际显示结果却不是如意的。当显示字库内容后,如果没有对显示内容界面写
入清除显示程序指令,显示结果就可能会产生重叠而造成花屏的现象或者保留上一组内容数据。在经过查找相关LCD
资料了解原理之后,发现在程序设计上若要改变当前所使用的字库和图形显示时,就得在此之前执行擦除显示数据
程序,而重新下载程序烧录后就解决了显示屏花屏的现象。
5.3.2矩阵键盘的按键读取
在矩阵键盘扫描程序中,需要将按键返回键值对应到具体的每一个按键并赋予特定的功能,在硬件搭建设计完
成后,软硬件联调过程中发现按键返回值不正确,导致数字键盘和功能按键混乱。
解决方法:通过单片机P1.0~P1.7引脚按照顺序连接好后,以二进制转为Ascll码通过人工计算返回键值,从而
得到每一个按键对应键值码。虽然推算工作量庞大,但可以确保返回键值正确性。
6总结
本次课题设计,通过理论知识学习研究和借鉴以往电子设计制作的经验,以及通过网页(知网)、图书馆等途
径进行查阅相关资料做好分析和跟老师同学互相交流。确定了设计的整体架构方案。在设计制造过程中,通过元器
件模块选择、软硬件设计以及调试,基于单片机的多功能门禁系统设计已经基本实现完成。
主要完成了如下几项基础功能。
(1)各个功能内容LCD显示
(2)矩阵按键扫描的实现
(3)数字密码解锁和密码的存储
(4)指纹采集识别解锁
(5)智能IC卡识别解锁
但是在本课题设计中仍然存在很多不足之处,比如1、指纹采集识别精度不高,导致经常会出现指纹识别失败。
2、RFID-RC522射频识别会出现自动感应不到或者有延迟的情况,可能与晶振起振有关。3、LCD12864出现了负压现
象,使得显示字体对比度相对不明显。
附录
附录A 功能选择操作流程
附录B 系统管理操作流程
附录C 实物图
附录D 原理图
附录E 核心程序
(1)
主函数main.c
(2)指纹识别工作原理程序设计AS608.c
(3)LCD12864读写字节指令程序设计
(4)rc522读写SPI数据程序设计
(5)矩阵键盘扫描返回值
(6)矩阵键盘控制操作