摘 要:
对于以FPGA为基础的密码锁而言,应该依次采用EDA技术,同时辅以VHDL语言对其进行一系列的更改,解锁及其显示。实际上,VHDL能够作为编程逻辑器件投入使用,其中,主要包含大容量CPLD以及FPGA的实际应用。假如运用之前的布尔方程或端口级描述技术,很难迅速,高效地实现它们。VHDL易于大电路的设计,而且很快,它是一种尺度的语言,其设计描述可以经过各类用具来支持,并且可以用不同的配置来实现。在本篇论文中,所设计的密码锁就是如此,通过利用VHDL自上依次向下的方式,完成细致设计。由此而设计出的密码锁,通常表现为小体积与高能效,无须耗费相对较高的生产成本,就能有效降低实际电能损耗,后期维护也相对简单。
关键词:密码锁;FPGA;VHDL;EDA技术。
The FPGA-Based Design of Electronic Combination Locks
Abstract:
For FPGA-based cipher locks, EDA technology should be used in turn, with a series of changes, unlocking and display in VHDL language. In fact, VHDL can be put into use as a programming logic device, which mainly includes large-capacity CPLD and FPGA practical applications. If you use the previous Boolean equations or port-level description techniques, it is difficult to implement them quickly and efficiently. VHDL is easy to design for large circuits, and very quickly, it is a scale language whose design description can be supported by various tools and can be implemented in different configurations. In this paper, the design of the password lock is the same, through the use of VHDL from the top down, the detailed design. The password lock thus designed is usually small in size and high in energy efficiency, and can effectively reduce the actual power loss and the maintenance is relatively simple without requiring relatively high production cost.
Key Words: Password lock; FPGA; VHDL; EDA technology.
目录
摘 要: 1
Abstract: 2
1 绪言 4
1.1 设计基础 4
1.2 设计的意义 4
1.3 设计的目的 5
2 电子密码锁的介绍 5
2.1 FPGA的相关介绍 5
2.1.1 FPGA的简介 5
2.1.2 FPGA的优势 6
2.1.3 FPGA的使用 6
2.1.4 可编程逻辑器件 7
2.2 基于FPGA设计的硬件描述语言VHDL 8
2.2.1 VHDL 介绍 8
2.2.2 VHDL 的优点 8
2.2.3 VHDL 的结构 9
2.2.4 VHDL 的使用 9
2.2.5 VHDL 的流程 9
3 系统方案 9
3.1 系统功能 9
3.2总体设计 10
3.2.1 原理框图 10
3.2.2 设计原理 10
4 设计与仿真 10
4.1 硬件实现 10
4.2 主要功能模块的设计 10
4.2.1 密码锁输入电路 10
4.2.2 密码锁控制电路 12
4.3 软件设计 13
4.3.1 控制流程 13
4.4 仿真结果 13
5 总 结 13
1 绪言
在本篇设计中,主要通过可编程器件,针对电子密码锁进行更深层次的细致设计,并着重阐述了其在近期的研究现状与未来的发展方向,此外,本文还指出电子密码锁在当前时期存在的一系列问题,给予了相应的改进方案。
1.1 设计基础
基于FPGA的电子密码锁,有自动识别技术,电子设备,机械,计算机技术,通信技术,它结合了最新的管理工具,包括最新的技术,比如生物技术,安全管理等问题的最新的安全管理系统是解决的有效手段。这个问题的主门口打交道,银行,酒店,计算机房,武器储藏室,一个秘密的地方,办公,无线城市,工厂,家庭等,将被应用到各种环境中。
目前,大多数电子密码锁采用单芯片技术,单芯片为主设备,编码器和解码器由软件生成。然而,在现实生活中,由于编程相对简单,无法实现有效的操控,难以保障体系的良好可靠性[1],故此,以FPGA为基础的电子密码锁,在诸多领域中,获得了相对广泛的实际应用。电子密码锁的运用不像古代的机械锁,它拥有复杂密码而且提高了安全性。因为使用可编程逻辑FPGA,系统就变得非常灵活,随时能够更新换代,让我们所做的设计更加完美。另外主机FPGA可以固化成ASIC,可以当作特别的数字代码锁芯片使用。因为硬件能够更新换代,可以加多密码数目,而且还能够随时增添新功能,让密码锁更安保全面,靠得住,还更方便[2]
1.2 设计的意义
这些电路设计,微控制器的设计改为FPGA,电子密码锁的设计通过以下方式实现,使用VHDL语言。这类策划能够轻便转移,基于FPGA的电子密码锁是隐秘的,高度变通的。在密码输入过程中几乎在键盘上输入密码。当用户输入错误的密码时,系统将发出警报声,扬声器会响5秒钟。当密码持续三次不准确时,体系会长时报警,务必重置遏制。由此而设计出的密码锁,通常表现为小体积与高能效,无须耗费相对较高的生产成本,就能有效降低实际电能损耗,后期维护也相对简单,能够得到良好的发展。与古代锁相比,它选取可编程逻辑器件达成体系策划。使用简单明了的VHDL语言实现设计和编程思想,并创建及时,智能的控制和管理功能,尤其是在系统开发中。
1.3 设计的目的
系统的关键问题是硬件和软件,一般情况下,硬件应该针对FPGA可编程器件等元件,进行适度的调整。对于以FPGA为基础的电子密码锁编程来说,最为关键的问题,在于其是通过FPGA来实现。另外,程序务必经过扬声器实现根本密码锁定功效和持久报警功效,并拥有按键显示,输入失误,有用密码显示,掌控开释,控制报警等功能。它安全,易于连接,易于使用,紧凑,特别易于扩展。
2 电子密码锁的介绍
典型的电子密码锁电路,主要细分为三大部分:其中,主要包含数字密码输入及其密码锁显示,此外,还包含密码控制。
(1)对于密码锁输入电路而言,其主要涉及到时间发生及其键盘弹跳消除等;
(2)密码控制电路用于排除,替代,保存和激活密码的电子锁定电路,密码检查电路, 按键电路等小功能电路;
(3)密码显示电路主要将BCD码转换成相应的代码。当数字显示电路为7段时如果选中,将显示的BCD代码将转换为数字设备的7段显示驱动器码[3]。
2.1 FPGA的相关介绍
2.1.1 FPGA的简介
FPGA主要在PAL,EPLD及其多样化可编程器件的基础上,进行持续改进,而形成的产品。这是一种涌现在现场运用ASIC中的半定制电路,不单处理了定制电路的漏洞,还战胜了有限数目的原始可编程器件电路的弊端。FPGA主要遵循逻辑单元阵列LCA的基本定义,在此阵列中,主要含有能够实现配置的逻辑模块CLB.输入输出模块IOB和内部接线三部分。
的基本特点主要有:
①选用FPGA策划ASIC电路,用户很容易得到可利用的芯片。
②FPGA可做为ASIC电路的导频采样。
③FPGA具备很多的触发器和引脚。
④ 对于ASIC电路而言,最为关键的元器件即为FPGA。
⑤ FPGA通常应用高速CHMOS技术,能够同时兼容CMOS及其TTL电平。
近年来,多元化模板的FPGA应运而生,例如:XILINX模板、TI系列及其ALTERA等。因为由存储在内部RAM中的程序设置,于是务必在运行期间对内部RAM进行编程。用户能够依照设备的形式使用各种有差别的编程技术手段。当启动电源的过程中,FPGA芯片会利用RAM,读取相应的EPROM数据,一旦配置已经完成,FPGA将会立刻进入操控状态。当电源关上时,FPGA切换到R切片,其中逻辑关系退散,能够反复采纳。FPGA编程不需要额外的FPGA编程器。如果还需要更改FPGA功效,则换一个EPROM就行。FPGA有多种模式,并行模式用PROM编译多个FPGA,在串行模式下PROM能够用来编程FPGA外设模式,FPGA用作微处理器外设,可实现微处理器编程[6]。
2.1.2 FPGA的优势
现如今,中国科技正在不断蓬勃发展,以FPGA为基础的相关设计,逐渐趋向于高度的集成化与速度化,并伴随着相对广阔的实际应用范围。其中,通过T型FPGA而实现的诸多技术,主要基于下述方面进行发展[7] :
(1)性能越来越高
(2)稳定性好
(3)便于长期维护
(4)上市限制多,能够解决
(5)开发周期短
因为FPGA含有相对丰富的资源,能够具备卓越的EDA软件功效和极为良好的仿真功能,故此,其所接触到的硬件成分将会相对直接。此外,大规模FPGA设置计划的将来仅仅是几种不同类型的逻辑多路复用和IP内核。通过CORE连合,TI认为ASIC 80功能可以与IP内核逻辑集成,以便实现繁琐的系统设计。
2.1.3 FPGA的使用
FPGA分为系统设计和设计实现两部分。若系统解决方案为输入,经过RTL级描述,功效仿真,逻辑归纳,布线前门级仿真,符合FPGA的设计芯片由一系列过程完成,比方分布,时序仿真,时序分析,器件编程和系统验证。设计流程如图2.1所示。须要注意的是,若是模拟验证偏差或某个顺序错误,则需要检验和修正位置。在必要查验和更正的位置,有RTL级别描述,体系方法,管制和监测激励。在修改之后,务必再次完成这个过程。偶尔必需重复修改,最后的设计可以在经由多次修改后完毕。理论上,运用VLS1的策划被描述为6级,即系统级,算法级,RTL级,门级,电路级,布局级。
在FPGA设计的环境下,不用探究电路级别和构造级别,仅考虑操作域描述和系统级域描述,算法级别RTL级别和门级别。FPGA中是指系统级别和算法级别,“RTL级别描述”是指RTL级别行为字段的描述。门级基于FPGA设计过程而涉及到的硬件描述语言,将会于VHDL形成的门级网表中进行细致描述。
2.1.4 可编程逻辑器件
数字电子系统有三种设备:存储器,微处理器和逻辑设备存储器用于存储任意信息,例如数据表和数据库的内容。处理器实行软件指令以执行各类职责,假如逻辑设备供应视频编纂和视频游戏程序,供应少许功用,囊括配置衔接,数据通信,信号处理,数据显示,时间控制,以及系统运输[4]所需要的所有其他功能。
逻辑器件分有固定逻辑器件和逻辑器件。由于它们的名称,器件内逻辑电路仍然存在,它们解决了一个或一组功能,并且在完成时不能改变,而可编程逻辑器件是一种标准产品,可以为客户提供各种逻辑容量,特性,速度和电压参数。此外这种装置可以随时更换[5],执行不同的功能。
同时设计人员可以运用便宜的软件工具讯速开拓,仿真和测试他们的设计,继而赶紧将设计编程到器件中并即刻在现实电路中测试设计。原本配置中运用的可编程逻辑器件是与终极器件的末了出产使用的可编程逻辑器件同等。一旦设计完成后,客户可以马上投入生产,只需操纵PLD即可轻易编写结尾文档设计文件。。
2.2 基于FPGA设计的硬件描述语言VHDL
2.2.1 VHDL 介绍
VHDL从高于逻辑级的抽象电平描述硬件的功能、信号衔接关联和时序关联。与此同时,根据体系表现出的行为及其功效的实际需求,由上至下依次进行描述程序、综合程序、优化程序、仿真程序和验证程序,通过生成器件,来切实推进电子的自动化进程。其中,EDA的本质为硬件描述语言,着重针对硬件电路,进行深入的描述。实际上,VHDL语言的特征为从整体到局部,能够对硬件进行细致的描述。在20世纪80年代,西方发达国家美国将其调整为当前时期的HDL,并受到了IEEE的认可。VHDL能够支持硬件实现策划工作、验证工作、综合工作与测试工作,并能有助于多样化硬件设计数据的彼此交换与维护,具备描述能力强、生命周期长、 提供大规模设置策划分解和现有设计的重用等优点[8]。程序结构的特点是将电路模块或体系划分为端口和体系内的功用算法。凡是体系内的功用算法完成,另一个体系能够在不了解布局的情况下基于外部端口调用电路模块或数字系统。他们的内部算法.VHDL使“自上而下”设计系统的新设计技巧更容易实现[9],首先对整个系统进行设计,根据功能划分为多个龟元模块,然后对每个龟元模块进一步细分,直至简单实现单元电路。
2.2.2 VHDL 的优点
不同于其他硬件描述语言来说 , VHDL 语言具有6个优点[10]:
(1)VHDL语言能够使用‘自上而下’和‘库基’的设置策划方式,也能够设计FPGA;
(2)VHDL语言主要基于数学模型,逐步过渡至门级电路,协同针对硬件含有的相关功能,进行细致描述;
(3)VHDL的描述比较标新立异;
(4)VHDL具备电路仿真与查验的效用,能够确保策划的正确性。用户可以在源代码级调试,而且无需编写怎么样检测尝试。设计者能够十分方便地对比各类计划的可行性及优缺点,不需做任何电路试验;
(5)VHDL语言可以独立编程;
(6)VHDL语言规格高、简于享用和使用。
2.2.3 VHDL 的结构
VHDL根据五个元素组成即配置包和库[11],详细描绘以下:
(1)物理实体的描述部分用于判辨设备的外观,即从设备外部看到的外观,包含设备端口。
(2)结构是描述设备和辅助单元的内部视图。结构讲述了结构和行为策划的输入和输出之间的关联。这种设计可以有多种配置,代表设备的不同实现。
(3)库是必须始终为设计单元解释的已编译实体,结构,包和配置的集合。在声明之后,库中的数据对于设计单元是可见的,并且它们共享编译结果。
(4)包集合是库中的层次结构。用户可以构造包来存储在编译时自动添加到工作库的常量,数据类型,函数和过程。
(5)配置语句被安置在库中以编辑标志并具有相应的配置称号。
2.2.4 VHDL 的使用
VHDL含有相对较强的硬件描述功能,并能进行多元化的设置[12]。除此之外,基于EDA器件的辅助,将能逐一层级的实现模拟验证,通过利用归纳工具,在一定的情况下,还能将电路改善为相应的门级电路网表。随后,通过改善网表,能够形成专用电路布线布局,这就意味着,专用集成电路亦或为FPGA,均能进行自主实现。现如今,通过运用VHDL,能够有效解决EDA方案,并且有助于繁杂数字体系的细致设计[13]。
2.2.5 VHDL 的流程
3 系统方案
3.1 系统功能
对于本系统而言,其所涉及到的主电路电子锁基本框图,主要以可编程逻辑器件为基础,此外,还单独配备了硬件电路,能够实现设置及其识别等多项功能,能够实时检测驱动电流值。假如密码不准确,操作员能够再输入密码三次;要是密码不正确,则FPGA会发生报警。此时,FPGA将锁定操作和电磁制动器的驱动电流值当作状态信息发送给监视器,并将接口接纳的告警信息发送给监视器。
3.2总体设计
3.2.1 原理框图
该系统主要包含主控芯片、键盘及其报警电路等,其中,主控芯片通常细分为三大部分,其中,主要包含按键部分及其显示部分,此外,包含调节部分。
3.2.2 设计原理
现场可编程门阵列(FPGA)用于设计,首要完成键盘处理,数字显示,密码设置,解密和开门,报警控制等逻辑功能。系统有13个按钮,包含0 - 9个数字键和1个确认按钮,1个警报重置按钮,1个清除按钮。将管移到左侧。您无需输入更高阶的零。因此,密码可以是1到8位数。初始密码为0。换句话说,启动后按确认按钮打开门。打开门后,您可以通过锁定按钮关闭门。如果用户输入了错误的密码,系统会发出警报,连续三次发生密码错误,系统发出警报提醒用户需要重置按钮。
4 设计与仿真
4.1 硬件实现
电子密码锁分为键盘扫描,键值收集,数字显示,密码设置和解码重置五个模块:
4.2 主要功能模块的设计
4.2.1 密码锁输入电路
(1) 定时发生电路定时发生电路使用三种不同的工作频率脉冲波形:系统时钟脉冲(它是系统中所有时钟脉冲的源,频率最高),跳动消除采样信号和键盘扫描信号,当体系发出要使用工作频率,则用一个计数器产生所需的频率,即首先设置一个其他位计数器N,N的大小根据电路的需要确定,较大的N的值,电路分配的频率越高。假设输入时钟表现为CLK,则对于N位计数器而言,其实际输出应该表现为Q [N-1 . 0]。其中,(0)主要代表CLK除以2而形成的脉冲信号,Q(1)主要代表CLK除以4而形成的脉冲信号,Q(2)主要代表8N脉冲信号,CLK主要代表0(N-1)2N脉冲信号,此外,CLK;Q(5 DOWNTO 4)是一系列脉冲波形,其值取决于00-01-10-11-00-01以32除以CLK的频率周期性变化。
(2) 键盘扫描电路的功能是给键盘扫描信号,扫描信号按照1110-1101-1011-0111-1110 …的顺序改变,并重复该序列。规定不同的扫描信号,并扫描不同的键盘按钮。每次扫描一行按钮时,检查按钮是否被按下。倘诺未按下该行,则忽略该按钮。当按下按钮时,执行按钮编码操作,并将结果存储在寄存器中。
(3)键盘解码电路位于密码输入开关中,键分为数字键和文本键,每个键可以担任各种功能,如删除键,锁键和解锁键,数字键关键用于输入数字。然而生成的键盘的输出不能直接用作密码锁定电路的输入,由于不同的键具有不同的功能,于是必需应用键盘解码电路来规划每个按钮的输出形式。相应的动作,键盘解码电路基本上将相应的键盘值设置为要使用的功能键,主程序如下:
Z<= K_POS & C;
WHEN " 0001 1 " - > N < = " 0001 " ;
WHEN " 001 0 I " - > N < = " 001 0 " ;
WHEN " 00110 " - > N < = " 0011 ";
WHEN " 010 11 " - > N < = " 0100 ";
WHEN " 0 1 1 0 1 " = > M < = " 0 1 0 1 ’ " ;
WHEN " 0 1 1 1 0 " - > Nc = " 0 1 1 0 " ;
WHEN " 10011 " = > N < = " 011 I ";
WHEN " 1 0 1 0 1 " - > N < = " 1 000 " ;
WHEN " 10110 " - > N < = " 1001 " ;
WHEN OTHERS = > N < = " 1 1 1 1 " ;
END CASE;
END IF;
IF K SRCLK ’ EVENT AND K SRCLK = ’ I ’ THEN
CASE Z IS
WHEN " 1 1 0 1 1 " - > F < = " 01 00 " ;
WHEN " 1 1 1 1 0 " - > F < = " 0001 " ;
WHEN OTHERS = > F < = " 1000 " ;
END CASE;
END IF;
(4)电子密码锁高灵敏度的电路很可能是由于输入不正确而导致的,从而影响了密码锁操作的正确性。弹跳现象是由于,虽然每次只有按钮被按下然后释放,但实际上是产生的,按钮信号并不知道它必须被击败一次,在采样信号控制之后,它会误判该键盘已被按下两次。
因而,须要增加反弹消除电路以避免故障信号。关键是要注意反弹抑制电路使用的脉冲信号的频率务必高于其他电路使用的脉冲信号的频率。通常情况下,扫描电路在正常工作状态下的频率保持在24Hz,据此能够得知抖动消除电路在正常工作状态下的频率。
4.2.2 密码锁控制电路
控制电路一般包含控制数字按键输入及其相应的功能键输入两大部分。
1.数字按键输入响应控制
⑴ 按数字键,就显示器的最右端显示第一个数。之后,每次按下新数字时,显示屏上的数字必须向左移动一个空格以显示新数字。
⑵ 要更改输入的号码,请按返回键清除以前的输入号码,或按清除键清除所有来电号码并重新输入4位数字。
(3) 如果输入的数字键超过了预设的位数,该键将被忽略,下一位数字将不会显示。
2.功能按键输入的响应控制
(1)清除键:清除所有输入数字。
(2)激活电锁键:按下按键,密码锁被锁定。
(3)解除电锁键:通过操作该按钮,能够确定密码的正确性。
使用电子密码锁时,仅使用三种工作模式。在输入文本模式下,使用数字小键盘,但在锁定和解锁两种模式下,必须使用功能键,但实际上存在错误。当出现按键时,使用“清除输入”功能的可能性很大,因此在设计中设置了两个功能键,“触点锁定”和“清除锁定”共用一个功能键和一个功能键我在做。“启动电锁”。
4.3 软件设计
4.3.1 控制流程
当用户正确输入密码,点击确定时,门将会开启,在此期间,通过输入并且设置八位新密码,能够看到末位密码为右侧。当输入单个数字的过程中,数码管表面的密码,将会实时左移一位,当处于高位时,则不输入,只能为1至8位。
4.4 仿真结果
4.4.1 去抖模块的仿真
输入信号KEY_IN [2…0],将基于周期性,根据011-101-110-011-101的依次顺序,针对键盘进行相应的循环扫描。在此过程中,假设操作键盘,就能实时扫描并且输出信号CLK_SCAN,从而实现响应。
4.4.2 密码锁控制电路的仿真
4.4.3 系统整体仿真
设置新的密码区域(首先输入密码“1234”,然后按锁定按钮激活电锁并输入通用解锁密码“8888 ”,最后按解锁按钮解锁。)首先输入密码“1234”,然后按锁定按钮激活电锁,然后输入解锁密码“1234”。最后按解锁按钮解锁,仿真图显示密码控制电路设计正确。
5 总 结
对于该系统而言,最佳优势在于能够针对全部单元电路,进行相应的调试。每个单元电路都是完整的,使用特殊的仿真工具来运行仿真功能。在确认每个单元电路没有问题,然后对整个系统进行调试,这可以节省大量时间。由于数量,成本等因素的影响,设备性能仍然不足,需要加以解决(1)增加语音播报功能,提高设备灵敏度,促进用户操作;(2)将蜂鸣器警报添加到语音命令中,可以根据输入的密码进行显示。与此同时,关键的安全功能可以扩展。
对于该系统而言,最主要的创新点如下:
(1)根据测试结果分析,该设备采用成本较低的设备进行设计制造,误差小,完全满足用户的基本要求。
(2)该装置结构简单,体积小,性能稳定,操作方便,使用方便的优点,可安装在不同的门上,具有一定的促销和应用价值。
(3)该系统将电子锁系统与最有前途,安全可靠的FPGA设计结合在一起,具有高科技和易于扩展的内容。