基于FPGA的保密型密码输入器设计
2009-07-08
作者:樊国梁1,张晓燕2,曹 杰1
摘 要: 为了改善现有密码输入器容易造成密码泄露的缺点,设计了保密型密码输入器。阐述了保密型密码输入器的工作原理,给出具体设计、计算机仿真。经过实验分析和计算机仿真,该电路能够最大限度地保护用户密码并且容易在工程中应用。
关键词: 密码保护;键位;仿真;VHDL
在生活中人们越来越频繁地使用各种各样的密码来管理私人信息和资金账户。密码作为个人信息的保密锁,在银行、网络等公共场合应用广泛,普遍采用各种加密算法进行处理,有效地提高了安全可靠性。但是在一些场合,如ATM柜员机、商场刷卡消费时,由于数字键盘排列具有一定的规律性,当用户输入密码时,即使旁人站在一米线以外,也能通过输入者手指的移动顺序猜出密码,这使得原本安全可靠的密码泄漏,使密码输入器变得不再安全。
目前国内外对于密码输入器的改进大都局限在外形设计上[1],如加罩、将键盘方型布局改为V型等,这些措施不能从根本上解决密码泄漏问题,并且给密码输入者带来操作上的不便。本文利用VHDL语言设计了一种新型保密型密码输入器,使键盘上0~9的10个数字每次输入时随机排列,不再具有规律性,从而使输入密码时手指按下的按键顺序和目前普通的密码输入器按下的顺序不同,这样就可以避免他人记下按键顺序再根据键盘数字的排列规律猜出用户输入的密码。
1 设计思想
保密型密码输入器的最大特点就是它可以改变现有密码输入器键值排列顺序,在每一个按键上安装一个数码管,每次输入密码时,0~9的键值随机排列显示,同时还要完成以下功能:
(1)产生0~9共10个随机排列且不重复的数组,用来确定键盘上数字的排列顺序;
(2)将随机数组转化成数码管上要显示的键值,并顺序输出到相应按键的数码管上;
(3)对键盘进行扫描,根据按下的键位信息与显示到按键上的键值判断出输入的密码;
(4)将密码信息输出。
根据以上功能,可以分四个模块进行设计:分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路" title="分频电路">分频电路、消除抖动电路、键盘译码电路、主体控制电路。
2 电路设计
2.1 分频电路
芯片中每一个模块都要有一定的时钟信号才能工作,而且在外部键盘电路和动态扫描数码显示管上都要加一定频率的时钟信号。利用分频电路将从外部输入的4 MHz的时钟clk_4m经过分频后输出各部分电路所需的时钟脉冲。在程序中设定一个20位的信号q,在clk_4m到上升沿时q自加1,这样可以取q的其中几位来达到分频的目地。
频率计算公式为:其中q(n)为从右起第n位信号。例如取q(1)即得到4分频后的时钟1 MHz。
程序中各信号频率为:信号clk_keyboard1是键盘行扫描信号,与键盘列扫描信号一同识别按键,它的频率设定为8 Hz;信号clk_debounce是消除抖动电路的采样频率,为128 Hz。信号clk_disp1是数码管扫描信号,它的频率要高于人眼的最大可分辨频率24 Hz,设定为128 Hz。信号clk_scan是键盘的行扫描信号,一共有四位分别代表键盘上的四行,最低位clk_scan(0)代表第一行,最高位clk_scan(3)代表第四行,低电平有效,它与clk_keyboard1相对应,即clk_keyboard1代表的二进制数。
2.2 消除抖动电路
在输入密码时由于手抖动或按键接触时产生抖动造成输入信号不连续,利用消抖电路将信号变化成一个连续的信号,防止被误认为是多次输入。
以分频电路输入的消抖电路时钟信号为采样信号,检查每个采样信号的上升沿处输入的信号key是什么状态。当key信号改变并且连续两次采样结果相同时才输出改变后的信号dif_out,否则将维持原来的输出信号。
从图1中可以看出,key输入多次的低电平,模拟输入时的抖动。当这些低电平的宽度未达到两个上升沿的宽度时,输出信号没有改变;当宽度超过两个上升沿的宽度时,输出信号才发生改变,且输出的低电平信号的宽度为一个采样宽度。
图1 消除抖动电路的仿真
2.3 键盘译码电路
将键盘按键信息根据clk_keyboard1中0的位置判断行位置,根据信号c中0的位置判断列位置,从而确定按键位置,然后将这些键位的信息以四位二进制码的形式输出。
用clk_debounce1为触发信号,每当clk_debounce1在上升沿时,将clk_keyboard1和c合并送给内部信号z,由程序判断是哪一个键被按下。flag_numb为输出信号的标记信号,它是在clk_debounce1的下降沿才变化,使得flag_numb信号比out_numb落后半个周期。这样确保在flag_numb信号为1时,输出的out_numb信号是0~9中的一个。键盘扫描参数表由表1所示。
如图2所示,输入0~9共10个按键信号,信号out_numb经过译码后正确地输出相应按键,并且flag_numb的上升沿位于out_numb信号的中间,可完全确保flag_numb上升沿触发寄存器移位存储的都是out_numb有用的信号。
图2 键位译码电路的仿真
2.4 主体控制电路
该部分电路的主要功能为产生随机的数组,用来确定S0~S9每个键位的键值。定义10个信号a~j,将0~9 10个数分别赋值给a~j,然后将a~j随即排列组成一个数组,排在第1位的将是在0号键位上显示的数字,排在最后的将是在9号键位上显示的数字。表2定义了8个数组,定义的数组越多键盘上数字显示的变化种类就越多。另外定义一个s信号,当开始输入密码信号start有效时,s进行累加,从而产生0~7的循环,用来选择8个数组中的一个,进而实现产生随机数组的功能。
当start信号有效时,S经过自加后就确定下来,选中一组随机数组,程序就将数组的值保存起来,这个信号代表从0~9号键位的键值。然后顺序送到按键的数码管显示出来,例如s=1时,S0~S9对应数组behfadjgic,即S0=1,S1=4,S2=7,S3=5,……,S9=2。
程序中定义一个24位的二进制信号acc作为寄存器用来存放6个密码数字,当start有效就对寄存器清空(置1)和计数信号jishu置0。由键盘译码电路产生的标志信号flag_numb的上升沿触发寄存器向左移位,把键位信号out_numb1从acc的最低位输入,并且每移一次计数信号jishu加1,这样用户输入的前6位将被作为密码保存在寄存器中,超过六6位,寄存器则不会记录。
通过把寄存器acc中的键位信号和相应的数组进行对比,就可以找出按键对应的6位密码(mima),并可以将其输出。
如图3所示,当start信号有效使得s=1时,按输入信号的规则加入1~9这9个按键信号和flag_numb标志信号。可以看出在输入1~9这9个键后,程序只存储了前6个,由s=1推算出按下的1号~6号键位代表的密码为475039,这和仿真后输出的结果一致。
图3 控制电路的仿真
2.5 顶层模块的设计
各模块利用VHDL语言设计,通过仿真,功能都正确,生成各自的功能符号,然后在MAX+plusII平台上利用原理图设计方法调用各模块,将其按照电路原理连接在一起,加上输入、输出信号,构成的模块图如图4所示,由此可生成一个完整的程序。
图4 顶层模块图
本设计改变了传统密码输入器的形式,将每一个键所代表的数字进行随机排列,防止用户输入密码时被别人通过观察手指移动的位置而窃取密码。并且该设计采用EPF10K10LC84-4芯片实现,外围电路简单,工作稳定可靠,便于在银行、商场等工程中应用,并且作为内蒙古大学本科生创新基金项目受到专家肯定。
参考文献
[1] 李海波.银行密码输入器改进[J].青年科学,2005(3):20-21.
[2] 卢毅,赖杰.VHDL与数字电路设计[M].北京:科学出版社,2001.
[3] 潘松,黄继业.EDA技术实用教程(第二版)[M].北京:科学出版社,2005.
[4] 褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2003.