2012年8月15日 星期三

什麼是 N-key 與按鍵衝突?原理說明、改善技術、選購注意完全解析

source: T客邦 老貓 iqmore 發表於 2012年8月14日 11:10 http://www.techbang.com/posts/10235-keyboard-triggers-do-not-bomb-almighty-from-the-matrix-to-the-circuit-n-key-conflict-with-the-keys-in-the-end-is-what-computer-king-75-fully-understood


06775c4132c8af8ab13c7fd42329c248不管是文書處理或遊戲中,我們都經常會使用到組合鍵,也就是多顆按鍵一起按下,執行某些特定的功能。有時候你可能會發現,明明只按下2顆鍵,再按下第3顆鍵時訊號卻沒有輸出。要是打報告到一半遇到這種狀況還好,如果在遊戲中遇到,那可能發生被大屠殺的慘劇。而造成這些情況產生,就是鍵盤的「鍵位衝突」(或稱「按鍵衝突」)所致。

再舉個簡單的例子,當在CS遊戲中拿著小刀要往斜後方行走時(按下S+D鍵或A+S鍵),這時看到敵人要切換武器(壓下數字鍵2或3),有些鍵盤就無法直接拿出武器,一定要放開行走的按鍵才能切換武器。這並不是遊戲的Bug,而是因為鍵盤內部先天性設計所產生的問題。

鍵位衝突不是卡鍵

鍵位衝突與卡鍵事實上是不相同的情況,許多人習慣以後者來形容鍵位衝突,而且在網路以訛傳訛的結果,就把這2種名詞變成同義了。事實上,「卡鍵」代表鍵帽壓下時陷在鍵盤內,彈不回來原有的位置,或者彈回來的時間比正常的時間還長,完全直接是照字面意思來解釋的。

結構、訊號雙管齊下

要認識什麼是鍵位衝突,就必須分2個部分來討論。第1部分得先了解鍵盤內部的構造,訊號是如何判斷與傳遞,以及遇到錯誤該如何避免;第2部分是探討如何將鍵盤訊號傳輸至電腦端,內在架構雖然不會造成鍵位衝突,但不同鍵盤的連接介面可能會造成影響,而無法順利將每個訊號送出。將2個部分整合起來,才能完全認識鍵位衝突原理。

非編碼鍵盤當道

鍵盤依轉換代碼來分類,可以分為編碼鍵盤與非編碼鍵盤2種。編碼鍵盤是指按下按鍵時,直接由數位電路上產生出ASCII碼,或者特別編碼來輸出。非編碼鍵盤則是將鍵盤按鍵排成矩陣形式(Keyboard Matrix),當按鍵觸發時,由鍵盤控制器(Keyboard Controller)依照行(Clown)與列(Row)的資訊,來查詢鍵盤碼表格,藉此找出使用者壓下的按鍵資訊並輸出。非編碼鍵盤的鍵盤碼表格較容易重新定義,結構技術不難。對於不同國家的鍵盤配置都容易進行鍵位設計,所以已經成為目前鍵盤主要的設計方式。
薄膜式鍵盤的行與列電路,會分散到鍵盤的2層薄膜電路上,而機械式則設計在PCB電路板上。這些行與列至少會由16條線路與8條線路交叉形成,組合出共有128個交叉點。目前鍵盤按鍵數大約為103鍵,就算語系不同按鍵數也不會相差太多,這128個點可以運用到目前所有的鍵盤。不過這種矩陣的設計方式代表壓下就會形成通路,如果一次壓下太多鍵,就有可能造成訊號誤判。

行與列判斷訊號

