文献标识码: A
文章编号: 0258-7998(2011)09-0064-03
电子密码锁种类繁多,如指纹型[1]、红外遥控[2]、无线射频RFID[3]和GPS等。指纹密码锁是以人体指纹为识别载体和手段的智能锁具,其唯一性和不可复制性决定了其为最安全的锁种,但其价格昂贵、难以普及。红外遥控采用红外传输技术,只需在不远处手执遥控器,输入正确密码即可自动开锁,不易被人偷窥,使用方便、安全。但锁若被撬开时难以有效通知用户,缺乏远程报警功能。
为提高密码锁的防盗功能,本文设计了一种基于AVR32单片机的防盗报警密码锁,除具有设置密码、修改密码、设置键盘锁定时间、管理员权限设置等功能外,还具有红外监测是否正常开门的功能。当非法开门和输入密码错误超过3次时,蜂蜜器报警并通过短信的形式发送给指定的用户进行报警,从而达到了远程监控的目的。
1 系统功能及架构
系统功能:当锁关闭时,启动红外监视模块以监测是否出现非正常开门的情况。用户输入密码,按下“确认”键后,将其与设定密码进行比较,若一致则开锁,同时关闭红外监视装置;若不一致,则提示重新输入密码,重新输入的次数不能超过3次,若3次输入的密码均不正确则锁定键盘,发出声光报警,并通过GSM模块发送短信给指定的用户进行报警。在开锁状态下,用户可修改密码和设置键盘锁定时间。另外,当发生破门而入等非正常开锁的情况时,门被打开挡住了信号、红外接收器接收不到信号时,同样会发出报警信息。
系统由AVR32单片机、键盘电路、红外发射和接收电路、液晶显示、声光报警和GSM电路组成。其中键盘作为输入设备,用于用户输入和修改密码;液晶显示器LCD给出相应的提示信息;红外发射和接收电路分别放置在门两侧,由单片机发射38 kHz的方波信号,输送给红外发射电路。若接收器接收到该信号,则表明门处于关闭状态;若接收不到,则表明门已被打开。报警模块包括蜂鸣器报警和远程报警,远程报警采用GSM模块以短消息的方式向用户发送报警信息。系统框图如图1所示。
2 硬件设计
2.1 键盘电路
系统以AVR32单片机作为主控器,用于对按键等进行信号处理。选择AVR32单片机的原因主要是:(1)低功耗,ATMEG-A32运行电压范围在2.7 V~5.5 V之间,功耗在正常模式下为1.1 mA,空闲模式下为0.35 mA,掉电模式下<1 μA;(2)高速度,采用先进的哈佛结构,具有预取指令功能,数据处理速度快,可达到1 MIPS/MHz的高速运行处理能力;(3)片内Flash存储器有32 KB、2 KB的SRAM,1 024 B的EEPROM;(4)保密性好,具有不可破解的位加密锁Lock bit技术,可以对锁定位进行编程以实现用户程序的加密;(5)带有3个外部中断,32个可编程I/O接口,方便外接外围设备以及软件实现[4]。
选用AVR32单片机4条I/O线作为行线,4条I/O口作为列线设计为矩阵键盘形式,分别连接在PC口。连接在单片机外部中断PD3端口的控制键,通过5.1 k?赘的限流电阻连接在VCC上。当按下该键时,键盘开启,否则处于关闭状态,按键无效,以防止密码锁无人使用时单片机一直对键盘扫描,从而降低能耗。
16个按键分为功能键和数字健,分别是数字键0~9,确认键E,修改密码键C,重新输入键A,设置键盘锁定时间L,管理员权限G,开启键盘键O。
2.2 无线通信电路
采用西门子公司生产的TC35i模块,其功能是通过全球移动通信系统GSM网络向手机发送短信[5]。该模块支持Text和PDU格式的短消息SMS,用户可通过AT命令进行呼叫、短信、电话本等方面的控制,具有价格便宜、无需拨号连接和信号覆盖范围广等优点。
TC35i模块有40个引脚,通过一个连接器ZIF引出。单片机、TC35i模块与SIM卡之间的连接如图2所示。其中TC35I的1~5引脚连接正电压Vcc(推荐值4.2 V),6~10引脚接地,11和12脚为充电引脚,可以外接锂电池。15脚是启动脚IGT,系统上电后为使TC35i进入工作状态,必须给IGT加一个大于100 ms的低脉冲,电平下降持续时间不可超过1 ms。
TC35I采用外接SIM卡模式,其中ZIF连接座上的CCIN(24引脚)用于检测SIM卡是否插好,若连接正确,则CCIN引脚输出高电平,否则为低电平。SIM卡上的CCRST、CCIO、CCCL、CCVCC和CCGND通过SIM卡阅读器分别与TC35I的25~29引脚直接相连。
TC35i模块的数据输入/输出接口是串行异步收发器,符合ITU-RS232接口标准,硬件握手信号用RTS0/CTS0,软件流量控制用XON/XOFF、CMOS电平,支持标准的AT命令集。其中18脚RxD0、19脚TxD0为TTL的串口通信脚,需要与单片机或者PC通信,与单片机通信连接时,TxD0接TxD,RxD0接RxD。
TC35i的SYNC(32引脚)有两种工作模式,一种是指示发射状态时的功率增长情况,另一种是指示TC35i的工作状态,可用AT命令AT+SYNC进行切换,本系统采用指示TC35i的工作状态。当LED熄灭时,表明TC35i处于关闭或睡眠状态;当LED为600 ms亮/600 ms熄时,表明SIM卡没有插入或TC35i正在进行网络登录;当LED为75 ms亮、3 s熄时,表明TC35i已登录进网络,处于待机状态。
2.3 红外监测电路
为增强防盗功能,系统在门后的两侧安装了红外监测装置[6]。其中红外发射采用HS5100,通过单片机的PB4口控制三极管开或关,从而产生38 kHz频率的发射信号。红外接收选用HS0038,其只有3个引脚(1Out、2GND、3Vcc),脉冲信号输出Out脚可直接与单片机I/O相连。接收不到红外信号时输出为高电平,反之为低电平。系统采用外部中断接口PB2连接Out输出端。如图3所示。
3 软件设计
3.1 系统设计总流程
系统上电后,单片机I/O口、LCD、内存缓冲器初始化,同时打开定时器和外部中断。当O键被按下时,开始扫描键盘,输入密码,期间可进行重新输入操作,直至按下确认键E后,将其与EPROM内保存的密码比较,若一致则开门,而后可修改密码、设置允许输错次数和设置键盘锁定时间等操作;否则蜂鸣器响并在LCD上显示提示信息“密码错误,请重新输入”。当输错密码的次数超过3次时,蜂蜜器报警并发送手机短消息给指定用户报警,并锁定键盘。为提高安全性,锁定键盘后,必须启用管理员权限才可以开锁。此外,若在5 s内没有按键操作时就自动关闭键盘。
系统软件运行在AVR单片机上,包括主控制模块、键盘扫描模块、密码比较判断、修改密码、报警模块等。采用C语言作为编程语言,总流程框图如图4所示。
3.2 键盘处理设计
键盘处理模块包括密码输入、修改密码、重新输入和管理员权限。输入密码采用循环扫描的方式确定按键值,将值存储起来,输入完毕按下确认键E后,将其与原来保存的密码进行比较,相等则开锁;否则报警。密码输入子流程如图5所示,期间可重新输入操作。
在开锁状态下,按下修改密码键C,输入密码,按下确认键E后,提示“请再次输入”,当两次输入的密码一样时,该密码替换原来储存的密码值,并提示“密码修改成功”。
为增加系统的安全性和人性化,设置了管理员权限。当因密码输入错误而致使键盘被锁时,在一定的时间内不允许再输入密码,避免非法侵入,之后只有使用管理员密码才能开锁。
3.3 GSM软件设计
首先将单片机的串口接收端设置成输入,发送端设置成输出。GSM模块使用前需先激活,首先置PD2端口为高电平(约10 ms),再置其为低电平(约100 ms),后再置其为高电平(约10 ms)。延时约10 s等待GSM网络登录,之后发送连机命令,当网络登录成功后设置ATE0(不回显)、波特率、信息中心号码、短信收发模式(此处选用txt文本模式)等,然后发送消息。
单片机和GSM模块之间用AT[7]指令实现相互之间的通信,通信数据是ASCII码。AT指令集几乎所有的指令都以AT(Attention)开始,如下是主要AT指令的设置程序。
char TC35_AWAKE[]="AT+SYNC";
char TC35_AT[]="AT";//{0x41,0x54,0x0D};
char TC35_ATE0[]="ATE0";//关闭字符回显
char TC35_IPR[]="AT+IPR=9600";//设置波特率为9 600
char TC35_CSCA[]="AT+CSCA=";//短信服务中心地址
char TC35_CMGF[]="AT+CMGF=1";//短信格式,1为文本,
//0为PDU
char TC35_CMGS[]="AT+CMGS=";//发送短消息
char TC35_CMGR[]="AT+CMGR=";//读短信
char TC35_CMGD[]="AT+CMGD=";//删除短信息
char TC35_ATOK[]="OK";
char TC35_MSGASK[]=">";
char TC35_NOMSG[]="+CMGR:0,,0";
char TC35_MSGOK[]="+CMGR:";
char TC35_SENDOK[]="+CMGS:";
char TC35_CSCAnumber[]="+8613800773500";
char TC35_ERROR[]="ERROR";
char TC35_READ[]="REC READ";
char TC35_UNREAD[]="REC UNREAD";
char TC35_SMSO[]="AT^SMSO";//正常退出网络并关机
发送实例:某短消息服务中心向号码为“13737743139”的手机发送一条报警信息,内容为“Password lock alarm”。
首先TC35i初始化和串口缓冲区清零,而后发送短信服务中心地址AT+CSCA=''+8613800138500'',以回车\r(0x0d)结束。等待回应,若设置成功则返回“OK”,否则为“ERROR”。之后发送信息,格式为:AT+CMGS=<手机号码><CR><短信内容><0x0d><0x1A>。即AT+CMGS=''13737743139'',回车结束,等待回应。若设置成功则发送“Password lock alarm”信息,并以0x0d和0x1A结束。若发送成功则返回“OK”,否则为“ERROR”。这样该短消息便成功发送。
经实验测试,系统除具有普通密码锁的功能外,还增添了管理员权限和红外检测是否非正常开门的功能,并能及时通过手机短信发送报警信息,方便快捷,且不需要支付其他费用,提高了系统的安全性和远程监控能力。
参考文献
[1] 何军.指纹识别技术的研究与应用[D].北京:首都经济贸易大学,2004.
[2] 李芳,高焕芝.红外遥控密码锁的设计与实现[J].微计算机信息,2008,24(2):253-254.
[3] 李勇.基于RFID与人脸识别技术的智能门禁系统研究与设计[D].重庆:重庆大学,2009.
[4] 丁华成,耿德根.AVR单片机应用设计[M].北京:北京航空航天大学出版社,2002.
[5] 孙儒石.GSM数字移动通信工程[M].北京:人民邮电出版社,1998.
[6] 周功明.基于AT89C2051单片机的防盗自动报警电子密码锁系统的设计[J].锦阳师范学院学报,2007,5(26):112-115.
[7] 赵春云,陈敏.基于GSM短消息的水情遥测终端通信系统设计[J].中国测试技术,2005,31(1):66-68.