APP下载

基于单片机的红外线电子锁控系统研制

2014-06-21易文振王忠友

湖北科技学院学报 2014年9期
关键词:密码锁遥控解码

易文振,张 诚,王忠友

(湖北科技学院 计算机科学与技术学院,湖北 咸宁 437100)

为保护家庭和集体财产的安全,门锁的控制成了关键,普通的门锁、防盗门或者监控、报警等系统在一些场合已是不够防范了。于是,智能门禁系统[1~3]作为安全防范系统的重要组成部分应运而生,现正以远高于其他安防产品的进度迅猛发展。门禁系统,又称出入管理控制系统,是一种管理人员进出的数字化智能管理系统。它属于弱电系统中的一种智能安防系统,是一种综合多学科的高科技技术集合。它涉及电子、机械、光学、计算机技术、通信技术、生物统计学等诸多新技术领域[4]。

本设计的红外线遥控智能密码锁[5~8]是将红外遥控技术和单片机应用相结合的一种方案。它的特点是:抗干扰能力强,工作可靠,使用方便,具有较强的隐蔽性、保密性,而且可以智能修改密码。 它与传统锁具的不同之处在于:它与微电脑相结合,能够实现适时、智能控制管理功能。

一、红外电子密码锁实现原理

开锁密码需先进行编码,然后调制到红外信号从遥控发射器上发送出去,发送的红外信号被红外接收管接受后,输入到单片机系统进行解码以获得相应开锁密码,将该密码与已存储在外存储器的密码比较,一致便驱动继电器实现开锁,否则通过蜂鸣器报警。

通过红外遥控发射器发射的红外信号是二进制编码信号调制在高频载波上的调制信息。对红外信号的编码解码是密码锁控制的关键。

遥控器发射的红外信号编码一般有脉冲宽度调制和脉冲位置调制。本系统采用的是脉冲位置调制(PPM)形式,这是一种脉冲位置根据被调信号的变化而变化的调制方法[9]。本系统用到的脉冲位置调制编码方式的遥控器芯片为WD6122。该芯片所发射的一帧码含有一个引导码,16位的用户编码和8位的键数据码、键数据码的反码也同时被传送。码型结构如图1所示。

图1信号码型结构

引导码由一个9ms的载波波形和4.5ms的关断时间构成,它作为随后发射的码的引导,这样当接受系统是由微处理器构成的时候,能更有效地处理码的接受与检测以及其他各项控制之间的时序关系。当遥控器上任意一个按键按下超过10ms时,将发射一个特定的同步码头即引导码,这个同步码头可以使程序知道从这个同步码头开始可以接受数据[10~11],接受数据时利用脉冲之间的时间间隔来区分“0”和“1”。每次8位的码被传送之后,它们的反码也被传送,减少了系统的误码率。“0”和“1”的编码如图2所示。

图2 “0”和“1”的编码

二、系统总体与硬件电路设计

红外电子密码锁系统框图如图3所示。

图3 总体设计框图

整个系统由红外遥控发射和红外接收处理两部分电路构成。

红外遥控发射部分是一个通用的遥控器,其核心芯片为WD6122,最多可外接64个按键,用于发射红外控制信号。当按下遥控发射器上的按键时,发射器内的编码器输出一组对应的二进制代码,再将此二进制代码按一定格式调制到高频载波上、加至红外发光二极管上变成光信号发射出去。

本系统红外接收与处理硬件电路如图4所示。红外接收采用一体化的红外接收头1838T(即图4中的LDR1),其内置专用的IC,集信号的接收和放大于一体,不需要任何外接器件。该接受头体积小,能在低电压下工作,适用与宽角度及长距离接受,其抗干扰能力强,能较好地抵挡环境干扰光线。红外信号被红外接收头接收转换成电信号,再经放大、限幅检波及波形整理等处理后送入单片机进行解码处理。对电锁及其开锁密码处理的核心芯片是单片机AT89C51(即图4中的U1),转换后的红外电信号通过U1的P3.3引脚进入单片机内。

图4 红外接收模块电路

经U1处理的含有电锁密码的红外信号,一部分通过U1的P0口送到液晶显示器LCD1(LCD1602)显示,用来显示操作信息,另一部分密码信息用来与原先保存到U3(24C02A)的密码比较。其中P2.5、P2.6和P2.7为液晶显示屏LCD1控制信号。比较的密码信号若与外存储器存储的密码信号一致时,开锁脉冲信号通过U1的P1.4引脚输出到锁具驱动块U2(ULN2003)上,再控制锁具控制继电器线圈RL1,实现开锁;若两者密码不一致,且有三次人为输入情况下,则一方面不会输出开锁脉冲,另一方面再通过U2输出报警信号给蜂鸣器。

三、驱动程序软件设计

根据以上设计要求,系统的红外遥控电子密码锁的解锁流程如图5所示。解码的关键是如何识别“0”和“1”。根据图2信号的编码要求“0”和“1”识别编写程序,超过识别脉冲宽度的当干扰码处理。对所获得的带密码的信号解码过程流程图如图6所示。

图5 控制流程图 图6 解码流程图

红外信号解码主要通过编写的中断函数IR_IN() interrupt来完成,其主要代码如下:

void IR_IN() interrupt 2 using 0//红外信号(IR)中断函数

