PS2键盘接口程序设计总结.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 PS2键盘接口程序设计总结 2.1 PS/2键盘接口简介 键盘上包含了一个大型的按键矩阵,它们是由安装在电路板上的处理器(叫做“键盘编码器”)来监视的。具体的处理器在键盘与键盘之间是多样化的,但是它们基本上都做着同样的事情:监视哪些按键被按下或释放了,并传送适当的数据到主机。如果有必要,处理器处理所有的去抖动并在它的16 字节缓冲区里缓冲数据。你的主板包含了一个“键盘控制器”,负责解码所有来自键盘的数据,并告诉你的软件什么事件发生了。在主机和键盘之间的通讯使用IBM 的协议。 2.1.1 扫描码 键盘的处理器花费很多的时间来扫描或监视按键矩阵。如果它发现有键被按下、释放或按住,键盘将发送“扫描码”的信息包到计算机。扫描码有两种不同的类型:“通码”和“断码”当一个键被按下或按住就发送通码;当一个键被释放就发送断码。每个按键被分配了唯一的通码和断码,这样主机通过查找唯一的扫描码就可以测定是哪个按键。每个键一整套的通断码组成了“扫描码集”。有三套标准的扫描码集分别是第一套、第二套和第三套。所有现代的键盘默认使用第二套扫描码。 2.1.2 通码、断码和机打重复率 只要一个键被按下,这个键的通码就被发送到计算机。记住通码只表示键盘上的一个按键,它不表示印刷在按键上的那个字符。这就意味着在通码和ASCII 码之间没有已定义的关联。直到主机把扫描码翻译成一个字符或命令。 虽然多数第二套通码都只有一个字节宽,但也有少数扩展按键的通码是两字节或四字节宽。这类的通码第一个字节总是为“E0h”。 正如键按下通码就被发往计算机一样,只要键一释放断码就会被发送。每个键都有它自己唯一的通码,它们也都有唯一的断码。幸运的是你不用总是通过查表来找出按键的断码。在通码和断码之间存在着必然的联系,多数第二套断码有两字节长它们的第一个字节是“F0h”, 第二个字节是这个键的通码。扩展按键的断码通常有三个字节,它们前两个字节是“E0h”,“F0h” ,最后一个字节是这个按键通码的最后一个字节。 例如:通码和断码是以什么样的序列发送到你的计算机,从而使得字符“G”出现在你的字处 理软件里的呢?因为这是一个大写字母,需要发生这样的事件,次序按下“Shift”键,按下“G” 键,释放“G”键,释放“Shift”键,与这些时间相关的扫描码如下:“Shift”键的通码12h, “G”键的通码“34h”,“G”键的断码“F0h,34h”,“Shift”键的断码“F0h,12h”。因此发送到你的计算机的数据应该是“12h ,34h, F0h ,34h, F0h,12h”。 如果你按了一个键,这个键的通码被发送到计算机,当你按下并按住这个键,则这个键就变成了机打着,就意味着键盘将一直发送这个键的通码直到它被释放或者其他键被按下。要想证实这点只要打开一个文本编辑器,并按下A 键当你首先按下这个键字符a 立刻出现在你的屏幕上在一个短暂的延迟后,接着出现一整串的a 直到你释放A 键。这里有两个重要的参数:机打延时是第一个和第二个a 之间的延迟,机打速率是在机打延时后每秒有多少字符出现你的屏幕。上机打延时的范围可以从0.25 秒到1.00 秒,机打速率的范围可以从2.0cps(字符每秒)到30.0cps。你可以用Set Typematic Rate/Delay “0xF3”命令来改变机打速率和延时。 2.1.3、复位 在上电或软件复位(见Reset 命令)后,键盘执行诊断自检,叫做BAT(基本保证测试)并载入如下的缺省值: ● 机打延迟为500ms。 ● 机打速率为10.9cps。 ●* 第二套扫描码集。 ●* 置所有按键为机打/通码/断码。 * 所指的项在某些键盘上时可变的,而在其他键盘上时硬件编码的不可变。 当进入BAT,键盘点亮它的三个LED指示器,并在完成BAT 后关闭它们。此时,BAT完成代码要么“0xAA” BAT成功或“0xFC”有错误被发送到主机。 多数键盘忽略它们的时钟和数据线直到BAT完成代码发送后。所以“抑制”条件时钟线拉低可能不能防止键盘发送它们的BAT完成代码。 2.1.4、命令集 每个发送到键盘的字节都从键盘获得一个0xFA(应答)的回应,唯一例外的是键盘对Resend和Echo命令的回应。在发送下一个字节给键盘之前,主机要等待“应答”。键盘应答任何命令后清除自己的输出缓冲区。下面列出了所有可能被发给键盘的命令: ● 0xFF (Reset)——引起键盘进入Reset 模式(见复位部分)。 ● 0xFE (Resend)——用于只是在接收中出现的错误。键盘的响应就是重发送最后的扫描码或者命令回应给主机。但是0xFE绝不会作为Resend命令的回应而被发送。 ● *0xFD (Set Key Type Make)——允许主机指定一个按键只发送通码

文档评论(0)

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

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

1亿VIP精品文档

相关文档