摘 要:本文介绍了基于GSM 的单片机遥控密码锁的硬件及程序实现流程的具体设计,采用AVR 单片机ATMEGA16 作为控制器,在实现了电子锁的密码键盘输入开启控制,液晶串行显示,出错声光报警基础上,设计了通过串口控制GSM 模块GTM900B 进行短信收发和拨号,实现了远程开启控制,同时满足了多方式,高可靠性,高时效等要求,为智能家居提供了可靠的方案。
1.引言
在日常生活和现代办公中,住宅与办公室的安全防范多以加锁的办法来解决。为满足人们对锁的使用要求,增加其安全性,避免不必要时的钥匙外泄。本文从高效以及高实时性的角度出发,出于安全、方便等方面的需要,尤其为实现远程控制,介绍一种由ATMEGA16编程实现的控制电路,采用GSM 网络接收和发送命令,具有按键开锁,拨号开锁,短信开锁,三种开锁方式;同时具有声光报警等功能,可以在外泄密码的情况下及时修改密码,具有保密性,灵活度高,尤其避免了家庭以及私家车库定期清洁时钥匙外泄的情况。而短消息SMS[2]作为GSM 网络的一种基本业务,具有:永远在线;不需拨号;价格较便宜;覆盖范围广等特点,特别适用于小流量的数据传输的应用。
2.系统硬件结构
硬件设计时采用了模块化思想,将电子锁终端分成四部分:电源、GSM 短信模块、人机界面(包括键盘和液晶显示)和控制模块。
控制模块使用的单片机是AVR出产的具有RISC 内核的8位低功耗CMOS微处理器
ATMEGA16,它具有如下特点[1]:16KB的系统内可编程Flash(具有同时读写的能力,即
RWW);512B EEPROM;1KB SRAM;32个通用I/O口线;32个通用工作寄存器;3个具有比较模式的灵活的定时器/计数器(T/C);可编程串行接口;低功耗空闲和掉电方式等。节省了硬件资源,简化了程序代码。而短信模块选择的是华为公司的GSM/GPRS模块GTM900B;液晶显示模块则是选用了JHD162A,可显示两行,每行8个字母。
图 1 终端硬件结构图
Figure1 Terminal structure of the system hardware
2.1 供电部分硬件设计
由于 GTM900B[2]的工作电压范围是3.3-4.8V,当GTM900B 模块启动后,经过几秒的延时,模块开始搜索网络,这时需要超过2A 的驱动电流(时间很短微秒级),如果驱动不足,会引起模块的突然掉电;为了更好的给单片机和通信模块供电,选择宽输入DC-DC 模块PS12W24DC5D,输出电压稳定在5V 左右,最大提供电流为2.4A,只要加一个二极管降压就可以得到满足通讯模块要求的电压输出,可以避免当模块搜索网络时驱动电流不足的问题。并且在电压输出端并联一个大电容1000uF,起蓄流的作用,也能起到提高驱动电流的作用,解决了驱动不足时掉电的问题。
图 2 单片机与通讯模块的供电部分设计
Figure2 External power design of ATMEGA16 and communications module
2.2 通信模块的外围设计
[page]
通信模块 GTM900B 模块有40 个引脚,通过一个ZIF(零阻力插座)连接器引出。这40 个引脚可以划分为5 类,即电源、数据输入/输出、SIM 卡、音频接口和控制。如图3 所示,其中较为主要的电路有:
①、开启与关断电路:
在接通电源后,GTM900B 并不能自动启动,需要上电后在其15 引脚IGT 上提供100 ms
的低电平GTM900B 才能正常启动。为了保证在复位以及人为操作时都可以是模块激活,选择了加了三极管反相控制的由单片机PB0 控制的开启电路。至于关断在正常状态下采用软件AT 指令实现,故障期间硬件强制关断则是控制PD 引脚低电平时间大于3.5s。
②、串口通讯电路:
单片机与通信模块是通过串口通信的方式进行信息传输的,如图3,通信模块GTM900B
的16-23 引脚数据输入/输出端,实际中只用了RXDO,TXDO,选择默认的9600bps 作为数据传输的波特率。采用实际与理论相结合的方式,在硬件设计中GTM900B 与MCU 方向分别加了电平转换芯片MAX232,将电平统一为标准RS232 电平进行信息传输,方便了电脑调试工作,放宽了转换线路的距离要求。
③、状态检测电路:
调试阶段,采用三极管驱动发光二极管,通过二极管明灭状态及时间来查表获得工作组态;成品设计中的下位机使用液晶显示,从液晶上直接简化显示各种工作状态,简化了硬件,只需加一个上拉电阻,采用双向口PB2 与之相连,通过软件读取引脚状态来判断GTM900B的工作组态。
图 3 通讯模块的外围设计
Figure3 External design of communications module
2.3 单片机外围电路设计
①、电磁锁控制与报警电路硬件设计
AVR 单片机的I/O 接口具有很强的驱动能力,灌入电流可直接驱动继电器、LED 等元件,从而简化驱动电路,可节约系统成本。对于报警电路部分,针对开关式传感器信号(开为高电平,关为低电平),开锁标志位(OP)以及单片机信号端口(PD4)采用逻辑分析后满足以下逻辑(具体实现见图4):
图 4 报警电路(a)与电子锁控制(b)设计
Figure4 External design of control and alarm
[page]
②、串口通讯调试电路
虽然 AVR 单片机的串行通讯口可以直接与GSM 模块相连,不需电平调整,但为了将来扩展需要,以及程序调试方便,使用MAX232 芯片进行RS232 电平转换,扩大了传输可行距离。
③、ISP 在线编程
USB 供电接口,为编程器提供工作电压。使用Codevision 软件编程,AVRfighter 软件实现程序加载运行。硬件上则是与单片机引脚(MOSI,REST,SCK,MISO)直接相连。
④、按键与显示电路
液晶显示器选用 1602,按键方式采用独立式按键结构,共设置了8 个按键。其中三个为功能选择键,分别为:确认,远程开锁选择,按键开锁选择,每个独立按键单独占有一根I/O 口线,每根I/O 口线上的按键工作状态不会影响其他I/O 口线的工作状态。它的电路配置灵活,软件结构简单。
3.软件结构
系统软件结构同样本着模块化和功能最小实现的原则,主要由串口通信模块、管理模块、用户操作界面和后台数据四部分组成。可以实现的功能有:短消息的提取与存储,拨号信息的提取与存储,数据的分析处理和液晶显示,对异常数据的声光报警等。
(1)键盘开锁工作特点:
(a)当手动选择使用键盘开锁时,这时由键盘输入密码,当位有效密码输入正确时按“确认”键确认,PB3 口输出高电平使电磁锁动作,完成开锁,同时电路进入延时状态,延时5秒后,电路将自动恢复到初始的闭锁状态。
(b)输入密码错误时,将发出5 秒的报警信号,用以提醒用户。输入密码错误超过三次,电子锁自动锁定,同时发出拨号报警。
(c)输入密码时,首位密码正确输入后,电路将开始计时每位密码数之间的输入间隔应在3 秒内。否则将作为输入超时处理,系统自动放弃,恢复到初始状态。
(2)远程开锁(包括拨号与短信开锁)的工作原理
当手动选择远程开锁时,键盘便会被封锁。这时,电子锁GSM 模块启动,并发给用户手机一条询问信息,用户收到信息后,可通过拨号确认,或短信回复指定信息确认,单片机采集接收短信进行处理,从而实现开锁或报警,同时数字锁系统回复已开锁短信(open )。
软件流程图如图5:
其中软件编程主要针对串口通讯,使用 GSM 模块标准AT 指令[2]的编写,其中最重要的指令有:
AT //检测模块状态
AT+CMGF=1 //设置短信模式为文本格式
AT+CMGS="1516xxxxxx"//设置短信接收方号码
> OPEN THE DOOR OR NOT//发送短信内容
AT+CMGR=index //读存储区第n 条短信
AT+CMGD=index //删除第n 条短信
[page]
ATD 151xxxxxxx //拨打电话
ATH //挂断电话
图 5 远程开锁软件设计
Figure5 Software design of remote key
4.总结
本文将有线传输的低廉与无线传输的便利有机结合了起来,有效降低了运营成本;同时由于GSM 通信稳定可靠,也在一定程度上减少了系统出错的概率。因此,该电子锁在安全防卫领域具有一定的实用价值。
虽然 SMS 的费用及传输的缺点局限[4]:容量限制(每条短信内容最多140 个字节);网络繁忙时短信延迟长等。但对于建立在GSM 基础上的电子锁却都已经已经足够,而且又恰恰具备了实时性强、快速性等等优点,必定会得到更为广泛的应用。
参考文献
[1] ATMEGA16.pdf[DB].www.atmel.com,2007
[2] GPRS Modem Specification 实用[J].www.huawei.com ,2008
[3] 陈星,刘利. 基于SMS 的执行器无线监控终端的设计[J].微计算机信息, 2008, 2(1):118-119.
[4] 于立娟,于海业,张志平. 基于GSM 的远程环境监控系统[J].仪表技术与传感器,2007,3(2):69-71.
[5] 穆继亮,马宗敏.微型智能电子密码锁设计.机电产品开发与创新[J].2008,21(6):70-72..
上一篇:基于AT89S51的多功能电子密码锁设计
下一篇:千家保平安:浅探城市火灾探测报警技术
推荐阅读最新更新时间:2024-03-16 10:54