是否有理由禁用 N 键翻转?

Wil*_*ins 27 keyboard

阅读Das 键盘功能,我看到以下内容:

游戏玩家和快速打字员会很高兴听到 Das 键盘 4 支持通过 USB 的完整 n 键翻转 (NKRO)。不再需要使用 PS2 适配器。只需按 shift + mute 即可切换 NKRO。

为什么键盘可以切换 NKRO?你有什么理由想要 NKRO 吗?

Wil*_*ins 19

原因似乎是为了支持较旧的主板。

我联系了 Das 键盘,这是他们给出的回应:

感谢您抽出时间与我们联系。

NKRO 切换的原因是一些较旧的主板无法通过 USB“理解”或“获取”NKRO。它比那要复杂一些,但这是最简单的表达方式 - 以便使用较旧主板的用户可以通过 USB 使用键盘而不会出现问题。当然,他们可以使用 PS/2 适配器来实现 NKRO,但是由于当今世界都是关于 USB 的,并不是每个人都可以访问他们机器上的 PS/2 端口。


Pra*_*dra 7

除了旧主板,大多数KVM 切换器无法与 NKRO 键盘配合使用。


小智 6

https://geekhack.org/index.php?topic=37567.0有一个关于 NKRO 有时会导致问题的技术原因的长时间讨论。本次讨论的 TLDR 是:

  • NKRO 最有可能导致 BIOS 和 KVM 交换机出现问题。这些问题是由削减成本措施造成的,而不是 NKRO 固有的问题。
  • 6KRO 适合任何普通用途,包括大多数游戏。

该讨论主题中最具启发性的评论如下:

USB 标准在任何版本中都没有提及有关键盘或鼠标等的任何具体内容。

HID 标准就是这样做的。6 键加修饰符报告结构的真正目的只是为了让 BIOS 的生活变得轻松(因此他们不必解析报告描述符),但无论如何都成为了键盘事实上的“标准”。然而,HID 标准允许各种不同的报告,并且所有主要操作系统都完全支持它,因此不需要额外的驱动程序。

另一个限制是低速USB数据包最多只能是8字节。报告可以更大,但这会花费大量时间来发送。USB 标准仅允许低速设备每 10 毫秒(每个端点)发送一个数据包。操作系统通常会将其调整至 8 毫秒,即 125Hz(无需黑客攻击)。最多需要 16 毫秒才能让主机按下按键,这太糟糕了!因此,我们已经经历了一个阶段,制造商试图通过多端点等技巧,从低速芯片中获得超出其实际处理能力的更多功能。:(

全速 USB 消除了这些限制。每个数据包可以是 64 字节,并且可以每 1 毫秒发送一次(同样,每个端点)。这使得 HID 标准能够得到充分利用。

最后,NKRO 并不仅仅是为了它而做。执行完整的 NKRO 只需要每个键一位,而不是一个字节,并且不必将修饰符视为特殊情况。因此,键盘可以在仅 13 个字节中发送 104 个键 - 使用其他方案 13 个字节只能管理 11KRO(11 个键 + 修饰符 + 一个保留字节)。当然,这仍然有很多密钥,但它的方法远没有那么优雅(并且仍然是“非 6KRO”,因此仍然可能与愚蠢的主机不兼容)。