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鍵(鬼鍵)。

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

使用 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

因此改放該網站首頁的網址
請老貓確認一下這個網頁內容有沒有問題,若沒有問題的話我們再補上,謝謝

發表回應

謹慎發言,尊重彼此。按此展開留言規則