百科问答小站 logo
百科问答小站 font logo



PS2 接口键盘和 USB 接口键盘间有何区别? 第1页

  

user avatar   shi-guo-huai 网友的相关建议: 
      

参考这个回答吧:

为什么 USB 键盘会有键冲而 PS2 的键盘能全键无冲?

简单的说:USB键盘的一个数据包只有8个字节(为什么只有8个,这是因为协议规定,为什么协议这么规定,是因为早期的时候USB速度慢,使用中断传输一个包最大就8个字节),其中2个字节标记状态,其余6个字节用来记录当前按下或者弹起的按键的扫描码,所以,USB键盘最多同时描述6个按键的状态。

USB键盘的这种坑爹的设计规范导致了它只能做到最多6个按键无冲。

要想解决这个问题,必须重新设计USB键盘的规范,但我估计没人愿意这么做,因为这东西用的好好的,大多数人没事也不会一起按6个键。

至于PS/2键盘,用的不是这种规范,PS/2是:按下什么就报告什么,弹起什么也报告什么,如果同时按下10个键,就依次报告10个按下事件,至于能同时记录多少个按键的状态,协议没有限制,取决于操作系统本身,所以PS/2键盘理论上可以做到无限按键无冲。

当然,确实有人见过USB键盘突破了6个按键的限制,可能的原因之一是:这种键盘内置的USB设备是多个键盘+USB HUB的方式,因为USB允许多级设备连接,这样就可以突破6个的限制了。当然,USB键盘自己自带驱动也是一个办法,因为虽然中断传输只有6个字节,但Bulk传输传256个字节都没问题。(注:我自己百度了一下,发现虽然很多厂商实现了USB全键无冲,但似乎bug也不少,看来技术还有待发展啊)

总之,规范是规范,也总有不受规范限制的办法。

附上USB HID的键盘规范:


摘自:《Device Class Definition for Human Interface Devices (HID) Version 1.11》




  

相关话题

  计算机中,假设键盘同时按下两个键,会优先生效哪一个? 
  surface pro3 键盘盖驱动丢失 如何解决? 
  想送男朋友一套游戏键盘和鼠标,有什么推荐? 
  如何用鼠标手势映射按键? 
  为什么现在很多人都推崇机械键盘? 
  为什么 USB 接口设计之初选择了不能正反插的方案? 
  粘滞键是谁发明的? 
  适用于 Mac 的机械键盘,有哪些推荐? 
  为什么有的USB Hub不能单独弹出某个端口的移动硬盘? 
  主板上,什么叫USB控制器? 

前一个讨论
刘涛到底是怎样的人呢?
下一个讨论
你捡到过的最贵的东西是什么?





© 2025-05-31 - tinynew.org. All Rights Reserved.
© 2025-05-31 - tinynew.org. 保留所有权利