PS鼠标接口程序设计总结

上传人:汽*** 文档编号:505409584 上传时间:2022-12-08 格式:DOC 页数:13 大小:258.50KB
返回 下载 相关 举报
PS鼠标接口程序设计总结_第1页
第1页 / 共13页
PS鼠标接口程序设计总结_第2页
第2页 / 共13页
PS鼠标接口程序设计总结_第3页
第3页 / 共13页
PS鼠标接口程序设计总结_第4页
第4页 / 共13页
PS鼠标接口程序设计总结_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《PS鼠标接口程序设计总结》由会员分享,可在线阅读,更多相关《PS鼠标接口程序设计总结(13页珍藏版)》请在金锄头文库上搜索。

1、作者:日期:第一章PS2鼠标接口程序设计总结1.1 PS/2鼠标接口简介标准的PS/2鼠标,支持下面的输入X(左右)位移、Y (上下)位移、左键、中键和右键鼠标以 一个固定的频率读取这些输入,并更新不同的计数器,然后标记出反映的移动和按键状态标准的鼠标有两个计数器,保持位移的跟踪,X位移计数器和Y位移计数器。可存放 9位的2进制补码,并且每个计数器都有相关的溢出标志,它们的内容连同三个鼠标按钮的状态一起以三字节移动数据包的形式发送给主机。位移计数器表示从最后一次位移数据包被送往主机后,有位移 量发生。当鼠标读取它的输入的时候,它记录按键的当前状态,然后检查位移,如果位移发生它就增 加(对正位移

2、)或减少(对负位移)X和/或Y位移计数器的值。如果有一个计数器溢出了就设置相应的溢出标志.1。1.1输入分辨率和缩入比例决定位移计数器增减数量的参数叫分辨率,缺省的分辨率为4个计数单位/毫米,主机可以用设置分辨率0xE8命令改变这个值。有一个参数不影响位移计数器的值,但是影响这些计数器报告的值。这个参数就是缩放比 例,缺省情况下鼠标使用 1: 1比例。因此对报告的鼠标位移没有影响,但是主机可以用设置比 例2:1 ( 0xE7)命令选择2: 1比例。如果启用了 2:1比例,鼠标在发数据给主机前采用如表1。1的算法运算计数器内容。表1。1缩放比例算法运算表位移增量值报告值001121334659N

3、52*N1.1。2位移数据包标准的PS/2鼠标,发送位移和按键信息给主机采用如表1。 2的3字节数据包格式。表1。2 3字节数据包格式D7D6D5D4D3D2D1D0Byte1Y overflowX overflowY sign bitX sign bitAlways1Middle BtnRight BtnLeft BtnByte2X MovementByte3Y Movement位移计数器是一个9位2进制的补码整数.它的最高位作为符号位出现,在位移数据包的第一 个字节里,这些计数器在鼠标读取输入发现有位移时被更新.这些值是自从最后一次发送位移数据包给主机后位移的累计量(即最后一次数据包发给主

4、机后位移计数器被复位)。位移计数器可表示的值的范围是一255到+255。如果超过了范围,相应的溢出位就被设置,并且在复位前计 数器不会增减.一旦位移数据包成功地发送给主机,位移计数器就会复位,同样鼠标在收到主机不是Resend” 0xFE命令外的其他命令计数器也会复位。1。1。 3 Intelimouse 的扩展对标准的PS/2鼠标的一个流行的扩展是微软的Intellimouse.它包括支持五个鼠标按键和三个位移轴(左右上下和滚轮)。这些附加特征要求使用4字节的位移数据包,而不是标准3字节包,因为标准PS/2鼠标驱动不认识这个数据包的格式,因此微软的Intellimouse 要求严格按照标准P

5、S/2鼠标来操作。除非它知道驱动程序支持扩展数据包格式,如果微软的Intellimouse用于一台只支持标准 PS/2鼠标的计算机它依然是有功能的,只是滚轮和第4 5个按键不起作用。微软的Intellimouse 工作起来象标准的PS/2鼠标,(也就是使用3字节位移数据包,和标 准PS/2鼠标一样回应所有命令报告设备ID 0x00 )。要进入滚轮模式,主机应该发送如下的命令序列:设置采样速率200设置采样速率100设置采样速率80要进入滚轮+5键模式,主机应该发送如下的命令序列 设置采样速率200设置采样速率200设置采样速率80主机然后应该发布“获得设备ID”命令0xF2并等待回应,如果安装

6、的是是标准PS/2鼠标非Intellimouse,它回应设备ID0x00。在这种情况下主机会辨认出实际这个鼠标没有滚轮并继续把它当作是标准 PS/2鼠标。但是如果安装的是微软的Intellimouse它返回的ID是0x03。这就告诉主机挂接的定点设备有滚轮,并且主机认为鼠标使用4字节的位移数据包,如表1。3所示:表1.3 4字节数据包格式D7D6D5D4D3D2D1D0Byte1Y overflowX overflowY sign bitX sign bitAlways1Middle BtnRight BtnLeft BtnByte2X MovementByte3Y MovementByte4

7、Z MovementZ位移是2的补码,表示滚轮自上次数据报告以来的位移,有效值的范围在一8到+7这意味着数值实际只有低四位高四位仅用作符号扩展位主机接着发布“获得设备ID”命令(0xF2)并等待回应,微软的Intellimouse 用0x04这样 设备ID应答并且使用如下的4字节位移数据包,如表1.4所示:表1.4五键4字节数据包格式D7D6D5D4D3D2D1D0Byte1Y overflowX overflowY sign bitX sign bitAlways1Middle BtnRight BtnLeft BtnByte2X MovementByte3Y MovementByte1Al

