基于FPGA的电子密码锁的设计.docx
- 文档编号:14854251
- 上传时间:2023-06-27
- 格式:DOCX
- 页数:26
- 大小:211.26KB
基于FPGA的电子密码锁的设计.docx
《基于FPGA的电子密码锁的设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的电子密码锁的设计.docx(26页珍藏版)》请在冰点文库上搜索。
基于FPGA的电子密码锁的设计
基于FPGA的电子密码锁的设计
题目基于FPGA的电子密码锁的设计
学院
专业班级
学生姓名
指导教师
摘要
随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
电子密码锁与普通机械锁相比,具有许多独特的优点:
保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。
用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。
本文采用EDA技术,利用QuartusII工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。
关键词:
电子密码锁FPGA硬件描述语言EDA
Abstract
Withthedevelopmentofelectronictechnology,electronicpasswordlockwithburglaralarmandotherfunctionsreplacinglesspasswordandpoorsecuritymechanicalcodelockisaninevitabletrend.comparedelectronicpasswordlockwithordinarymechanicallocks,ithasmanyuniqueadvantages:
confidentiality,andsecurityinnature,donotusethekey,rememberpasswordcanunlockitetc.MostelectronicpasswordlocksweusednowisbaseduponSCMtechnology,SCMisitsmainlydevice,andthecreatingofencodinganddecodingdevicesisthefashionofSoftwaremode.Inpracticalapplication,thereliabilityofthesystemmaybeworsebecauseofeasyrunningflyoftheprogramme.
ThispapermainlyexpatiatesadesignmethodofelectronicpasswordlockbaseduponFieldProgrammableGateArraydevice.WeuseFPGAdevicestoconstructsystem,allofthealgorithmentirelyachievedbythehardwarecircuit,becauseofFPGAhasthefunctionofISP,whenthedesignneedstobechangedWeonlyneedtochangethecontrolandinterfacecircuitofFPGA,EDAtoolsareusedtodownloadtheupdateddesigntoFPGAwithoutchangingthedesignoftheexternalcircuit,thisgreatlyenhancetheefficiencyofthedesign.Therefore,weuseFPGAtoempolderthedigitalsystemhasnotonlyhighreliabilitybutalsoextremelyconvenientofupgradingandimprovement.Inthispaper,weuseEDAtechnology,QuartusIIplatformandhardwaredescriptionlanguagedesigninganelectronicpasswordlock,anditachievedthroughanFPGAchip.
Keywords:
electronicpasswordlockFPGAhardwaredescriptionlanguageEDA
目录
摘要----------------------------------------------------------------------------------------------------------------------I
Abstract------------------------------------------------------------------------------------------------------------------II
第1章绪论-----------------------------------------------------------------------------------------------------------1
1.1国内外现状及其发展-------------------------------------------------------------------------1
1.2电子密码锁的系统简介----------------------------------------------------------------------1
1.3系统设计要求----------------------------------------------------------------------------------2
1.4本课题的研究目的和意义-------------------------------------------------------------------2
第2章现场可编程门阵列FPGA------------------------------------------------------------------3
2.1FPGA的基本结构---------------------------------------------------------------------------3
2.1.1可配置存储器-------------------------------------------------------------------------------3
2.1.2可配置逻辑块(CLB)----------------------------------------------------------3
2.1.3输入/输出块(IOB)---------------------------------------------------------------------3
2.1.4可编程内部连线(PI)------------------------------------------------------------------4
2.2FPGA的设计流程-----------------------------------------------------------------------------4
2.3VHDL硬件描述语言-----------------------------------------------------------------------------------4
第3章电子密码锁的设计与仿真---------------------------------------------------------------------------5
3.1硬件设备----------------------------------------------------------------------------------------5
3.2密码锁输入电路-------------------------------------------------------------------------------5
3.3密码锁控制电路-------------------------------------------------------------------------------8
3.4系统有关编译和仿真-------------------------------------------------------------------------8
结论11
参考文献12
致谢13
附录14
第1章绪论
1.1国内外现状及其发展
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。
在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用[1]。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式[2]。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
1.2电子密码锁的系统简介
通用的电子密码锁主要由三个部分组成:
数字密码输入电路、密码锁控制电路和密码锁显示电路。
(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。
(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。
(3)密码显示电路主要将显示数据的BCD码转换成相对应的编码。
如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。
1.3系统设计要求
设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:
(1)数码输入:
每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。
(2)数码清除:
按下此键可清除前面所有的输入值,清除为“0000”。
(3)密码更改:
按下此键时会将目前的数字设定成新的密码。
(4)激活电锁:
按下此键可将密码锁上锁。
(5)解除电锁:
按下此键会检查输入的密码是否正确,密码正确即开锁。
1.4本课题的研究目的和意义
随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。
现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。
FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。
通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。
相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。
通过本次设计掌握FPGA系统设计的方法,熟悉FPGA设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用FPGA实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。
第2章现场可编程门阵列FPGA
自1985年Xilinx公司推出第一片大规模现场可编程逻辑器件(FPGA)至今,FPGA已经历了十几年的历史。
在这十几年的过程中,可编程器件有了惊人的发展:
从最初的1200个可利用门,到今天的25万可利用门,规模增大了200多倍;FPGA供应商也从Xilinx的一枝独秀,到今天近20个厂商的分庭抗争;FPGA从单一的基于SRA结构到今天各种结构类型的出现,都充分体现了可编程器件这一巨大市场的吸引力。
2.1FPGA的基本结构
FPGA的发展非常迅速,形成了各种不同的结构。
按逻辑功能块的大小,FPGA可分为细粒度FPGA和粗粒度FPGA。
细粒度FPGA的逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。
2.1.1可配置存储器
FPGA芯片逻辑功能的配置是由按点阵分布于芯片的存储单元——静态存储器(SRAM)实现的,即通过对分布的SRAM的不同加电配置,决定各部分的逻辑定义。
对于FPGA器件编程实现,实际上就是由加载于SRAM上的配置数据决定和控制各个CLB、IOB及内部连线PI的逻辑功能和它们之间的相互连接关系。
加载不同的配置数据,芯片便实现不同的逻辑功能。
配置LCA的数据文件由XACT(XilinxAutomatedCAETools)开发系统产生,通过数据配置方式及相应接口加载于芯片中。
2.1.2可配置逻辑块(CLB)
XC4000系列的CLB具有13个输入、4个输出。
内部由两个独立的四输入逻辑函数发生器、一对触发器和若干个由配置控制的多路转换器组成。
逻辑块的输入输出可以接到外部的可编程连线资源。
两个四输入逻辑函数发生器(输入分别为F1~F4和G1~G4),可以独立提供四输入的任意定义的布尔函数,它们的输出分别为F′和G′。
2.1.3输入/输出块(IOB)
用户可配置的IOB为芯片外部引脚和内部逻辑提供了一个界面,每个IOB控制一个外部引脚,并可定义为输入、输出或双向三种功能。
当IOB定义为输入时,输入信号经Pad进入输入缓冲器,并根据配置可以直接输入,亦可以通过边沿触发器或电平敏感锁存器输入。
当IOB定义为输出时,输出信号可以通过配置选择是否反相,是直接传输到Pad,还是通过边沿触发器寄存后传输。
可以选择用输出使能信号(OE)使输出缓冲器是否为高阻状态,以实现三态输出或双向I/O传输。
2.1.4可编程内部连线(PI)
内部连线由一些具有可编程开关点或开关矩阵的金属线段组成,结构对称、规范,适合于建立自动有效的布局布线算法。
布线通道的数目由阵列规模决定。
2.2FPGA的设计流程
FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图2.4所示。
需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。
有必要检查和修改的地方有RTL级描述、系统方案、约束和测试激励等。
一般情况下,对RTL级的描述即原理图或者HDL设计代码的修改最多也最有效。
修改后要重新走一遍流程。
有时要反复修改,经过多次这样的迭代才能完成最后的设计。
2.3VHDL硬件描述语言
VHDL(VeryhighspeedintegratedcircuitHardwareDescriptionLanguage)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。
VHDL的设计流程如下图。
图2.4VHDL的设计流程
第3章电子密码锁的设计与仿真
通过第一章电子密码锁系统结构的分析,我们知道通用的电子密码锁主要由三个部分组成:
数字密码输入电路、密码锁控制电路和密码锁显示电路。
也就是说,设计分为三个大的功能模块。
图3.1为数字电子密码锁系统总体框图。
图3.1数字电子密码锁系统总体框图
3.1硬件设备
作为电子密码锁的输入电路,数字密码输入电路可采用一个3×4的通用数字机械键盘作为本设计的输入设备。
机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用电子密码锁中还是比较适宜的。
数字电子密码锁的显示信息电路可采用LED数码管显示和液晶屏幕显示两种。
液晶显示具有高速显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其它辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路使用通用的LED数码管。
3.2密码锁输入电路
1.时序产生电路
本时序产生电路中使用了三种不同频率的工作脉冲波形:
系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。
当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。
也就是先建立一个N位计数器,N的大小根据电路的需求决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。
若输入时钟为CLK,N位计数器的输出为Q[N-1..0],则Q(0)为CLK的2分频脉冲信号,Q
(1)为CLK的4分频脉冲信号,Q
(2)为CLK的8分频脉冲信号……Q(N-1)为CLK的2N分频脉冲信号;Q(5DOWNTO4)取得的是一个脉冲波形序列,其值依00-01-10-11-00-01周期性变化,其变化频率为CLK的32分频。
我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。
SIGNALCLK:
STD_LOGIC;--电路工作时钟脉冲
SIGNALC_KEYBOARD:
STD_LOGIC_VECTOR(1DOWNTO0);--键扫信号“00-01-10-11”寄存器
SIGNALC_DEBOUNCE:
STD_LOGIC;--去抖时钟信号
2.键盘扫描电路
扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为1110-1101-1011-0111-1110……依序的周而复始。
扫描时依序分别扫描四列按键,当扫描信号为1110时扫描KY3这一排按键;当扫描信号为1101室,扫描KY2这一排按键;当扫描信号为1011时,扫描KY1这一排按键;当扫描信号为0111时,扫描KY0这一排按键。
每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。
--扫描信号发生器
COUNTER:
BLOCKIS
SIGNALQ:
STD_LOGIC_VECTOR(5DOWNTO0);
SIGNALSEL:
STD_LOGIC_VECTOR(3DOWNTO0);--1110-1101-1011-0111
BEGIN
PROCESS(CLK_1K)IS
BEGIN
IFCLK_1K'EVENTANDCLK_1K='1'THEN
Q<=Q+1;
ENDIF;
C_DEBOUNCE<=Q
(2);--去抖时钟信号,大约125Hz
C_KEYBOARD<=Q(6DOWNTO5);
--产生键扫信号***“00-01-10-11”,大约16Hz
--C_DEBOUNCE<=Q
(1);--仿真时用
--C_KEYBOARD<=Q(5DOWNTO4);--仿真时用
CLK<=Q(0);
ENDPROCESS;
3.弹跳消除电路
由于设计采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到密码锁操作的正确性。
弹跳现象产生的原因是,虽然每次只是按下按键一次然后放掉,然而实际产生的按键信号却不知跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。
图3.2弹跳现象产生错误的抽样结果
如果调整抽样频率,弹跳现象就可以获得改善。
图3.3调整抽样频率后得到的抽样结果
因此必须加上弹跳消除电路,避免误操作信号的发生。
特别要注意的是,弹跳消除电路所使用的脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路的工作频率定在24Hz左右,而将弹跳消除电路的工作频率定在128Hz左右,其工作频率通常是前者的4倍或者更高。
DEBOUNUING:
BLOCKIS
BEGIN
U1:
DEBOUNCINGPORTMAP(D_IN=>KEY_IN(0),D_OUT=>C(0),
CLK=>C_DEBOUNCE);
U2:
DEBOUNCINGPORTMAP(D_IN=>KEY_IN
(1),D_OUT=>C
(1),
CLK=>C_DEBOUNCE);
U3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 电子 密码锁 设计