FPGA矩阵键盘课程设计.docx

上传人:b****5 文档编号:6605325 上传时间:2023-01-08 格式:DOCX 页数:16 大小:206.65KB
下载 相关 举报
FPGA矩阵键盘课程设计.docx_第1页
第1页 / 共16页
FPGA矩阵键盘课程设计.docx_第2页
第2页 / 共16页
FPGA矩阵键盘课程设计.docx_第3页
第3页 / 共16页
FPGA矩阵键盘课程设计.docx_第4页
第4页 / 共16页
FPGA矩阵键盘课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

FPGA矩阵键盘课程设计.docx

《FPGA矩阵键盘课程设计.docx》由会员分享,可在线阅读,更多相关《FPGA矩阵键盘课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

FPGA矩阵键盘课程设计.docx

FPGA矩阵键盘课程设计

FPGA课程设计陈述之五兆芳芳创作

项目名称基于FPGA的4*4矩阵键盘的设计

专业班级通信1

学生姓名张

指导教师

2016年7月10日

摘要

本课程设计提出了基于FPGA的4*4矩阵键盘的设计,主要是在软件QuartusII9.0这个情况中,以硬件描述语言Verilog进行编写程序,从而完成矩阵键盘的相关设计.主要由矩阵式键盘电路、显示电路等组成,实现进程是通过行扫描输入随机信号,列扫描判断哪一个键被按下,并最后由数码管显示该按键.此次课程设计完成了4*4矩阵键盘控制LED数码管显示系统的设计,该设计具有灵活性强,易于操纵,可靠性高,普遍应用于各类场合的特点,是进行按键操纵办理的有效办法,它可以提高系统准确性,有利于资源的节约,下降对操纵者自己的要求,并能正确、实时、高效地显示按键信息,以提高任务效率和资源换利用率的意义.

关头词:

数码管;矩阵键盘;按键;显示电路

Abstract

ThiscourseisdesignedbasedonFPGAisproposed4*4matrixkeyboarddesign,mainlyintheQuartusIIsoftware9.0thisenvironment,withtheVeriloghardwaredescriptionlanguageprogram,soastocompletetherelateddesignofmatrixkeyboard.Mainmatrixkeyboardcircuit,displaycircuitandsoon,completethe4*4matrixkeyboardcontrolLEDdigitaltubedisplaysystemdesign,thedesignhasstrongflexibility,easyoperation,highreliability,widelyusedinvariousoccasions.Into4*4matrixkeyboardcontrolLEDdigitaltubedisplaysystemdesign,designflexibilityisstrong,easytooperate,highreliability,widelyusedinvariousoccasions.Matrixkeyboardcontrolsystem,canimproveefficiency,andisaneffectivemethodtomanagethekeystrokes,itcanimprovethesystemaccuracy,andisconducivetoresourcesavingandreducetherequirementoftheoperatoritself,andcorrectly,real-timeandefficienttoshowthekeyinformation,inordertoimprovetheworkefficiencyandtheutilizationratioofresourcesinmeaning.

Keywords:

Digitaltube;Matrixkeyboard;Thekey;Displycircuit

摘要I

AbstractII

第1章绪论1

1.1课题布景1

1.2国际外成长现状1

1.3本文主要研究内容1

第2章软件及语言简介2

2.1Quartus软件简介3

2.2Verilog语言简介4

2.2.1Verilog语言的主要功效4

2.2.2Verilog语言设计数字系统的特点4

第3章4*4矩阵键盘的原理6

3.14*4矩阵式键盘6

3.2.1LED数码管8

3.3键盘扫描9

3.4矩阵键盘接口电路的原理9

第4章程序调试11

4.1流程图11

4.2程序结果讨论11

第5章波形仿真及讨论13

5.1波形结果13

5.2结果讨论14

结论15

参考文献16

附录程序17

致谢19

第1章绪论

1.1课题布景

在现代的团体计较机系统中,一般都采取通用的尺度键盘如尺度键盘(如:

尺度101/102键盘或Microsoft自然PS/2键盘)来实现人与计较机之间的接口交互,从而将需要的各类数据和指令等信息都通过键盘来输人计较机.

