基于AT89S51的多功能电子密码锁设计
2010-08-18周明辉周海林李爱华
张 云,周明辉, 周海林,李爱华, 孟 玮
(1.军械工程学院 河北 石家庄 050003;2.河北省石油化工建设工程质量监督站 河北 石家庄 050003)
当前虽然许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失和损坏,加上其成本较高,在一定程度上限制了这类产品的普及和推广。
电子密码锁具有安全性能高、成本低、功耗低、操作简单等优点使其作为防盗卫士的角色越来越重要。现有国内市场上的电子密码锁有的是通过购买一些产品模块再开发,不具备自主知识产权;有的是自主研发的,但其功耗与成本都比较高,不具备广泛的应用价值[1-3]。为了克服这些缺点,从经济实用角度出发,采用单片机AT89S51与低功耗CMOS型E2PROM AT24C02作为主控器件与数据存储器单元,设计一款可更改密码,具有报警、实时监控和远程管理功能的电子密码锁。该电子密码锁体积小,易于开发、成本较低,安全性高,能将其存储的现场历史数据及时上报给上位机系统,实现网络实时监控,方便管理人员及时分析和处理数据。
1 电子密码锁的硬件设计
电子密码锁的硬件由核心处理模块、电源管理模块,执行模块和通信模块组成,其电路结构如图1所示。
图1 电子密码锁结构图
1.1 核心处理模块
核心处理模块是电子密码锁工作的核心,它不仅要对密码锁的信息进行处理,还要负责调度各种程序稳定的运行并控制其他模块,其模块主要由单片机,键盘,存储器,显示电路组成。其中,单片机是核心处理模块的核心部分,其主要任务是配合软件来完成信息处理和记录、控制调度其他部分正常工作、电器的控制、密码校对和修改等工作。从电子密码锁功能的需要、性价比、程序的数据量和接口电路等多方面综合考虑,本文选用ATMEL公司的AT89S51单片机作为控制器的核心。键盘电路的设计采用4×4行列键盘的形式,直接由AT89S51的P1口的高、低字节构成。
电路中选用AT24C02作为密码和开锁信息的存储器,该存储器是一款具有I2C总线接口的串行EEPROM,由于AT89S51单片机没有I2C总线接口,在电路上选用单片机的P2.2、P2.3分别与AT24C02的SCL和SDA线相连,软件上实现模拟I2C总线接口。在该存储器中还保存着用户修改后的一级、二级权限密码和最近20次开锁的具体时间,以及非法偷、套密码的提示信息,用户通过按键可方便的实现查阅。存储器与单片机的连接如图2所示。鉴于该系统在功能上要求实现密码输入提示、开锁信息的查阅、时间显示等信息,并从低成本出发,故选用SMC1602A液晶显示模块作为显示电路,其电路结构如图3所示。
图2 密码存储器电路
图3 SMC1602与单片机连接
1.2 电源管理模块
该设计需要使用+5 V直流电源为整个电路供电。电路中采用一个稳压器将输入的直流电源电压转换成+5 V的电压。另外,如果仅仅依靠外接直流电源供电会出现因停电而无法开锁的问题,为了解决这个问题,在设计电源管理模块时加入了自动切换电路的方案,使电池组供电和外接直流电源供电这两种方式能够根据实际需要迅速自动切换,从而保证电子密码锁可以长时间不间断工作。电源自动切换电路选用LTC4414器件。通过LTC4414对2个P沟道绝缘栅场效应管控制,实现2个电源高效“或”操作的自动切换电路。
1.3 执行模块
执行电路通过单片机其中1个引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开的方案,电路结构如图4所示。另外,报警电路采用时基集成电路555及其辅助元件构成,在联网的情况下,报警信号可通过串口扩展网络发给主控制器,提醒管理人员注意。
图4 密码锁执行电路
1.4 通信模块
在通信电路设计中,采用MAX489进行全双工通信,MAX489的引脚R0为接收器输出,接TTL电平RXD信号;引脚DI为发送器输入,接TTL电平TXD信号;引脚-VT、引脚+VT为发送器输出,接发送传输线;引脚-VT,引脚+VT为接收器输入,接收传输线;引脚DE为发送使能端,接+5 V;引脚RE是接收使能端,接地,通信电路如图5所示。
图5 通信电路
2 电子密码锁的软件设计
电子密码锁的软件设计是整个电子密码锁可靠安全运行的关键,为了提高电子密码锁的安全性能,该设计引入安全体系概念,即在设计时建立一般的指导原则和约束条件,为电子密码锁提供了安全服务和安全机制,使其软件程序构成一个完整的安全体系结构[4-6]。安全体系主要是由4种安全服务和4种安全机制构成,其中安全服务包括:鉴别、访问控制、信息机密性、信息完整性;安全机制包括:鉴别交互机制、访问控制机制、加密、信息完整性。安全体系主要是通过软件设计来实现的。密码锁软件总体分为两部分:1)控制程序,其中包括主程序、延时子程序、时间设置子程序、修改密码子程序、扫描键盘输入子程序、报警子程序;2)网络管理程序,其中包括开锁信息查询子程序、串行通信程序。软件设计中,引入了二层权限加密的技术,对输入的8位十进制基础密码进行判别,如果输入密码正确,则可以直接开锁。如果不正确,并且3次以上输入不正确,则封锁输入口并报警利用互联网通知管理人员,存储报警信息。如果要修改密码,则需要在输入基础密码判别正确后,输入高级权限密码,通过系统确认后方可修改密码。电子密码锁利用AT89S51单片机软、硬件资源,从而使系统具有很高的可靠性和安全性。
该系统设计程序流程如图6所示,图7和图8给出人机交互界面和电子密码锁实物。
图6 系统设计程序流程
图7 人机交互界面
图8 电子密码锁实物
3 结束语
该电子密码锁设计实现远程监控、自动报警和开关锁等功能,并具有结构简单、功耗低、成本低等优点,但是设计电子密码锁需要结合实际综合考虑很多因素,因此该电子密码锁设计需要在实际中进一步完善和改进。另外,在系统应用程序方面,该设计只实现了修改密码、开关锁、自动报警和远程监控等功能,要想在现实生活中推广,还必须针对实际应用场合的需要,进一步完善系统功能的程序。
[1]石文轩,宋薇.基于单片机MCS-51的智能密码锁设计[J].武汉工程职业技术学院学报,2004,10(2):26-28.
[2]李建波.基于STC89C52单片机的电子密码锁[J].电子技术,2008,(23):154-156.
[3]顾光旭.智能电子锁设计[J].盐城工学院学报:自然科学版,2009,22(1):49-52.
[4]孟菊,王金海,赵雷新,等.基于ARM和DSP的嵌入式智能仪器系统设计[J].微计算机信息,2006,22(6-2):198-200.
[5]Harn L.New digital signature scheme based on discrete logarithm[J].Electronic Letters,1994,30(5):396-398.
[6]WU Li-zhen,HAO Xiao-hong.Design of optimal controller for networked control system based on Ethernet[J].Control Engineering China,2004,11(5):428-431.