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

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功能。至於薄膜式鍵盤,要將二極體加在導電薄膜較不容易,這個方法不太可行。 

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

▲Cherry G80-3494LYCUS-2鍵盤是在軸上加上二極體,而不是在PCB上直接焊上二極體,與目前常見的機械式鍵盤處理方式不同。

加上二極體處理示範圖

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

▲在每個訊號連接後,都加上二極體防止電流倒灌。

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

▲此範例一樣使用Q鍵、W鍵、A鍵來示範,看是否一樣會產生Ghost Key。

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

▲從C1開始掃描,R1有被導通電路,R2沒有,所以推論出C1R1被壓下,得到Q鍵與A鍵被壓下。

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

▲再從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開發成本高,也不能隨時修改,一修改就是從頭設計,所以鍵盤後來也沒有採用此技術。

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

▲此為Compaq在1996年的美國專利,專利號碼:US005523755A。

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

▲FIG. 1為當時鍵盤的設計,下方的Keyboard都通過MicroController之後,才傳送至電腦。FIG. 2為如果要讓2-Key Rollover的鍵盤提升至N-Key Rollover,作法就是要在每個Keyboard Matrix交叉點的訊號都加上二極體。

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

▲FIG. 3為Compaq的專利,將原本的MicroController替換成ASIC。FIG. 4就是原本再交叉點上的按鍵全變成獨立信號。

減少二極體使用量

由於開發ASIC需要花更多費用,所以要達到N-Key還是得回到增加二極體的方法。不過使用二極體的數量是随著鍵盤按鍵數量而改變,所以當鍵盤有101鍵時,那就需要101個二極體,對於成本而言相當高。

2009年韓國廠商Skydigital提出了一個解決方法,將鍵盤矩陣特別設計,增加I/O針腳將訊號拉出,統一集中到薄膜電路外的二極體來處理訊號,這可以省下二極體數量又能達到N-Key Rollover的效果。目前Skydigital在韓國已經推出一款薄膜式N-Key Rollover鍵盤 nKEYBOARD ,就是採用自家的技術,不過成本還是不夠低。

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

▲Skydigital在官方網站上有特別提出他們的獨家專利說明,Patent Cooperation Treaty(PCT)號碼:WO 2009/119947 A1。

利用電阻直達N-Key Rollover

微軟在2010年對於N-Key Rollover提出新解決方法,不使用二極體而採用電阻來判斷。微軟增加電阻的方式,是直接把薄膜電路的訊號線加長,線路距離加長意即增加電阻,而不是直接在上面加上電阻電路。

由於每個按鍵的電阻都不同,所以當按鍵送出訊號時,可以由鍵盤控制器來判斷是哪些按鍵的訊號,透過這種方法可以達到N-Key Rollover功能。當然電阻也不是只能放在薄膜電路上,也能利用在PCB板上,所以此方法也能應用在機械式鍵盤上。

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

▲微軟提出的專利後,直接運用在目前的遊戲鍵盤SideWinder X4上。(專利號碼:US20100066567A1)

(後面還有更多鍵盤功能的介紹!)

老貓 iqmore
作者

老貓測3C 站長 http://iqmore.tw

使用 Facebook 留言
姚小新
1.  姚小新 (發表於 2012年8月14日 12:23)
超專業文!推推!<( ̄︶ ̄)>
看完能大致了解 N-Key Rollover 等一些專有名詞啦!(≧▽≦)
0329501d3b414b94438f79de7e81a0ff?size=48&default=wavatar
2.  JL (發表於 2012年8月14日 12:33)
請教!
D3祕術師無限冰環, 若用N-KEY ROLLOVER鍵盤, 是否可以1,2,3同時按住不動即可?
老貓 iqmore
3.  老貓 iqmore (發表於 2012年8月14日 12:35)
此為75期我在電腦王雜誌所刊登的稿件,目前應該為T客邦人員上稿,如果是由原電子稿件上稿的話,麻煩再核對一下是否相同,怕有地方有錯誤沒改到。

目前發現有問題的地方為第4頁引用「國外玩家做法」的部分,在電腦王雜誌稿上有引用原始網址,不過在此卻將網址移除,並且將國外玩家的照片加上T客邦的浮水印。這2個部分請先幫忙處理吧,感謝。
老貓 iqmore
4.  老貓 iqmore (發表於 2012年8月14日 12:36)
※ 引述《JL》的留言:
> 請教!
> D3祕術師無限冰環, 若用N-KEY ROLLOVER鍵盤, 是否可以1,2,3同時按住不動即可?

鍵盤可以同時輸出3個訊號無誤,不過也要看遊戲支援度如何,至少在鍵盤層面是可以的。
Peggy
6.  Peggy (發表於 2012年8月14日 14:06)
※ 引述《老貓 iqmore》的留言:
> 此為75期我在電腦王雜誌所刊登的稿件,目前應該為T客邦人員上稿,如果是由原電子稿件上稿的話,麻煩再核對一下是否相同,怕有地方有錯誤沒改到。
>
> 目前發現有問題的地方為第4頁引用「國外玩家做法」的部分,在電腦王雜誌稿上有引用原始網址,不過在此卻將網址移除,並且將國外玩家的照片加上T客邦的浮水印。這2個部分請先幫忙處理吧,感謝。
>

已修正完畢,請老貓再看看還有沒有問題
F87c01b19112682e80c85d5829b8aa4c?size=48&default=wavatar
7.  Steve (發表於 2012年8月14日 14:20)
我不是很懂加了二集體有什麼差別?

電路通路狀況和沒加二極體時都一樣阿

哪位高手能解釋一下..?
Shinwill
8.  Shinwill (發表於 2012年8月14日 14:46)
※ 引述《Steve》的留言:
> 我不是很懂加了二集體有什麼差別?
> 電路通路狀況和沒加二極體時都一樣阿
> 哪位高手能解釋一下..?

第二頁有說
加二極體可以隔離電流倒灌,電流不會往回流
請注意第二頁紅色電流導通的部分,碰到二極體就被擋住了
老貓 iqmore
9.  老貓 iqmore (發表於 2012年8月27日 14:18)
※ 引述《Peggy》的留言:
> 已修正完畢,請老貓再看看還有沒有問題


還是沒有修正呀...
國外玩家做法的網頁還是沒放........... ╮(╯_╰)╭
Peggy
10.  Peggy (發表於 2012年8月29日 11:07)
※ 引述《老貓 iqmore》的留言:
> 還是沒有修正呀...
> 國外玩家做法的網頁還是沒放........... ╮(╯_╰)╭
>

原本標示的國外玩家做法的網頁疑似失效,已經看不到圖片了
http://geekhack.org/showwiki.php?title=Island:6731

因此改放該網站首頁的網址
請老貓確認一下這個網頁內容有沒有問題,若沒有問題的話我們再補上,謝謝
發表回應
謹慎發言,尊重彼此。按此展開留言規則