接下來,我們來看看是鍵盤訊號是如何偵測與送出。鍵盤的按鍵資訊都是設計在鍵盤矩陣中,裡面每個行與列的交錯點都代表著1顆按鍵資訊。當按鍵被觸發時,鍵盤就會進行掃描,查詢是哪顆鍵被壓下。首先會以行為單位會輪流掃描,之後再判斷是哪一列形成通路。
當單一按鍵被壓下時,鍵盤掃描行與列的原理非常簡單,很容易就會找到是哪顆鍵被壓下,立即就會將訊號送出,但如果同時觸發超過1顆按鍵時,則是另一種情況。鍵盤矩陣中最小矩形單位會是由4顆按鍵所組成,4顆鍵壓下任何1顆鍵都能順利輸出訊號。任意2顆鍵按下時,鍵盤控制器也能依行列資訊判斷是哪些鍵被觸發。當同時壓下1顆鍵與2顆鍵時,鍵盤很容易就能判斷訊號並將其送出。

產生Ghost Key

不過同時3顆鍵壓下時,就會送出2個行資訊與2個列資訊到鍵盤控制器。由於2行與2列共可形成4顆鍵,所以光靠行列資訊無法推算是4顆鍵中的哪3顆,而這時意外被導通電路的第4顆鍵,稱為Phantom Key(幽靈鍵)或Ghost Key(鬼鍵)。
Ghost Key出現時,控制器因無法判斷正確按鍵而產生錯誤的判斷資訊,為了避免錯誤訊號被送出,鍵盤控制器就會忽略第3顆壓下的訊號,只會輸出前2顆鍵一定正確的訊號。這就是目前使用者常會疑惑,明明已經壓下按鍵,為什麼電腦卻沒有送出訊號,其實就是因為產生Ghost Key發生鍵位衝突。
此為鍵盤矩陣簡化圖,在3行3列的電路中配有Q、W、E、A、S、D、Z、X、C鍵共9鍵。實際鍵盤矩陣不會如此簡單,會更為複雜。
▲當Q鍵壓下時:從C1開始掃描,R1有被導通電路,R2沒有,所以推論出C1R1被壓下。再從C2開始掃描,R1與R2都沒有形成通路。結論得到C1R1即Q鍵被觸發。
▲當Q、S鍵壓下時:從C1開始掃描,R1有被導通電路,R2沒有,所以推論出C1R1被壓下。再從C2開始掃描,R1沒有形成通路,R2有被導通電路,所以推論出C2R2被壓下。結論得到C1R1與C2R2即Q鍵、S鍵被觸發。
▲當Q、W、A鍵壓下時:從C1開始掃描,R1被導通電路,R2也被導通電路,所以推論出C1R1、C1R2都形成通路。再從C2開始掃描,R1被導通電路,此時R2透過C1也被導通電路,所以推論出C2R1、C2R2都形成通路。結論得到C1R1、C1R2、C2R1、C2R2即Q鍵、W鍵、A鍵、S鍵都被觸發,不過實際並不是如此。S鍵沒有按下卻意外被導通,此鍵就命名為Phantom Key,即Ghost鍵(鬼鍵)。



鍵盤矩陣分2類

由鍵盤矩陣表可以觀察到,同一個矩陣裡,如果恰好都在相鄰的4個位置上,只能同時壓下2顆,壓下第3顆按鍵時就會產生Ghost Key。如果沒有經過特別設計避掉Ghost Key的話,鍵盤基本上都是屬於2-Key Rollover。所以對於鍵盤來說,只要是鍵盤矩陣架構,就只有2種:2-Key Rollover與N-Key Rollover。

N-Key Rollover

N-Key Rollover(NKRO)代表能同時任意壓下N顆按鍵,並正確輸出。換句話說,就是同時任意按下N個鍵都不會發生鍵位衝突,N代表著正整數。當直接以N來表達就代表著無限大的意義,也就是整把鍵盤都能同時壓下並輸出訊號。目前市面許多鍵盤都會強調N-key功能,不過仍有人誤解原意而誤用。

從鍵盤矩陣改進

