C6.31.3Keyboard ghosting and dropped keys设计研究
多键快速连按时,键盘防串扰能力不足会导致部分按键丢失未被记录
别名: 按键幽灵 · 丢键 · 键位冲突
概念解释
廉价键盘用行列矩阵扫描按键。三颗键若恰好构成矩阵里的矩形,控制器可能读出第四颗没按的键(幽灵键),或为了避免幽灵而拒绝报告其中一颗真实键(阻塞 / 丢键)。打字时快速和弦、游戏里 WASD 加射击键,丢的就是那颗没被记录的键。这是硬件扫描的几何问题,不是手指没按实,也不是软件把事件丢了。
机制
矩阵在行上供电、列上读。两行两列上的三颗开关闭合时,电流可以绕过第四个交叉点,控制器以为第四颗也按下。固件常用的对策是:检测到危险组合就不再报告新键,于是用户按了却没有 down 事件。二极管可以阻断绕行,代价是成本和版图。办公薄膜键盘常只保证修饰键加一颗主键(2KRO 量级),字母区三键就可能丢。USB 全键报告还受协议包长度限制,即便扫描对了,主机也可能收不全。表现是:某个字母从词中间消失,或游戏角色停止 strafing。
怎么研究
用已知会构成矩形的三键组合在目标键盘上按住,看是否出现第四键或是否缺报告。对照厂商声称的 rollover。游戏场景用 WASD+空格+鼠标侧键的等价键盘键。逻辑分析仪可看矩阵,软件侧用按键测试页即可给设计者看现象。不要把 USB 轮询慢导致的延迟当成丢键。
边界
带二极管的机械键盘在普通打字和弦下几乎不丢,问题集中在薄膜和笔记本岛式键盘。触屏虚拟键盘没有这张矩阵,失败模式是触点合并而不是幽灵。远程桌面会把已经丢掉的事件传过去,远端无法恢复。有意设计的宏键不是丢键。
怎么落地
- 对游戏和频繁和弦的产品,在支持文档里写明需要 6KRO 或全键无冲,不要默认办公薄膜够用。
- 快捷键尽量避免三条物理上构成矩形的字母。
- 提供按键测试页,让用户自己看到哪一组合会丢。
- 验证:在目标发售键盘上按住 WASD 再加常用技能键,测试页应显示全部 down;缺一颗就换板或加二极管,而不是怪玩家手速。