{

unsigned char temp,i,j,k,N=0;

EX1 = 0;

Delay_1(60);

if (IRIN==1)

{

EX1 =1;

return;

}//确认IR信号出现

while (!IRIN)//等IR变为高电平,跳过9ms的前导低电平信号。

{ Delay_1(1); }

for (j=0;j<4;j++)//收集四组数据

{

for (k=0;k<8;k++)//每组数据有8位

{

while (IRIN)//等 IR 变为低电平,跳过4.5ms的前导高电平信号。

{ Delay_1(1);}

while (!IRIN)//等 IR 变为高电平

{ Delay_1(1); }

while (IRIN)//计算IR高电平时长

{

Delay_1(1);

N++;

if (N>=110)

{

EX1=1;

return;

}//计数过长自动退出中断

} //高电平计数完毕

IRCOM[j]=IRCOM[j] >> 1;//数据最高位补“0”

if (N>=35) {IRCOM[j] = IRCOM[j] | 0x80;}//数据最高位补“1”

N=0;

}//end for k

}//end for j

if (IRCOM[2]!=~IRCOM[3])

{

EX1=1;

return;

}

......}

在上面的代码中,变量IRIN为红外信号。根据红外信号的编码,首先是要跳过前面的引导码,程序中通过Delay_1()延时函数完成。在引导码之后则是四组八位数据,通过两个for循环语句嵌套,分别取得这四组数据。取得的数据都放在数组IRCOM中,其中IRCOM[2]和IRCOM[3]分别为数据码和数据反码,若它们数据不互为反码则为数据错误并退出中断。

对密码锁的安全性及方便性,红外电子密码锁设置了一个初始密码和一个底层密码。当用户首次使用密码锁的时候,可以通过初始密码获得控制权限,然后用户可通过修改密码来替换初始密码以提高密码锁的安全性。若用户忘记自己修改后的密码,则可以通过验证底层密码来重置密码,将密码重新设置为初始密码。流程图如图7所示。

图7 密码重置流程图

密码重置的关键代码:

IRCOM[5]=IRCOM[2] & 0x0F;//取键码的低四位

IRCOM[6]=IRCOM[2] >> 4;//右移4次,高四位变为低四位,即取高四位

if(IRCOM[6]==0x34){//功能键定义

if(IRCOM[5]==0x36){ //重置密码

if(table[0]==buf1[0]&&table[1]==buf1[1]&&table[2]==buf1[2]&&table[3]==buf1[3])//验证底层密码

{

for(i=0;i<4;i++) { table[i]=0x00; }

for(i=0;i<4;i++) { table[i]=0x31+i; }

for (i=0;i<4;i++) //写入初始密码

{

x24c02_write(i+1,table[i]);

Delay_1(50);

}

for(i=0;i<4;i++) { buf[i]=table[i]; }

for(i=0;i<4;i++) { table[i]=0x00; }

.......

}

else

{

......

}

在上述程序中,将数据码的低四位和高四位分别放在数组IRCOM[5]和IRCOM[6]中。按键对应的数据码的IRCOM[6]==0x34且IRCOM[5]==0x36即为密码重置键。数组table和数组buf1分别存储的是用户输入的密码和底层密码,首先判断判断两者是否相等,相等则通过写入函数x24c02_write()把初始密码写到外部存储器中,不相等则退出密码重置程序。

四、系统调试与运行结果

液晶LCD1602是用户和系统交互的界面,根据液晶界面的提示可以观察系统的运行状况。图8和图9是红外电子密码锁解锁和修改密码的实物图片。

图8 解锁界面

图9 修改密码界面

五、总结

本文研究的是具单片机和红外遥控技术结合的密码锁, 通过掌握其实现原理及控制过程,以及运用软件编程方式来解决红外的编码与解码问题。通过实测基本可达到用红外遥控方式实现密码锁的控制过程。

参考文献:

[1]佟英杉.嵌入式多功能门禁系统的设计与实现[D].大连:大连理工大学,2008.

[2]徐挺.大容量人脸识别门禁系统的研究[J].计算机仿真,2008,25(6):217~219.

[3]丁红海,王建平,赵荣泳.图书馆自动化门禁系统的关键技术与解决方案[J].机电一体化,2008, 14(8):52~55.

[4]吴微微.浅议智能出入管理系统的信息化特点及应用[J].湖北函授大学学报,2010,23(3): 93~94.

[5]成俊伟,陈波,梁书旺.基于AT89C51的红外遥控电子密码锁的设计[J].科技信息,2008,(29): 567~569.

[6]付丽辉,戴峻峰.红外线遥控智能密码锁设计[J].世界电子元器件,2002,(8):47~48.

[7]刘潇婷.基于FPGA的红外遥控电子密码锁的实现[D].大连:大连海事大学,2008.

[8]戴培山,冯成德,刘栋.基于Keil c51的红外遥控器解码设计[J].自动化与仪器仪表,2003,(6):11~13.

[9]百度百科.PPM[EB/OL].http://baike.baidu.com/view/65814.htm,2011-10-24.

[10]尹学锋.红外线遥控密码锁的研究[J].安防科技,2008,(3):10~13.

[11] Zhang Cheng Xue,Shun Xia Wu.The design of electronic locks based on infrared remote-Control with MCU[Z].International Conference on Computer Science & Education(ICCSE) :592~594.

猜你喜欢

密码锁遥控解码
如何遥控引爆的
《解码万吨站》
解码eUCP2.0
他是如何遥控引爆的
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
日记密码锁2
日记密码锁
开启密码锁
数字密码锁的逻辑实现