基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx

上传人:b****3 文档编号:16804947 上传时间:2022-11-26 格式:DOCX 页数:29 大小:386.39KB
下载 相关 举报
基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx_第1页
第1页 / 共29页
基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx_第2页
第2页 / 共29页
基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx_第3页
第3页 / 共29页
基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx_第4页
第4页 / 共29页
基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx

《基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

基于FPGA的PS2键盘控制设计及仿真实现文档格式.docx

设计使得使用VHDL语言基于FPGA芯片实现PS2键盘成为研究的方向。

本文对基于VHDL的PS2键盘实现进行了研究,并设计了PS2键盘。

所做的主要工作为:

(1)以PS2键盘控制的基本理论为依据,对其进行了详细的讨论。

(2)本设计中采用了自上而下的层次化、模块化的设计思想,将整个接口划分为多个模块,同时利用VHDL语言的描述方法对各个功能模块进行了设计,最终完成了PS2键盘的系统设计。

(3)运用ISE软件进行仿真。

关键词:

VHDL;

PS2键盘;

ISE

Abstract

ThispaperdescribesthecharacteristicsandworkingprincipleofPS2keyboard,introducedinthestructureofFPGAtorealizethePS2keyboarddesignandVHDLcodedesign.

PS2keyboardhaslowpriceandreliableingeneralandlesscables(USESonly2signallines).Andcanmeettherequirementsofavarietyofsystems.