其實鍵盤廠商很早就注意到鍵位衝突的問題,對於常用組合鍵都會刻意避開。如常見的Ctrl+Alt+Delete,理論上這3鍵應該沒有鍵盤無法輸出,其他例如Ctrl與Shift鍵的組合等等,也都是因為廠商特別設計,所以這些常用的鍵才能正常使用。
在製造廠來說,只要能夠順利使用以上常見組合鍵,並且不會造成鍵位衝突的鍵盤就能滿足絕大多數的使用者。但各廠商的Keyboard Matrix設計都不同,相同的組合鍵透過各種設計都能達到相同的結果。要讓2-Key Rollover變成N-Key Rollover的話,有很多方法可以達成,這裡整理出幾種常見方法給大家參考。

更改鍵盤結構

將鍵盤以結構來區分,除了薄膜式、機械式之外,還有電容式鍵盤。薄膜式與機械式都是以鍵盤矩陣來來判斷,先天性就會有鍵位衝突的問題。電容式鍵盤是以電阻改變的方式來觸發,可以由電阻大小來判斷使用者按下哪些按鍵,所以電容式鍵盤不受鍵盤矩陣影響,天生就擁有N-Key Rollover功能。市面上較為常見的電容式鍵盤以Realforce為主,目前已從PS/2轉為USB介面。Realforce鍵盤雖然內在是N-Key Rollover架構,不過受到USB限制只能任意6鍵輸出,有點可惜。

用電容式設計

此外,i-rocks也要推出電容式鍵盤。不同於以往電容式鍵盤都需要仰賴PCB才能觸發,i-rocks使用IC晶片,將電容等元件都包含在IC內。雖然外觀與一般薄膜式鍵盤相近,但內部薄膜電路要經過特別設計與處理才能使用,而非一般薄膜電路。所以這款鍵盤在PS/2介面擁有N-Key Rollover功能,而在USB介面底下還不確定。

加二極體變單向電路

薄膜式與機械式鍵盤想要避免Ghost Key,還是有方法可以做到。例如在每個按鍵訊號的地方,都加1顆二極體(Diode)隔離電流倒灌,就不會使電路被意外導通而出錯。目前市面上許多機械式鍵盤的處理方式,都是以加二極體來達成N-key功能。至於薄膜式鍵盤,要將二極體加在導電薄膜較不容易,這個方法不太可行。 
▲Cherry G80-3494LYCUS-2鍵盤是在軸上加上二極體,而不是在PCB上直接焊上二極體,與目前常見的機械式鍵盤處理方式不同。

加上二極體處理示範圖

▲在每個訊號連接後,都加上二極體防止電流倒灌。
▲此範例一樣使用Q鍵、W鍵、A鍵來示範,看是否一樣會產生Ghost Key。
▲從C1開始掃描,R1有被導通電路,R2沒有,所以推論出C1R1被壓下,得到Q鍵與A鍵被壓下。
▲再從C2開始掃描,R1形成通路,R2沒有被導通電路,推論出C2R1被壓下,得到只有W鍵被壓下。所以經過C1與C2掃描後,正確得到Q鍵、W鍵、A鍵共3鍵被壓下,沒有產生Ghost Key。

將Controller改成ASIC

1996年Compaq申請過一個專利,特別強調不需要加二極體也能擁有N-Key Rollover功能。Compaq拋棄鍵盤矩陣的想法,將原本在鍵盤上的8 bit MicroController 8051以ASIC(Application Specific Intergrated Circuit)取代。簡單說,就是將I/O針腳增加,讓每顆按鍵都能有獨立針腳傳送訊號,就不會產生Ghost Key。不過ASIC開發成本高,也不能隨時修改,一修改就是從頭設計,所以鍵盤後來也沒有採用此技術。
▲此為Compaq在1996年的美國專利,專利號碼:US005523755A。
▲FIG. 1為當時鍵盤的設計,下方的Keyboard都通過MicroController之後,才傳送至電腦。FIG. 2為如果要讓2-Key Rollover的鍵盤提升至N-Key Rollover,作法就是要在每個Keyboard Matrix交叉點的訊號都加上二極體。
▲FIG. 3為Compaq的專利,將原本的MicroController替換成ASIC。FIG. 4就是原本再交叉點上的按鍵全變成獨立信號。

