基于FPGA的电子密码锁设计
3 系统总体设计
3.1 电子密码锁设计的原理
1、编码总量的确定
电子密码锁随机开锁成功的概率定义为: P=1/NT
其中P为随机开锁成功概率,NT为密码编码总量。显然要使密码锁保密安全性高,NT应尽可能大,使P趋于零,但NT越大,相应电路越复杂,密码的记忆与操作也越麻烦。故NT应有合理的上限和下限。
下限NTL的选择应使密码落在随机开锁可能成功的操作时区以外。若每一次开锁操作时间为t,为便于做随机试验,将NT分为n段并期望在1/n段的1/2处开锁成功。此时
p=1/2n
则随机开锁试验期望成功的时间为: Tr=NT×t/2n
假定系统设计不考虑误码输入的保护,密码锁在无保护的情况下使操作人员任意作随机开锁试验的时间为TEN,则:
NTL=(2n×TEN t)×x,其中x为最低安全系数。即: TEN=(NTL×t/2n)/x
显然若使NT>=NTL,则Tr>TEN,则使分段随机试验不易成功。
由此可得出数字密码锁的编码总量设定是系统设计安全性、保密性的首要技术指标。一般来说,当NT选定之后,NT的上限NTH原则上是越大越安全,但一般设计时取NTH=(10~1000)NTL较为合理。
2、编码制式的选择
编码制式应根据NT的大小选取,可分为如下三种: (1)密码的各位都可以重码:NT1=ai; (2)密码的非相邻位可以重码:NT2=a(a-1)i;
(3)密码的任何一位都不能重码:NT3=a(a-1)……(a-i+1)。
其中a为基数,i为位数,a和i的选取应该满足NT≥NTL , a=2,3,4,10,
- 9 -
基于FPGA的电子密码锁设计
12,14,16。
现在以最常用的a=10,i=6为例,可以计算出NT2=0159NT 1,NT 3=0.15N T1,所以编码制式考虑是否重码对NT有很大影响。
另外,相同制式下不同的基底对编码总量NT会有影响,而且基底的选择也会影响到硬件电路的设计。
本文设计的密码锁采用十进制编码,密码各位允许重码,为简化电路设计,密码锁口令采用对串行脉冲计数的方式输入。
3、误码输入的保护措施
如前所述,电子密码锁的设计应考虑自身的安全保密性,由于编码和捕捉密码的实验都是随机的,若要使P=1 NT趋近于0,必须采取误码输入的保护措施。假定设定的误码输入次数不超过三次,误码达到三次时系统应关闭主控电路,拒绝大于三次的密码输入,并且系统进入报警状态。系统正常状态的恢复可采用万能密码输入或者系统掉电恢复。
3.2 方案的提出
方案一:采用数字电路控制。虽然采用数字密码锁电路的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。
方案二:通过单片机实现,现在一种新的方案就是采用一种是用以AT89S51为核心的单片机控制方案。虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程序运行时容易出现跑飞现象。
通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而且单片机的密码锁有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。
方案三:利用FPGA设计电子密码锁,其成本低,设计方便(有相应的开发板),现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。
通过以上比较描述,本设计采用基于FPGA的电子密码锁设计方案。
- 10 -
基于FPGA的电子密码锁设计
3.3 系统设计要求
设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下: (1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出 该数值,同时将先前输入的数据依序左移一个数字位置。
(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。 (3)密码更改:按下此键时会将目前的数字设定成新的密码。 (4)激活电锁:按下此键可将密码锁上锁。
(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。 (6)数字位退格:按下此键可清除最低的数字位,并使各位向右移。 (7)万能密码:为了怕使用者忘记密码,系统可在设计时考虑设计一个万用密码,不论原来密码是什么,只要输入万能密码就能开锁。
3.4 系统设计描述
本系统为一个简洁型的电子密码锁,该系统以开发板为主要核心,采用4*4的键盘,前10个键为数字键,8个数码管显示密码输入,后面的按键实现电子密码锁的各个功能,总体外观如图3.1所示。
扬声器12345FPGA控制模块96780*#确定密码清除上锁解锁 图3.1 电子密码外观图
上图为在实验开发板上实现,使用开发板有十六个按键,分别对应数字0到9
- 11 -
基于FPGA的电子密码锁设计
和各个功能键,LED显示为开发板上数码管显示。
3.5 各功能模块描述
电子密码锁主要由四个部分组成:数字密码输入电路、密码锁控制电路、密码锁显示电路和报警模块。也就是说,设计分为四个大的功能模块。图3.2为数字电子密码锁系统总体框图。
电子密码锁输入模块键盘扫描电路扫描信号时序产生电路键盘按键输入按键消抖电路键盘译码电路密码锁控制电路寄存器清楚信号发生电路报警器电路开/关门锁电路数值比较电路显示电路BCD七段译码电路按键数据缓存器七段数码管 图3.2 数字电子密码功能模块图
(1) 密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。
模块的功能是:将用户通过键盘输入的数字密码,确认密码是否输入,产生电路中使用的三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号;为了加强按键按下的准确性加了去抖模块。
作为电子密码锁的输入电路,数字密码输入电路可采用一个4×4的通用开发板上
- 12 -

