logo资料库

利用EDA技术和VHDL语言的智能密码锁设计.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
利用利用EDA技术和技术和VHDL语言的智能密码锁设计 语言的智能密码锁设计 A Digital PasswordLock Designed by VHDL Abstract:This paper introduces a new type digital pasword lock is designed with EDA technology and VHDL language. This new digital password lock has beter application prospect , becauseof smal volume , lowpower , lowprice , securityand easy maintenanceand upgrade. Keywords:Digital pasword lock  EDA VHDL  MAX+ PLUSⅡ 摘 要:本文介绍一种利用EDA技术和VHDL语言 ,在MAX+PLUSⅡ环境下,设计了一种新型的智能密码锁。它体积小、功耗 低、价格便宜、安全可靠,维护和升级都十分方便,具有较好的应用前景。 关键词:数字密码锁  EDA VHDL  MAX+ PLUSⅡ 随着社会物质财富的日益增长,安全防盗已成为全社会问题。人们对锁的要求越来越高,既要安全可靠地防盗,又要使用方便。 弹子锁由于结构上的局限已难以满足当前社会管理和防盗要求,特别是在人员经常变动的公共场所,如办公室、宾馆等地方。 电子密码锁由于其自身的优势,越来越受到人们的青睐 ,但是目前使用的电子密码锁大部分是基于单片机用分离元件实现的, 其成本较高且可靠性得不保证。本文采用先进的EDA 技术,利用 MAX +PLUXⅡ工作平台和 VHDL 语言,设计了一种新型的智 能密码锁。该密码锁具有密码预置和误码报警等功能,用一片 FPGA 芯片实现,从而大大简化了系统结构,降低了成本,提高 了系统的保密性和可靠性。采用这种器件开发的数字系统,其升级与改进极其方便。 1、 智能密码锁的设计要求 该密码锁的密码由六位十进制数字组成,初始设定“000000”。可由用户任意设置密码,密码输入正确时开锁,连续三次输入错 误密码时系统报警。 2、 智能密码锁的总体结构 智能密码锁的系统结构框图由图1所示,它分成两大部分:控制器和处理器。整个系统的输入信号只有一个时钟脉冲CP ,输出信号 有锁开信号OPEN 和报警信号ALERT。控制器中的所有按键按下时均为低电平,即低电平有效。RESET 为“密码设定”信 号,CLR 为“清零”信号,OK 为“确定”信号, TRY 为“开锁”信号,CNT 表示上一位密码正确时,控制器给出的可进行下一位二进制密 码比较的信号,OPEN 为控制器给出的锁开信号, ERROR 为控制器给出的密码错误信号。处理器中有三个计数器,计数器C1用 来记录输入的二进制密码比较到了第几位,计数器C2 用来记录输入的密码有几次错误,计数器C3 用来记录键入的是第几位十 进制密码。密码锁可通过键盘设置6位十位进制数密码,按“确定”按键OK= 1 后,通过BCD 编码器变成24位二进制数存入寄存 器1 ;开锁时也通过键盘输入6位十进制数密码,按“确定”按键后,通过BCD 编码器变成24位二进制数存入寄存器2 。经过两 个24选1 数据选择器,将寄存器2中的输入密码与寄存器1中设置的密码逐位进行比较,当对应位数相同时,数值比较器的输出B = 1 然后进行下一位比较,否则B= 0 ,密码错误信号ERROR = 1 ,由计算器C2 记录密码错误次数,比较到哪位。用记算器C1 的输出又作为24 选1 数据选择器位选线,当输入到寄存器2中的24位二进制密码与寄存器1 中设定的24位二进制密码完全相 同,比较结束,位数比较器输出M= 1 ,这时,如果按开锁按键TRY = 1 ,密码锁就会打开OPEN = 1 ,如果开锁时三次密码输入不 对,则报警。 3、控制器模块是整个系统的控制核心 ,负责接收其模块传来的输入信号 ,再根据系统的功能产生相应的控制信号送到相关 的模块。下面主要介绍控制器的设计过程: 3. 1  智能密码锁的控制模块的简单工作原理 控制器实际上是一个有限状态机,图2为它的状态流程图。它一共有六个状态: 准备状态S0、密码输入状态S1、密码设置状态 S2、确认状态S3、开锁状态S4和报警状态S5。
准备状态S0:系统开锁、报警或上电后进入准备状态,这时系统不接收除READY信号外的任何输入信号。 密码输入状态S1:在该状态下,如果按下“READY”则保持该状态不变;如果按下“OK”和“OPEN”则转到报警状态;如果有数据输入, 则控制器输入一个DATA- IN 信号,输出RD 和CNP1 信号,从RAM中读取密码进行比较,同时使计数器加1 ;检查计数是否计数到 100 ,若CNTe1 有效,表示已经接收到四个正确的密码,可以转入下一个状态,否则返回本状态,继续接收其它密码。检查Dep信号 状态,Dep=1则密码正确,进入确认状态,反之则输出CNP2 信号进入报警状态;如果仍然有数据输入,则说明输入密码错误,则输出 CNP2 信号进入报警状态。 密码设置状态S2:在确认状态下按“SET”键进入该状态,EN 信号有效。该状态首先由控制器发RESET-CNT信号;检查是否有数 据输入,如果没有则等待;若有数据输入,控制器则输出WR 和CNP1 信号,向RAM发出信号,并使计数器加1 ,检查计数器是否计数 到100 ,若CNTe1 有效,表示已经接收到四个正确的密码,进入确认状态,否则返回本状态,继续接收其它密码。 确认状态S3:输入密码正确后进入该状态。密码输入得到确认才可以进入开锁状态,密码设置完毕后,只有得到确认才可生效,并 返回准备状态。 开锁状态S4:输入密码确认后进入该状态,此时按“OPEN”键,控制器便发出SLT信号开锁并返回到准备状态。 报警状态S5:每次进入该状态首先检查计数器2 是否计数到11。若输入错误密码达到三次,则CNTe2 有效,控制器输出SLB 信号, 报警电路报警;若输入错误次数不超过三次,则CNTe2无效,返回到输入密码状态 3. 2  控制器的软件设计 控制器的软件设计主要依据图2 的状态流程图。 S0、S1、S2、S3、S4、S5为状态机的六个状态 ,控制部分的 VHDL 源码如 下: LIBRARY IEEE; USE IEEE. STD- LOGIC -1164.ALL ; USE WORK. STATE- PACE. ALL; ENTITY control IS PORT(CP,CLK,B,M,RESET,TRY,OK:IN STD- LOGIC;   OPEN,ERROR :OUT STD-LOGIC) ; END control; ARCHITECTURE behav OF control is TYPE STATE IS (S0,S1 ,S2,S3,S4,S5) ; SIGNAL CURRENT_ STATE,NEXT_STATE: STATES; BEGIN COM1:PROCESS(CRRRENT_STATE,STATUS) BEGIN WAIT UNTIAL CLK’EVENT AND CLK=‘1’; RESET < = ‘1’; CASE CURRENT- STATE IS when S0 = >READY < =’1’; EN< = ’1’;RESET-CNT< =’1’;  
 if(READY = ‘0’) then curent- state < = S0;    else    curent- state < =S1;  … 因源程序较长, 故程序略 …  END IF;   END CASE;  END PROCESS; END behav; 4  仿真及硬件测试 该密码锁利用MAX PLUSⅡ工作平台进行编译和综合仿真,图3为此程序序部分仿真波形。将程序下载到FLEX10K芯片中,同 时在杭州康芯生产的型号为GW48-GK的EDA实验箱上进行硬件验证。经实验验证,该密码锁达到了设计要求。 本文提出的智能密码锁由于采用VHDL 语言设计,用一片FPGA实现,因而体积小,功耗低,稍加修改就可以改变密码的位数 和输入密码的次数,而升级和维护都很方便,而且容易做成 ASIC芯片,具有较好的应用前景。但由于结构还比较简单,有待 进一步完善。 参考文献: 1 王锁平编著.电子设计自动化(EDA)教程.电子科技大学出版社. 2000 .3 2 潘松等编著.EDA技术实用教程.科学出版社.2002.10 3 潘松等编著. VHDL实用教程.电子科技大学出版社.2002.6 4 戈素贞等. 采用EDA技术实现4位十进制数字密码锁.山西电子技术.2002.12,16~20 5 刘钰等.一种用VHDL语言设计的数字密码锁.信息技术与信息化.2004.4, 37~40 作者简介:胡红艳(1966-),女,湖南衡南人,湖南建材高等专科学校工程师 Email: hongyanhu_66@yahoo.com.cn 通信地址: 湖南建材高等专科学校电信系 湖南衡阳市雷公塘14号 邮编: 421008
分享到:
收藏