键盘按键冲突测试 & N键无冲 (NKRO) 检测
这个键盘按键冲突测试(Ghosting Test)能准确显示您的键盘可以同时识别多少个按键,以及哪些按键组合会被静默忽略。您可以按住任意一组按键——比如 W、A、Shift 和空格键,或者直接双手同时按下多个键——屏幕上的虚拟键盘会亮起浏览器实际接收到的每一个按键。最高峰值计数器会记录您同时按下的普通按键数量(Shift、Ctrl、Alt 和 Win/Cmd 会单独计数,因为 USB 协议将它们放在单独的字节中),并自动评估您的键盘是 2KRO、6KRO 还是全键无冲 (NKRO)。无需安装任何软件,所有的按键记录都仅在您的浏览器本地进行处理。
什么是键盘按键冲突 (Ghosting)?
键盘按键冲突(Ghosting)是指当您物理上按下一个键时,由于它所在的按键组合发生冲突,导致键盘未能将该键的信号报告给电脑。您能明显感觉到轴体按到底了,但屏幕上却没有出现相应的字符,游戏里的角色也没有跳跃。这个词最初的含义指的是相反的问题——屏幕上出现了一个没人按过的幽灵按键 (Phantom Key),但两者的起因是一样的。
每个键盘内部都是一个网格。控制器并不是为每个按键配备一根独立的导线;而是由一组行和列交叉组成,每个轴体都位于一个交叉点上。控制器每秒数百次地逐行通电并检测哪些列有响应。当您同时按下共享相同行和列的三个键时——例如同一个区块内的 Q、E 和 A——第四个交叉点的电路也会随之闭合。控制器无法区分这个多出来的幽灵按键和真实的按键。
老式键盘会让这个幽灵按键的信号通过,这也是 Ghosting 这个名字的由来。现代键盘则采取了更安全的做法:当遇到这种模糊的电路模式时,它们会选择阻塞 (Jamming),丢弃其中一个按键信号,而不是凭空捏造一个。这就是为什么今天的键盘防冲测试通常发现的是按键无反应而不是多出按键,也是为什么测试结果取决于您按下了哪些特定的按键,而不仅仅是按下了多少个按键。
什么是 N键无冲 (NKRO)?
N键无冲(N-Key Rollover,简称NKRO)意味着无论您同时按下多少个按键,每一个按键的信号都会被独立且准确地报告。制造商实现这一目标的方法是在每个轴体后面加装一个二极管,这样电流只能单向流过矩阵电路,从而从物理上杜绝了幽灵交叉点的产生。
问题的另一半在于连接线。标准的 USB HID 键盘报告格式刚好有六个普通按键码的空间,外加一个字节用于修饰键(两个 Shift、Ctrl、Alt 和 Win/Cmd 键)。这就是 boot protocol(引导协议)格式,它的设计初衷是保持简单,以便在加载任何驱动程序之前 BIOS 就能读取它。如果一个键盘只发送这种标准报告,那么无论它的内部矩阵有多么高级,它最多也只能同时识别六个普通按键。
不过,USB 本身并不是极限。键盘可以声明自定义的 HID 报告,或者并行发送多个报告,从而传递无限数量的按键——这就是通过 USB 实现 NKRO 的键盘的工作原理,也是 QMK 和 VIA 固件提供 NKRO 切换开关的方式。旧式的 PS/2 键盘完全避开了这六个插槽的报告限制,但键盘的内部矩阵仍然需要支持 NKRO,PS/2 接口的优势才能发挥出来。
2KRO vs 6KRO vs NKRO
您的键盘按键冲突测试结果会属于以下三个级别之一:
- 2KRO (2键无冲) — 只能同时识别两个按键,如果它们位于不同的行,有时能识别三个。常见于老式的薄膜办公键盘和一些廉价的笔记本电脑。这就是为什么 W + Shift + 空格键 的组合会失效的原因。
- 6KRO (6键无冲) — 能够识别六个普通按键外加最多八个修饰键。这是 USB 引导协议的标准,也是目前最常见的测试结果。对于几乎所有的打字需求和大多数游戏来说,这已经足够了。
- NKRO (全键无冲) — 没有任何实际的上限。每个按键都有二极管隔离并被独立报告。这是发烧级机械键盘的标配,在游戏键盘中也很常见,而且通常带有切换开关,以便键盘在 BIOS 模式下也能正常工作。
市场营销往往会混淆这些概念。“防冲突 (Anti-ghosting)” 并不是 NKRO 的同义词:它通常意味着制造商只在特定的部分按键上添加了二极管——通常是 WASD 区域和修饰键——以确保流行的游戏按键组合不会冲突。一款标榜“19键防冲”的键盘,指的是它能处理19个特定的按键组合,而不是您随意挑选的任意19个按键。
如何解读您的测试结果
请逐个按住键盘上的按键,并在不松开任何键的情况下继续添加按键。峰值计数器会显示您同时按住的普通按键的最大数量,而修饰键(Shift、Ctrl、Alt、Win/Cmd)则在旁边单独计数——这个普通按键的峰值就是您键盘实际的防冲能力 (Rollover)。如果您按住的某个键在虚拟键盘上没有亮起,说明该键的信号被阻塞了——请记下这个按键组合,因为特定的组合才是关键,而不仅仅是按键的数量。
在您认为硬件有问题之前,了解基于浏览器的测试有哪些限制是很重要的:
- 操作系统会优先拦截某些快捷键。例如 Alt+Tab、Windows 或 Command 键、Ctrl+W、PrtSc 和 F11 可能永远不会传递给网页。为了获得准确的结果,请使用字母键、数字键、修饰键和空格键进行测试。
- 组合 Fn 键的信号是由键盘内部处理的,通常不会产生任何系统级别的按键事件。它们在测试中没有反应是正常的,并非故障。
- 修饰键在 USB 报告中占用一个单独的字节,因此它们永远不会占用六个普通按键码的插槽。它们在这个测试的布局中仍然会亮起,但不计入峰值数量和防冲评级中:一个按住 Ctrl+Shift+Alt 再加六个字母键的 6KRO 键盘,依然是 6KRO,而不是 NKRO。寻找真正的上限时,请关注六个字母键。
- 如果一个正常的 USB 键盘刚好停在六个按键上,这是符合预期的标准行为,而不是缺陷。许多键盘出厂时带有 NKRO 切换功能——可以通过 Fn 快捷键、官方驱动软件,或者在 QMK/VIA 固件中使用
NK_TOGG来切换。 - 这个测试无法区分是矩阵阻塞还是轴体本身损坏。如果某个按键即使单独按下也没有任何反应,那是另一种故障——请运行完整的键盘测试来逐个检查每个按键。
打游戏真的需要 NKRO 吗?
对于大多数游戏来说,不需要。六个按键加上修饰键已经远超单手在操作键盘(另一只手握鼠标)时所能按下的极限了;在 FPS 游戏中,同时按下 W、A、Shift、空格键 和 R 已经是非常密集的重叠操作了。真正让玩家感到困扰的不是防冲键数不够,而是那些廉价的 2KRO 键盘连三个键都处理不了,或者是那些只针对 WASD 优化了“防冲突”,却让习惯使用 ESDF 键位的玩家吃亏的键盘。
NKRO 的真正价值体现在一些特定的场景中:比如需要像弹钢琴和弦一样同时按住七个或更多列的音乐节奏游戏(osu! mania 7K 是最经典的例子)、速记、通过电脑键盘输入 MIDI 音乐信号、在键盘上玩双人按键密集的格斗游戏,以及需要配置大量密集快捷键的 MMO 游戏。对于这些情况,NKRO 是必须的,而不仅仅是锦上添花。如果您只是尽可能快地交替敲击两到四个按键,而不是同时按住很多按键,那么无冲能力 (Rollover) 并不是您的瓶颈——运行键盘cps测试能让您更好地了解这种连续输入的性能。
有一点需要澄清:NKRO 并不会让您的键盘变得“更快”。无冲能力关系到能同时报告多少个按键,而不是报告的速度。报告率是一个完全不同的属性;如果您追求的是超低的延迟和响应速度而不是同时按键的数量,那么键盘回报率测试才是您应该关注的指标。为了降低输入延迟而去购买 NKRO 键盘,完全是搞错了重点。
常见问题 (FAQ)
为什么我不能同时按下 Shift + 空格 + W 键?
您的键盘在其内部矩阵中阻塞了这个特定的组合——这三个键共享的行和列导致控制器无法同时解析它们。这是一个硬件物理限制,所以没有任何驱动程序或软件可以修复它。解决办法是将这三个键中的一个重新绑定到键盘的其他位置,或者把跳跃键改到鼠标按键上,这样组合就能恢复正常了。当然,更换一个 6KRO 或 NKRO 键盘可以彻底解决这个问题。
防冲 (Anti-ghosting) 和全键无冲 (NKRO) 是一回事吗?
不是的。防冲 (Anti-ghosting) 通常意味着制造商只在有限的一组按键(通常是 WASD 区域和修饰键)上增加了二极管或额外的布线,以确保常见的游戏组合键不会冲突。而 N键无冲 (NKRO) 意味着键盘上的每一个按键都被独立隔离,没有任何组合会发生阻塞。标榜“19键防冲”的键盘只能处理特定的19个按键,而不是您随意选择的任意19个按键,这就是为什么当您将键位从 WASD 更改后,防冲功能可能就失效了。
玩游戏真的必须要有 NKRO 全键无冲吗?
对于大多数游戏来说,不需要——6KRO 加上修饰键足以应付 FPS、MOBA 或 MMO 游戏中单手的任何操作要求。NKRO 真正发挥作用的是像 osu! mania 7K 这样的音乐节奏游戏、速记输入、MIDI 音乐输入以及键盘格斗游戏。此外,如果您习惯使用非 WASD 的自定义键位,NKRO 也会很有帮助,因为廉价的“防冲”功能通常只针对 WASD 区域进行优化,无法在 ESDF 或数字排上保护您的操作。
我最多只能同时按 6 个键——我是不是必须买个新键盘?
不一定。六个普通按键加修饰键是标准的 USB 引导协议报告格式,因此一个完全正常且健康的键盘通常会刚好在这个数量停止响应。很多键盘在出厂时默认处于 6KRO 模式,但实际上隐藏了 NKRO 切换功能,这可能需要通过 Fn 快捷键、官方驱动软件或者 QMK/VIA 固件中的 NK_TOGG 来开启——在购买新键盘之前,请先检查一下是否有这个选项。如果没有这个切换开关,那 6 个键就是真正的硬件上限,只能通过更换硬件来提升。
为什么我有些键不能同时按,而其他的按键组合却没问题?
因为按键阻塞取决于您按下了哪些键,而不仅仅是按键的数量。控制器将按键读取为行和列的交叉点,当被按下的键共享了足够多的行和列时,就会闭合一个实际上没人碰过的第四个交叉点。为了不错误地报告一个幽灵按键,固件会丢弃其中一个真实的按键信号。分布在不同行和列上的按键永远不会发生冲突,这就是为什么 Q+E+A 组合会失败,而同时按下分散在键盘各处的六个键却完全没问题的原因。
把 USB 键盘转换成 PS/2 接口,能让它变成 NKRO 吗?
不能。一个转接头无法赋予键盘控制器原本不具备的无冲功能,转接后您通常依然会被限制在 6KRO 甚至更糟的水平。PS/2 接口之所以享有 NKRO 的美誉,是因为它采用按键中断的方式发送信号,没有六键报告的限制。但是,键盘内部的矩阵仍然必须在每个轴体后面配备二极管,才能利用好这一优势。只有那些原本就为 NKRO 设计的键盘,才能从 PS/2 接口中获益。
我的键盘最多能同时识别多少个按键?
在上面的测试区域中,逐个按住键不放,然后查看峰值计数器——那个数字就是答案。修饰键会显示在旁边,而不是加到总数中,因为它们不占用普通的按键码插槽。您可以预期较老的薄膜键盘最多识别 2 个键,大多数 USB 键盘能识别 6 个普通按键加上最多 8 个修饰键,而 NKRO 全键无冲键盘则没有实际的上限。制造商很少将这个具体数字印在包装盒上,规格表上的“防冲”字眼也不能告诉您具体数量,因此亲自动手测试永远比看说明书更靠谱。