当前位置:技术文章首页 >> 可编程逻辑 >> 基于VHDL语言的智能密码锁设计

基于VHDL语言的智能密码锁设计

2007-09-17 19:52:04  作者:不详  来源:互联网  浏览次数:1984  文字大小:【】【】【

摘 要 本文介绍一种利用 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。

图2  控制器状态流程图

准备状态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;

图3 仿真波形

  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

责任编辑:


相关文章
 

最新文章

更多

· 基于FPGA的高速数据采集...
· 基于FPGA和AD768的高精度...
· 基于GPRS的远程数据采集...
· 基于SOPC的定量称重控制...
· 基于VerilogHDL的背景噪...
· 基于FPGA的UART IP核设计...
· 基于FPGA的IIR数字滤波器...
· ArmSim全系统模拟器的设...
· FPGA中软FIFO设计和实现
· 基于FPGA的并行DSP芯片实...

推荐文章

更多

· 基于FPGA的高速数据采集...
· 基于FPGA和AD768的高精度...
· 基于GPRS的远程数据采集...
· 基于SOPC的定量称重控制...
· 基于VerilogHDL的背景噪...
· 基于FPGA的UART IP核设计...
· 基于FPGA的IIR数字滤波器...
· ArmSim全系统模拟器的设...
· FPGA中软FIFO设计和实现
· 基于FPGA的并行DSP芯片实...

热点文章

更多

01-01·[接口与通讯] 红外遥控系统原理及单片机软... (3804)
01-01·[单片机技术] 温度传感器PT100的应用 (2424)
09-17·[可编程逻辑] 基于VHDL语言的智能密码锁设计 (1984)
09-08·[可编程逻辑] 基于FPGA的QPSK调制解调电路... (1973)
09-08·[单片机技术] AT89S52的中文简介及资料下载 (1909)
11-24·[电子基础] 与初学者谈电子制作(电子入门) (1789)
09-09·[电源技术] 基于DSP的三相SPWM波发生软件... (1789)
10-24·[传感与控制] MODBUS RTU通讯协议在S7-200... (1612)
12-01·[单片机技术] 基于ARM智能家居控制器设计与... (1612)
11-24·[单片机技术] 常用LED数码管驱动电路2(单 ... (1601)
09-08·[电源技术] 能延长电池寿命的单节电池升... (1537)
09-11·[仪器与仪表] 应用ADuC847芯片设计压力及温... (1520)