減少二極體使用量

由於開發ASIC需要花更多費用,所以要達到N-Key還是得回到增加二極體的方法。不過使用二極體的數量是随著鍵盤按鍵數量而改變,所以當鍵盤有101鍵時,那就需要101個二極體,對於成本而言相當高。
2009年韓國廠商Skydigital提出了一個解決方法,將鍵盤矩陣特別設計,增加I/O針腳將訊號拉出,統一集中到薄膜電路外的二極體來處理訊號,這可以省下二極體數量又能達到N-Key Rollover的效果。目前Skydigital在韓國已經推出一款薄膜式N-Key Rollover鍵盤 nKEYBOARD ,就是採用自家的技術,不過成本還是不夠低。
▲Skydigital在官方網站上有特別提出他們的獨家專利說明,Patent Cooperation Treaty(PCT)號碼:WO 2009/119947 A1。

利用電阻直達N-Key Rollover

微軟在2010年對於N-Key Rollover提出新解決方法,不使用二極體而採用電阻來判斷。微軟增加電阻的方式,是直接把薄膜電路的訊號線加長,線路距離加長意即增加電阻,而不是直接在上面加上電阻電路。
由於每個按鍵的電阻都不同,所以當按鍵送出訊號時,可以由鍵盤控制器來判斷是哪些按鍵的訊號,透過這種方法可以達到N-Key Rollover功能。當然電阻也不是只能放在薄膜電路上,也能利用在PCB板上,所以此方法也能應用在機械式鍵盤上。
▲微軟提出的專利後,直接運用在目前的遊戲鍵盤SideWinder X4上。(專利號碼:US20100066567A1)


USB照樣能N-Key

目前鍵盤連接介面以PS/2與USB為主,而這2種介面的傳輸方式與內容都不相同。在前一單元有提到,鍵盤控制器(Keyboard Controller)由行列資訊查出是哪顆鍵被觸發後,就將按鍵資訊傳輸到電腦中。這只能算是簡略的說法,其實在這段過程中,鍵盤還做了許多事情。

隨時監控按鍵狀態

鍵盤控制器(Keyboard Controller)大部分時間都在掃描鍵盤矩陣,以及監控鍵盤是否有更動按鍵狀態。當按鍵被按下或將按鍵放開時,都會送一組掃描碼(Sacn Code)給電腦。這組掃描依不同情況分為2種:Make Code與Break Code。Make Code是在使用者按下按鍵時立即送出,Break Code是使用者放開按鍵時送出。這2種的內容都是獨一無二,方便給電腦主機能夠準確辨識之用。

先找出按鍵位置

送出Mack Code與Break Code訊號,得要先找到使用者是按下哪顆鍵才行。鍵盤無論採用何種鍵位配置,都會針對每一顆按鍵定義一個鍵盤號碼(Key Number)。當使用者壓下按鍵時,鍵盤控制器由行列資訊找出哪顆按鍵被壓下,再從鍵盤表中查出此按鍵位置所代表的是哪一個按鍵訊號。這中間過程無論是在PS/2介面或USB介面下都是相同的,但之後查表送出的訊號就有所不同了。 
▲無論是101鍵與102鍵的按鍵配置,每個按鍵都會有1組按鍵號碼。

進行查表

知道按鍵位置之後,便會從Scan Codes Tables(掃描碼表格)中查詢Scan Codes(掃描碼)並送出訊號。其中Scan Codes Tables有分為Set 1、Set 2、Set 3共3組,一般系統預設是查詢Scan Codes Tables Set 2。

預設查表Set 2 

