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介面下都是相同的,但之後查表送出的訊號就有所不同了。 

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

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

▲無論是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介面,就又是下面這種情況。

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

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

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

▲IBM技術參考手冊有將每一個按鍵的Make Code與Break Code一一條列出來。

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

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

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

發表回應

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