ADVERTISEMENT
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一一條列出來。
(後面還有更多鍵盤功能的介紹!)
看完能大致了解 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
因此改放該網站首頁的網址
請老貓確認一下這個網頁內容有沒有問題,若沒有問題的話我們再補上,謝謝