机械键盘为何会“失灵”?大部分人都忽略了这个问题

电脑天呐好棒 2024-09-11 11:43:19

前段时间小A给大家推荐了一些开学季可以考虑的75配列键盘产品,马上后台就有同学提问商详页里的“防鬼键”“N键无冲”是什么意思?这的确是99%的人在机械键盘出现“失灵”问题时,只往故障想,却不知道这是固有设计缺陷并且可以避免的事情!

01、你以为是 “失灵”

这些99%的人可能都曾经碰到而以为是故障的问题,就是“键冲突”和“鬼键”问题了。

键冲突(Rollover)指的是键盘在同时按下多个按键时,能准确识别的最大按键数量。一旦同时按下的键数量超过这个限制,那么输入准确性就会出问题。例如出现输入卡死、键盘蜂鸣响、或者超过数量限制后按下的键的输入无效。

Z键的信号被丢弃了,仅显示了3键信号

举例来说,2键冲突的键盘只能正确识别两个同时按下的按键,超过这个数量则无法保证输入的准确性。这种限制通常在同时按下多个快捷键或执行复杂操作时,可能会引发操作失误。

而同时,在这种多键同时按下引发冲击无冲突按键数量时,另一个现象鬼键(Ghosting)也出现了。也就是,在没有实际按下某个键时,键盘错误地检测到了该键的按下。

还是拿上图中的按键比喻,就是只按下了ASX键,但是莫名其妙还响应了Z键的信号。这就是鬼键现象。

02、实际上是设计问题

理解键冲突和鬼键的产生机理,首先需要了解“键盘矩阵”的工作原理。

键盘内部由一组水平和垂直线路组成的矩阵控制着每个按键的信号传递。如果把键盘的USB线接到示波器上,那么就会显示,每当有键按下,就会形成一个8字节内的信号每个按键的开关连接了矩阵中的一个交点,当按键被按下时,开关闭合,形成一个电路,控制器通过检测这些电路的变化来判断哪个按键被按下。

键盘电路板,本质上是一种触点信号传感的单片机。

如果要获取一个按键的状态,可以将按键连接到 MCU 的一个引脚上,通过 GPIO 实时监控这个按键的状态变化。为了节省硬件资源,厂商会将 GPIO 分为两部分,行和列,类比于 EXCEL 工作表。

红线为行,蓝线为列,行列相交,图中行列互不相交,此时再在每个行列交叉位置再添加一个按键,如下图:

这时候,行列交叉处都由一个按键进行连接,产生一个结节。按键按下时,对应行列将会相交。而每个按键的位置则对应了行列的值,这样的话,如果要获取这 16 个按键值,只需要 8 个 GPIO 即可做到,这就是键盘电路的矩阵化。

当然,工业化的键盘矩阵经过现代工艺制程处理后,不太容易看出来:

而如果我们用下图普通DIY爱好者自制的键盘电路来看,你大概就会明白上几分,是不是很像前面的示意图?

还是根据上面的原理图来说明,矩阵键盘中,我们同时按下 A1-A4 按键,MCU 端能够实时监控到按键 A1-A4 按下了,这是一次正常的扫键过程。

假设如下图操作,我们同时按下 B2,B3,C2 按键时,当 C 端口输出高电平,C 线上的电会通过 C2 按键传输至 B 线,由于 B3 也按下,此时 2,3 端口都会读取到高电平,MCU 则会认为按键 C2、C3 已经被按下了,然而此时 C3 按键实际上并没有按下,这种现象可称为“重影现象”。

这就是鬼键现象的一种了。

类似的,没有触发的按键,MCU 识别到按键触发,触发的按键,MCU 无法识别到,这种不按照实际情况识别按键的情况,就称之为“鬼键”

03、好键盘,得N键无冲、无鬼键

对于普通用户来说,键盘冲突和鬼键影响不大。

但对于一些频繁使用组合键的游戏玩家、生产力用户(比如熟练使用组合快捷键的视频编辑),影响就很大了。

例如,在COD中,玩家可能一边按A前进,一边按S往左边规避移动,一边按shift键跑动,还要按一个G键扔出手里的爆炸物掩护自己。

如果出现键冲突或者鬼键,就是影响胜负的问题。

那么,怎么知道自己键盘是N键无冲或者有无鬼键?

这里可以使用微软的这个在线检测工具:https://www.mechanical-keyboard.org/key-rollover-test/

而很多键盘也应运而生,主打起来N键无冲(N-Key Rollover, NKRO),允许键盘在同时按下N个按键时,能精确识别每一个按键,无论N的数值有多大。N键无冲的实现通常依赖于两种技术:

二极管矩阵设计:键盘每个按键上安装一个二极管,使得电流只能按预定路径流动,从而避免了按键冲突。这种设计可以确保无论同时按下多少个按键,键盘都能准确检测。

非导电开关:采用如电容式、霍尔效应开关等不依赖导电的技术,从根本上杜绝键冲突。这种技术虽成本较高,但能显著提升键盘的响应速度和稳定性。

而为了解决鬼键问题,则是通过引入阻塞(Blocking)机制来避免MCU的错误检测。当控制器发现某个按键无法确定是否被按下时,会直接忽略这一信号,从而避免出现鬼键。然而,阻塞机制也可能导致某些按键的输入被忽略,因此设计时需要精确校准,以在防止鬼键和避免误阻塞之间找到平衡。

毫无疑问,在机械键盘中引入N键无冲和防鬼键技术会增加一定的生产成本,对于高端机械键盘来说,采用N键无冲技术是其区别于低端产品的重要卖点之一。然而,这也使得这些键盘的售价更高。

而对于普通用户,选择6键无冲的键盘已经能满足大部分使用场景。消费者在选购时应根据自身需求,理性选择合适的键盘,避免被高端功能的宣传所误导。同时,通过了解这些技术的原理和实现成本,也能更好地判断产品的性价比,从而做出最适合自己的购买决策。

0 阅读:0