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

PS2手柄资料.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PS2手柄资料

最近在开发一款PS2产品(这里说的PS2是指使用PS2协议的键盘鼠标,不是PS2游戏机,呵呵),学到了很多东西,也遇到很多问题,在这里把自己认为重要的东西记下来,作为以后的备忘,如果你在这篇文章中学到哪怕一点点东西,我都将会感到很荣幸。 关于PS2更详细的文章,应该算是Adam?Chapweske著Roy?Show译的“PS2技术参考”,其实开发一款PS2产品,兼容性是很重要的,在我们开发的这款PS产品中就出现过这样的问题,我们测试了几十台PC都是没问题的,可是偏偏就在一台HP的PC上不能识别,找了很久才发现问题所在。 设备到主机的通信,当设备要发送数据给主机时,只要检测到总线有空,就可以发了,这里简单给出波形图,更详细的请参考“PS2技术参考“。 ?(原文件名:d?to?H.JPG)? ? 下面是主机到设备通信的简单波形图: ? ? 使用示波器抓下来的主机跟设备通信的实际波形: ? ?(原文件名:PS2KB_WF01.JPG)? 主机到设备的通信,当主机要发送数据给设备时,大部分PC都会先拉低时钟线至少100us来抑制通信,然后才开始产生数据发送请求状态,但是也有部分PC不会拉低时钟来抑制通信,而是直接产生数据发送请求状态,所以在检测主机有没有数据发送的时候直接检测有没有数据发送请求是比较好的,一般情况下,当PC要发送数据给设备时,会重试三次,每次10ms超时,如果在重试三次设备都没有响应,那就比较危险了,如果是要发送关健的数据,可能会直接导致设备不能识别的情况 对于PS2键盘,必须要回复的命令如下: 1,????????主机命令设备复位(0xff),设备必须应答0xfa后回复0xaa; 2,????????主机请求获得设备ID命令(0xf2),设备必须应答0xfa后回复0xab,0x83; 3,????????主机ECHO命令(0xee),设备直接回复0xee; 除以上命令之外的其它命令,设备只要回复0xfa即可,当然要视设备的功能作相应的动作。 对于PS2鼠标,要做的事情比较多,而且比键盘更容易不被PC识别,一个简单的PS2鼠标,必须支持STREAM模式及WRAP模式,STREAM为鼠标的主要功能,但是有些PC刚开机的时候会命令鼠标进入WRAP模式,否则就不识别此设备,还有一点比较重要的就是不要在PC发送使能鼠标(命令0xf4)之前发送移动及按键数据,而且一旦收到禁止数据命令(0xf5)后立即停止发送移动及按键数据,直到主机再次发送使能命令之后。否则会出现在有些PC中虽然鼠标能被识别,而且在Windows也能移动,但是快速移动几秒钟之后鼠标就死了,使用示波器量数据线,发现数据还在传输,实际上在这种情况下,主机并没有拉低时钟来禁止鼠标,而是认为这个设备是一个疯狗,不会理会它发送的任何数据。 除了要支持以上二种模式之外,必须回复的命令如下: 1.????????主机命令设备复位命令(0xff),设备必须应答0xfa后回复0xaa,0x00 2.????????主机请求获得设备ID命令(0xf2),设备必须应答0xfa后回复ID:0x03(适用于标准的3D鼠标); 3.????????主机请求状态命令(0xe8),设备回复:0xfa,0x00,0x02,0x64; PS鼠标使用如下的坐标系,这跟USB鼠标使用的坐标系是不同的: ?(原文件名:坐标.JPG)? ? 不管是键盘还是鼠标,在整个Windows启动的过程中会被检测二次,第一次是BIOS检测,第二次是Windows检测,如果第一次未通过,则第二次不会再检测,而且二次检测都必须通过再能使用,有趣的是有些PC在BIOS检测之后,Windows启动之前再插入键盘,还是可以使用的,但是Windows启动之后就会拉低时钟来禁止设备, 附件是实际的波形及部份代码 PS2实际波形ourdev_546437.rar(文件大小:65K)?(原文件名:PS2?Waveform.rar)? PS2键盘鼠标例程ourdev_546438.rar(文件大小:4K)?(原文件名:PS2KM_CODE.rar)? #include?STDIO.H? ?? #include?REG922.H? ?? #include?INTRINS.H? ?? #define?uchar?unsigned?char? ?? #define?uint?unsigned?int? ?? ??? uchar?code??dout[5]={0x01,0x42,0x00,0x00,0x00};??? uchar?data??din[5]={0x00,0x00,0x00,0x00,0x00};??? uint??code??hos_tabu

文档评论(0)

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

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

1亿VIP精品文档

相关文档