8、waysQAlwaysO5th Btn4th BtnZ3Z2Z1|Z0Z0-Z3是2的补码,用于表示从上次数据报告以来滚轮的位移量,有效范围从一8到+7。第4键:仁第4键按下了; 0=第4键没有按下。第5键:仁第5键按下了; 0=第5键没有按下。1.2操作模式根据鼠标工作的模式来处理的数据报告有四种标准的工作模式。 Reset鼠标在上电或收到“ Reset” (0xFF)命令后进入Reset模式 Stream这是缺省模式在 Reset执行完成后,也是多数软件使用鼠标的模式.如果主机先前把鼠标设置到了 Remote模式,那它可以发送Set Stream Mode( 0xEA)命令给鼠 标,让鼠标

9、重新进入 Stream模式。 Remote在某些情况下 Remote模式很有用可以通过发送 Set Remote Mode(0xF0 )命令进入。 Wrap 除了为测试鼠标和它的主机之间的连接外这个模式不是特别地有用。Wrap模式可以通过发送 Set Wrap Mode( 0xEE)命令给鼠标来进入,要退出 Wrap模式主 机必须发布 Reset (OxFF)命令或 Reset Wrap Mode (OxEC)命令。如果 Reset(OxFF) 命令收到了,鼠标将进入Reset模式.如果收到的是Reset Wrap Mode (OxEC)命令鼠 标将进入 Wrap 模式前的那个模式。(注意鼠标

10、同样可以进入 extended操作模式,正如本文后面所述但是这不是标准PS/2鼠标的特征 .)121、Reset 模式鼠标在上电后或应答Reset”( 0xFF)命令就进入reset模式.进入这个模式后鼠标执行象 前面提到的 BAT (基本保证测试)一样的自检并设置如下的缺省值 :采样速率 1OO 采样点 /秒分辨率 4 个计数值 /毫米缩放比例 1 :1数据报告被禁止然后发送BAT完成代码,这个代码不是 0xAA(BAT 成功)就是0xFC (错误)如果主机收到 了不是 OxAA 的回应,它可能重新给鼠标供电,这样来引起鼠标复位并重新执行BAT 。接着 BAT完成代码(0xAA或0xFC)的

11、后面鼠标发送它的设备 ID 0x00。 这个ID用来区别设备是键盘还 是处于扩展模式中的鼠标(从发复位命令到鼠标发送它的设备ID时间大概为360mS。在一些文件中说主机在没收到设备 ID 前不会假定发送任何数据。但有些 BIOS 在上电复位并收到 0xAA 后立刻发送 “Reset (0xFF ) 命令。 鼠标发送自己的设备 ID 给主机后它就进入了 Stream 模式。 注意鼠标设置的一个缺省值之一是数据报告被禁止, 这就意味着鼠标在没收到 “使能数据报告” (0xF4)命令之前不会发送任何位移数据包给主机。1 。 2。 2、 Stream 模式在Stream模式中,一旦鼠标检测到位移或发现

12、一个或多个鼠标键的状态改变了就发送位移 数据包。数据报告的最大速率被认为是采样速率。参数的范围从10 采样点 /秒到200 采样点/秒,这个参数的缺省值是100采样点/秒。主机可以用设置采样速率 (0xF3)命令来改变它。Stream 模式是操作的缺省模式 .1 。 23、 Remote 模式在这个模式下鼠标以当前的采样速率读取输入,并更新它的计数器和标志。但是它只在主 机请求数据的时候才报告给主机位移和按键状态。主机通过“读数据”(0xEB)命令来获得数据,在收到命令后鼠标发送位移数据包并复位它的位移计数器1.24、 Wrap 模式这是一个回声模式 , 鼠标收到的每个字节都会被发回主机, 甚

13、至收到的是一个有效的命令鼠 标都不会应答这条命令,它只把这个字节回送给主机。但是有两个例外“Reset ( 0xff )命令和“ Reset Wrap Mode ”(0xEC)命令鼠标认为这两条命令是一有效的命令,并且不会回送它们到主机。1。 3初始化下面是在计算机运行 Win98SE 和鼠标之间的通讯 . 启动的时候插有一个 PS/2 鼠标, PS/2 鼠 标的初始化过程相当的典型。如果你要仿真一个 PS/2 鼠标必须至少能支持如下的命令序列: 上电复位Mouse: AA自我测检通过Mouse: 00 鼠标 IDHost: FF主机发送复位命令Mouse:FA鼠标应答Mouse:AA自我测检

14、通过Mouse:00鼠标 IDHost:FF主机发送复位命令Mouse:FA鼠标应答Mouse:AA自我测检通过Mouse:00鼠标 IDHost: FF主机发送复位命令Mouse:FA鼠标应答Mouse:AA自我测检通过Mouse:00鼠标 IDHost: F3设置采样速率 ,识别鼠标是否带滚轮Mouse:FA鼠标应答Host:C8采样速率 200点 /秒Mouse:FA鼠标应答Host:F3设置采样速率Mouse:FA鼠标应答Host:64采样速率 100点 /秒Mouse: FA鼠标应答Host: F3设置采样速率Mouse: FA鼠标应答Host:50采样速率 80点 /秒Host: F2获取设备 IDMouse: FA鼠标应答Mouse:00鼠标 ID, 如果回应的是 03带滚轮的三键鼠标/ - - - - -此段不知有何作用 -Mouse : FA 鼠标应答Host : F3Mouse : FAHost: 0AMouse : FA设置采样速率 鼠标应答 采样速率 10点 /秒 鼠标应答Host : F2获取设备 IDMouse: FA鼠

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号