基于FPGA的电子密码锁设计
1.1 本课题研究的国内外现状及其发展
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
1.2 本课题研究的目的和意义
为了使现在的电子密码锁更能智能化的管理,让人们更能方便的使用,让其具
- 2 -
基于FPGA的电子密码锁设计
有更高的安全性和经济性,针对基于单片机的电子密码锁的不足之处,本文采用EDA技术,利用QuartusⅡ工作平台硬件描述语言,设计一种电子密码锁,并通过一片FPGA芯片实现。采用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片CycloneⅡ上实现。设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进。设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其方便,应用前景十分良好。
- 3 -
基于FPGA的电子密码锁设计
2 关键技术简介
2.1 FPGA硬件设计描述
2.1.1 FPGA的设计流程
FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图2.1所示。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。有必要检查和修改的地方有RTL级描述、系统方案、约束和测试激励等。一般情况下,对RTL级的描述即原理图或者HDL设计代码的修改最多也最有效。修改后要重新走一遍流程。有时要反复修改,经过多次这样的迭代才能完成最后的设计。
在理论上,把VLSI(Ultra Large Scale Integration,超大规模集成电路)的设计描述为6个层次[1,2],即系统级(系统功能、参数定义)、算法级(描述系统功能行为)、RTL级、门级(逻辑门)、电路级(晶体管)、版图级(物理工艺)。每一级又都分3个侧面来描述:行为域描述、结构域描述、物理域描述。但在实际情况中往往把算法级行为域描述或者RTL级行为域描述都称为行为级描述。
- 4 -
基于FPGA的电子密码锁设计
系统设计要求模块划分及其功能描述各模块接口信号定义时序、同步、算法测试等方案系统行为描述系统行为仿真系统设计方案 图2.1 系统设计流程(左边的箭头线太短了,最好和右边对称)
对于FPGA的设计而言,不需要关心电路级和版图级,只考虑系统级、算法级、RTL级、门级4个层次的行为域描述和结构域描述即可。上述的FPGA系统设计中的系统实际上是指系统级和算法级,而“RTL级描述”主要是指RTL级行为域的描述。在门级,由综合工具产生的门级网表来描述。
FPGA的设计流程和相关概念说明如下:
库:指FPGA器件厂家提供的工艺库和EDA工具提供的标准通用库(如IEEE库等)。工艺库中有各种宏功能模块和基本功能单元,含有他们的行为级模型、门级模型、布线模型等信息。
需要说明的是,系统行为仿真和RTL级功能仿真有时要用到某种功能模块,例如RAM模型。对于RAM模型的控制信号,不同的厂家其规定不一定相同,如写使能信号,有的厂家规定高电平有效,有的厂家规定低电平有效。其实,在厂家提供的工艺库中, RAM模型有行为级模型、门级模型、版图级模型等。而行为级模型只是规定其功能,无延时信息,跟工艺无关,但门级模型和版图级模型跟工艺密切相关。解决的方法是系统行为仿真时可以使用高级语言自己建立一个模型或者调用厂家库中提供的行为级模型,功能仿真时调用行为级模型,时序仿真时调用门级模型。
- 5 -
基于FPGA的电子密码锁设计
测试激励:指测试文件,他调用FPGA设计的顶层模块,同时产生顶层模块需要的输入信号,称之为激励信号,使用行为描述即可,不要求可综合。仿真时他作为最顶层的文件,从而可以观察FPGA的输出是否正确。所有的仿真都可使用同一个测试激励。
约束:指对逻辑综合和布局布线时的约束。包括器件型号、速度、面积、功耗、引脚分配、时钟网络资源的分配、模块在器件中的定位等约束。一部分在软件中设置,一部分以约束文件的形式存在。
2.1.2 VHDL语言的基本结构
VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。VHDL的设计流程如2.2图。
总体方案编写HDL代码软件模拟综合:面向FPGA和ASIC网表硬件验证
图2.2 VHDL的设计流程
一个完整的VHDL语言程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)五个部分。
1、实体
实体说明部分是说明一个器件的外观视图,即从器件外部看到的器件外貌,其中包括器件的端口,同时也可以定义参数,并把参数从外部传入模块内部,主要用于描述所设计的系统的外部接口。
2、结构体
结构体是描述一个器件的内部视图,是次级设计单元。在其对应的初级设计单元实体说明被编译并且被并入设计库之后,它就可以单独地被并入该设计库中。结构体描述一个设计的结构和行为,把一个设计的输入和输出之间的关系建立起来。一个设计可以有多个结构,分别代表该器件的不同实现方案。根据对一个器件设计由抽象到具体的过程,可把结构体的描述方式分为三个层次:行为描述方式、寄存器传输描述方式(RTL)和结构描述方式。
- 6 -