网站大量收购独家精品文档,联系QQ:2885784924

FPGA控制的PS2接口电路设计 毕业论文 毕业设计.doc

FPGA控制的PS2接口电路设计 毕业论文 毕业设计.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE / NUMPAGES FPGA控制的PS/2接口电路设计 摘要:PS2作为键盘接口至今仍在广泛使用。本论文根据PS2键盘接口的协议,用VHD语言编程,用FPGA控制PS2,使其能够接收从键盘键入的信息,并把它显示在数码管和液晶显示频上。 The Design of PS / 2 Interface Circuit by Control of FPGA Abstract:Today,PS2 keyboard interfaceis still being usedwidely.This report is based PS2 keyboard interface protocol, with VHD language programming, using FPGA control PS2, so that it can receive information from the keyboard to type, and display it in the digital frequency of the tube and liquid crystal display. 关键词:VHDL,FPGA , PS2, QuartusII 引言: PS2是一类应用广泛的键盘接口。本文论述了用FPGA控制PS2的设计思想及方法,并实现把按键的扫描码及其对应的ASCII码显示在LED及LCD上。 设计原理 通过分析,本次设计需要分四部分实现:1.接收从键盘发出的扫描码信息2.把接收到的扫描码转换成ASCII码3.把扫描码和ASCII码显示在数码管上4.把扫描码和ASCII码显示在LED液晶上。 1.PS2键盘接口协议介绍 PS2协议和接口最初是由IBM公司开发并广泛使用的应用于键盘/鼠标的协议和接口。PS2键盘接口是6芯的插头,各插头定义如下: 1 DATA Key Data 2 n/c Not connected 3 GND Gnd 4 VCC Power , +5 VDC 5 CLK Clock 6 n/c Not connected 在PS2的6个芯中,2和6未定义,3和4为电源和地,需要用FPGA控制的只有1〔数据〕和5〔时钟〕。 每当有按键按下或弹起时键盘都会发出一帧或几帧数据,每一帧数据一共都12位,其数据格式如下表所示: 1个起始位 总是逻辑0 8个数据位 〔LSB〕低位在前 1个奇偶校验位 奇校验 1个停止位 总是逻辑1 1个应答位 仅用在主机对设备的通讯中 从键盘发出的数据是在时钟信号的下降沿的时候才被读取,FPGA要想接收到键盘发出的数据就要配合PS2的时序。具体设计思路如下: 首先我们来定义几个端口。首先要有数据输入端口K_DATA和键盘时钟K_CLOCK。K_DATA是从键盘发出的一位一位串行数据,我们要在K_CLOCK的下降沿到来时接收这12位串行数据,并最终输出我们想要的中间1至8位数据。这8位输出我们用DATASCAN来表示。另外再对整个系统设置一个复位信号RST。 为了方便接收数据,我们有必要定义一个计数器COUNT,使它对K_CLOCK键盘时钟计数,COUNT的值在0到11之间变化,COUNT等于11时清零,其余自加1。另外再定义一个接收键盘数据的中间变量TMPDATA,每当检测到K_CLOCK下降沿到来时,就把DATA的值赋给TMPDATA,这样,当K_CLOCK的12个下降沿到来时,TMPDATA就接收到了键盘发出的全部12位数据。 在程序中,我们还要定义一个串并转换结束的标志信号FLAG,当COUNT大于8时就可以把FLAG置为1,当检测到FLAG变为1时,就把TMPDATA的1至8位赋给输出端口DATA,这样,我们就得到了想要的8位扫描码输出。 为了和下一步的扫描码转换成ASCII码建立联系,我们还要定义一个触发中断信号INTERRUPT1,当COUNT等于11的时候把INTERRUPT1置1触发中断,作为扫描码转换为ASCII码的使能信号。 这部分电路的仿真结果如下〔以输出1C为例〕: 3.把扫描码转换成ASCII码 把扫描码转换成ASCII码的目的是为了识别按键。现在,我们已经有了从键盘发出的扫描码信息,则,如何根据这些扫描码信息来区分按下的是哪一个键呢? 实际上,键盘接口中的微处理器负责扫描或监视按键的动作,如果发现有按键按下,按住或者释放,键盘将会发送扫描码的信息包。扫描码有通码和断码两种,当一个按键按下或按住,键盘就向接口发送一个字节的键盘接通的扫描码,称为通码。当该按键弹起或释放时,键盘向接口发送两个字节的键盘断开的扫描码,称为断码。断码和通码有一定的联系,多数第二套断码有两字节长。它们的第一个字节是F0 ,第二个字节是这个键的通码。扩展按键的断码通常有三个字节,它们前两

文档评论(0)

xxmama + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档