课程设计-基于CPLD的数字锁设计.doc_第1页
课程设计-基于CPLD的数字锁设计.doc_第2页
课程设计-基于CPLD的数字锁设计.doc_第3页
课程设计-基于CPLD的数字锁设计.doc_第4页
课程设计-基于CPLD的数字锁设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南工程学院课 程 设 计 任 务 书课程名称: 嵌入式系统 题 目:基于cpld的数字锁专业班级:电子信息0781 学生姓名: 指导老师: 审 批: 任务书下达日期 2011 年01月02 日设 计 完成日期 2011 年 01月21日 设计内容与设计要求cpld为复杂可编程逻辑器件,通过eda技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。有关知识可参见相关教材或参考书。一设计内容设计一个二位十进制数字锁,并验证其操作。具体要求如下:(1) 开锁代码为二位十进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯lt。否则,系统进入“错误”状态,并发出报警信号。(2) 开锁程序由设计者确定,并要求锁内给定的密码是可调的,且预置方便,保密性好。(3) 并行数字锁的报警方式是点亮指示灯lf,并使喇叭鸣叫来报警,直到按下复位开关,报警才停止。此时,数字锁又自动进入等待下一次开锁的状态。二、设计要求:1、 设计思路清晰,给出整体设计框图;2、 在max+plus中设计各单元电路,完成其功能仿真和编译并生成低层模块;3、 在max+plus中完成顶层设计并编译通过;4、 在max+plus中完成设计下载并调试电路;5、 写出设计报告;主要设计条件1. 提供eda实验室;2. 提供el实验箱和cpld芯片;3. 提供altera公司的max+plus10.1设计软件说明书格式1. 课程设计封面;2. 任务书;3. 说明书目录;4. 设计总体思路,基本原理和框图(顶层电路图);5. 单元电路设计(各次级模块电路图);6. 设计仿真;7. 编程下载;8. 总结与体会;9. 附录;10. 参考文献。进度安排星期一、二:下达设计任务书,介绍课题内容与要求;介绍max+plus软件的使用;查找资料,确定总体设计方案和单元电路设计;星期三第二周星期一:单元电路设计与仿真,硬件下载;第二周星期二、三:硬件下载;第二星期四、五:书写设计报告,打印相关图纸;答辩参考文献1. 康华光主编.电子技术基础(数字部分),高等教育出版社。2. 阎石主编. 电子技术基础(数字部分),清华大学出版社。3. 陈大钦主编,电子技术基础实验,高等教育出版社。4. 彭介华主编,电子技术课程设计指导,高等教育出版社。5. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。6.荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。7. max+plus入门8.刘洪喜,陆颖编著. vhdl电路设计实用教程 清华大学出版社 目 录一.设计总体思路61.1基本原理61.2总设计框图6二.单元电路设计及模块仿真72.1消除抖动模块72.2键盘扫描模块92.3七段数码显示电路模块102.4译码电路模块122.5 密码控制电路模块.152.6 总电路17三.编程下载18四.总结与体会21五.参考文献22一、总体设计思路1.1基本原理:本次设计我把逻辑功能划分为两个大的模块:控制部分和处理部分。控制模块是整个系统的控制核心 ,负责接收其模块传来的输入信号 ,再根据系统的功能产生相应的控制信号送到相关的模块。具体操作如下:密码预先存入寄存器中,开锁时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两个寄存器中的内容,当结果相同时m1,lt绿灯亮,并开锁;当结果不同时m0,lf红灯亮,不开锁。用户需要修改密码时,先开锁,再按“设定密码”,清除预先存入的密码,通过键盘输入新的2位十进制数,然后再按下确定键完成操作。1.2总设计框图如下:键盘译码开锁led显示输入密码寄存器键盘消抖密码预存寄存器绿灯亮键盘扫描红灯亮报警m=1消除密码输入两位十进制数密码修改yn二、单元模块设计2.1 消除抖动模块我们使用的按键通常都是机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动(如下图所示)。然而,抖动时间的长短由按键的机械特性决定,一般为5ms10ms。这是一个很重要的时间参数,在很多场合都要用到。在这里,我们用软件去除抖动。当检测到键闭合时,执行一个延时程序产生数毫秒的延时,让前沿弹跳消失后再检测闭合;当发现键松开后,也给数毫秒的延时,当后沿弹跳消失后,再检测下一个键的输入。或者当前沿弹跳消失后,将检测到的信号所存,然后再输出,这样就不需要后沿延时了。消除抖动的电路封装图如下:程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; library altera; -抖动 use altera.maxplus2.all; entity lwdou is port ( clk,lwin : in std_logic; lwout : out std_logic ); end ; architecture a of lwdou is signal vcc, inv_b : std_logic ; signal a0, a1 : std_logic ; signal b0, b1 : std_logic ; begin vcc = 1 ; inv_b vcc , q = a0 , clk = clk, prn = vcc, clrn = inv_b ); dff2 : dff port map (d =vcc , q = a1 , clk = clk, prn = vcc, clrn = inv_b ); process (clk) begin if clkevent and clk=1 then b0 = not a1; b1 = b0; end if ; end process ; lwout = not (b1 and not b0); end ;消抖电路的仿真波形图如下:2.2 键盘扫描模块我们在键盘的四列输入口中输入一个低电平时钟扫描,当有按键被打下时,对应的行被键接通也呈现低电平状态,然后将此输入输出信号输出到键盘编码就可以进行键盘按键识别了。键盘扫描封装图如下:该模块程序如下:library ieee; -键盘扫描 use ieee.std_logic_1164.all; use ieee.std_logic_arith.all ; use ieee.std_logic_unsigned.all ; entity lwsm is port ( clk : in std_logic ; sm : out std_logic_vector (4 downto 1) ); end ; architecture a of lwsm is signal m : std_logic_vector(2 downto 1); signal n: std_logic_vector(4 downto 1); begin process (clk) begin if clkevent and clk=1 then n = n+1; m =n(4 downto 3); end if; end process; sm bt=01;ebt=10;e null; end case;end process;process(clk) begin if clkevent and clk=1then ne=0000;e1=e;lwc(6 downto 0)e=0001;e1=e;lwc(6 downto 0)e=0010;e1=e;lwc(6 downto 0)e=0011;e1=e;lwc(6 downto 0)e=0100;e1=e;lwc(6 downto 0)e=0101;e1=e;lwc(6 downto 0)e=0110;e1=e;lwc(6 downto 0)e=0111;e1=e;lwc(6 downto 0)e=1000;e1=e;lwc(6 downto 0)e=1001;e1=e;lwc(6 downto 0)lwcolwcoe=0000;e1=e;lwc(6 downto 0)f=0000;f1=f;lwd(6 downto 0)f=0001;f1=f;lwd(6 downto 0)f=0010;f1=f;lwd(6 downto 0)f=0011;f1=f;lwd(6 downto 0)f=0100;f1=f;lwd(6 downto 0)f=0101;f1=f;lwd(6 downto 0)f=0110;f1=f;lwd(6 downto 0)f=0111;f1=f;lwd(6 downto 0)f=1000;f1=f;lwd(6 downto 0)f=1001;f1=f;lwd(6 downto 0)e=0000;e1=e;lwd(6 downto 0)=0111111; end case; end if; end process;end;译码电路的仿真波形图如下:2.5 密码控制电路模块密码控制电路是本次课题设计的核心部分,我们通过密码控制来断定数字锁的开或关。当密码输入时,按下确定键,输入数字和所存的密码进行比较,若相同则进入开锁状态。若输入密码不正确则立刻进入报警状态,然后按下清零键,重新输入密码。密码控制封装图如下:密码控制程序如下:library ieee;-控制模块use ieee.std_logic_1164.all;entity lwcz is port(lw_in:in std_logic_vector(3 downto 0); ll_in:in std_logic_vector(3 downto 0); ww_in:in std_logic_vector(3 downto 0); a,b:out std_logic);end ;architecture luoji of lwcz is signal g,h:std_logic_vector(3 downto 0); signal s,en,en1: std_logic; signal count1,count2: std_logic:=0; signal co: std_logic_vector(3 downto 0); begin process(ww_in) begin if ww_in=1011then en1=1; elsif ww_in=1010then en=0;en1=0; end if;if(s=1)and(en=1)and(count1=0) then g(3 downto 0)=lw_in(3 downto 0); h(3 downto 0)=ll_in(3 downto 0); count1=not(count1); end if;if(en1=1)and(count2=0) then if(lw_in(3 downto 0)= g(3 downto 0) and ll_in(3 downto 0)=h(3 downto 0) then a=1;en=1;s=1; else a=0;b=1; end if; count2=not(count2);elsif(en=0)and(en1=0) then count1=0;count2=0;a=0;s=0;b=0; end if;end process ;end;2.6总匡图如下:3、 编程下载max+plus 支持altera公司的flex10k,flex10ka,flex8000,max9000,max7000,classic等系列可编程逻辑器件。 4.1选择器件 应参照设计电路的规模,所需工作速度等诸多因素对器件进行选择。这里以将上述电路下载到flex10k系列器件中的epf10k10lc84为例进行说明。 (1)返回到编辑窗口 (2)在主菜单assign中选择device项,打开器件选择对话框 (3)单击device family 区的下拉列表,选择flex10k系列(4)在devices的下拉列表中选择epf10k10lc84 (5)选择ok 。对话框关闭即完成器件选择 4.2管脚锁定 管脚锁定即是将所设计的原理图的输入、输出信号定义到实际器件某个具体的管脚,此项工作可以由编译器自动分配,也可以由设计者根据设计要求进行人工分配。若进行人工分配,具体操作步骤如下: (1)在原理图编辑窗中用鼠标右键单击输入或输出信号 (2)在出现的下拉菜单中选择assignpin/location/chip ,出现pin/location/chip对话框 (3)在node name项中显示的应是待锁定管脚的输入或输出信号,在pin项中键入想要锁定的管脚号码 (4)选择ok,则管脚号即分配在所选的输入输出信号上 (5)重复上述步骤,将所有输入输出信号的管脚锁定好总电路匡图如下:(6)在主菜单中,选filesave保存文件 (7)再次编译项目,通过项目编译后即可生成一个.sof文件,此文件用于下载4.3器件编程/配置 此项工作即是完成将所设计的电路下载到实际器件中,使其具有所设计电路的功能。 在altera器件中,一类为max系列,另一类为flex系列。其中max系列为cpld结构,编程信息以eeprom方式保存,故对这类器件的下载称为编程;flex系列有些类似于fpga,其逻辑块le及内部互连信息都是通过芯片内部的存储器单元阵列完成的,这些存储器单元阵列可由配置程序装入,存储器单元阵列采用sram方式,对这类器件的下载称为配置。因为max系列编程信息以eeprom方式保存,flex系列的配置信息采用sram方式保存,所以系统掉电后,max系列编程信息不会丢失,而flex系列的配置信息会丢失,需每次系统上电后重新配置。 使用的器件是epf10k10lc84,为flex系列。下面对其进行配置。 (1)将下载电缆一端插入lpt1(计算机的并行口,打印机口),另一端插入实验系统板,打 开实验系统的电源。 (2) 在主菜单max+plus 中选择programmer,出现programmer对话框。(3)在出现的对话框中单击 configure,即可完成配置。 注:若在软件首次运行时,上述对话框可能皆为灰色,此时可从options菜单下选择“hardware setup”对话框,在“hardware type”下拉框中选择“byte blaster”,单击“ok”即可。四、总结与体会两周紧张而忙碌的cpld数字锁课程设计完成了,由于对嵌入式系统不熟悉与以前对eda的学习不够好,任务完成的有些艰难,但在同学们和老师的帮助下,也算不负幸苦。 首先在学习中,我不仅在硬件上又加强了锻炼,对eda的max+plus软件构成有了更好的掌握。从开始接到设计题目到系统的实现,每走一步对我来说都是新的尝试与挑战。同时在这次的设计中,我学到了很多知识也有很多感受,从对设计软件max+plus的一无所知,对eda、cpld等相关技术很不了解的状态,我开始了独立的学习和实验,查看相关的资料和书籍,让自己的头脑中模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论