11.4 鍵盤原理
早期的鍵盤實際上是一種5pin的鍵盤,稱作at鍵盤,是2023年ibm pc的標準鍵盤。在2023年ibm進行了改進,從而變成了現在的ps/2鍵盤。
當按下乙個鍵或釋放乙個鍵,鍵盤都會傳送鍵盤掃瞄碼到主機。比如按下a,鍵盤就會傳送0x1c到主機。如果持續按a,當經過乙個給定時間後,就會傳送0x1c到主機。當鍵盤被釋放,鍵盤會傳送0xf0加鍵碼到主機,告訴主機鍵盤哪個鍵被釋放。當再次按下a,鍵盤就會再次傳送0x1c到主機。鍵盤的每乙個鍵都有乙個特定的鍵碼,無論shift、num lock、caps lock、scroll lock鍵是否被按下,鍵盤總是傳送同樣的鍵碼,主機的鍵盤bios負責區分shift、num lock、caps lock、scroll lock鍵的狀態。鍵盤有101個鍵,而ps/2介面只有8位元。因此,並不是所有的鍵都只有乙個位元組的鍵碼。擴充套件鍵盤中有一些鍵的鍵碼是雙位元組的,以e0開頭,比如向左鍵為e06b。有些鍵的掃瞄碼非常誇張,比如pause brk鍵的鍵碼為e1177e1f014f077!主鍵盤鍵碼如圖11-5所示,擴充套件鍵盤鍵碼如圖11-6所示。
0xee是環迴(echo)命令,當接收到該命令,鍵盤返回0xee。
0xf0設定掃瞄碼集。當接收到0xf0,鍵盤返回0xfa應答。接下來主機向鍵盤傳送乙個位元組的資料,如果資料為01~03,決定使用的掃瞄碼集;如果資料為0x00,則主機返回當前使用的鍵盤掃瞄碼集的編號。
0xf3設定打字重複率(typematic repeat rate)。當接收到0xf3,鍵盤返回0xfa應答。接下來主機向鍵盤傳送乙個位元組的資料,表示具體的打字重複率值。
0xf4設定鍵盤使能,清除鍵盤輸出快取,使能鍵盤掃瞄,鍵盤接收到該命令後返回0xfa。
0xf5設定鍵盤關閉,清除鍵盤輸出快取,停止鍵盤掃瞄,鍵盤接收到該命令後返回0xfa。
0xfe請求重傳。鍵盤接收到該命令後,鍵盤重新傳送剛剛傳送的位元組;主機接收到該命令後,重新傳送剛剛傳送的位元組給鍵盤。
0xff鍵盤復位。
0xfa鍵盤傳送到主機的應答。
0xaa鍵盤傳送給主機的加電自檢完成指示(power on self test passed)。
0x00/0xff鍵盤傳送給主機,表示錯誤或快取溢位。
FPGA 實現PS 2鍵盤控制LED
module ps2 系統訊號 input clk,input rst n,ps2訊號 input data in,input clk in,測試訊號 output reg done flag,output reg 3 0 led reg r1,r2 reg 7 0 ps2 data reg 4 0...
ps2協議命令
define ps2 reset 0xff 復位命令 回應0xfa define resend 0xfe 再次傳送 define set default 0xf6 使用預設設定 回應0xfa define dis data report 0xf5 禁用資料報告 回應0xfa define en da...
執行ps2總結
問題1 缺少對應的2個cpp檔案和標頭檔案。直接貼上進去就可以。另外在add library中加入對應的.cpp檔案。問題2 at opt ros kinetic share catkin cmake catkinconfig.cmake 83 find package could not find...