




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 SOC设计原理结课论文基于FPGA的图像处理开发板设计 姓名:岑鉴峰 班级:B09212 学号:20094021211 基于FPGA的多功能电子密码锁 摘要 基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采用VHDL语言对系统进行描述,并在FLEX10K10LC84
2、-4上实现。系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。关键词:现场可编程门阵列, 硬件描述语言, 电子密码锁, 扬声器 系统设计方案的研究一 系统功能需求分析本系统主要集中在以FPGA以核心外围扩展设计,整个电路主要电子锁具的组成框
3、图是以可编程逻辑器件(FPGA)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值,报警等功能。 FPGA接收键入的代码,并与存贮在闪存中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则通过FPGA产生报警,FPGA将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给监控器,同时将接收来自接口的报警信息也发送给监控器。二 系统方案的总体设计1. 系统原理框图 本系统由主控芯片(FPGA)、键盘、显示电路、报警电路和开/关门电路组成,而主控芯片又可分为按键处理部分
4、、控制部分和译码显示部分。系统原理框图如图1所示:FPGA主控部分译码显示按键处理键盘显示开/关门电路报警电路图1 系统框图2. 总体设计原理 实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门阵列器件(FPGA)。FPGA主要实现以下逻辑功能:键盘处理、数码显示、设置密码、解码开门以及报警等控制功能。 本系统有13个按键,包括09共10个数字键和1个确认键,1个警报复位键,1个清0键。输入正确密码后,按确认键即可开门,在门开的状态下,第一次输入新密码后再确认密码可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。高位的零
5、不用输入,因此密码可以为18位。初始密码为0,即上电后,按确认键即可开门。门开后可通过锁门按钮关门,门关上后要再次输入密码才能开门。在输入密码的过程中,当用户键入错误密码时,系统就会报警,由扬声器发出报警声,当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按警报复位键方可停止。 系统硬件设计2. 系统的硬件模块实现 整个电子密码锁系统可划分为键盘扫描、获取键值、数码显示、设置密码和解码开门等五个子模块。通过FPGA的处理,从而实现基于FPGA的电子密码锁的设计,系统实现框图如图所示。2. 基于FPGA的设计2.1 主控芯片EPF10K10LC84-4的介绍 FPGA器件选择Alter
6、a公司FLEX10K10系列的EPF10K10LC84-4芯片,该芯片集成有1万个等效逻辑门,含有572个逻辑单元(LEs)、72个逻辑阵列块(LABs)、3个嵌入式阵列块(EAB s),并具有720个片内寄存器,可以在不占用内部资源的条件下实现6144 bit的片内存储器;内部模块间采用高速、延时可预测的快速通道连接;逻辑单元间具有高速、高扇出的级联链和快速进位链;片内还有三态网络和6个全局时钟、4个全局清零信号以及丰富的I/O资源;每个I/O引脚可以选择为三态控制或集电极开路输出,可以通过编程控制每个I/O引脚的速度以及I/O寄存器的使用21。2.2 FPGA逻辑功能结构及开发 FPGA芯
7、片FLEX10K在工作期间,将配置数据保存在SRAM中,而SRAM数据是易丢失的。SRAM单元必须在器件加电后装入配置数据,且配置完成后,它的存储器和I/O引脚必须被初化。初始化后,器件进入用户模式,开始系统运行。对于FLEX10K系列器件,Altera公司提供了4种配置方案:EPC1(或EPC1441)EPPOM方式配置法、被动串行法、被动并行同步法、被动并行异步法。对器件进行配置时,我们先用被动串行法(passive serial)。这种方式是通过下载电缆对器件进行配置的,适合于调试阶段。当整个系统设计完成后,利用EPPOM方式对器件进行配置。这样固化在EPROM中的数据将在系统上电时对F
8、PGA芯片配置,其中EPROM芯片选用EPC144122。 3.键盘控制电路结构与原理按键方式分为独立式和行列式两种,本设计采用行列式按键结构,是4×4键盘,本设计中只用了其中的11个按键。行列式按键是指直接用I/O口线通过动态扫描构成的按键电路。每个按键通过动态扫描需要八根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。它的电路配置灵活,软件结构简单,占用的I/O资源少。首先固定输出4行为高电平(接到电源),然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低
9、电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。 获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。按键控制电路如图2所示:图2 4×4键盘结构原理图4. LED显示器结构与原理 LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是7段LED。这种显示块共有共阴极与共阳极两种,本设计将采用共阳极。共阳极LED显示块的发光二极管与阳极并接25。5.
10、 报警电路 系统的软件设计1. 系统主控制流程框图 当用户输入密码后,按确认键即可开门,在门开的状态下,输入新密码,再按确认键可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。高位的零不用输入,因此密码可以为18位。初始密码为0,即上电后,按确认键即可开门。 2. 键盘扫描程序框图开始时钟上升沿触发?列为高电平?逐列扫描描 图6 键盘扫描程序框图 图7 键值程序框图 系统的原理实现1. 系统的层次化设计 基于FPGA的数字系统的层次化设计,一般都要经过 4 个阶段: 设计输入、编译、仿真验证、下载器件。本设计采用的是自下而上的设
11、计方法 , 逐层完成相应的描述、编译、仿真与验证 , 即先建立一些低层次的设计 , 再将它们组合在一起 , 最后形成一个单一的顶层设计文件。一般的VHDL综合工具都有多种输入方式 ,主要有: 各种文本输入、原理图输入和波形输入。对于不同层次的模块, 应采用不同的输入方式进行描述。由于 VHDL 擅长描述模块的逻辑功能 , 而原理图擅长描述硬件连接关系,所以在底层设计中,对底层所有模块使用VHDL 语言进行描述,在顶层设计中,使用原理图输入方法。当各个模块分别编译成功后 ,则创建一个个元件符号。再用图形编辑器将各元件模块组装起来 ,这就是本设计中最顶层的图形设计文件。2. 顶层图形设计本设计在Q
12、uartus环境下的顶层图形设计文件如图9所示。图9 顶层图形 原理图输入完成后还要选定器件,锁定引脚,然后就可以进行综合了。如果综合没有错误的话就可以对芯片进行配置了,配置完成后FPGA芯片就成了一片密码锁芯片。再与其它的电路相连就构成一个完整的数字密码锁。3. 系统仿真演示结果 图10 系统仿真演示结果3、设计程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lock_m is port( key:in std_logic_vector(7 downto 0); clk,cl
13、k1,ok,rw: in std_logic; red,green,speaker,rwled,okrw:out std_logic);end lock_m;architecture behav of lock_m issignal ok1,ok2,ok0,prr,start,pdan,rw1,rin:std_logic :='0'signal sbuf1,sbuf2,keyin:std_logic_vector(7 downto 0):="00000000"signal mmst: std_logic_vector(7 downto 0):="0
14、0000000"signal cnt:std_logic_vector(2 downto 0):="000"signal cnt1:std_logic_vector(4 downto 0):="00000"begin process(clk) -定义个存储器将密码存放在keyin中 begin if clk'event and clk='1' then keyin<=key; end if;end process; prr<=pdan or rw1 or rin or ok;st: process(keyin
15、,prr,ok1) -第一次修改密码 begin if ok1='1' then start<='0' elsif (keyin/="00000000" and prr='0') then start<='1' else start<='0' end if; end process; inkey: process(key,start,clk) -输入密码时间进入记时状态 begin if clk'event and clk='1' then ok1<
16、;='0'ok2<='0' if start='1' then sbuf1<=keyin; -将密码放入rom1暂存器中 if ok='1' then ok2<='1' elsif cnt="100" then cnt<="000" ;ok1<='1' -5秒到将cnt值零将ok1值置高 else cnt<=cnt+'1' end if ; else cnt<="000"sbuf1&
17、lt;=sbuf1; -当start=1时cnt永远保持0 end if; end if; end process; pandan : process(ok,ok1,ok2,clk,start) -输入密码用于判断密码是否正确 begin if ok2='1' or ok1='1' then pdan<='1' -开锁信号 elsif clk'event and clk='1' then if pdan='1' then if cnt1="10011" then pdan<=
18、'0' -20秒后判断结束,进入等待外部输入状态 else cnt1<=cnt1+'1' end if; else cnt1<="00000" -等待状态时cnt1一直为0 end if; end if; end process; comp: process(pdan,rw1,sbuf1,mmst,rin,clk1) -显示程序 begin if pdan='1' then -开锁信号密码正确 if sbuf1=mmst then -红灯灭,绿灯亮 red<='0'green<='
19、;1'rwled<='0'speaker<='0'okrw<='0' else -密码错误 red<='1'green<='0'rwled<='0'speaker<=clk1;okrw<='0' end if; -红灯亮,绿灯灭, elsif rw1='1' then -第一次修改密码显示状态 red<='1'green<='0'rwled<='1'
20、;speaker<='0'okrw<='0' elsif rin='1' then red<='0'green<='0'rwled<='1'speaker<='0' okrw<='1' else red<='1'green<='0'rwled<='0'speaker<='0'okrw<='0' end if; end
21、process;rewrite:process(rw,keyin,ok0,clk,start,pdan,rin) begin if clk'event and clk='1' then if ok0='1' then rw1<='0' elsif keyin="00000000" and pdan='0' and rin='0' then if rw='1' then rw1<='1' end if; end if; end if; end p
22、rocess; process(rw1,ok,keyin,clk) begin if clk'event and clk='1' then ok0<='0' sbuf2<=keyin; if rw1='1' then if ok='1' then ok0<='1' if mmst=sbuf2 then rin<='1' else rin<='0' end if; end if; else if rin='1' then if ok
23、='1' then mmst<=sbuf2; rin<='0' else mmst<=mmst; end if; else null; end if; end if; end if; end process;end behav;总结在基于FPGA的系统设计中,不同电路系统的设计往往采用自顶向下的设计方法,亦即将一个大的系统分解成单元电路。这样做的好处是可以先调试各个单元电路,在每个单元电路设计完成后 ,采用专门的仿真工具进行功能仿真,确定每个单元电路都没有问题后再连接顶层图形文件,这样整个系统的调试就轻松得多,可节省不少设计时间。 (1)本装置结构简单、体积小、性能稳定,操作容易、使用方便,可以安装在不同的门上,具有一定推广应用价值。 (2)本系统结合了现在最有发展前景的FPGA设计的电子密码锁系统,安全可靠,科技含量高,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心悸的护理措施及健康教育
- 2025年超高速切削机床合作协议书
- 成都市树德实验中学2025届高考冲刺押题(最后一卷)化学试卷含解析
- 大班社会蝴蝶课件
- 2025年酞菁颜料合作协议书
- 2025年闭式冷却塔项目发展计划
- 2025年水杨酸锌改性树脂(无碳复写纸显色剂)项目建议书
- 幼儿园交通安全小知识
- 四年级数学(上)计算题专项练习及答案
- 陕西财经职业技术学院《测绘综合课程设计》2023-2024学年第二学期期末试卷
- 江西检测收费标准
- 手推割草机设计
- 精装修施工现场临时用电施工方案
- 西师版数学四年级下册全册教案
- DB11T 1894-2021 10kV及以下配电网设施配置技术规范
- 零星材料明细单
- 施工现场安全检查记录表(周)以及详细记录
- 2022专升本无机化学试卷答案
- 电子课件《英语(第一册)(第三版)》A013820英语第一册第三版Unit6
- JGJ T53-2011房屋渗漏修缮技术规程
- 论文题目修改说明【模板】
评论
0/150
提交评论