在Scan Codes Tables Set 2中,鍵盤主要鍵位區Make Code每顆按鍵都是由1組8-bit位元碼(1Byte)組成,Break Code為2Bytes,其中Break Code第1個Byte皆為十六進位的F0,第2個Byte則與Mack Code相同。在主要鍵位區中,只有右側Ctrl鍵與右側Alt鍵不同,分別與左側Ctrl鍵與左側Alt鍵相比較,在Make Code部分多十六進位的E0,Break Code多十六進位的E0F0。
擴展功能鍵(Extended Keys)如鍵盤中間九宮格區(Insert、Delete等)、方向鍵區與右側數字鍵區,與Number Lock關閉時的右側數字鍵區功能重複。換句話說,因為擴展功能鍵常會隨著Shift鍵與Number Lock鍵的開啟與關閉而影響輸出結果,所以獨立定義出一組規則,不會與主要鍵位區相同。在Make Code會增加十六進位的E0,Break Code多出十六進位的E0F0。另外數字鍵區「/」、PrintScreen鍵、Pause鍵,這些也是有獨立的Make Code與Break Code表示。

電腦轉ASCII使用

當電腦接收到鍵盤所送出的掃描碼,會再轉成ASCII。最後這部分是由系統中驅動程式來完成,以便套用多國語系的設定。用PS/2介面的鍵盤運作狀況大致是如此,若用USB介面,就又是下面這種情況。
▲IBM技術參考手冊有將每一個按鍵的Make Code與Break Code一一條列出來。


USB HID限制6+2鍵

PS/2按鍵壓下與放開,是分Make Code與Break Code送出,而USB介面下則完全不同。依據USB HID(Human Interface Devices)規範,它是將正在壓下的按鍵訊號送出,沒有壓下按鍵的訊號就不送出。壓下的訊號按鍵每一次的封包為8 Bytes,其中2 Bytes 為Modifier Keys與Reserved保留鍵。
Modifier Keys為1Byte即8 bit,每一個bit可以記錄Shift、Ctrl、Alt、Windows鍵,左右側各有1顆鍵共8鍵。Reserved保留鍵可以做為Caps Lock、Number Lock、Scroll Lock等等鍵使用。扣除Modifier Keys與Reserved Keys之後,其他按鍵最多只有6鍵可以輸出。

USB鍵盤按鍵定義

▲由USB HID 1.11中可以明確看到USB鍵盤使用8 Bytes。
▲Reserved Keys保留鍵可以讓廠商做為多種用途。
▲Modifier Keys每1個bit各代表著不同按鍵訊號。
▲其他按鍵的訊號送出的定義也與Scan Codes Tables Set 2不同,USB有自己的一套查表,詳細可以查詢USB HID Uasage Tables。

訊號先進先出不打結

在USB HID中,我們真正可以使用的按鍵只有6鍵。如果按下超過6鍵,或者送出Ghost Key時,鍵盤便會送出錯誤訊息而停止。有些廠商在這裡的處理方式為採用FIFO(First In First Out,先進先出),當已經滿6顆訊號時,再讀取使用者新輸入的第7鍵訊號,就捨棄原本的第1鍵訊號,持續保持同時6鍵輸出。
▲USB按鍵送出範例:此範例以4 Bytes封包送出鍵盤訊號,其中1 Byte保留給Modifier Keys使用。如果鍵盤沒有動作時(None),送出的封包訊號與前一次相同。

解開HID封印可行

USB HID只是對USB設備設立的規範,USB裝置也能照著自己的規則走,所以USB鍵盤同時輸出6鍵還是可行,在這分享幾種USB鍵盤突破限制的方法。只是這些方法都需要付出額外的成本,早期鍵盤幾乎都是遵守USB HID規範,所以才會有許多人認為多鍵輸出在USB介面下是不可能的任務。

模擬多把鍵盤

