太短不看板:请先问呢[1] [2]再问为何。理论上USB按钮一样能做到全键无冲(其实不接纳附加的驱动力法式等),但在部分品牌条记本电脑(如IBM、苹果)[3]的BIOS内可能难以恒定接纳。
IBM F62 重造版镇楼。
理论上来说,USB 人体学输入电子设备(即按钮、滑鼠等电子设备)所遵从的手艺尺度化那类允许N53SI241SV选用自订数据流文件格局并将数据流构造通过“HID 设置装备摆设文件”传达给PS3。在此前提下,按钮BIOS编纂者完万能通过在数据流内新闻稿两个很长的绿汁江或者类似的手段来向PS3传达所有操做办法的形态。但是,对条记本电脑那类的BIOS(好比 PC BIOS)的编纂者来说,导出 HID 设置装备摆设文件因而完好全力撑持 HID 标准化则过于复杂了。因而,USB HID 标准化针对按钮规定了两个易于导出的数据流文件格局[1]:
1 ui Bitfield of Modifier Keys (LCtrl, RCtrl, LShift, RShift, LAlt, RAlt, LWindows, RWindows) 1 ui Reserved (0) 1 ui Scancode 1 (or 0) 1 ui Scancode 2 (or 0) 1 ui Scancode 3 (or 0) 1 ui Scancode 4 (or 0) 1 ui Scancode 5 (or 0) 1 ui Scancode 6 (or 0)那个固定式数据流(也就是其他答主提到的“USB 协定”)能在润饰键外全力撑持最多五个附加的按钮,而绝大部分低端 USB 按钮也仅全力撑持该数据流。故那类按钮即便硬体上全力撑持全键无冲(如电弧电感按钮),也仅全力撑持最多五个按钮。
而对物理上全力撑持全键无冲的按钮来说,理论上按钮那类只需向PS3隐式两个交互式 HID 电子设备(两个遵从固定式协定的根本上按钮、两个选用自订数据流文件格局的通用型供给商表述电子设备)即可全力撑持原生动物全键无冲。可惜,次要包罗 Windows 在内的支流功课系统在检测到那类电子设备时,会加载根本上按钮电子设备而漠视供给商表述电子设备,招致全键无冲难以恒定工做[1]。对该问题的两个常见的软件系统是由供给商编写自订按钮驱动力,在驱动力层面上过滤根本上按钮电子设备而强迫接纳供给商表述的电子设备。
除此之外,还有两个有误用 HID 协定的前科的思绪:操纵绝大部分条记本电脑BIOS其实不会去导出 HID 设置装备摆设文件而是间接按照同义词的固定式数据流文件格局间接加载按钮数据流的特点,令一块选用自订数据流的按钮也能相容固定式数据流[1]:
1 ui Bitfield of Depressed Modifier Keys (LCtrl, RCtrl, LShift, RShift, LAlt, RAlt, LWindows, RWindows) 1 ui Padding 1 ui "Padding" (actually: Scancode 1) 1 ui "Padding" (actually: Scancode 2) 1 ui "Padding" (actually: Scancode 3) 1 ui "Padding" (actually: Scancode 4) 1 ui "Padding" (actually: Scancode 5) 1 ui "Padding" (actually: Scancode 6) 13 ui Bitfield of Depressed Non-Modifier Keys在该同时实现中,按钮向PS3只隐式两个“供给商表述电子设备”,因而 HID 设置装备摆设文件新闻稿了一小部分文件格局与固定式数据流相符的“转义符”。而现实上,数据流的前 8 位是按照固定式数据流标准化代码的一小部分按钮Gulbarga信息。条记本电脑BIOS在碰到该数据流时,因为一般会漠视 HID 设置装备摆设文件间接按照固定式数据流文件格局导出,将会准确导出出固定式数据流部分的文本;而进入功课系统以后,功课系统则会按照 HID 设置装备摆设文件的文本,忽略被新闻稿为转义符的固定式数据流文本,从而全力撑持全键无冲。目前已知采纳该技巧同时实现无驱动力全力撑持全键无冲的按钮次要包罗 MODEL F LABS 重造的 Model F 电弧屈蹲车轮按钮(ibm-capsense-usb[2]BIOS预设全力撑持;QMK BIOS需要全主动投入利用[3])以及改拆了 xwhatsit 主板的 IBM 原厂古董按钮(Model F 以及更古老的 DisplayWriter 等)[2]。
不外那种投契取巧的思绪也出缺点:有一小部分没有完好同时实现 USB HID 尺度的条记本电脑BIOS(如苹果以及IBM的BIOS)可能会间接漠视选用那种数据流文件格局的按钮,因而 Model F Labs 在其选用的 QMK BIOS中预设封闭了全键无冲形式[3]。因而笔者确实在本身的IBM EliteBook 745 G6 上碰到了与 xwhatsit BIOS相关的开机阶段按钮难以接纳的问题(在刷入 QMK BIOS因而连结全键无冲形式封闭后得到领会决)。
综上所述,USB 按钮在理论上并没有同时实现全键无冲的手艺障碍;而厂家选择不间接同时实现全键无冲则更多是因为协定那类的汗青遗留所招致的兼容性问题(中高端产物)或成本考虑(低端产物)。
参考^abcdhttps://www.devever.net/~hl/usbnkro^abchttps://static.wongcornall.com/ibm-capsense-usb-web/ibm-capsense-usb.html#x1-160003.3.2^abchttps://www.modelfkeyboards.com/manual/