微軟智慧型PS2滑鼠識別

2021-06-02 05:16:10 字數 1917 閱讀 7082

標準的ps/2滑鼠支援下面的輸入x左右位移,y上下位移,左鍵、中鍵和右鍵。滑鼠以乙個固定的頻率讀取這些輸入並更新不同的計數器然後標記出反映的移動和按鍵狀態,而microsoft的intellimouse它既支援標準輸入也支援滾輪和兩個附加的按鍵。

標準的ps/2滑鼠傳送位移和按鍵資訊給主機採用如下的3位元組資料報格式:

滑鼠有4個模式:reset、stream、remote、wrap,各個模式具體的介紹詳見《ps2技術參考》一文,通常我們使用stream模式,即一旦滑鼠檢測到位移或發現乙個或多個滑鼠鍵的狀態改變了,就傳送位移資料報資料報告的最大速率被認為是取樣速率。引數的範圍從10取樣點/秒到200取樣點/秒。這個引數的預設值是100取樣點/秒,主機可以用設定取樣速率0xf3命令來改變它stream模式是操作的預設模式。

微軟的intellimouse工作起來象標準的ps/2滑鼠(也就是使用3位元組位移資料報,和標準ps/2滑鼠一樣回應所有命令,報告裝置id0x00)。要進入滾輪模式,主機應該傳送如下的命令序列: 0xf3 0xc8 0xf3 0x64 0xf3 0x50

set sample rate 200    set sample rate 100     set sample rate 80

主機然後應該發布「獲得裝置id」命令(0xf2)並等待回應,再將ps2滑鼠使能(0xf4)。如果安裝的是是標準ps/2滑鼠(非intellimouse),它回應裝置id0x00。在這種情況下,主機回辨認出實際這個裝置沒有滾輪並繼續把它當作是標準ps/2滑鼠。但是,如果安裝的是微軟的intellimouse,它返回的id是0x03。這就告訴主機掛接的定點裝置有滾輪並且主機認為滑鼠使用4位元組的位移資料報:

z位移是2的補碼表示滾輪的自上次資料報告以來的位移,有效值的範圍在-8到+7這意味著數值實際只有低四位;高四位僅用作符號擴充套件位。

#define ps2_reset 

0xff //復位命令 回應0xfa

#define resend 

0xfe //再次傳送

#define set_default 

0xf6 //使用預設設定 回應0xfa

#define dis_data_report 

0xf5 //禁用資料報告 回應0xfa

#define en_data_report 

0xf4 //使能資料報告 回應0xfa

#define set_sample_rate 

0xf3 //設定取樣速率 回應0xfa

#define get_device_id 

0xf2 //得到裝置id 

回應0xfa+id

#define set_remote_mode 

0xf0 //設定到remote模式 回應oxfa

#define set_wrap_mode 

0xee //設定到wrap模式 回應0xfa

#define rst_wrap_mode 

0xec //回到wrap之前的模式 回應0xfa

#define read_data 

0xeb //讀取資料 回應0xfa+位移資料報

#define set_stream_mode 

0xea //設定到stream模式 回應0xfa

#define status_request 

0xe9 //請求得到狀態 回應0xfa+3個位元組

#define set_resolution 

0xe8 //設定解析度 回應oxfa+讀取1個位元組+再回應0xfa

#define set_scaling21 

0xe7 //設定縮放比率為2:1 回應0xfa

#define set_scaling11 

0xe6 //設定縮放比率為1:1 回應0xfa

PS2滑鼠實驗

返校有幾天了,底盤驅動還在研究。第一次接觸這麼多陌生的 感覺還是有點吃不消的,慢慢弄吧,順便把基礎再補補。ps 2 簡介 ps 2 是電腦上常見的介面之一,用於滑鼠 鍵盤等裝置。一般情況下,ps 2 介面的滑鼠為 綠色,鍵盤為紫色。ps 2 介面是輸入裝置介面,而不是傳輸介面。所以 ps2 口根本沒...

PS 2鍵盤原理

11.4 鍵盤原理 早期的鍵盤實際上是一種5pin的鍵盤,稱作at鍵盤,是1984年ibm pc的標準鍵盤。在1987年ibm進行了改進,從而變成了現在的ps 2鍵盤。當按下乙個鍵或釋放乙個鍵,鍵盤都會傳送鍵盤掃瞄碼到主機。比如按下a,鍵盤就會傳送0x1c到主機。如果持續按a,當經過乙個給定時間後,...

ps2協議命令

define ps2 reset 0xff 復位命令 回應0xfa define resend 0xfe 再次傳送 define set default 0xf6 使用預設設定 回應0xfa define dis data report 0xf5 禁用資料報告 回應0xfa define en da...