论文部分内容阅读
摘要本设计用CPLD设计制作一个数字密码锁控制电路。设计以使用简单,调整方便,功能完备为目的,采用lattice公司的IspLS1032E-70lJ可编程器件,以ABLE语言为开发语言,设计并实现具备密码的输入、修改、开锁指示、错误报警等功能的数字密码电路。
关键词数字密码锁;ABLE;CPLD设计
中图分类号TP文献标识码A文章编号1673-9671-(2010)082-0022-01
数字密码锁在我们的实际生活中起着重要的作用。它的主要功能就是对某些物品进行加密保护,避免无权限的人使用某些设施或进行越权操作,造成不良后果。如自动售货机、门卡系统、保险箱中都有数字密码锁的保护。
1设计要求
该电路应带有所需的数字键、功能键和用于显示的数码管和LED指示灯;
密码为4位十进制数(内部用8421BCD码表示),电路内预先设置好初始密码;
开锁时,由键盘输入数字,当按下“确定”键时,如果与预先设定的密码相符,则开锁指示灯亮;当密码不符时,不开锁,另一个指示灯亮,错误达到3次报警。
2方案设计
2.1设计思路
数字密码锁共有12个输入,四个输出,分别表示如下:
输入:数字0到9和功能键YES和RESET;
输出:红灯表示输入密码错误,绿灯表示开锁,三次输入错误的密码出发警报,另外还包括一个四位七段数码显示,分别显示输入的数字。
根据以上分析知,我们的电路分为时钟脉冲、密码输入(编码去抖)、密码保存、密码修改、密码校验、报错报警、数据显示这几个主要的模块。其中,对密码的处理可由拨码开关来实现,而时钟脉冲的输入、去抖电路、数码显示以及报错报警则依靠外围电路来实现。由此则把数字密码锁的实验分为编程和外部电路连接两个部分。
2.2系统原理框图
2.3外部电路设计方案
2.3.1外部电路主要有三个部分
1)时钟脉冲的产生电路,它有555构成,具体电路如下:C=0.1uF R1=50KΩR2=10KΩ
2)密码设置电路。方案一:用4个8421BCD码拨码开关设置初始密码。若要修改密码,则应先开锁,再变动拨码开关位置,最后按“设定密码”键完成。方案二:在CPLD内用寄存器保存密码,初始密码可预置,用户需要修改密码时,应先开锁,再按“设密码”键,然后通过键盘输入新的密码,最后按“确定”键完成。
3)显示电路。显示电路主要有两个部分,分别是指示灯警报和四位七段数码显示,当输入的密码错误的时候红灯亮,当连续输入三次错误的密码时将出发警报。四位七段数码管显示输入的数字密码。
2.3.2内部程序设计方案
输入:密码数字键I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,上锁close,输入密码开始start,确认yes,重设密码setcode;
输出:开锁open,错误警告warn,连续三次输入错误报警warn3,输入超时提示TIMESOUT。
CPLD器件实现以下部分:
1)十进制—二进制转换器:十进制密码输入,转化为二进制在16位寄存器进行存储,另外16位寄存器存放原始密码;2)控制器:控制状态各个功能部分的转分,相当于数字密码锁的控制中心;3)密码比较器:16位二进制原始密码和16位输入开锁密码同时输入比较器,对比较结果进行输出;4)错误次数累加器:对密码输入错误次数进行计数,当连续输入错误次数到三次,即计数器计数到3,进行报警,下次输入正确则停止报警;5)计时器:在时钟信号的作用下,当密码输入时间过长,黄色显示灯亮,提示密码输入超时;6)密码输入显示器:BCD码输入,驱动七段显示器显示输入的密码。
其中控制器部分状态转移编程实现代码如下:
stateS2: “密码输入状态
open=0;warn=0;reset=0;shuru=1;
ifyes==1then
if(en==1)#(start&setcode)thenS0 “转为开锁状态
else S3 “转为错误警告状态
else S2; “保持密码输入状态
stateS3: “错误警告状态
open=0;warn=1;reset=0;shuru=0;
goto S1; “转为上锁状态
stateS4:
open=1;warn=0;reset=1;shuru=0; “重设密码状态
ifyes==1thenS0 “转为待锁状态
else S4; “保持密码输入状态
3结论
方案特点:为避免忘记密码,特设置高级权限,当按下START后START YES RESET3键一起按便可以开锁。
存在问题:由于抖动原因,在输入正确密码后,也可能报错和报警。
参考文献
[1]康华光.等编著.电子技术基础(数字部分)[M].高等教育出版社,2006.
[2]祖龙起,刘仁杰.一种新型可编程密码锁[J].大连轻工业学院学报,2002,2:41-43.
[3]刘钰,张有志.一种用VHDL语言设计的数字密码锁[J].数据采集与嵌入式系统.2004,4:37-40.
关键词数字密码锁;ABLE;CPLD设计
中图分类号TP文献标识码A文章编号1673-9671-(2010)082-0022-01
数字密码锁在我们的实际生活中起着重要的作用。它的主要功能就是对某些物品进行加密保护,避免无权限的人使用某些设施或进行越权操作,造成不良后果。如自动售货机、门卡系统、保险箱中都有数字密码锁的保护。
1设计要求
该电路应带有所需的数字键、功能键和用于显示的数码管和LED指示灯;
密码为4位十进制数(内部用8421BCD码表示),电路内预先设置好初始密码;
开锁时,由键盘输入数字,当按下“确定”键时,如果与预先设定的密码相符,则开锁指示灯亮;当密码不符时,不开锁,另一个指示灯亮,错误达到3次报警。
2方案设计
2.1设计思路
数字密码锁共有12个输入,四个输出,分别表示如下:
输入:数字0到9和功能键YES和RESET;
输出:红灯表示输入密码错误,绿灯表示开锁,三次输入错误的密码出发警报,另外还包括一个四位七段数码显示,分别显示输入的数字。
根据以上分析知,我们的电路分为时钟脉冲、密码输入(编码去抖)、密码保存、密码修改、密码校验、报错报警、数据显示这几个主要的模块。其中,对密码的处理可由拨码开关来实现,而时钟脉冲的输入、去抖电路、数码显示以及报错报警则依靠外围电路来实现。由此则把数字密码锁的实验分为编程和外部电路连接两个部分。
2.2系统原理框图
2.3外部电路设计方案
2.3.1外部电路主要有三个部分
1)时钟脉冲的产生电路,它有555构成,具体电路如下:C=0.1uF R1=50KΩR2=10KΩ
2)密码设置电路。方案一:用4个8421BCD码拨码开关设置初始密码。若要修改密码,则应先开锁,再变动拨码开关位置,最后按“设定密码”键完成。方案二:在CPLD内用寄存器保存密码,初始密码可预置,用户需要修改密码时,应先开锁,再按“设密码”键,然后通过键盘输入新的密码,最后按“确定”键完成。
3)显示电路。显示电路主要有两个部分,分别是指示灯警报和四位七段数码显示,当输入的密码错误的时候红灯亮,当连续输入三次错误的密码时将出发警报。四位七段数码管显示输入的数字密码。
2.3.2内部程序设计方案
输入:密码数字键I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,上锁close,输入密码开始start,确认yes,重设密码setcode;
输出:开锁open,错误警告warn,连续三次输入错误报警warn3,输入超时提示TIMESOUT。
CPLD器件实现以下部分:
1)十进制—二进制转换器:十进制密码输入,转化为二进制在16位寄存器进行存储,另外16位寄存器存放原始密码;2)控制器:控制状态各个功能部分的转分,相当于数字密码锁的控制中心;3)密码比较器:16位二进制原始密码和16位输入开锁密码同时输入比较器,对比较结果进行输出;4)错误次数累加器:对密码输入错误次数进行计数,当连续输入错误次数到三次,即计数器计数到3,进行报警,下次输入正确则停止报警;5)计时器:在时钟信号的作用下,当密码输入时间过长,黄色显示灯亮,提示密码输入超时;6)密码输入显示器:BCD码输入,驱动七段显示器显示输入的密码。
其中控制器部分状态转移编程实现代码如下:
stateS2: “密码输入状态
open=0;warn=0;reset=0;shuru=1;
ifyes==1then
if(en==1)#(start&setcode)thenS0 “转为开锁状态
else S3 “转为错误警告状态
else S2; “保持密码输入状态
stateS3: “错误警告状态
open=0;warn=1;reset=0;shuru=0;
goto S1; “转为上锁状态
stateS4:
open=1;warn=0;reset=1;shuru=0; “重设密码状态
ifyes==1thenS0 “转为待锁状态
else S4; “保持密码输入状态
3结论
方案特点:为避免忘记密码,特设置高级权限,当按下START后START YES RESET3键一起按便可以开锁。
存在问题:由于抖动原因,在输入正确密码后,也可能报错和报警。
参考文献
[1]康华光.等编著.电子技术基础(数字部分)[M].高等教育出版社,2006.
[2]祖龙起,刘仁杰.一种新型可编程密码锁[J].大连轻工业学院学报,2002,2:41-43.
[3]刘钰,张有志.一种用VHDL语言设计的数字密码锁[J].数据采集与嵌入式系统.2004,4:37-40.