FPGA(FieldProgrammableGateArray)isakindofhighlevelofintegrationofProgrammablelogicdevices,itcombinedthetechnologyofEDAwithhardwaredescriptionlanguage(suchasforminput,circuitprinciplediagram,machinedesignlogic;

Andprovidethefunctionsimulationandtimingsimulationmodelingtechnology,thenafteraseriesoftransformation,whichconvertstheinputlogicprogrammingfilesneededfortheFPGAdevice,inordertorealizethespecialintegratedcircuitASIC.PS2keyboardcontrollerusingFPGAdesign,notonlythehardwarecircuitissimple,flexibility,highlevelofintegrationismoreeasytotransplant,moreimportantisthemodernEDA(electronicdesignautomation)technologyprovidesagoodway,usingtheVHDLhardwaredescriptionlanguageandFPGAdevicecanbeeasilyconstructthekeyboardscanmodule.DesignmakesuseofVHDLlanguagebasedontheFPGAchiptorealizethePS2keyboardbecomethedirectionofresearch.

Inthispaper,thePS2keyboardimplementationbasedonVHDLarestudied,anddesignthePS2keyboard.Themainworkdoneasfollows:

(1)tothePS2keyboardcontrolonthebasisofthebasictheory,andcarriesonthedetaileddiscussion.

(2)thedesignadoptsthetop-downhierarchical,modulardesignthought,willthewholeinterfaceisdividedintoseveralmodules,atthesametime,useofVHDLlanguagedescriptionmethodofeachfunctionmoduledesign,finallycompletedaPS2keyboardsystemdesign.

(3)usingISEsoftwaresimulation.

Keywords:

VHDL;

PS2keyboard;

ISE

附录20

附录1PS2键盘接口程序设计20

1概述

1.1本选题研究的目的及意义

现今生活中,随着社会的发展,各式各样的生活用品慢慢地走上了“智能”的道路,越来越令人感觉到方便。

这与一个优秀的人机交流界面密不可分。

与此同时作为计算机最常用的输入设备的键盘也日新月异。

1981年IBM推出了IBMPC/XT键盘及其接口标准。

该标准定义了83键,具5脚DIN连接器和简单的串行协议。

采用我们现在提及的作为第一套扫描码集然则它并没有主机到键盘的命令。

为此,1984年IBM推出了IBMAT键盘接口标准。

该标准定义了84~101键,与PC键盘不同的是它采用双向串行通讯协议,此协议采用第二套键盘扫描码集并设有8个主机到键盘的命令。

到了1987年,IBM又推出了PS2键盘接口标准。

该标准仍旧定义了84~101键的基础上采用6脚mini-DIN连接器,此连接器在封装上比5脚DIN连接器更小巧,仍然用双向串行通讯协议并且提供有可选择的第三套键盘扫描码集,同时支持17个主机到键盘的命令。

现在,市面上的键盘都和PS2及AT键盘兼容,只是功能不同而已。

在工业电子设备“智能化”和升级换代迅速的电路设计中,常常需要使用键盘,而使用标准PS2键盘则可简化设计。

由于FPGA不仅可以用编写代码的方法实现复杂逻辑电路,而且其内部是由规则的逻辑阵列所组成的。

因此利用FPGA设计键盘控制器,不仅使硬件电路简单,设计周期短而且编码过程比通用MCU比,更加简单易行。

1.2本选题国内外研究状况综述

如果将CPU比作电脑的心脏,显示器比作电脑的脸,那么键盘就是电脑的嘴,是它实现了人和电脑的沟通。

它作为嵌入式系统的常用人机接口设备,在嵌入式系统中有着广泛的应用。

目前,无论是国外还是国内,各键盘制造厂商针对使用者对于键盘的功能性及使用舒适度等需求,在设计上作了相当大的调整,就市场角度来看,键盘技术在可预期的几年内将朝着以下几个趋势发展:

(1)USB介面设计:

USB(UniversalSerialBus)即为一种可联结127个装置的万用序列流排,同时支持PC97的一种外接标准,并成为目前电脑界最新的介面标准,因USB介面能够提供更简单,更直接的联结方式,即插即用,可高速存取。

据市场趋势显示,USB已经发展为便于利用,增强功能及降低成本的标准。

在WinHEC大会上,Microsoft总裁BillGates大力倡导USB的标准下,不仅Intel全部新型的主机板均支持USB而且几乎所有PC供应商都致力于发展USB的系统,因此它被预测成为整个新型PC周边设备产品爆炸性创新的"

催化剂"

(2)多媒体功能:

键盘的设计已开始走向多媒体世界的舞台,它拥有操控多媒体周边设备的功能同时,使用者还可依自己的需求,自行设定所需的应用功能于功能键上。

多媒体的市场正在快速发展中,键盘技术的发展也必将顺应着它的潮流而不断改进,面对这种改进,有人说是把简单的键盘复杂化(因"

热键"

必须和软件的驱动程式相配合)。

也有人认为:

聪明的键盘就该如此。

(3)人体工学设计:

随着人们对于电脑的日趋依赖,逐渐衍生出了电脑症候群。

针对此非必要性的伤害,市场上已逐渐出现并流行起号称符合人体工学原理的键盘。

PS2键盘是IBM于1987年正式推出的,在整体设计上与AT键盘相差不大,更改的最多的可能是主机到键盘命令的增加。

此外,PS2键盘出人意料的使用一种古怪的扫描码。

这使得它的兼容性大打折扣。

正如大家所熟知的那样,PS2系统并不流行,后来几乎没人再用了。

到了20世纪中期,电子键盘代替了机械键盘,1936年美国人Dvorak在QWERT式键盘的基础上发明Dvorak键盘。

在20世纪70年代,一位名为LilianMalt的发明家又对DVORAK键盘作了进一步改进发明了Malt键盘。

键盘的接口有AT接口、PS/2接口和最新的USB接口,高档的品牌机多采用PS/2接口,最早也是IBM公司的专利俗称“小口”,不过越来越多新型主板都开始提供PS/2键盘接口。

虽然目前USB作为新兴的结构,一些公司迅速推出了USB接口的键盘,但USB接口只是一个卖点,对性能的提高收效甚微,可以说现在主流的还是PS2接口,因为它价格低、通用可靠,且连接线少(仅使用2根信号线)并可满足多种系统的要求。

1.3本选题研究的主要内容

PS/2是较早电脑上常见的接口之一,用于鼠标,键盘等设备。

虽然IBM的PS/2电脑在市场中失败了,但是PS/2接口一直沿用至今,键盘是嵌入式系统的重要输入设备,实现人机交互的重要途径,随着标准PS/2键盘技术的不断成熟,在嵌入式系统中,用标准PS/2键盘会越来与广泛。

由于VHDL所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,因此它成为IC设计验证的技术主流。

利用VHDL通过模块组合可以实现特定的功能,所以对于标准PS/2键盘,用VHDL设计基于FPGA的标准PS/2键盘接口,实现了标准PS/2键盘到NiosII嵌入式CPU的数据单向通信。

本文主要分为5章,章节安排如下:

(1)绪论。

主要介绍了开题的背景和研究意义,以及PS2键盘的国内外研究现状以及课题的研究内容和具体工作等。

(2)PS2键盘的理论研究。

主要介绍PS2键盘的基本知识以及其设计的基本方法。

(3)ISE工具概述。

介绍了VHDL硬件语言及其设计方法、ISE软件的运用等。

(4)PS2键盘控制的设计。

介绍了PS2键盘控制的设计的模块划分和PS2键盘控制的各模块的实现,并对PS2键盘控制设计进行了系统仿真和验证。

(5)结语。

主要介绍本论文中的优点和不足之处。

2PS2键盘控制的理论研究

键盘是嵌入式系统的重要输入工具,是实现人机交互的重要手段之一。

随着标准PS2键盘技术的成熟和价格的不断下降,使得在嵌入式系统的设计中用标准的PS2键盘取代自制简易的扫描式矩阵式键盘成为可能。

现在主流的是PS/2接口,键盘和鼠标都可以使用PS/2接口,它内嵌自动去除按键抖动的设计自动地识别键的按下与释放,软硬件可发简便,价格便宜、稳定可靠,将PS2键盘作为嵌入式系统的输入设备已经成为可行的方案。

2.1PS2键盘的结构特点

现在主流的是PS/2接口,即具有六脚mini-DIN连接器的键盘则称之为PS/2键盘。

PS/2最初由IBM开发,它的连接端口只有四个脚有意义。

分别是第1脚DATA(数据脚)、第3脚Ground(电源地)、第4脚+5V(电源脚)和第5脚Clock(时钟脚)。

PS2引脚结构和外形如图2.1所示:

图2.1PS/2硬件接口外形图

2.2PS2键盘工作原理

PS2键盘靠PC的PS2端口提供+5V电源,由于Clock(时钟脚)和DATA(数据脚)两个脚都是集电极开路的,则必须接大阻值的上拉电阻。

一般上拉电阻设置在主设备中,主从设备之间的数据通信采用双向同步方式传输,时钟信号一般由从设备产生。

它们平时一般保持高电平,并很容易下拉到地(逻辑0)任何连接到PS2键盘上的设备在时钟和数据线上都必须接大阻值的上拉电阻,有输出时才会被拉到低电平,之后会自动上浮到高电平。

(即置“0”就把线拉低,置“1”就把线上浮成高电平)。

数据和时钟的一般接口结构如图2.2所示:

图2.2集电极开路

PS2键盘通信协议履行一种双向同步串行协议。

也就是说每次数据线上发送一位数据并且每在时钟线上发生一个脉冲就被读人,PS2键盘可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,因此它只需把时钟拉低就可抑制在任何时候来自于键盘的通讯。

从键盘发送到主机的数据在时钟信号的下降沿当时钟从高变到低的时候被读取;

从主机发送到键盘的数据在上升沿当时钟从低变到高的时候被读取;

不论通讯的方向怎样键盘总是产生时钟信号,如果主机要发送数据它必须首先告诉设备开始产生时钟信号,这个过程最大的时钟频率是33kHz而且大多数设备工作在10~20kHz。

2.3PS2协议

PS/2协议是键盘与其他硬件通信时的一种双向半双工通信协议,键盘通过Data线向外发送数据,数据时钟由键盘产生,在协议中数据的传送格式为短帧格式,一般为11位,各位的含义如下图2.3所示:

图2.3数据帧的含义

Start:

起始位,总为‘0’(低电平)

D0~D7:

8位数据位(低位在前,高位在后)

Parity:

奇偶校验位(为奇校验)

Stop:

停止位,总为‘1’(高电平)

(1)设备到主机的通讯:

图2.4键盘发送时序

键盘发送时序如图2.4所示。

键盘首先会检查Clock线和Data线是否同时为高电平,如果不是,那么是主机抑制了通讯设备必须缓冲任何要发送的数据直到重新获得总线的控制权键盘有16字节的缓冲区。

如果是,那么键盘则产生Clock信号,并将待发的数据按照数据帧的格式逐位放在数据线上,数据线在时钟的高电平期间改变状态,时钟的下降沿将数据锁定到数据线上,此时外界就可以到数据线上读取数据。

键盘同步时钟的最大频率为33KHZ,一般情况下使用10~20KHZ的频率。

推荐值在15kHz左右,也就是说,Clock(时钟脚)高、低电平的持续时间都为40μs。

每一数据帧包含11~12个位,具体含义如表2.2所示:

表2.2数据帧格式说明

1个起始位

总是逻辑0

8个数据位

(LSB)低位在前

1个奇偶校验位

奇校验

1个停止位

总是逻辑1

1个应答位

仅用在主机对设备的通讯中

表中,如果数据位中1的个数为偶数,校验位就为1;

如果数据位中1的个数为奇数,校验位就为0;

总之,如果数据位中1的个数加上校验位中1的个数总为奇数,那么总进行奇校验。

(2)主机到设备的通讯:

图2.5键盘接收时序

键盘接收时序如图2.5所示。

首先PS/2设备总是产生时钟信号如果主机要发送数据,它必须先下拉时钟线(至少100us)抑制通信,表示“请求发送”,然后释放时钟。

在时钟信号的上升沿,数据被锁存读取;

在时钟信号的低电平,数据线改变状态。

并且设备应该在不超过10ms的间隔内检查这个状态。

当设备检测到这个状态它将开始产生时钟信号并且时钟脉冲标记下输入八个数据位和一个停止位主机仅当时钟线为低的时候,改变数据线而数据在时钟脉冲的上升沿被锁存这在发生在设备到主机通讯的过程中正好相反。

在停止位发送后设备要应答接收到的字节就把数据线拉低并产生最后一个时钟脉冲如果主机在第11个时钟脉冲后不释放数据线设备将继续产生时钟脉冲直到数据线被释放然后设备将产生一个错误。

主机可以在第11个时钟脉冲应答位前中止一次传送只要下拉时钟线至少100us即可。

其中主机到设备通讯的详细过程图如图2.6所示:

图2.6主机到设备的过程

图中描述了两个重要的定时条件:

(a)设备开始产生时钟脉冲的时间必须步大于15ms;

(b)数据包被发送的时间必须不大于2ms。

3ISE工具概述

随着计算机软件、硬件和集成电路制造技术的飞速发展,数字电路硬件设计复杂程度的快速增长,以及产生的设计成果可继承性的需要,对数字电子系统的设计方法产生了极大的影响,传统的以中小规模集成电路为基础模块、以电路图为表达方式的数字电子系统的设计方法正逐步被EDA技术的设计方法所取代。

3.1硬件描述语言

硬件描述语言(HDL,HardwareDescriptionLanguage)是EDA技术的重要组成部分,常用的硬件描述语言有VHDL、Verilog、ABEL等,VHDL是EDA技术的主流硬件描述语言之一,也是本文设计所采用的硬件描述语言。

3.1.1VHDL的特点

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。

这种将设计实体分成内、外两部分的概念是VHDL系统设计的基本点。

相对于其他硬件语言的优势如下:

(1)VHDL语言功能强大,设计灵活

VHDL语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。

同时,它还具有多层次的电路设计描述功能。

此外,VHDL语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。

VHDL语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法;

既支持模块化设计方法,也支持层次化设计方法。

(2)VHDL语言覆盖面广,系统硬件描述能力强,是一个多层次的硬件描述语言

VHDL语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;

描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。

同时,VHDL语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。

VHDL语言的强大描述能力还体现在它具有丰富的数据类型。

VHDL语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。

(3)VHDL语言具有很强的移植能力

VHDL语言很强的移植能力主要体现在:

对于同一个硬件电路的VHDL语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。

(4)VHDL语言具有良好的可读性,且易于修改

VHDL语言既可以被计算机接受,也容易被人们所理解;

同时在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因VHDL语言易读和结构化的特点,所以易于修改设计。

(5)VHDL语言的设计描述与器件无关

采用VHDL语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。

这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。

当硬件电路的设计描述完成以后,VHDL语言允许采用多种不同的器件结构来实现。

(6)VHDL语言程序易于共享和复用

VHDL语言采用基于库(library)的设计方法。

在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。

这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

3.1.2VHDL的基本程序结构

一个相对较完整的VHDL设计由实体(Entity)、结构体(Architecture)、配置(Configuration)、程序包和程序包体(Package)以及库(Library)5个部分组成。

其各自作用分别为下表3.1所示:

表3.1各部分作用

实体(Entity)

描述所设计的系统的外部接口信号,定义电路设计中所有的输入和输出端口

结构体(Architecture)

描述系统内部的结构和行为

包集合(Package)

存放各设计模块能共享的数据类型、常数和子程序等

配置(Configuration)

指定实体所对应的结构体

库(Library)

存放已经编译的实体、结构体、包集合和配置

每一个VHDL程序并不是都具备以上四个部分的,只有一个实体和一个与之对应的结构体是必须具备的。

VHDL的基本设计单元结构:

程序包说明、实体说明和结构体说明三部分.

3.1.3VHDL语言的使用

(1)实体

实体描述了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。

它也是设计的基本模块和设计的初级单元,在分层次设计中,顶层有顶级实体,含在顶级实体中的较低层次的描述为低级实体,通过配置可把顶层实体和底层实体连接起来。

实体语句用关键词ENTITY开头,实体名rsff是描述的符号名,在结束实体语句的ENDrsff之间,实体语句可以用关键词BEGIN把实体语句分成两部分:

即BEGIN之前是实体说明,BEGIN之后是实体语句。

在ENTITY语句的实体说明部分,常用PORT付语描述实体对外界连接的端口(数目、方向和数据类型)。

实体rsff有4个端口,Set/Reset是输入IN模式,Q/QB是输出BUFFER(缓冲)模式,都为BIT类型。

实体的语法格式如下:

ENTITY实体名IS

[GENERIC(常数名:

数据类型[:

设定值];

{常数名:

设定值]});

]

[PORT(端口名:

端口模式数据类型;

{端口名:

端口模式数据类型});

ENDENTITY实体名;

实体名由设计者自由命名,用来表示被设计电路芯片的名称,但是必须与VHDL程序的文件名称相同。

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

当前位置:首页 > 人文社科 > 哲学历史

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

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