刚刚看过一些商业广告后,我意识到高延迟键盘确实存在——与低延迟键盘相比。如果是这样,那么低延迟键盘可能又是另一个好东西,可以让我的编码体验更加美妙。
但我很难找到研究关于这一点,而不是营销!哪里有一些权威的或至少有用的信息?
“标准”键盘延迟有多严重?几毫秒?几十毫秒?
软件/硬件协议涉及哪些技术限制PS/2、USB、USB 2.0、USB 通道、中断等?已发布哪些内容?
答案1
对于 USB 键盘,延迟将受 USB 轮询率限制。USB 仅在主机主动轮询终端设备时才从终端设备传输数据 — 不存在异常发送的概念。
USB 设备可以指定其轮询速率(针对“中断”端点,而不是批量或控制端点)。一般来说,大多数键盘和鼠标的延迟约为 4 毫秒,但可能会更高。通过将描述符设置为较小的值(全速为 1 毫秒,高速为 125 微秒),您可以改善 USB 延迟。您可以看看端点描述符字段布局。
答案2
深入分析了在编辑器中输入内容时的延迟。请参阅打字很愉快,2.1 输入延迟。
键盘扫描会有一定的延迟,USB 也会有一定的延迟,但还有其他因素,例如操作系统输入处理、应用程序速度和屏幕渲染。
IntelliJ IDEA速度最快,但你需要关闭航空在 Windows 上,关闭堆肥渲染Linux,以减少延迟。
以下是有关键盘本身延迟的相关部分:
键盘扫描
典型的键盘包含 100 多个按键,数量相当多。为了尽量减少线路和控制处理器输入的数量,按键开关通常连接成矩阵电路,这样线路的行和列就会交叉。这样就可以将线路和输入的数量从 x * y 减少到 x + y(例如,从 121 个减少到 22 个)。这种方法的缺点是控制处理器无法同时读取所有按键的状态 - 它必须以某个恒定频率反复扫描开关,这会导致一定的延迟。典型的矩阵扫描速率为 1000 Hz,因此最大扫描相关延迟为 1 毫秒(平均延迟为 0.5 毫秒)。