阅读:2379回复:12
急!急!急!进来看看!送100分
有关笔记本电脑的PS/2接口与键盘的通讯的应答方式,它和台式机的通讯协议是一样的,但笔记本电脑的PS/2接口即可接键盘也可接mouse,而台式机的PS/2接口键盘和mouse是分开的。也就是说,当有一个设备插入笔记本电脑的PS/2接口时,笔记本电脑是如何区别插入笔记本电脑PS/2接口的设备是键盘还是mouse。
那位打下能知道?? 给个联接或指条路也行!!! 那里可以得到笔记本电脑的PS/2接口与键盘的通讯的应答方式?????? |
|
沙发#
发布于:2002-07-05 13:35
哦?。。。 没注意到。。。 :) |
|
|
板凳#
发布于:2002-07-05 13:50
肯定是通过设备ID识别的,建议你去看Keyboard.inf和Msmouce.inf定义,键盘是*PNP03XX,Mouse是*PNP0FXX。
Keyboard.inf中一段: [MS_KBD] %*PNP0300.DeviceDesc% = PC_XT_83_Inst,*PNP0300 ;PC/XT (83-Key) %*PNP0301.DeviceDesc% = PC_AT_84_Inst,*PNP0301 ;PC/AT (84-Key) %*PNP0302.DeviceDesc% = PC_XT_84_Inst,*PNP0302 ;PC/XT (84-Key) %*PNP0303.DeviceDesc% = PC_AT_Enh_Inst,*PNP0303 ;PC/AT Enh(101/102-Key) %*PNP0304.DeviceDesc% = Olivetti_83_Inst,*PNP0304 ;Olivetti (83-Key) %*PNP0305.DeviceDesc% = Olivetti_102_Inst,*PNP0305 ;Olivetti (102-Key) %*PNP0306.DeviceDesc% = Olivetti_86_Inst,*PNP0306 ;Olivetti (86-Key) %*PNP0309.DeviceDesc% = Olivetti_101_102_Inst,*PNP0309;Olivetti (101/102-Key) %*PNP030a.DeviceDesc% = ATT_302_Inst,*PNP030a ;AT&T 302 %*PNP030b.DeviceDesc% = PC_AT_Enh_Inst,*PNP030b ;Default keyboard %*CPQA0D7.DeviceDesc% = PC_AT_Enh_Inst,*CPQA0D7 MsMouse.inf中一段: [MSMfg] %*pnp0f00.DeviceDesc%=MSBus,*PNP0F00 ; MS bus mouse %*pnp0f01.DeviceDesc%=MSSer,*PNP0F01 ; MS serial mouse %*pnp0f02.DeviceDesc%=MSInP,*PNP0F02 ; MS InPort mouse %*pnp0f03.DeviceDesc%=MSPS2,*PNP0F03 ; MS PS/2 mouse %*pnp0f09.DeviceDesc%=MSSer,*PNP0F09 ; MS serial BallPoint %*pnp0f0b.DeviceDesc%=MSPS2,*PNP0F0B ; MS PS/2 mouse %*pnp0f0f.DeviceDesc%=MSSer,*PNP0F0F ; MS serial BallPoint %MSH0002.DeviceDesc%=MSPS2,*PNP0F13 ; MSH0002 - PS/2 IntelliMouse %MSH0005.DeviceDesc%=MSPS2,*PNP0F13 ; MSH0005 - PS/2 IntelliMouse Trackball %*pnp0f1e.DeviceDesc%=MSSer,,*PNP0F1E ; MS serial EasyBall %SERENUM\\PNP0F0A.DeviceDesc%=MSSerPnP, SERENUM\\PNP0F0A %SERENUM\\MSH0001.DeviceDesc%=MSSerPnP, SERENUM\\MSH0001 ; IntelliMouse %SERENUM\\MSH0004.DeviceDesc%=MSSerPnP, SERENUM\\MSH0004 ; IntelliMouse Trackball %SERENUM\\PNP0F1E.DeviceDesc%=MSSerPnP,,SERENUM\\PNP0F1E %USB\\VID_045E&PID_0009.DeviceDesc%=STDUSBMOUSE, USB\\VID_045E&PID_0009 |
|
|
地板#
发布于:2002-07-05 15:55
肯定是通过设备ID识别的,建议你去看Keyboard.inf和Msmouce.inf定义,键盘是*PNP03XX,Mouse是*PNP0FXX。 有可能 |
|
地下室#
发布于:2002-07-08 09:49
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2002-07-08 14:20
以前我有PS/2的资料和源程序,等我找到了贴上来。另外我依稀记得,PS/2的鼠标和键盘虽然共用一组端口,但访问命令字是不同的。
|
|
|
6楼#
发布于:2002-07-09 12:05
对!肯定是通过设备ID识别的
|
|
|
7楼#
发布于:2002-07-09 14:23
欧也有个问题:
偶用的芯片中说要提供Vendor ID和Chip ID,V ID在datasheet中已经给出了,可是C ID没有给,偶该怎样确定丫?(好像这个C ID对一个芯片来说是唯一的,是吗?) |
|
8楼#
发布于:2002-07-10 20:46
从硬件的角度来看问题吧,呵呵
1. 估计是台式机和笔记本在处理输入输出设备的芯片不是一种,呵呵。 2. 只要硬件可以支持自动兼容keyboard和mouse,那么单纯的在软件上区分两种设备,只要靠id就可以了。呵呵。 driver关心1 application关心2 |
|
|
9楼#
发布于:2002-07-12 13:14
以前我有PS/2的资料和源程序,等我找到了贴上来。另外我依稀记得,PS/2的鼠标和键盘虽然共用一组端口,但访问命令字是不同的。 谢谢各位! 我还想知道笔记本上的ps/2是怎么实现的?能不能给些资料? |
|
10楼#
发布于:2002-07-16 14:17
向鼠标写入指令0xF2(Read Device Type):
返回0xfa(Acknowledge)+0x00或0x03(microsoft scrolling mouse). 向键盘写入指令0xF2(Read Device Type): 返回0xfa(Acknowledge)+0xab(First byte of ID). |
|
11楼#
发布于:2004-10-15 19:39
请上linux网站驱动,大把ps2的信息。。。。
|
|
12楼#
发布于:2004-10-18 23:18
[quote]肯定是通过设备ID识别的,建议你去看Keyboard.inf和Msmouce.inf定义,键盘是*PNP03XX,Mouse是*PNP0FXX。 设备ID,设备类决定[/quote] |
|
|