EDA4位数字密码锁.docx
- 文档编号:15339466
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:13
- 大小:81.16KB
EDA4位数字密码锁.docx
《EDA4位数字密码锁.docx》由会员分享,可在线阅读,更多相关《EDA4位数字密码锁.docx(13页珍藏版)》请在冰点文库上搜索。
EDA4位数字密码锁
摘要
随着数字集成技术和电子设计自动化(EDA)技术的迅速发展,数字密码锁应运而生。
本文采用先进的EDA技术,利用QUARTUS Ⅱ工作平台和VHDL语言,设计了一种新型的数字密码锁,它不但可以完成锁具的基本功能,还能附加一些其他的智能,例如:
报警、识别功能,数字密码锁具功能齐全,安全系数高,有机械锁无可比拟的优越性,它的造价成本低,易于操作,越来越受到众多客户的青睐,可以优先占领市场有利份额。
关键词:
EDA技术quartusⅡ工作平台VHDL语言数字密码锁
1引言
1.1课程设计背景
随着社会的发展和人们生活水平的提高,人们的安全意识的加强,安全防盗已成为社会问题。
自古以来锁在人们的生活中扮演着重要的角色,人们对其要求也较高,希望锁既要安全可靠地防盗,又要使用方便。
目前使用广泛的弹子锁由于要携带钥匙,经常更换锁芯等缺点,已经渐渐变得难以满足当前社会对于安全防盗的要求。
而数字密码锁由于其高安全性、低成本、易操作、密码可更换等优点受到越来越多人的欢迎。
随着现代电子技术的迅速发展,ASIC技术的日趋进步和完善,数字系统的硬件设计正朝着速度快、体积小、容量大、重量轻的方向发展。
目前大部分密码锁采用单片机进行设计,电路比较复杂,性能不够灵活。
而硬件描述语言VHDL的出现,则为设计者提供了一种用形式化方法来描述数字系统硬件电路的方法。
VHDL具有强大的系统描述能力、规范的程序设计结构、灵活的语句表达风格和多层次的仿真测试手段。
VHDL使得设计者可以进行更大、更复杂的数字系统的设计。
本文采用先进的EDA技术,利用QUARTUSⅡ工作平台和VHDL语言,设计了一种新型的密码锁。
该密码锁具有密码预置和误码报警等功能,保密性好,远远大于以往的密码锁,使随机破译成功率几乎为零,编码可变,避免因人员的更替而使锁的保密级别下降且有利于用户编制易于记忆的密码,因而该数字密码锁具有体积小、功耗低、价格便宜、安全可靠,维护和升级都十分方便等优势。
1.2课程设计目的
1.掌握VHDL语言编程方法,通过实践加深对理论知识的理解。
2.学会QuartusⅡ软件的使用方法。
3.掌握数字密码锁的设计方法。
4.掌握波形仿真,学会分析实验现象,提高分析问题的能力。
1.3课程设计内容
设计一个数字密码锁,用户可输入4位的二进制数,可有用户任意输入正确时开锁,密码输入错误时报警.码可手动预置,并可进行修改密码,取消报警。
给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。
2数字密码锁设计
2.1系统设计
根据系统的设计要求,系统设计采用自顶向下的设计方法。
顶层设计采用原理图的设计方式和系统的整体组装,分别由控制模块、寄存器模块、比较器模块等部分组成。
即按照这三个组成模块定义相应的芯片引脚和输入输出的参数。
2.2模块功能
根据“自顶而上”的设计方法,将系统顶层实体划分为若干模块,本实验大体可分为三个模块,分别为:
顶层实体控制器模块,寄存器模块,比较器模块。
控制器是整个系统的功能核心,接受按键和其他模块传来的信号,再根据系统功能产生相应的控制信号送到相关的模块,输出钥匙信号和报警信号。
2.2.1控制模块
控制模块采用有限状态机设计,将系统分为7个状态,即开锁状态(outlock)、安锁状态(inlock)、输入密码状态(input)、密码初验正确状态(right)、密码初验错误状态(wrong)、报警状态(alarm)、修改密码状态(change)。
状态转移图如图2-2-1。
enter=’0’
enter=’0’
lock=’0’
enter=’0’
enter=’0’
图2-2-1状态转移图
系统上电时,处于开锁状态,当输入修改密码xiu信号时,系统进入修改密码状态;若输入安锁lock信号,系统进入安锁状态,锁闭合:
在安锁状态,输入输入密码start信号,系统进入输入密码状态;在输入密码状态,如输入密码内容和长度均正确,进入密码初验正确状态,如果密码错误,进入密码初验错误状态;在密码初验正确状态,输入确认信号enter时,进入开锁状态,在开锁状态kai信号等于‘1’;在密码初验错误状态,输入确认信号enter时,进入报警状态;在报警状态。
warn信号等于‘1’。
VHDL代码如下:
libraryieee;
useieee.std_logic_1164.all;
entitymimais
port(clk,lock,start,xiu,enter,yes:
instd_logic;
warn,kai,wr,en:
outstd_logic);
end;
architecturebhvofmimais
typestateis(inlock,input,rightx,wrong,unlock,change,alarm);
signalps,ns:
state;
begin
process(clk)
begin
ifclk'eventandclk='1'then
ps<=ns;
endif;
endprocess;
process(ps,lock,start,xiu,enter,yes)
begin
casepsis
wheninlock=>kai<='0';en<='0';warn<='0';wr<='0';
if(start='1')thenns<=input;
elsens<=inlock;
endif;
wheninput=>en<='1';kai<='0';warn<='0';wr<='0';
if(yes='1')thenns<=rightx;
elsens<=wrong;
endif;
whenrightx=>en<='0';kai<='0';warn<='0';wr<='0';
ifenter='1'thenns<=unlock;
elsens<=rightx;
endif;
whenwrong=>en<='0';kai<='0';warn<='0';wr<='0';
ifenter='1'thenns<=alarm;
elsens<=wrong;
endif;
whenunlock=>kai<='1';warn<='0';en<='0';wr<='0';
iflock='1'thenns<=inlock;
elsifxiu='1'thenns<=change;
elsens<=unlock;
endif;
whenalarm=>warn<='1';kai<='0';en<='0';wr<='0';
ifenter='1'thenns<=inlock;
elsens<=alarm;
endif;
whenchange=>en<='1';warn<='0';kai<='1';wr<='1';
ifenter='1'thenns<=unlock;
elsens<=change;
endif;
endcase;
endprocess;
end;
2.2.2比较模块
在数字密码器中,比较器模块的功能是对按键输入和寄存器模块的输出进行比较,然后将比较的结果送入到控制器模块。
比较器的具体工作原理是:
当比较结果相等时,c输出为1;当比较结果不相等时,c的输出为0。
VHDL代码如下:
libraryieee;
useieee.std_logic_1164.all;
entitybiis
port(a,b:
instd_logic_vector(3downto0);
c:
outstd_logic);
end;
architecturebhvofbiis
begin
c<='1'whena=belse'0';
end;
2.2.3寄存模块
寄存器模块用于存放预设和修改后的密码,并在开锁时将所存密码输出到比较器与按键输入的密码进行比较,判断由按键输入密码是否正确的结果。
VHDL代码如下:
libraryieee;
useieee.std_logic_1164.all;
entityjiis
port(clk,wr,en:
instd_logic;
data_in:
instd_logic_vector(3downto0);
data_out:
outstd_logic_vector(3downto0));
end;
architecturebhvofjiis
signalm:
std_logic_vector(3downto0);
begin
process(clk)
begin
ifclk'eventandclk='1'then
if(en='1'andwr='1')then
data_out<=data_in;
m<=data_in;
elsedata_out<=m;
endif;
endif;
endprocess;
end;
3仿真分析
3.1控制模块的仿真
控制模块是系统的核心,其仿真波形如图3-1所示。
各端口功能如下:
输入信号:
clk输入时钟,lock安锁信号,start开始输入密码,xiu修改密码,enter密码确认,Yes密码比较。
输出信号:
warn警告信号,kai密码正误显示信号,wr寄存器读写信号,en密码输入使能。
图3-1控制模块仿真波形
图3-1控制器仿真波形
波形仿真分析:
起始初始密码为“0000”,安锁后锁关闭kai信号为‘0’;开锁时,按下start开锁键,密码比较yes信号为‘1’有效,输入密码正确,按下enter确认键,锁开,锁开标志信号kai为’1’;开锁状态下,按下xiu修改密码键,输入新密码后按确认键start,密码修改成功,再按下lock安锁,此时密码为新输入密码;按下输入密码键start输入密码键若输入密码错误,按下确认键enter后,报警warm信号有效。
2.2比较模块的仿真
比较器模块的工作原理是:
当比较结果相等时,输出为1;当比较结果不相等时,输出为0。
其仿真波形如图3-2。
各端口功能如下:
输入信号:
a按键输入的密码,b寄存器储存的密码。
输出信号:
c按键输入与寄存器的密码是否相等。
图3-2比较器仿真波形
波形仿真分析:
起始寄存器输出密码为“0001”,键盘输入为“0101”时不相等,所以输出c为0;当寄存器输出密码为“0011”,键盘输入为“0011”时相等,所以输出c为1,其他与此相同。
3.3寄存模块的仿真
开锁时将所存密码输出到比较器与按键输入的密码进行比较,达到判断由按键输入密码是否正确的结果。
图4是寄存器模块的仿真波形。
图3-3寄存器仿真波形
波形仿真分析:
当使能信号en和wr都有效时,将data_in输入的信号存储到寄存器中,无论输入信号data_in为多少,输出信号data_out都为寄存器所存内容。
其他情况下,输出data_out信号,不随data_in输入改变。
3.4系统的仿真波形
图3-4系统仿真波形
波形分析:
上电后,系统的初始密码为“0000”,按下start键由键盘key输入密码“0000”,输入密码正确按确认键enter键锁开按,锁关闭开锁输出标志信号kai无效为1,显示开锁;在开锁状态下按xiu修改密码键后,由键盘key输入新密码0001后按确认键enter密码修改成功,按lock键密码锁上锁,此时密码锁密码为新密码;若按下start键后输入的密码错误如图“1111”与密码锁密码“0000”不同,warm报警信号有效,锁不开且报警。
若按下start键后输入的密码正确如图“1111”与密码锁密码“1111”相同,kai开锁信号有效,锁开且不报警。
顶层文件VHDL代码如下:
libraryieee;
useieee.std_logic_1164.all;
entitytopis
port(clk,lock,start,xiu,enter:
instd_logic;
key:
instd_logic_vector(3downto0);
warn,kai:
outstd_logic);
end;
architecturebhvoftopis
componentmimais
port(clk,lock,start,xiu,enter,yes:
instd_logic;
warn,kai,wr,en:
outstd_logic);
endcomponent;
componentjiis
port(clk,wr,en:
instd_logic;
data_in:
instd_logic_vector(3downto0);
data_out:
outstd_logic_vector(3downto0));
endcomponent;
componentbiis
port(a,b:
instd_logic_vector(3downto0);
c:
outstd_logic);
endcomponent;
signald,e,g:
std_logic;
signalf:
std_logic_vector(3downto0);
begin
u1:
mimaportmap(clk=>clk,lock=>lock,start=>start,
xiu=>xiu,enter=>enter,yes=>g,kai=>kai,
warn=>warn,wr=>d,en=>e);
u2:
jiportmap(clk=>clk,wr=>d,en=>e,data_in=>key,data_out=>f);
u3:
biportmap(a=>key,b=>f,c=>g);
3.5系统的引脚锁定
如图3-5所示:
图3-5引脚锁定表
4总结
通过这次的课程设计,使我对EDA这门课程、对QuartusⅡ开发软件和FPGA实验开发系统有了一个更加深刻的认识。
我深深地被EDA的强大所震撼,QuartusⅡ开发软件虽然使用起来有些麻烦,但它的功能真的很强大,而且设计很自由,设计方式很多,能极大地满足当今社会高速发展的需要。
通过这次课程设计,我还懂得了理论与实际相结合的重要性。
我们只有把所学的理论知识与实践相结合起来,从实践中检验理论,才能真正为社会服务,并且我们也可以在实践中提高自己的实际动手能力和独立思考的能力,使自己更加适合当今社会的需要。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA4 数字 密码锁