但其實仍有辦法遵守USB HID規範,又能突破限制。最簡單的方法,就是利用鍵盤晶片,讓電腦在使用1把鍵盤情形下,誤認為同時連接多把鍵盤。就能將鍵盤按鍵,透過模擬的鍵盤分送訊號。原本限制的6顆鍵就能串聯起來,而重複的Modifier Keys與Reserved Keys位置,也能重新定義新按鍵送出,達成多顆鍵同時輸出。
此種方法穩定性較高,造成系統誤判的機率較低,許多鍵盤都採用這種方式。不過每多模擬1把鍵盤,至少就需要多1顆晶片,還要將晶片互接連接並將訊號分配控制,成本也隨之增加。通常採用此方法時會猜測玩家的按鍵需求,而非無上限地模擬鍵盤。
▲由作業系統的裝置管理員中,可以觀察到微軟SideWinder X4鍵盤模擬出2把鍵盤。

更改按鍵定義宣告

USB鍵盤變數宣告中,原本每Byte是代表著不同按鍵,但是可依需要重新宣告變數。每一個Byte分開成8 bits來計算,每1個bit各代表著1個按鍵,所以總共可以代表8個按鍵訊號。延伸至USB鍵盤原本8 Byte的訊號資料中,就可以代表著64顆鍵。搭配模擬多把鍵盤方式,只要模擬出第2把鍵盤就能有128個訊號,可滿足鍵盤全鍵輸出的需求。此種方法可以很容易在USB介面下達到全鍵輸出,打破介面的限制。

穩定性最重要

鍵盤相關的技術每年都會進步,要達到一樣的目標會有許多種技術,使用時通常也不會採用單一種方法,而是混合搭配。筆者無法針對每一種方法都加以詳細介紹,只能將比較常見的方法提出來討論研究。
雖然有些方法可以達到超過6鍵以上輸出,但是無法保證在每台電腦都能正常輸出。透過USB HUB等連接器時,鍵盤通常發生問題的機會較高。最後在市場鋪貨的鍵盤,多數都是將問題發生率降到最低,或者已有其他的配套方式可使用。無論如何,能夠讓玩家順利輸出鍵盤訊號才會是最重要的。

土砲自己的NKRO鍵盤

當然如果要靠自己力量,土砲出一把N-Key Rollover鍵盤不是難事。內部電路比較好去掌握,介面部分則較為複雜不易更動。國外有玩家自行購買二極體,然後再焊接於PCB電路板上,將鍵盤矩陣的電路加上跳線再加以改造,使得每個按鍵都能獨立送出訊號。這位玩家使用型號為1N4148的二極體,有興趣你也可以試試。

國外玩家做法

圖片來源網頁:http://geekhack.org/
▲圓圈代表按鍵,此圖為製作的重點。將按鍵獨立出來,並且焊上二極體。部分按鍵電路可依需要另外連接線路。
▲真正電路板上的按鍵訊號很複雜,判斷上不容易。首先要將按鍵獨立出來,所以部分電路板上需要先截斷電路。 
▲然後再焊上二極體,與連接跳線。
▲全部完成後就製作出一把N-Key Rollover鍵盤。



看清產品真相

從市面上的產品規格不難觀察到,部分電競廠商會加入Anti-Ghosting標示,表示鍵盤能夠避免Ghost Key產生。但了解原理後,就能知道不是N-Key Rollover結構鍵盤,就會產生Ghost Key。
避免Ghost Key的方式都是將鍵盤矩陣進行最佳化處理,將常使用的遊戲按鍵畫出區隔,避免出現在同一個矩型內,減少鍵位衝突的機率。不過並非每家廠商都會註明鍵盤針對哪些按鍵有最佳化處理,加上每種遊戲會使用到的組合按鍵都不同,所以玩家可能還是會遇到鍵位衝突。

詳列按鍵最負責

認為光是註明Anti-Ghosting是不夠,應該將不會造成鍵位衝突的所有按鍵列出才是最負責的做法,也能讓玩家能清楚了解廠商所謂「最佳化鍵盤矩陣」的成果。目前有提出按鍵列表的是i-rocks的KR-6220G,這把薄膜式鍵盤針對Q、W、E、A、S、D、空白鍵與方向鍵共11顆鍵特別進行鍵位處理,將這些鍵避免設計在同一個鍵盤矩形中,能同時輸出11顆按鍵訊號並不衝突。因為是最多11顆鍵不衝突,所以i-rocks行銷宣傳時就是強調最多11顆鍵不衝突,而不是11-Key Rollover。

