一种基于VHDLPS2键盘接口设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于VHDLPS2键盘接口设计

一种基于VHDLPS2键盘接口设计   【摘要】介绍了一种基于VHDL的PS/2键盘接口设计方法,在EP2C5T144C8芯片上实现。仿真和硬件测试表明,该设计具有可靠性高和可移植性强等优点,可方便地应用于各种基于FPGA/CPLD的嵌入式系统。   【关键词】PS/2接口;VHDL;FPGA       1.引言    随着社会的发展,嵌入式系统技术越来越多的应用到工业控制、汽车电子、航空航天、环境监测等领域中。键盘作为嵌入式系统中的人机接口设备得到了广泛应用。目前,嵌入式系统中采用的键盘有:独立按键式键盘、简易矩阵键盘。独立按键式键盘有键盘个数少,可靠性低等缺点;而简易矩阵键盘的原理是行、列式的矩阵开关,需要单独设计制作,通用性和可移植性不强,且按键数较多时I/O利用率低,软件上为了提高可靠性还要进行延时去抖动、按键扫描以及与CPU的通信处理等,一方面降低了系统的效率,另一方面增加了系统设计的成本。微机系统中的PS/2键盘,具有内嵌式自动去除按键抖动设计,能自动地识别键的按下与释放,软硬件开发成本低且性能稳定;因此,将PS/2键盘作为嵌入式系统中的输入设备已成为业界研究的热点。目前,关于PS/2键盘控制的应用大部分采用单片机或微机控制;与此相比,FPGA具有灵活性更强,集成度更高,容易移植等特点。    本文在分析PS/2协议、工作原理的基础上,给出了一种基于VHDL硬件描述语言的PS/2键盘接口的设计方法,并实现于Cyclone II EP2C5T144C8芯片上。    2.PS/2键盘接口协议    2.1 物理特性    PS/2设备接口用于许多现代的鼠标和键盘,常用为6脚mini-DIN,其引脚结构和外形如图1所示。      图1 PS/2硬件接口外形图    PS/2设备分主从设备,其物理特性要求保证时钟、数据、电源和地线间的互相连接。PS/2键盘靠PC的PS/2端口提供+5V电源,时钟和数据管脚为集电极开路形式,必须接大阻值的上拉电阻(一般设置在主设备中),主从设备间的数据通信采用双向同步方式传输,时钟信号一般由从设备产生。信号平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平。    2.2 数据包结构    键盘码分为通码和断码,键盘的任一按键状态每改变一次,键盘至少会发出三个字节的数据包,在有键按下时会向主机发送该键的通码(Make Code):一般键值为一个数据,扩展键值为两个数据;当键释放时发送断码(Break Code):一般键值为0xF0+一般键值的通码,扩展键值,为0xE0+0xF0+扩展键值的第二个通码。例如:键“A”的通码为0x1C,键“A”的断码为:0xF0,0x1C。因此当要传送键“A”时,键盘发送的数据包的代码是:0x1C,0xF0,0x1C,而扩展按键通常通码与断码均要多一个字节。    2.3 工作时序    PS/2协议是一种双向半双工串行通信协议:数据线上每发送一位数据同时在时钟线上发送一个脉冲,数据就被读入.键盘可以发送数据到主机,数据在时钟下降沿被读取;主机也可以发送数据到键盘,数据在时钟上升沿被读取,但主机在总线上有优先权,只要把时钟拉低即可抑制键盘通讯.时钟信号由键盘产生,最大时钟频率为33kHz,推荐频率在15kHz。通信两端通过Clock同步,通过Data交换数据。其传输时序根据传输的方向不同分为发送和接收两个不同时序逻辑,图2是从键盘到主机的时序图。      图2 键盘发送数据时序图    当键盘要向到主机通信时,它首先检查时钟是否是高电平.如果不是则表明是主机正在通信,必须缓冲要发送的数据直到重新获得总线的控制权(键盘有16个字节的缓冲区),即等到时钟线是高电平才能发送数据。且从键盘到主机的数据只能在时钟的下降沿时才能被读取。    当主设备到键盘进行通信时,主设备会首先把时钟线和数据线设置为“请求发送”状态。具体方式为:首先下拉时钟线至少100us来抑制通信,然后释放时钟。键盘检测到这个状态,开始产生时钟信号,并且时钟脉冲标记下输入八个数据位和一个停止位。在此过程中,设备在不超过10us的间隔内就会检查这个状态。当设备检查到该状态时,即产生时钟。与键盘发送的数据读取方式不同,主机发送的数据必须在时钟的上升沿读取。    3.传统的PS/2键盘接口控制    目前,嵌入式系统中,PS/2键盘的控制设计主要采用单片机来实现,PS/2键盘与单片机的连接有多种方式:(1)时钟与数据线均与单片机的普通I/O口相连,软件设计时采用查询方式检测时钟信号来接收键盘信息,这种方式可以节省单片机的中断资源,但软件设计的查询方式会占用大量CPU时间,适用于对键盘实时性要求不高的情形;(2)主机系统采用中断方式支持键码的随

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档