基于FPGA的键盘输入及显示电路Word文件下载.docx
《基于FPGA的键盘输入及显示电路Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的键盘输入及显示电路Word文件下载.docx(49页珍藏版)》请在冰豆网上搜索。
参考文献(28)
附录A:
实物显示图(29)
附录B:
PS/2键盘接口驱动源程序(30)
基于FPGA的键盘输入与显示电路
学生:
罗莎莎
指导教师:
吴正平
三峡大学理学院
要:
本论文介绍了利用FPGA来控制128*64液晶显示模块与PS/2键盘扫描电路,在这个电路中实现对键盘的扫描输入,并通过LCD1602完成显示功能。
本文首先简单介绍了基于FPGA有关课题的研究现状,其次描述了可编程器件相关技术与所用的Quartus开发工具。
然后论述了本次毕业设计所应用的各硬件接口技术和各个接口模块的功能及工作过程,并具体描述了电路接口的软、硬件调试过程。
最后阐述了程序的流程和实现过程。
本文编写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。
在QuartusII环境中设计点阵液晶显示控制器,所有功能全部用硬件描述语言VHDL编程实现并下载到明伟公司生产的FPGAEP1C6开发板上的EP1C6Q240C8N目标芯片上调试通过。
Abstract:
ThisarticleintroducedacircuitusingFPGAtocontrolthe128*64LCDdisplaymoduleandthePS/2keyboardscancircuitmodule.InthiscircuitweinputawordthroughthekryboardanditwilldisplayontheLCD1602.
ThisarticlefirstbrieflyintroducedtheFPGA-basedresearchonrelevantsubjects,followedbydescriptionoftheprogrammabledevicesandrelatedtechnologiesusedintheQuartusdevelopmenttools.Andthendiscussesthedesignofthegraduateapplicationtechnologyofthehardwareinterfaceandtheinterfacemodulefunctionsandworkprocesses,andspecificdescriptionofthecircuitinterfacesoftwareandhardwaredebuggingprocess.Finally,theproceduressetouttheprocessandtherealizationoftheprocess.Thisarticleistheguidingphilosophyofthepreparationofsoftwareandhardwarecombinedwithhardware-based,tothepreparationofvariousfunctionalmodules.IntheQuartusIIdesignenvironmentmatrixliquidcrystaldisplaycontroller,useallthefeaturesofallthehardwaredescriptionlanguageVHDLprogramminganddownloadtoMingwei’sFPGAEP1C6seriesEP1C6Q240C8Ntargetchipdebugispassed.
关键词:
FPAG;
LCD;
VHDL;
键盘
Keyword:
FPGA;
Keyboard
前言
随着集成电路制造技术的发展,在一块芯片上制造的元件越来越多,集成电路规模的扩大为新的电路设计方法提供了物质基础。
作为传统数字系统设计中使用的主要器件,标准逻辑器件已经使用了20多年,标准逻辑器件对研究数字系统基本构成模块的工作原理具有重要的意义,它在许多基础的理论和实验教学课程中仍然占据重要的位置,目前,“数字电路逻辑设计”课程仍然以标准逻辑器件为主进行讲授,但在实际组装电路的过程最麻烦,既费时间又容易出错。
可编程逻辑器件(PLD)能使组装电路这个繁琐的步骤借助计算机和相关开发软件来完成,因此,现在许多数字系统采用可编程逻辑器件实现途径来提高设计效率,同时,由于使用的器件数量的减少也提高了系统的可行性。
FPGA(FieldProgrammableGateArray)是目前广泛采用的一种可编程器件,它的应用不仅使得数字电路系统的设计非常方便,并且还大大缩短了系统研制的周期,缩小了数字电路系统的体积和所用芯片的品种。
而且它的时钟频率已可达到几百兆赫兹和高可靠性,非常适合用于实现波形发生器的数字电路部分。
本设计以FPGA为控制核心,实现对键盘输入与字符点阵液晶1602的控制。
该方案硬件电路连接简单,软件程序简洁,对液晶的控制简单、稳定,且可改动性灵活。
明伟电子公司是著名的可编程逻辑器件生产厂家,它的产品在我国,尤其高校教学中得到广泛的应用。
因为该公司的可编程逻辑器件不仅具有较高性能,高集成度和高性价比的优点,而且还提供了多种功能全面的开发工具,例如获得广泛应用的QuartusII软件。
本文介绍了利用能QuartusII设计信号源发生器的一般设计流程,论文中设计的程序代码都通过QuartusII7.2行编译仿真并利用明伟电子公司生产的FPGA
EP1C6开发板进行了硬件测试。
本课题的研究具有很大的实际意义。
首先,对自己而言,通过本实验,不仅训练了复杂数字电路的设计方法,而且还了解了键盘以及显示器的工作原理,极大提高了自身硬件系统设计能力以及软件编程能力,为今后从事硬件电路设计打下基础。
另外,通过完成本课题的设计可以进一步掌握常用EDA工具的使用方法、FPGA的开发技术以及VHDL语言的编程方法。
能比较熟练的使用QuartusII等常用EDA软件对FPGA和CPLD作一些简单的电路系统设计,同时能较好的使用VHDL语言设计简单的逻辑系统,学会功能仿真、时序仿真和硬件测试技术,为进一步学习现代EDA工程技术,ASIC器件设计以及超大规模集成电路设计奠定基础。
一、基于FPGA的课题研究现状简介
1.1研究现状与发展趋势
键盘作为嵌入式系统的一种最常用人机接口设备,在嵌入式系统中有着相当广泛的应用。
但开发者一般均采用自行设计的简易矩阵键盘,这类键盘仅仅是按行、列排列起来的矩阵开关,往往需要单独设计并制作,通用性不强。
当需要较多的按键时,则会占用较多的I/O端口,在软件上则要进行上电复位按键扫描及通信处理,而且还要加上按键的去抖动处理,增大了系统的软硬件开销。
而PS/2键盘,内嵌自动去除按键抖动的设计自动地识别键的按下与释放,软硬件可发简便,价格便宜,稳定可靠,将PS/2键盘作为嵌入式系统的输入设备已经成为可行的方案。
而目前关于PS/2键盘控制的应用大部分采用单片机控制,与单片机相比,FPGA具有比单片机更加灵活,集成度更高容易移植等特点。
现代EDA(电子设计自动化)技术提供了一种很好的途径,利用VHDL硬件描述语言和FPGA器件可以很方便地构建键盘扫描模块。
液晶显示器由于具有低压、微功耗、显示信息量大、体积小等特点,在移动通信终端、便携计算机、GPS卫星定位系统等领域有广泛用途,成为使用量最大的显示器件。
许多电子公司相继推出各种型号各种系列的液晶显示模块,这些模块不仅可以显示字符和数字,有的还可以显示各种图形和汉字。
液晶显示驱动有多种方法,通常采用的方法为基于专用集成电路和基于通用微处理器的方法。
1.2研究目的及意义
本课题是出于学校实验项目的需要而提出的。
因FPGA器件是八十年代中期出现的一种新概念。
由于它具有集成度高、编程仿真方便、速度快等优点,使得它在信号处理、通信以及电力系统中得到了广泛地应用。
本课题的提出就是想利用FPGA器件的优越性,来实现键盘输入接口以及液晶显示电路的设计。
液晶器件以其具有工作电压低、功耗低、显示信息量大、寿命长、不产生电磁辐射污染、可以显示复杂的文字及图形等优点,广泛应用在各种仪器仪表、电子设备和家用电器等方面。
而且,由于液晶器件的低工作电压和微功耗特性使它可以直接与大规模集成电路结合,开发出一系列便携式产品。
因此,将两者结合起来实现功能、工作方式可修改的液晶显示器有着积极的意义。
本课题以FPGA为控制核心,实现对字符点阵液晶1602的控制。
通过本实验,让学生不仅训练复杂数字电路的设计方法,而且能让学生了解键盘以及显示器的工作原理,能极大提高学生的硬件系统设计能力以及软件编程能力,为今后从事硬件电路设计打下基础。
1.3系统设计平台及开发工具的选择
1.硬件平台
根据现有的实验条件本毕业设计的硬件平台选择明伟电子公司生产的FPGAEP1C6开发板。
FPGAEP1C6开发板是基于FPGA的硬件描述语言EDA和软内核嵌入式系统的SOPC开发平台。
系统采用多层PCB板设计,完善的电源和时钟设计,性能稳定可靠、结构紧凑美观。
系统采用主流FPGA构建平台,片内资源丰富,板载器件多,周边接口多、可扩展性强。
优化设计使系统调试方便,配置容易。
如图1.1是它的实物图。
图1.1FPGAEP1C6开发板
它有如下特点:
①采用四层PCB板,高密度走线,支持更高时钟频率,预留用户晶振焊盘;
②支持FPGA开发,提供引脚信息和预留PLL资源;
③支持SOPC开发,基于NiosII软核处理器或多内核的开发;
④支持扩展设计,数据和地址总线外接插针,预留通用I/O焊孔;
⑤提供USB2.0数据接口,480Mbps传输速度,可以作为算法验证和高速数据采集板;
其外部接口如下:
电源接口:
5V内正极外负极
串口:
孔型,2:
发送,3:
接受,5:
地
USB:
USB2.0接EZUSB
USB1.1接FPGAD+:
5.;
D-:
6
PS/2:
接FPGAPS2_DATA:
1;
PS2_CLK240
VGA:
接FPGA
LCD:
字符液晶,16×
2
总线排针:
数据双排40针,地址双排40针
通用接口:
GPIO双排40针未焊接
JTAG接口:
双排10针FPGAJTAG接口
ActiveSerial:
双排10针FPGA串行配置接口
2.开发工具
选用QuartusII7.2,它是ALTERA公司提供的可编程逻辑器件的集成软件,编程语言选用VHDL硬件描述语言。
我们将在第二章中具体介绍QuartusII开发工具。
二、可编程器件相关技术及Quartus开发工具概述
2.1可编程器件相关技术
2.1.1现场可编程门阵列(FPGA)简介
FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元数组LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部联机(Interconnect)三个部分。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
因此,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。
在FPGA实际应用中,设计的保密和设计的可升级是十分重要的、用单片机来配置FPGA可以很好地解决上述问题。
用单片机配置FPGA器件时,关键在于产生合适的时序。
单片机可选用常用的如MCS51系列、MCS96系列、AVR系列等均可。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用灵活。
2.1.2VHDL硬件描述语言介绍
VHDL的全称是超高速集成电路硬件描述语言(VeryHighSpeedIntegrateCircuitHardwareDescriptionLanguage),考虑在HDL前添加首字母的缩写太长,更重要的是当时考虑军事保密的原因,因此该语言简称为VHDL。
该语言是美国国防部为了解决电子系统众多承包公司的设计语言不统一而发起创建的,在1986年12月IEEE接受VHDL为一种标准的硬件描述语言,这就是我们在许多资料中可以看到“IEEEStd1067-1987”。
硬件描述语言HDL是EDA技术的重要组成部分,常见的HDL语言有VHDL、VerilogHDL、AHDL等,其中VHDL、VerilogHDL在现在的EDA设计中使用最多,也拥有几乎所有主流EDA工具的支持。
1993年,IEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展了VHDL的内容,公布了新版本的VHDL,即IEEE标准版本“IEEEStd1076-1993”,现行公布的最新VHDL标准版本是“IEEEStd1076-2002”。
现在VHDL和verilogHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性。
VHDL允许以下三种描述方式:
结构描述:
描述该设计单元的硬件结构,即该硬件是如何构成的。
主要使用配置指定语句及元件例化语句描述元件的类型及元件的互连关系。
行为描述:
描述该设计单元的功能,即该硬件能做些什么。
主要使用进程语句,以算法形式描述数据的变换和传送。
数据流方式:
以类似于寄存器传输级的方式描述数据的传输和变换。
主要使用并行的信号赋值语句,既显式表示了设计单元的行为,也隐式表示了设计单元的结构。
VHDL具有与具体硬件电路无关和与设计平台无关的特性,并具有良好的电路行为描述和系统描述能力,并在语言易读性和层次化结构化设计方面,表现了强大的生命力和应用潜力。
因此,VHDL在支持各种模式的设计方法、自项向下与自底向上或混合方法方面,在面对当今许多电子产品生命周期的缩短,需要多次重新设计以融入最新技术,改变工艺等方面都表现了良好的适应性。
用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的工艺有关的因素花费过多的时间和精力。
此外,它支持大规模设计的分解和已有设计的再利用,一个大规模设计不可能一个人独立完成,它将由多个人甚至多个项目组共同完成。
VHDL中设计实体(designentity)的概念、程序包(Package)的概念、设计库(library)的概念为设计的分解和设计的再利用提供了有力的支持。
2.1.3VHDL硬件语言设计应用
1.状态机的设计
数字电路可以用有限状态机来设计,VHDL也支持这种设计方式。
常见的应用有系列检测器以及A/D采样控制器设计等。
(1)状态转移图
任何状态机都有两种或以上的状态,在不同的控制条件下发生转移,因此画状态转移图是应注意标出转移条件.
(2)状态VHDL表示
状态在VHDL中用枚举类型信号量来表示。
例如:
typestatetype(s0,s1,s2,s3,s4,s5,s6,s7);
signalcur_state,next_state:
statetype;
(3)整体结构
包括状态信号量说明、时钟进程以及组合进程三部分组成。
(4)状态机的描述
VHDL对不同的状态机有不同的描述方式,描述方式不同使得综合出来的门级网表也不同,因此必须根据数字电路的特性和可综合性选择相应的状态机描述方式。
下面介绍一种三段式写法的描述方法.
使用3个进程模块,一个模块采用同步时序描述状态转移;
第二个采用组合逻辑判断状态转移条件,描述状态转移规律;
第三个模块使用同步时序电路描述每个状态的输出,该写法称为三段式写法。
分析其结构概括为图2.1所示框图。
图2.1三段式描述框图
2.分频计的设计
在数字逻辑电路设计中,分频器是一种基本电路。
通常用来对某个给定频率进行分频,以得到所需的频率。
整数分频器的实现非常简单,可采用标准的计数器,也可以采用可编程逻辑器件设计实现。
分频器的实现非常简单,通过计数器计数就完全可以实现。
如进行N倍分频,就可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N时,输出时钟进行翻转,并给计数器一个复位信号,以使下一个时钟从零开始计数。
以此循环,就可以实现任意的分频。
如进行三分频,就可通过待分频时钟上升沿触发计数器来进行模三计数,当计数器计数到邻近值时进行两次翻转。
比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。
这样,就在计数值邻近的1和2进行了两次翻转。
如此便实现了三分频,其占空比为1/3或2/3。
2.1.4FPGA的设计流程
一般来说,完整的FPGA设计流程包括电路的设计与输入、功能仿真、综合、综合后仿真、实现、布线后仿真与验证、板级仿真验证与调试等主要步骤。
1.电路设计与输入
电路设计与输入是指通过某些规范的描述方式,将工程师电路的构思输入给EDA工具。
常用的设计输入方法有硬件描述语言(HDL)和原理图设计输入方法等。
原理图设计输入方法在早期应用得比较广泛,它根据设计要求,选用器件,绘制原理图、完成输入过程。
这种方法的优点的直观、便于理解、元器件库资源丰富。
但是在大型设计中,这种方法的可维护性较差,不利于模块构造与重用。
更主要的缺点是当所选用芯片升级换代后,所有的原理图都要做相应的改动。
2.功能仿真
电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。
功能仿真有时也称为前仿真。
常用的仿真工具在ModelTech公司的ModelSim、Synopsys公司的VCS、Cadnce公司的NC-Verilog和NC-VHDL、Aldec公司的ActiveHDL等。
通过仿真能及时发现设计中的错误,加快设计进度,提高设设计的可靠性。
3.综合优化
综合优化(Synthesize)是将HDL语言、原理图等设计输入翻译成由与、或、非门,RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化生成的逻辑连接,输出edf和edn等标准格式的网表文件,供FPGA/CPLD厂家的布局布线器进行实现。
4.综合后仿真
综合完成后需要检查综合结果是否与原设计一致,作综合后仿真。
在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。
综合后仿真虽然比功能仿真精确一些,但是只能估计门延时,不能估计线延时仿真结果与布线后还有一定的差距,并不十分准确。
这种仿真的主要目的在于检查综合器的综合后结果是否与设计输入一致。
目前主流综合工具日益成熟,对于一般性设计,如果设计者确信自己表述明确,没有综合歧义发生,则可省略综合后仿真步骤。
但是如果在布局布线后仿真时发现有电路结构与设计意图不符的现象,则常回溯到综合后仿真以确认是否是由于综合歧义造成的问题。
5.实现与布局
综合结果本质是一些由与、或、非门,触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况还有较大差距。
此时应该是使FPGA/CPLD厂商提供的软件工具,根据所选芯片的型号,将综合输出的逻辑网表适配到具体GPGA/CPLD器件上,这个过程就叫做实现过程。
因为只有器件开发商最了解器件的结构,所以实现步骤必须选用器件开发商提供的工具。
实现过程中最主要的过程是布局布线(PAR,PlaceAndRoute):
所谓布局(Place)是指将逻辑网表中的硬件原语或者底层单元合理地适配到FPGA内部的固有硬件结构上,布局的优劣对设计的最终实现结果(在速度和面积两个方面)影响很大;
所谓布(Route)是指根据布局拓扑结构,利用FPGA内部的各种边线资源,合理正确连接各个元件的过程。
6.时序仿真与验证
将布局布线的时延信息反标注到设计网表中,所进行的仿真就叫时序仿真或布局布线后仿真,简称后仿真。
布局布线这后生成的仿真时延文件包含信息最全,不仅包含门延时,还包含实际布线延时,所以布线后仿真最准确,能较好地反映芯片的实际工作情况。
一般来说,布线持仿真步骤必须进行,通过布线后仿真能检查设计时序与FPGA实际运行情况是否一致,确保设计的可靠性和稳定性。
7.板级仿真与验证
在有些高速设计情况下还需要使用第三方的板级验证工具进行仿真与验证,如MentorTau、MentorHtpermality、MentorICX等工具通过IBIS、HSPICE等模型的仿真,能较好的分析高速设计的信号完整性、电磁干扰(EMI)等电路特性等。
8.调试与加载配置
设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。
示波器和逻辑分析仪(LA,LogicAnalyzer)是逻辑设计的主要调试工具。
传统的逻辑功能板级验证手段是用逻辑分析仪信号,设计要求FPGA和PCB设计人员保留一定数量FPGA管脚作为测试管脚,编写FPGA代码时将需要观察的信号作为模块的输出信号,在综合