基于VHDL的键盘扫描电路设计教材.docx
- 文档编号:29231823
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:43
- 大小:495.42KB
基于VHDL的键盘扫描电路设计教材.docx
《基于VHDL的键盘扫描电路设计教材.docx》由会员分享,可在线阅读,更多相关《基于VHDL的键盘扫描电路设计教材.docx(43页珍藏版)》请在冰豆网上搜索。
基于VHDL的键盘扫描电路设计教材
毕业论文(设计)
题目:
基于VHDL的键盘扫描电路设计
系:
机电工程系
学生姓名:
专业:
电子信息工程
班级:
指导教师:
起止日期:
2012.10.15——2013.01.06
2013年1月6日
基于VHDL的键盘扫描电路设计
(东海科学技术学院机电工程系,浙江舟山316000)
摘要
随着科技的发展,时代的进步,生活的需要,在我们生活的很多地方领域,都有键盘的应用,而且它的应用非常广,当然键盘扫描的方法也有很多种。
键盘是单片机系统设计中一种主要的信息输入接口,合理的设计,不仅可以节省系统的设计成本,更可以使仪器设备的操作变得更为简单、方便、快捷,很大程度上提高系统综合性能。
随着信息产业和微电子技术的发展,很多系统设计技术已经成为信息产业最热门的技术之一,在很多地方上都有应用,比如航空航天、医疗保健、通讯、广播、工业、测量测试等很多热门领域。
并且随着工艺的进步和技术的发展,向更广泛的应用领域扩展。
本次设计主要是运用VHDL硬件描述语言和图形设计综合方法,在MAX+PLUSⅡ软件平台的环境下建立波形文件,生成电路符号,设置输入端口,实现程序的模拟仿真,得到仿真波形图,才完成了键盘扫描电路的程序设计。
这个电路设计是一个关于小型的计算器的键盘按键电路的设计,主要由5个部分组成,它们分别为分频器电路、键盘扫描计数器电路、按键检测电路、按键抖动消除电路和键盘编码电路。
本次设计主要是设计一个4×4矩阵式的键盘扫描电路,它具有列扫描和行扫描的功能,有2个输入端口,分别为clk和col,同时也有2个输出端口,分别为row和bianma,按下按键的数据通过端口行、列线输入到FPGA芯片中去,FPGA芯片内部的扫描模块会将数据传送到编码器中进行编码,最终完成本次电路的设计。
在生活中是这种小型的计算器是非常常用的,虽然体型很小,但却被广泛的使用,很多其他的东西都是在这种小型的计算器的键盘的基础上设计的。
关键词:
键盘扫描;VHDL;MAX+PLUSⅡ;仿真
Abstract
Withthedevelopmentofscienceandtechnology,theprogressofthetimes,theneedofthelife,weliveinalotofplacefields,therearekeyboardapplication,butitsapplicationisverywide,ofcourse,thekeyboardscanningmethodalsohasalotof,thekeyboardisthedesignofsingle-chipmicrocomputersystemamaininformationinputinterface,areasonabledesign,notonlycansavethedesigncostofsystem,itcanmaketheequipmentoperationmoresimple,convenient,fast,greatlyimprovetheoverallsystemperformance.Withthedevelopmentofinformationindustryandthedevelopmentofmicroelectronictechnology,alotofsystemdesigntechnologyhasbecometheinformationindustryoneofthehottesttechnologies,inmanyplaceshaveapplications,suchasaerospace,medicalcare,communication,broadcast,industrial,testingandmanyotherhotareas.Andwiththetechnologyprogressandtechnologydevelopment,tothemorewidespreadapplicationdomainexpansion.
ThemaindesignistheuseofVHDLhardwaredescriptionlanguageandgraphicdesignmethodintheMAX+PLUSsoftwareplatform,establishedunderthewavefile,generatingcircuitsymbols,settheinputport,procedurestoachievethesimulation,getthesimulationwaveform,tocompletethekeyboardscanningcircuitdesignprogram.Thecircuitdesignisasmallcalculatorkeyboardcircuitdesign,mainlyiscomposedby5parts,whichrespectivelyasthedividercircuit,keyboardscancountercircuit,keydetectioncircuit,keyjittereliminationcircuitandkeyboardcodingcircuit.Thedesignisthedesignofa4x4matrixkeyboardscanningcircuit,ithasacolumnscanningandscanningfunction,having2inputports,respectivelyCLKandcol,butalsohas2outputports,respectivelyrowandbianma,pressthekeydatathroughtheportline,lineinputtotheFPGAchip,FPGAchipinsidethescanningmodulecantransmitdatatotheencoderforencoding,thefinalcompletionofthecircuitdesign.Inlifeissuchasmallcalculatorisverycommon,thoughverysmallinsize,butitiswidelyused,manyotherthingsareinsuchasmallcalculatorkeyboarddesignbasedon.
Keywords:
keyboardscan;VHDL;MAX+PLUSⅡ;simulation
第1章绪论
1.1研究的意义和背景
键盘与我们的生活息息相关,可以说是在我们的生活中是无处不在的,比如说手机键盘、电视机的键盘、电脑的键盘等等。
按键就是一组排列好的不同功能的键,将外在的信号输入到终端,继而送入一个预定的系统中[1]。
键盘是最常见的计算机输入设备,它被广泛的应用在微型计算机和各种终端设备上,计算机操作者可以通过键盘向计算机输入各种指令、数据,指挥计算机的工作。
键盘扫描是单片机技术的一种基本处理方法,而键盘扫描的方法有很多种,说到键盘扫描相信大多数人第一反应差不多都是行列矩阵扫描,行列扫描法是什么呢?
把按键键盘排列成n行、m列的n*m行列点乘矩阵,同时n行、m列的线分别连接到两个并行接口双向传送的连接线上去,这样情况下点阵上的按键一旦被按下,就说明按键所在的行列点阵信号已经接通。
按键作为一种普通的外部输入设备,在应用中是不可或缺的,它是控制者用来操作或是发布指令的一个传媒,是人机交互应用的结合点[2]。
按键所排列成的矩阵,需要用硬件或软件的方法轮转顺序地对其行、列分别进行扫描,以查询和确认是否有键按动。
如有键按动,键盘会向主机发送被按键所在的行列点阵的位置编码,这种现象叫做键扫描码。
这样,通过硬件或软件的方法对键盘分别进行列扫描、行扫描,就可以确定按下键的所在位置,输出并获得扫描位置码,任何矩阵键盘只要通过增加键盘的列或行就可以实现增加按键的数目。
1.2键盘在国内外的发展状况
早在1714年,英、美、法、意、瑞士等国家的人相继发明了各种形式的打字机,最早的键盘是那个时候应用在那些技术还不成熟的打字机上的。
1868年的时候,美国人克里斯托夫·拉森·肖尔斯(ChristopherLathamSholes)获打字机模型专利并取得经营权经营,又在几年后设计出了现代打字机的实用形式和首次规范了键盘,即现在的“QWERTY”键盘。
后来他就被称为“打字机之父”。
直到1873年,肖尔斯又使用此布局的第一台商用打字机成功投放市场,这就为今天的键盘排列方式奠定了基础,1888年全美举行打字公开比赛,赢得冠军的是一位使用盲打技术的人,在美国也相继开始有了专门培养打字员的学校专门练习打字。
因为每日的练习,大家的击键速度加快,满足了日常生活的需要。
盲打技术的出现为以后键盘的打字打下了基础,在1934年,华盛顿一个叫德沃拉克的人为使左右手能交替击打更多的单词,发明了一种新的排列方法,这个键盘可缩短训练周期1/2时间,平均速度提高35%。
DVORAK键盘布局原则是:
1、尽量左右手交替击打,避免单手连击。
2、越排击键平均移动距离最小。
3、排在导键位置应是最常用的字母。
键盘是一种方便实用的手动输入设备,从这个意义上而言,键盘在计算机输入设备领域很难被淘汰。
键盘是当前计算机输入设备中最主要的输入设备,随着科学技术的进步,可能会发生的是,键盘在未来有可能失去计算机主要输入设备的地位。
从目前的进展来看,出现了声控输入,手写输入和触摸或点击输入等几种非键盘输入方式,国外正在研发更先进的脑电波识别与输入技术。
因此,给人一种符合发展规律的思维判断,即将来某一天,键盘这种输入设备会被更先进的输入设备淘汰,其实这种前景是值得商榷的。
由MagicCube公司设计的“MagicCube”(魔方)激光键盘,是一款超酷的产品,可以在任何具有表面平整的地方使用。
这种非常酷,并且有用的键盘,可搭载应用在几乎任何有蓝牙的Mac、PC、iPhone、iPad、iPodtouch,和Android系统的所有设备上使用。
按照应用可以分为台式机键盘、笔记本电脑键盘、工控机键盘,速录机键盘,双控键盘、超薄键盘、手机键盘七大类。
在我们生活中,随处可以看见键盘的使用,已经到了无处不在的地步,在未来,键盘的发展是可观的,最常用的就是电脑键盘和手机键盘,不管是触摸式的还是敲打式的,在未来都是不可淘汰的。
键盘已经遍布了我们的生活,以后更是会向更多的方向发展,因此键盘不管在何种情况下,都不会被现实生活所淘汰,只会向更好的方向发展,把键盘技术发展的更前卫、更先进、更方便。
按键输入电路大多数应用的主要有两种:
一种是非扫描方式可以判断多键状态,即允许多键同时作用,但这种不适用于大量按键情况,所需输入输出端口I/O较多。
另一种是扫描阵列方式,可以适用于大量按键,但不能多键同时按下识别[3]。
相对于现在来说,国内的键盘相关的技术与国外的比较,还是有一定的差距的,国内的发展方向正在向国外靠拢,在国外技术的基础上,来升级键盘的一些其他的功能,开发蕴含在其中的更多的能量,来提高我国在键盘扫描领域的一些技术,向高科技的电子产品迈进。
不管是在技术上还是质量上,我们应该追求的是超过国外的技术,让国人相信中国的产品并不比外国的差,而且相比国外的产品不管是在质量上还是产量上,都比外国的好,让中国的研究走上时尚的尖端,让国外的人也买我们中国的产品。
1.3本课题研究的主要问题
人们依靠键盘向计算机输入各种指令,指挥计算机工作,依靠键盘向计算机输入程序、资料,依靠键盘修改、调试程序,人们甚至可以依靠键盘来进行引人入胜的各式游戏。
在高科技快速发展的今天,我们必须走在高科技尖端,随着潮流发展,这样才不至于被这个快速发展的时代淘汰,反而是我们要主宰这个世界,开发高科技,向更新的一个时代迈进。
本课题是应用硬件描述语言VHDL设计一个键盘扫描电路。
以FPGA芯片为主机控制核心的键盘扫描电路设计,该系统具备能够识别多个按键功能。
该课题主要解决以下几个问题:
总体方案设计与论证,分析控制系统工作原理;选择合适的FPGA芯片系统的硬件设计;用硬件描述语言VHDL编制系统的软件及流程图、并仿真设计要求。
本课题的目的是为了让学生通过毕业设计,培养学生综合运用多学科理论知识与技能,分析、解决一般工程技术问题的基本能力,及勇于实践探索的工程实现意识。
第2章键盘扫描电路总体设计
采用VHDL硬件描述语言,在FPGA芯片上实现键盘扫描系统会用到MAX+PLUSⅡ软件和FPGA芯片,以下主要介绍VHDL硬件描述语言、MAX+PLUSⅡ软件和FPGA芯片。
2.1设计工具的简介
2.1.1VHDL硬件描述语言
VHDL是VHSICHardwareDescriptionLanguage的缩写,其中VHSIC是VeryHighSpeedIntegrateCircuit的缩写,它是一种硬件描述语言,有非常强大的功能。
VHDL已经成为一个数字电路和系统的描述、建模、综合的工业国际标准,因此在电子产业界获得了广泛的应用[4]。
VHDL具有强大的功能,覆盖面广,描述能力强[5]。
能支持系统行为级、寄存器传输级和逻辑门电路级三个不同层次的设计,能够完成从上层到下层(从抽象到具体)逐层描述的结构化设计思想。
VHDL语言中具有许多与数字电路的结构直接相关的概念[6]。
VHDL硬件语言是唯一被接纳为IEEE标准的语言,也就是说它是数字系统硬件设计描述的语言中最为标准的语言[7]。
其主要特点如下:
1、具有很强的可移植性;
2、能够将设计中的错误消除在电路系统安装之前,并检查设计系统功能的可行性,说明它有很强的预测能力;它还有着丰富的库函数和模拟仿真语句,随时都能对设计进行仿真模拟;
3、在理解上比较容易,有良好的可读性,与高级语言接近;
4、它的硬件结构与系统设计无关,有利于工艺的转换;
5、它可以把已有的设计项目作为一个模块调用;支持模块的设计,可以将大规模设计项目分解成很多小项目,;
6、针对一个确定的设计系统,可以用EDA工具进行优化和逻辑综合,并且自动的能把VHDL硬件描述语言转变化门电路级网表文件;
7、设计灵活,修改方便,同时也便于设计结果的交流、保存,产品开发速度快,成本低。
本次在运用VHDL硬件语言进行编程、仿真,非常的方便,而且也省了很多的时间,也很容易懂,理解上也比其他的硬件语言容易的多。
2.1.2MAX+PLUSⅡ的简介
MAX+PLUSⅡ是MultipleArrayMatrixandProgrammableLogicUserSystem的缩写,是美国Altera公司推出的第三代PLD开发系统,她接受对一个电路设计的文本描述或图形描述,使用MAX+PLUSⅡ的设计者不需要器件内部的复杂构造,只运用自己熟悉的输入工具进行设计,由MAX+PLUSⅡ将这些设计自动转化为最终所需的格式它使设计者能方便地进行设计输入、快速处理和期间编程。
其易学、易用、高度集成化的特性使得受到广大用户的青睐,正被越来越广泛的应用[8]。
MAX+PLUSⅡ软件大致可分为5个模块:
设计输入编辑器,HDL综合器,仿真器,适配器和下载器。
用这5个模块进行系统设计的编辑、编译、仿真、综合和芯片编程等功能[9]。
1、硬件描述语言输入(TextEditor)
MAX+PLUSII软件中有一个集成的文本编辑器,这个编辑器支持AHDL、Verilog和VHDL硬件描述语言的输入,还有一个模板使输入程序语言更加便捷,此软件可以对这些程序语言进行编译,同时形成可以下载的配置数据,文本编辑器窗口如图2.1所示:
图2.1文本输入
2、波形编辑器(WaveformEditor)
在进行仿真逻辑电路的动作时,这时候需要在设计电路的输入端加入一定波形,同时波形编辑器可以立刻生成和编辑仿真时用的波形(*.SCF文件)文件,用这个编辑器的工具条可以非常容易快捷的生成编辑波形和波形。
波形编辑器窗口如图2.2所示:
图2.2波形编辑器
3、符号编辑器(SymbolEditor)
符号编辑器是在文本程序运行成功的基础上,自动生成的电路符号,该编辑器的优点是在画电路图是只要直接拿出来用就可以了,非常的便捷。
电路符号如图2.3所示:
图2.3电路符号
4、开发系统的特点
(1)具有界面的开放性
Max+plusⅡ支持与Exemplarlogic,MentorGraphics,Cadence,Viewlogic,Synplicty等,另外还有其他公司提供的EDA工具的接口。
(2)Opencore特征
Max+plusⅡ软件还具有开放核的功能特点,允许设计者们添加自己认为有价值意义的宏函数。
(3)模块化工具
设计者可以从任何设计输入和处理以及较验功能选项中进行选择,这样就可以使设计的环境得到用户化。
(4)硬件描述语言(VHDL)
Max+plusⅡ软件支持大多数VHDL设计的输入选项,包括VerilogHDL,VHDL和Altera公司自己开发的硬件描述语言AHDL。
(5)丰富的资源设计库
Max+plusⅡ有着丰富的数据库单元提供给设计者调用,其中包括多种最新的参数化的兆功能(Mage-Function)和很多特殊逻辑功能(Macro-Function)以及74系列所需全部器件。
(6)和结构无关
Max+plusⅡ系统的Complier支持Altera公司的MAX9000、FLEX6000、FLEX8000、Classic、MAX5000、MAX7000和FLEX10K可编程的逻辑器件,形成世界上仅有的真正的和结构没有关系的可编程逻辑设计的环境。
(7)完全集成化
Max+plusⅡ的文本输入、处理与检验验功能全部都在统一的开发环境下完成,这样既能加快动态调试,又可以减少开发所需要的周期。
2.1.3FPGA芯片的介绍
FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
现在EDA技术的基本特征是用高级语言描述,并且具有系统级仿真和综合能力[10]。
电子设计自动化简称EDA,在20世纪90年代初从计算机辅助设计、辅助制造、辅助测试和辅助工程这几个概念发展而来的[11]。
现在EDA技术的基本就是以计算机为工具,设计人员在EDA软件的平台上,采用高级硬件描述的语言VHDL完成设计所需的文件,由计算机自动地来完成逻辑的编译、化简、分割、综合、优化、布局、布线这些功能,再进行系统仿真[12]。
EDA技术是一种以计算机为基础核心的工作平台,是利用电子技术、计算机技术、智能化技术等多种应用学科的最新成果[13]。
FPGA的一个明显的特点是它有一个窄输入的逻辑单元,使用的是分布式互连的方案。
FPGA的工作原理:
FPGA采取了逻辑单元阵列LCA(LogicCellArray)这样的一个概念,内部由三部分组成,包括输出输入模块IOB(InputOutputBlock)、可配置逻辑模块CLB(ConfigurableLogicBlock)和内部连线(Interconnect)。
现场可编程门阵列(FPGA)是可编程器件,它和传统逻辑电路以及门阵列(比如PAL,GAL及CPLD器件)比较,FPGA是具有不同的结构。
FPGA是用非常小型的查找表法(16×1RAM)来实现组合逻辑的,每一个查找表都要连接到一个D触发器的输入端,触发器用来驱动其他的逻辑电路或是驱动I/O,这样就构成了既能实现组合逻辑电路的功能,同时又能实现时序逻辑电路功能的基本单元模块,这些模块之间都是运用金属连接线相互连接或是连接到I/O模块上去的。
FPGA的逻辑是向自身内静态储存单元加载编程数据来实现的,存储器单元中储存的值决定了逻辑单元的逻辑功能及各个模块之间或者是模块与I/O之间的连接方式,并且能够最终决定FPGA所能够实现的功能,FPGA允许的编程没有次数限制。
一片FPGA就可以实现逻辑功能十分复杂的逻辑部件甚至一个小型数字系统。
如果将FPGA引入到数据采集系统中,无疑会使系统的体积更加小巧,其性能更加优越[14]。
FPGA内部逻辑设计的功能分为扫描模块,编码模块,控制模块和FIFORAM模块。
因为FPGA基于RAM工艺技术,该器件在使用前需要从外部加载配置数据,需要一个外置存储器保存信息,采用可编程的串行配置器件,供电电压为3.3V。
FPGA是一种可编程逻辑器件,它具有良好性能、极高的密度和极大的灵活性,外围电路具有简单可靠等特性。
解析数据流和操作的复杂应用必须要求大量的触发器,有利于用来作暂态数据存储器和流水线寄存器以及宽计数器和大规模状态机矢量[15]。
比如,一片FPGA芯片就可替代几片甚至几十片标准器件,其用户可用I/O引脚数目多达数百条[16]。
我们在为一个特定的应用选择FPGA的时候,还有一些问题需要仔细得考虑过。
当然为了能够满足这个特定的应用,先应该考虑的是FPGA的内部配置,FPGA的逻辑资源包括时钟分配单元、嵌入的存储器和多功能的I/O单元,一般情况下,即使具有相同的逻辑资源的FPGA,但是它们所能产生的内部配置并不一定是相同的。
因此选择好一个合适的又具有足够的逻辑资源和I/O引脚资源的FPGA,其内部一些关键资源的有无对一个特定的设计是否可能实现,对下一步的设计来说显得尤为重要了。
一个是进行设计的逻辑化简,再逻辑优化,再合并,最后是逻辑分割[17]。
如果将FPGA引入到数据采集系统中,无疑会使系统的体积更加小巧,其性能更加优越[18]。
FPGA的优点有以下几点:
1、引脚多
FPGA中除了个别的几个引脚以外,大部分引脚都与可编程的输入/输出模块IOB相连,都可以根据需要设置成输入端或者输出端。
这样一来,FPGA器件的最大可能的输入端数和输出端数要比同等规模的EPLD多很多,在应用方面也来得比较得心应手。
2、高密度、编程速度快、设计灵活
与其他可编程逻辑器件相比较,FPGA属于高密度PLD,具有更高的集成度和更强的逻辑实现功能,其集成度可以达到3万门/片以上,门延时已小于3ns。
FPGA采用CMOS-SRAM工艺制作,其结构和阵列型不同,内部由许多独立的可编程逻辑模块组成,逻辑模块之间可以直接灵活地相互连接,具有高密度、编程速度快、设计灵活和可再配置设计能力等许多优点。
这不但在结构上提供给用户极大的灵活性,而且在互联特性上提供了超出其他CPLD更大的自由度。
3、可再配置设计能力
FPGA中文名叫做现场可编程门阵列,它的现场体现在现场设计、现场编程、现场配置、现场修改和现场验证,从而现场来实现数字系统的单片化设计和应用。
可编程逻辑器件FPGA能完成任何数字器件的功能,小至简单的电子产品、数字集成电路,大至复杂又很难设计的高性能CPU。
可编程逻辑器件就像是一张毫无痕迹的白纸,也像是一堆积木,工程师可以通
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 键盘 扫描 电路设计 教材