但是,各类嵌人式系统(如:

手机、微波炉、电电扇等)所需的键盘的按键个数很是有限,通常为几个到十几个不等(而尺度键盘通常为:

一百多个按键并且每个按键所代表的功效寄义也各不相同.所以,每一种嵌入式系统都应对键盘(包含键盘扫描模块和相关控制信号等)进行专门设计,以便结合工程实际情况充分利用该系统已有的各类资源,使所设计的键盘很好地融合到嵌人式系统中[1].

在现代团体计较机系统中,一般都采取通用的尺度键盘(如:

尺度101/102键盘或Microsoft自然PS/2键盘)来实现人与计较机之间的接口交互,所需要的各类数据和指令等信息都通过键盘来输入计较机.

但是,在各类嵌入式系统(如手机、微波炉、电电扇等)中,所需要的键盘按键个数很是有限,通常为几个到十几个不等(而尺度键盘通常为一百多个按键),并且每个按键所代表的功效寄义也各不相同.所以,针对每一种嵌入式系统都应对键盘(包含键盘扫描模块和相关控制信号等)进行专门设计,结合工程实际情况充分利用该系统已有的各类资源,使所设计的键盘恰如其分地融合到嵌入式系统中,成为其不成联系的一部分[2].

在数字电路中,可以利用编码器实现按键键值的直接编码.将每个按键的输出信号对应连接到编码器的每个输入端,通过编码逻辑就可以在编码器的输出端得到对应每个按键的码值,早期称这种键盘为编码键盘.但是,当按键较多时数码逻辑的成本较高,直接编码的办法也不敷灵活,一旦编码逻辑固定就难以更改.

在通用键盘上或当按键数量较多时,普遍采取扫描方法产生键值.将按键连接成矩阵,每个按键位于某行、某列的交点上,如图1所示,先通过扫描方法确定按下键的行和列位,即位置码或扫描码.再查表将位置码转换为按键码值或直接使用扫描码,有些参考书称此为“非编码键盘”.但这种名称容易让人误解为没有对应的键值,因此又称为扫描式键盘[3].

1.2国际外成长现状 

近年来EDA技巧在电子领域引发的技巧反动,推动着电子技巧的迅猛成长,为世人所瞩目,而FPGA为代表的可编程逻辑器件的应用,更是受到业内人士的普遍存眷.陪伴着大范围集成电路和计较机技巧的高速成长,在设计产业自动化,仪器仪表,计较机设计与应用、通信、国防等领域的电子系统中,FPGA技巧的含量正以惊人的速度提升.将尽可能大的完整的电子系统在单一FPGA芯片中实现已成为现实,电子类新技巧项目的开发也更多地依赖于FPGA技巧的应用[4]. 

作为FPGA研究课题之一的矩阵键盘控制接口电路的设计,在FPGA设计中是一个经常被提到的话题,就像是利用PFGA设计数字中一样,虽然复杂,但是却是一个很有研究意义的话题,涉及到怎么样才干是FPGA资源加倍充分利用,现在良多电子产品都涉及到按键,小的有独立按键,大的有N*N的矩阵键盘,独立按键由于案件的个数少,也就没需要考虑资源的利用问题了.而矩阵键盘,由于按键多,对整个系统的影响大,所以肯定要考虑资源的利用问题,并且还要考虑一下电路里面的时序问题.

1.3本文主要研究内容

本次设计要求设计一个4*4矩阵键盘,也就是行动4,列为4,一共可以设计16个按键.其中设计办法为:

一般判断键盘中有没有按键按下是通过航路送入扫描信号,然后从列线中读取状态得到的,其办法是依次给行线送入低电平,查抄列线的输入.如果列线信号趣味高电平,则代表低电平信号所在的行中无按键按下,反之,则有,则在低电平信号所在的行和出现低电平的穿插处有按键按下. 

 

第2章软件及语言简介

2.1Quartus II软件简介

QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程.

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方法.具有运行速度快,界面统一,功效集中,易学易用等特点.

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功效模块库,使用户可以充分利用成熟的模块,简化了设计的庞杂性、放慢了设计速度[5].对第三方EDA东西的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA东西.

此外,QuartusII通过和DSPBuilder东西与Matlab/Simulink相结合,可以便利地实现各类DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台.MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了普遍的应用[6].目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不但仅是支持器件类型的丰厚和图形界面的改动.Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计帮助东西,集成了SOPC和HardCopy设计流程,并且承继了MaxplusII友好的图形界面及简洁的使用办法[7]. 

QuartusII提供了完全集成且与电路结构无关的开发包情况,具有数字逻辑设计的全部特性,包含:

可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保管为设计实体文件;芯片(电路)平面计划连线编辑;LogicLock增量设计办法,用户可成立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功效强大的逻辑综合东西;完备的电路功效仿真与时序逻辑仿真东西;定时/时序阐发与关头路径延时阐发;可使用SignalTapII逻辑阐发东西进行嵌入式的逻辑阐发;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方法可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证东西;可读入尺度的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件[8]. 

2.2Verilog语言简介

1983年,GatewayDesignAutomation(GDA)硬件描述语言公司的PhilipMoorby首创了VerilogHDL.后来Moorby成为VerilogHDL-XL的主要设计者和Cadence公司的第一合股人.1984至1986年,Moorby设计出第一个关于Verilog HDL的仿真器,并提出了用于快速门级仿真的XL算法,使VerilogHDL语言得到迅速成长.1987年Synonsys公司开始使用VerilogHDL行动语言作为综合东西的输入.1989年Cadence公司收购了Gateway公司,VerilogHDL成为Cadence公司的私有财富.1990年初,Cadence公司把VerilogHDL和VerilogHDL-XL分隔,并地下宣布了VerilogHDL.随后成立的OVI(OpenVerilogHDLInternational)组织担任Verilog HDL的成长并制定有关尺度,OVI由VerilogHDL的使用者和CAE供给商组成.1993年,几近所有ASIC厂商都开始支持VerilogHDL,并且认为Verilog HDL-XL是最好的仿真器.同时,OVI推出2.0版本的VerilongHDL标准,IEEE则将OVI的Verilog [9].1995年12月,IEEE制定了VerilogHDL的尺度IEEE1364-1995.目前,最新的Verilog语言版本是2000年IEEE颁布的Verilog2001尺度,其大幅度地提高了系统级和可综合性能HDL既是一种行动描述语言,也是一种结构描述语言.如果依照一定的法则和气概编写代码,就可以将功效行动模块通过东西自动转化为门级互连的结构模块.这意味着利用Verilog语言所提供的功效,就可以机关一个模块间的清晰结构来描述庞杂的大型设计,并对所需的逻辑电路进行严格的设计[10]. 

2.2.1Verilog语言的主要功效

可描述顺序执行或并行执行的程序结构;用延迟暗示式或事件表达式来明确地控制进程的启动时间;通过命名的事件来触发其他进程里的激活行动或停止行动;提供了条件和循环等程序结构;提供了可带参数且非零延续时间的任务程序结构;提供了可定义新的操纵符的函数结构;提供了用于成立表达式的算术运算符、逻辑运算符和位运算符;提供了一套完整的暗示组合逻辑根本元件的原语;提供了双向通路和电阻器件的描述;可成立MOS器件的电荷分享和衰减模型;可以通过机关性语句精确地成立信号模型[11].

主要采取自上而下的设计办法.即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计.在设计的进程中,对系统自上而下分红三个条理进行设计:

 

第一条理是行动描述.所谓行动描述,实质上就是对整个系统的数学模型的描述.一般来说,对系统进行行动描述的目的是试图在系统设计的初始阶段,通过对系统行动描述的仿真来发明设计中存在的问题.在行动描述阶段,其实不真正考虑其实际的操纵和算法用何种办法来实现,而是考虑系统的结构及其任务的进程是否能到达系统设计的要求. 

第二条理是RTL方法描述.这一条理称为存放器传输描述(又称数据流描述).如前所述,用行动方法描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的.要想得到硬件的具体实现,必须将行动方法描述的VHDL语言程序改写为RTL方法描述的VHDL语言程序.也就是说,系统采取RTL方法描述,才干导出系统的逻辑表达式,才干进行逻辑综合. 

第三条理是逻辑综合.即利用逻辑综合东西,将RTL方法描述的程序转换成用根本逻辑元件暗示的文件(门级网络表).此时,如果需要,可将逻辑综合的结果以逻辑原理图的方法输出.此后可对综合的结果在门电路级上进行仿真,并查抄其时序关系.应用逻辑综合东西产生的门级网络表,将其转换成PLD的编程码点,便可利用PLD实现硬件电路的设计[12]. 

由自上而下的设计进程可知,从总体行动设计开始到最终的逻辑综合,每一步都要进行仿真查抄,这样有利于尽早发明设计中存在的问题,从而可以大大缩短系统的设计周期. 

 

第3章4*4矩阵键盘的原理

3.14*4矩阵式键盘

矩阵式键盘(或叫行列式键盘)常应用在按键数量比较多的系统之中.这种键盘由行线和列线组成,按键设置在行、列结构的穿插点上,行、列线辨别接在按键开关的两端.行列式键盘可分为非编码键盘和编码键盘两大类.编码键盘内部设有键盘编码器,被按下键的键号由键盘编码器直接给出,同时具有防抖息争决重键的功效.非编码键盘通常采取软件的办法,逐行逐列查抄键盘状态,当有键按下时,通过计较或查表的办法获得该键的键值,通常,计较机通进程序控制对键盘扫描,从而获得键值,按照计较机扫描的办法可以分为定是扫描法和中断扫描法两种,原理结构如图3-1所示.

图3-14*4矩阵键盘原理结构框图

3.2总体结构

由行列式键盘原理就可以知道,要正确的完成键盘输入任务必须有按键扫描电路产生clk信号.同时还必须有按键译码电路从kbrow信号和kbcol信号中译码出按键的值.此外,一般还需要一个按键产生信号用于和其他模块接口,通知其他模块键盘上有按键动作产生,并可以从键盘上读取按键的键值.由于各个模块需要的时钟频率是不一样的,因此时钟产生模块就是用于产生各个模块需要的时钟信号.在本次课程设计中,最为重要的两部分就是数码管显示电路以及键盘结构,这两部分的组成,形成了4*4矩阵键盘,通过键盘输入,数码管进行显示.

3.2.1LED数码管

led数码管(LEDSegmentDisplays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极.数码管实际上是由七个发光管组成8字形组成的,加上小数点就是8个.这些段辨别由字母a,b,c,d,e,f,g,dp来暗示.

图3-27段LED显示器件外形图

在本系统中,4*4键盘共有16个键,对其编号0~9,A~F,所以用一个7段数码管静态显示便可满足即时显示按键信息的要求.所谓静态显示,就是当显示器件某个字符时,相应的显示段(发光二极管)恒定地导通或截止,直到显示方法显示一个字符时,只需要微处理器送一次代码,因此占用机时少,并且显示稳定可靠,其缺点是,使用元器件相对较多,且线路比较庞杂,相对而言成本较高,比较适合显示位数较少的情况.器件结构如图3-3所示.

图3-37段LED显示器件结构图

3.2.2键盘结构

本系统中的4*4矩阵式键盘结构复杂,按键数较少,采取非编码式键盘,当有键盘按下时,由单片机通进程序扫描确定键值,设计一个4*4矩阵键盘,也就是行动4,列为4,一共可以设计16个按键.并将取得的键值通过LED数码管显示出来,4*4矩阵式键盘结构及键值散布如图3-4所示.

图3-4键盘键值散布

3.3键盘扫描

本设计一共有三个模块,辨别为:

扫描电路模块、时钟产生模块、键盘译码电路和按键标记位产生电路.扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中中是否有按键按下.键盘译码电路和按键标记位产生电路是为了配合扫描模块来扫描电路中是否有按键按下,并且还要求它来产生按键标记信号,以便和外部电路握手.时钟产生电路是为了产生不合频率的信号,来驱动上面两个电路的运转.行扫描法又称为逐行(或列)扫描查询法,是一种最经常使用的按键识别办法,如上图所示键盘,介绍进程如下:

1、判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态.只要有一列的电平为低,则暗示键盘中有键被按下,并且闭合的键位于低电平线与4根行线相穿插的4个按键之中.若所有列线均为高电平,则键盘中无键按下.2、判断闭合键所在的位置在确认有键按下后,便可进入确定具体闭合键的进程.其办法是:

依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平.在确定某根行线位置为低电平后,再逐行检测各列线的电平状态.若某列为低,则该列线与置为低电平的行线穿插处的按键就是闭合的按键.4个模块来实现键盘扫描功效,辨别为即时扫描模块、扫描控制模块、扫描脉冲模块和键值传送模块.

3.4矩阵键盘接口电路的原理 

在键盘中按键数量较多时,为了削减I/O口的占用,通常将按键排列成矩阵形式.在矩阵式键盘中,每条水平线和垂直线在穿插处不直接连通,而是通过一个按键加以连接.这样,一个端口就可以组成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,并且线数越多,区别越明显,比方再多加一条线就可以组成20键的键盘,而直接用端口线则只能多出一键(9键).由此可见,在需要的键数比较多时,采取矩阵法来做键盘是公道的.矩阵式结构的键盘显然比直接法要庞杂一些,识别也要庞杂一些,列线通过电阻接正电源,并将行线所接的FPGA的I/O口作为输出端,而列线所接的I/O口则作为输入.这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下.行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了.

 

第4章程序仿真

4.1流程图

本次设计的4*4矩阵键盘,作为输入的有clk,start,kbcol,辨别是时钟信号,开始,行输入,作为输出的有kbrow,scan,seg7_out辨别是列扫描,数码管位数以及输出结果即哪个键被按下,在程序仿真是我们给输入一个随机信号,若输入是1,2,3,4行,那么会有相应输出产生,不然数码管会显示零,具体流程图如4-1所示.

图4-1流程图

4.2程序结果讨论

只使用一个数码管显示,通过随机信号的不竭变更,会有不合的输出产生,周而复始地扫描.其停留在某个状态的时间大约为10ms.更短的停留时间是没有需要的,因为人按键的时间大约为10ms,不成能有更快的按键动作产生. 

另外,更短的停留时间还容易收集到抖动信号,会搅扰判断.而太长的停留时间则会使某些较快的按键东走丢失.完成程序见附录,部分主要程序如图4-1.

图4-1主要程序

图4-2程序结果

第5章波形仿真及讨论

5.1波形结果

在本系统中,4*4键盘共有16个键,对其编号0~9,A~F,所以用一个7段数码管静态显示便可满足即时显示按键信息的要求.所谓静态显示,就是当显示器件某个字符时,相应的显示段(发光二极管)恒定地导通或截止,直到显示方法显示一个字符时,只需要微处理器送一次代码,因此占用机时少,并且显示稳定可靠,其缺点是,使用元器件相对较多,且线路比较庞杂,相对而言成本较高,比较适合显示位数较少的情况.

运行结果如图5-1所示.

图5-1波形结果

5.2结果讨论

本次课程设计主要是使用软件QuartusII和Verilog语言进行编写程序,从而达到4*4矩阵键盘的目的,实现其相应功效.首先输入程序,程序正确之后,进行波形仿真,由于不是实物,没有键盘,所以通过给一个随机信号来模拟某个键被按下,因此会出现一些没有的行数,故而在波形仿真数码管会产生0,这就是因为没有相应的列数有行数对应,4*4矩阵,那么就只有4行4列,只有随机信号产生1,2,3,4,这几行时,才会有相应的正确输出产生.其次本次课程是仿真,通过期钟信号来控制,所以时钟信号一直有,就会一直进行循环列扫描,行扫描译码.当进行列扫描时,扫描信号由列引脚进入键盘,以1000,、0100、0010、0001的顺序每次扫描不合的一列,然后读取行引脚的电平信号,以此可以判断是哪个按键被按下.例如,当行扫描信号为“0100”时,暗示正在扫描“89AB”一列,如果该列没有按键别按下,则由行信号读出的值为“0000”;反之,如果按键“9”被按下时,则该行信号读出的值为“0100”.

结论

本次课题设计完成的是基于FPGA的4*4矩阵键盘设计,通过一个多星期的不竭努力、克服各类困难,最终实现了任务目标.本次设计解决的主要问题是是利用verilog HDL语言完成基于FPGA的矩阵键盘的编程问题.

矩阵式键盘是一种罕有的输入装置,在日常生活中,矩阵式键盘在计较机、电话、手机、微波炉等各式电子产品上已经被普遍应用.林林总总的矩阵键盘控制着各类各样的功效,矩阵式键盘控制接口电路是最根本的输入电路,它我们利用软件QuartusII自行设计并修改的键盘输入显示电路是通过VHDL语言编写并实现了键码的对应显示.并且发明许多的问题,还有良多需要改良的地方,设计的进程很有意思也很是繁琐,再利用QuartusII进行仿真的时候,要精心的对参数尽心设置,最后才干够仿真出结果. 

在课程设计的进程中也可以看到我的缺乏,如原理知识掌握不实,曾学过的知识如今却不会应用,软件的应用也不熟练,希望日后提供给我们更多的锻炼

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 城乡园林规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1