C6.31.3Keyboard ghosting and dropped keys设计研究

多键快速连按时,键盘防串扰能力不足会导致部分按键丢失未被记录

别名: 按键幽灵 · 丢键 · 键位冲突

概念解释

廉价键盘用行列矩阵扫描按键。三颗键若恰好构成矩阵里的矩形,控制器可能读出第四颗没按的键(幽灵键),或为了避免幽灵而拒绝报告其中一颗真实键(阻塞 / 丢键)。打字时快速和弦、游戏里 WASD 加射击键,丢的就是那颗没被记录的键。这是硬件扫描的几何问题,不是手指没按实,也不是软件把事件丢了。

机制

矩阵在行上供电、列上读。两行两列上的三颗开关闭合时,电流可以绕过第四个交叉点,控制器以为第四颗也按下。固件常用的对策是:检测到危险组合就不再报告新键,于是用户按了却没有 down 事件。二极管可以阻断绕行,代价是成本和版图。办公薄膜键盘常只保证修饰键加一颗主键(2KRO 量级),字母区三键就可能丢。USB 全键报告还受协议包长度限制,即便扫描对了,主机也可能收不全。表现是:某个字母从词中间消失,或游戏角色停止 strafing。

怎么研究

用已知会构成矩形的三键组合在目标键盘上按住,看是否出现第四键或是否缺报告。对照厂商声称的 rollover。游戏场景用 WASD+空格+鼠标侧键的等价键盘键。逻辑分析仪可看矩阵,软件侧用按键测试页即可给设计者看现象。不要把 USB 轮询慢导致的延迟当成丢键。

边界

带二极管的机械键盘在普通打字和弦下几乎不丢,问题集中在薄膜和笔记本岛式键盘。触屏虚拟键盘没有这张矩阵,失败模式是触点合并而不是幽灵。远程桌面会把已经丢掉的事件传过去,远端无法恢复。有意设计的宏键不是丢键。

怎么落地

  • 对游戏和频繁和弦的产品,在支持文档里写明需要 6KRO 或全键无冲,不要默认办公薄膜够用。
  • 快捷键尽量避免三条物理上构成矩形的字母。
  • 提供按键测试页,让用户自己看到哪一组合会丢。
  • 验证:在目标发售键盘上按住 WASD 再加常用技能键,测试页应显示全部 down;缺一颗就换板或加二极管,而不是怪玩家手速。

延伸

  • 同组C6.31.1 长按字符键触发重复输入,重复速率与起始延迟是两个独立参数 · C6.31.2 重复速率过快会在用户想要单次输入时意外产生多个字符 · C6.31.4 全键无冲设计允许任意组合同时按下都被正确识别,游戏与专业键盘更依赖此特性
  • 相邻C6.20 修饰键与组合键 · C6.02 按键行程与触觉确认
  • 站内检索key ghosting · blocking · keyboard matrix

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C6.31.3