红外电子密码锁软硬件设计研究
2015-01-02鲁建
鲁 建
(东北石油大学,黑龙江 大庆 163318)
20世纪70年代,随着微电子技术的应用,出现了磁控锁、声控锁、超声波锁、红外线锁、电磁波锁、电子卡片锁、视网膜锁、遥控锁等.这些高科技锁有机械锁所无法比拟的高保密性能.
红外遥控是一种无线、非接触控制技术,具有抗干扰能力强、信息传输可靠、功耗低、成本低、易实现等显著优点,被诸多电子设备特别是家用电器广泛采用.由于红外线在频谱上位于可见光之外,所以抗干扰性强,具有光波的直线传播特性,不易产生相互间的干扰,是很好的信息传输媒体.信息可以直接对红外光进行调制传输,例如,信息直接调制红外光的强弱进行传输,也可以用红外线产生一定频率的载波,再用信息对载波进调制,接收端再去掉载波,取到信息.从信息的可靠传输来说,这就是目前大多数红外遥控器所采用的方法.
红外遥控具有许多优点,例如红外线发射装置采用红外发光二极管,遥控发射器易于小型化且价格低廉;采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,增加遥控功能,提高信号传输的抗干扰性,减少误动作,而且功率消耗低;红外线不会向室外泄露,不会产生信号串扰;反应速度快、传输效率高、工作稳定可靠等.工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰.所以红外线遥控是目前使用最广泛的一种通信和遥控手段.
1 系统设计方案
1.1 设计思路
本次设计一个红外遥控电子密码锁,主要分为遥控器部分和主机部分.当从遥控器输入密码时,键盘向单片机发送外部中断,单片机识别按键号码并且将其编码后通过红外发光二极管发送到主机接收部分.主机接收部分的红外接收器接收到红外信号,将其整理放大之后通过串行口向单片机发送串行口中断,单片机得到串行中断信号将其解码还原成发射前的信号,之后验证密码,判断开锁还是报警.主机接收部分通过键盘的外部中断得到密码信号,无需红外遥控发射,可直接验证密码.同时主机部分还有修改密码的功能,倘若密码泄露可以及时更改密码.
1.2 遥控发射部分
遥控发射部分由STC89C52单片机、红外发射电路、矩阵键盘、复位电路以及振荡电路组成,其结构图如图1所示:
图1 遥控发射结构框图
1.3 主机接收部分
主机部分由STC89C52单片机、红外接收电路、液晶显示器、开锁电路、蜂鸣器、复位电路以及振荡电路组成,其结构图如图2所示:
图2 主机结构框图
2 红外电子密码锁硬件设计
2.1 红外发射电路
常用的红外发光二极管(如SE303.PH303),其外形和发光二极管LED相似,发出红外光.管压降约1.4V,工作电流一般小于20mA.为了适应不同的工作电压,回路中常常串有限流电阻.本设计中采用的PH303型号的红外发光二极管.
发射红外线去控制相应的受控装置时,其控制的距离与发射功率成正比.为了增加红外线的控制距离,红外发光二极管工作于脉冲状态,因为脉动光(调制光)的有效传送距离与脉冲的峰值电流成正比,只需尽量提高峰值Ip,就能增加红外光的发射距离.提高Ip的方法,是减小脉冲占空比,即压缩脉冲的宽度T,一些彩电红外遥控器,其红外发光管的工作脉冲占空比约为1/3-1/4;一些电器产品红外遥控器,其占空比是1/10.减小脉冲占空比还可使小功率红外发光二极管的发射距离大大增加.常见的红外发光二极管,其功率分为小功率(1mW-10mW)、中功率(20mW-50mW)和大功率(50mW-100mW以上)三大类.要使红外发光二极管产生调制光,只需在驱动管上加上一定频率的脉冲电压.
图3 红外发射电路图
用红外发光二极管发射红外线去控制受控装置时,受控装置中均有相应的红外光电转换元件,如红外接收二极管,光电三极管等.实用中已有红外发射和接收配对的二级管.
红外线发射与接收的方式有两种,其一是直射式,其二是反射式.直射式指发光管和接收管相对安放在发射与受控物的两端,中间相距一定距离;反射式指发光管与接收管并列一起,平时接收管始终无光照,只在发光管发出的红外光线遇到反射物时,接收管收到反射回来的红外光线才工作.双管红外发射电路,可提高发射功率,增加红外发射的作用距离.
2.2 红外接收电路
红外接收电路是将遥控发射部分发射的红外光信号接收、放大、检波、整形转换成电信号输入到单片机的电路模块.其电路图如图4所示:
红外接收电路的主要核心是红外一体化接收头,红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚,也有些红外接收头添加了可以调节解调频率的端口.应用时必须保证发射端调制载波的频率与接收端相应的解调频率之间互相匹配.
图4 红外接收电路图
2.3 矩阵键盘
矩阵键盘是单片机外部设备中所使用的排布类似于矩阵的键盘组,在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示.在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接.这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键).因此,在需要的键数比较多时,采用矩阵法来做键盘是理想的.
图5 矩阵键盘图
矩阵键盘的识别方法比较复杂,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入.这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下.行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了.
为了识别键盘上的闭合键通常采用行扫描法和行反转法两种方法,本设计采用行扫描法.先使第0行输出为低,其余行输出为高,并将行首键号“0”存储在某个寄存器中.然后读入列值,看是否有那条列线输入为低.如果有,则表示第0行的该列键被按下,设为低三列,则键值=行首键号+列号,即键值为3;若没有,则说明低0行上没有键按下,则扫描下一行,并且同时存储行首键号.以此类推,循环进行直到找到闭合键为止.
2.4 液晶显示电路
1602 液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块.它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形.
1602 LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字).
表1 LCD1602引脚功能表
图6 LCD1602引脚图
图7 液晶显示电路图
市面上字符液晶大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶.
2.5 开锁电路
红外遥控密码锁的开锁电路在开锁部分采用电磁继电器.通过单片机来控制其线圈的通断电,从而控制其触点的吸和与断开.继电器是一种电子控制器件,它具有控制系统和被控制系统,通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”.故在电路中起着自动调节、安全保护、转换电路等作用.对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”.继电器允许加载的电压和电流.它决定了继电器能控制电压和电流的大小,使用时不能超过此值,否则很容易损坏继电器的触点.
图8 开锁电路图
电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成.只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点吸合.当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点吸合.这样吸合、释放,从而达到了在电路中的导通、切断的目的.
2.6 蜂鸣电路
蜂鸣电路部分由蜂鸣器和三极管组成,当密码输入正确开锁时,经过三极管放大电流驱动蜂鸣器工作.
图9 蜂鸣电路
3 红外电子密码锁软件设计
3.1 遥控发射程序设计
3.1.1 遥控发射主程序流程图
主程序中发射端主要有一个红外发射二极管发射调制好的频率波,有一个4*4矩阵键盘,分别为0~9、确认、设置、取消,剩下的三个键没有定义,程序开始初始化,调用按键子程序,送到串行口端的红外发射二极管进行调制并发送出去,直至数据发送完毕.
图10 遥控发射程序流程图
3.1.2 按键子程序
按键子程序中用的4*4键盘,扫描的方式进行判断,当主程序开始时没扫一遍程序,都会判断一下按键是否被按下,如果按下,则会返回一个相应的键值,单片机根据返回值,判断那个键被按下,从而发送数据.
图11 按键子程序
3.2 主机接收程序设计
3.2.1 主程序流程图
在接收主程序中,主要是检测红外接收二极管是否有信号发过来,当信号发过来时,进入相应的子程序,在接收的时候,红外接收的信号都是双份的,一个是数据的原码,一个是数据的反码,当接收完毕后,单片机会把反码转换成原码,然后和接收的原码进行校验是否正确,如果正确则这次接收的数据是有效数据,如果不正确则这次接收的数据就会被判作无效数据,就会被舍去,等待下一个数据到来.
图12 主机接收程序流程图
3.2.2 密码识别子程序
在密码识别程序中,当输入正确的4位密码时,开锁指示灯会亮起,当输入错误密码时,会显示ERROR.
图13 密码识别子程序
3.2.3 显示子程序
显示用的是LCD1602,首先程序开始时对LCD进行初始化,单片机向LCD写命令,接着单片机向LCD写数据,写完后程序结束.
图14 显示子程序流程图
3.2.4 密码修改子程序
修改子程序中,按设置键进入修改子程序界面,会提示输入旧密码,如果输入错误则直接返回,如果输入正确,则会提示第一次输入新密码,接着再次输入新密码,如果两次密码不一样就会出现错误,并返回,如果输入正确,则显示设置成功.
图15 修改密码子程序流程图
4 红外电子密码锁设计研究结论
本设计采用STC89C52单片机作为核心元件,利用红外线遥控原理和单片机串行发射、接处等功能设计一款红外遥控开锁的电子密码锁.
设计电路主要由红外线编码电路、红外线解码开锁电路、蜂鸣电路、矩阵键盘及显示电路组成.
本设计实现的功能:
(1)红外通信:通过红外发射二极管和红外接收头组成红外发射和接收电路,从而实现红外通信.
(2)密码对比开锁:主机部分存有密码,输入的密码与已存的密码进行对比,两个密码一致才能开锁.
(3)开锁声光提示:输入的密码正确,允许开锁后,二极管和蜂鸣器同时工作,表示已经开锁.
(4)液晶显示:通过LCD1602液晶可显示正在进行的操作以及密码的暗码.
(5)修改密码:通过密码修改键可以进行密码修改,先输入原密码,对比正确后可输入新密码,新密码需二次确认,以防误操作.
本设计符合设计要求,操作简单,方便易用,功能性较强,具有一定的实践意义和使用价值.不但很好的满足了题目的要求,即终端能够接收红外遥控发射板发射的红外信号(密码)并能与已存密码作对比,而且能够在液晶上显示操作结果,从而完成了红外遥控电子密码锁的要求.但本设计仍有不足之处,本设计没有在主机上安装4*4键盘,所以不能实现本机开锁功能,而且本设计采用的USB供电,这在实验中很方便,但在实际生活中并不是很好,如果能够采用电池或者是蓄电池供电的话,对本设计的实际应用非常有利.