1種N-Key各自解讀

並不是每家廠商或店家都了解鍵位衝突的定義,除了常會解釋錯誤外,更有可能看到2-Key Rollover與N-Key Rollover表達以外的規格出現。如常見的會是6鍵、8鍵或10鍵,許多廠商對於這些鍵數定義都是以「最多」而不是「任意」,這應該直接以敘述方式表示而不是使用Rollover用詞。筆者更有遇過標示6 N-Key Rollover、Full N-Key Rollover,這種使用法錯得更是明顯。

注意鍵盤使用介面

由N-Key Rollover的定義可以知道,N代表著「任意同時可以處理的鍵數」,這句話與「同時可以處理最多的鍵數」是完全不一樣的。在早期PS/2時代時,稱為N-Key Rollover的鍵盤代表能全鍵輸出。而使用USB介面,就算內在使用N-Key Rollover架構設計,廠商如果沒有特別處理,便會受到USB HID規範影響而無法全鍵輸出。這時筆者認為能以6-Key Rollover來表示,事實上鍵盤的任意6鍵確實不會衝突,通常鍵盤在標示擁有N-Key Rollover功能時,都會標示使用介面以減少誤會。

各家計算按鍵數定義不同

廠商計算最多幾個按鍵送出,可能與我們的認知會有差距。如Modifier Keys保留雖然為1 Byte,不過可以送出8個按鍵訊號,所以要計算最大值是可以考慮進來。USB鍵盤的按鍵最多鍵輸出數量,會依廠商對於Modifier Keys採計數量標準不同,造成最後數據有所差異。例如微軟SideWinder X4可以同時最多輸出26鍵,分別為17個主要鍵位、7個Modifier Keys、1個多媒體鍵、1個巨集鍵。

測試按鍵衝突方法很多

目前有許多方法可以測試鍵盤是否有鍵位衝突問題,國外有付費軟體KeyboardTest,提供30天免費試用,之後如要再使用則要付24美元(約新台幣768元);國內則有玩家Ivan Lin開發出的hKBTEST免費軟體可供測試。
除了軟體測試外,最簡單的方法是開網頁就能測試。微軟在開發SideWinder X4時,提供了網頁平台,可以讓玩家利用網頁測試按鍵訊號。測試鍵位衝突時,建議針對遊戲常用的鍵先測試,如QWEASD或加入方向鍵等,小範圍比較容易注意到每個按鍵是否有順利送出,也可以注意是否送出玩家沒有壓下的按鍵。最後才是大範圍測試,計算鍵盤最多可以輸出幾個鍵。
▲微軟提供線上測試鍵位衝突問題,直接在網頁上就能即時測試出來。(測試網頁:http://www.microsoft.com/appliedsciences/KeyboardGhostingDemo.mspx

N-Key Rollover功能運用

這是許多玩家心中的疑問:「1個人只有10隻手指頭,怎麼可能需要鍵盤訊號全部輸出呢?」把N-Key Rollover分成2種需求走向來討論。以「按鍵數量」來看,確實1個人使用時不大可能同時超過10鍵;但如果是2個人使用同一把鍵盤玩遊戲,全部訊號輸出就有可能派上用場。
近年來遊戲人口逐漸增加,漸漸會注意到鍵位衝突。即使最佳化處理過的鍵盤矩陣,還是有可能會有特定的按鍵會出問題。N-Key Rollover的鍵盤,代表著無論玩家按下任何組合鍵都不會造成鍵位衝突,可以適用在任何遊戲上,不需要擔心鍵盤是否會造成遊戲特定鍵無法發揮功能。筆者認為使用支援N-Key Rollover的鍵盤,就可以不用擔心會產生鍵位衝突問題。
▲i-rocks 6820E由於有註明特別優化的鍵位圖,在國外頗受好評。





沒有留言: