ADVERTISEMENT
鍵盤的鍵位處理有內部訊號處理及訊號輸出共2個部分;內部訊號是指鍵盤能辨識的按鍵數,接著則是外在最多能有多少按鍵輸出。不過以往支援多鍵輸出的鍵盤不多,趁著最近各家廠商投入此技術,來測試驗證一下 USB 封包內容是否相同!
USB也能同時超過6鍵輸出
鍵盤常見的介面為PS/2與USB,而這2種介面的原理、傳輸方式、內容都不相同。以PS/2來說,不管玩家按下多少按鍵,只要內部訊號處理得當,並且都能辨識出來的話,就可以全數輸出。因此,就會有專有名詞N-Key Rollover(NKRO)出現,即是無論按下任意數量的鍵都能全部輸出,此時的N已代表全數按鍵,因此也沒有所謂的Full N-Key Rollover。只是一般夠過鍵盤矩陣(Keyboard Martix)所設計出來的鍵盤,只能說2-Key Rollover而已,只有特別設計才能達到N-Key Rollover。
不過當介面轉換到USB時,就會受到USB HID(Human Interface Devices)規範限制,對於壓下的訊號按鍵每一次的封包為8 Bytes,其中2 Bytes 為Modifier Keys與Reserved保留鍵,其他6Bytes才會被我們常用的主鍵位訊號輸出,因此才會有玩家說USB鍵盤最多只能同時輸出6鍵,就被稱為6-Key Rollover,不過要超過此限制並部是難事。
▲以原始USB HID限制,每次只能送出8Bytes,其中6Bytes為我們常使用的主鍵位區訊號。
模擬多把鍵盤或重新定義
除了特殊遊戲或者環境下,否則6鍵同時輸出的需求極少,不過至今仍有廠商在研發克服的方法。目前常見的方式有2種:模擬與重新定義。如果要遵守USB HID限制的話,1把鍵盤就最多只能6鍵輸出,那我們只要利用鍵盤晶片讓電腦在只有把1把鍵盤安裝的情形下,誤認為是同時有多把鍵盤連接。這時便會將1把鍵盤的不同按鍵,分給模擬出的鍵盤來送出訊號,達到超過6鍵的訊號。原本鍵盤限制的6顆鍵數量就能串聯起來,而重複的Modifier Keys與Reserved Keys位置也可以再重新定義新按鍵送出,造成可以同時多鍵輸出。
至於重新定義方面,則是打破遵守USB HID的思維,重新定義每個按鍵的訊號,原本的8Bytes的訊號,能分成64bits來表達,每個bit代表1個按鍵就能達到最多64鍵輸出的目的。透過模擬方式,甚至不透過8Bytes的方法就能讓USB鍵盤也能擁有N-Key Rollover。
驗證方面,以i-rocks KR-6421與Ducky龍年版6-Key Rollover模式來測試,按下A鍵透過USB封包軟體Bus Hound 6.01可以看出有送出包含十六進位「04」的ID名稱。但當把Ducky龍年版轉成N-Key Rollover模式,就沒看到「04」的封包數值。
由此可見Ducky龍年版,是透過更改USB按鍵定義的方式來克服6鍵輸出。不過重新定義的部分,如果韌體不好,反而可能會造成系統錯亂,因此玩家買到鍵盤還是要先測看看才行,否則就選擇可以自由接換訊號輸出模式的鍵盤為主。目前除了Ducky,CM Storm也有採用類似方式,相信之後這會是USB鍵盤多鍵輸出的主流方式。
▲透過USB封包軟體軟體,可以看到Ducky龍年版突破6鍵限制的方法,就是變動USB的按鍵定義。
延伸閱讀:
本文同步刊載於電腦王雜誌
歡迎加入電腦王雜誌粉絲團
--可以自由"接"換訊號輸出模式的鍵盤為主
> 最好的方式還是整把鍵盤加焊 Diode 上去
加上二極體跟USB超過6鍵輸出是兩回事唷,
如果沒有特別處理,加上二極體後USB還是受限在6鍵
※ 引述《dodo》的留言:
> 這篇錯字頗多!!
> --可以自由"接"換訊號輸出模式的鍵盤為主
感謝揪錯,只是這篇是來自於電腦王文章,在出刊前都已訂正修改
只是T客邦上稿是以最原始電子檔直接上稿,
如果沒有經過核對校正,有錯字只能說是正常的。
而且目前我也沒權限可以訂正...Orz