ADVERTISEMENT
鍵盤矩陣分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)
(後面還有更多鍵盤功能的介紹!)
看完能大致了解 N-Key Rollover 等一些專有名詞啦!(≧▽≦)
D3祕術師無限冰環, 若用N-KEY ROLLOVER鍵盤, 是否可以1,2,3同時按住不動即可?
目前發現有問題的地方為第4頁引用「國外玩家做法」的部分,在電腦王雜誌稿上有引用原始網址,不過在此卻將網址移除,並且將國外玩家的照片加上T客邦的浮水印。這2個部分請先幫忙處理吧,感謝。
> 請教!
> D3祕術師無限冰環, 若用N-KEY ROLLOVER鍵盤, 是否可以1,2,3同時按住不動即可?
鍵盤可以同時輸出3個訊號無誤,不過也要看遊戲支援度如何,至少在鍵盤層面是可以的。
應該是
"行(Column)" 才對
> 此為75期我在電腦王雜誌所刊登的稿件,目前應該為T客邦人員上稿,如果是由原電子稿件上稿的話,麻煩再核對一下是否相同,怕有地方有錯誤沒改到。
>
> 目前發現有問題的地方為第4頁引用「國外玩家做法」的部分,在電腦王雜誌稿上有引用原始網址,不過在此卻將網址移除,並且將國外玩家的照片加上T客邦的浮水印。這2個部分請先幫忙處理吧,感謝。
>
已修正完畢,請老貓再看看還有沒有問題
電路通路狀況和沒加二極體時都一樣阿
哪位高手能解釋一下..?
> 我不是很懂加了二集體有什麼差別?
> 電路通路狀況和沒加二極體時都一樣阿
> 哪位高手能解釋一下..?
第二頁有說
加二極體可以隔離電流倒灌,電流不會往回流
請注意第二頁紅色電流導通的部分,碰到二極體就被擋住了
> 已修正完畢,請老貓再看看還有沒有問題
還是沒有修正呀...
國外玩家做法的網頁還是沒放........... ╮(╯_╰)╭
> 還是沒有修正呀...
> 國外玩家做法的網頁還是沒放........... ╮(╯_╰)╭
>
原本標示的國外玩家做法的網頁疑似失效,已經看不到圖片了
http://geekhack.org/showwiki.php?title=Island:6731
因此改放該網站首頁的網址
請老貓確認一下這個網頁內容有沒有問題,若沒有問題的話我們再補上,謝謝