2007年10月2日 星期二

自製 USB HID裝置-1

之前為了要用wii控制器玩全民打棒球和網球拍拍 ,生平第一次到江湖中闖盪就碰上了所謂的反外掛程式.

在經過一連串地搜集秘笈和修練之後 ,終於達成願望每天在電腦前面揮棒做宅男專屬的運動. 還意外地增強了自己的內力. 也算是一種不賴的機緣 .


那就從"人性化界面裝置"開始練起吧!


HID (Human Interface Device) 正體中文的MS Windows譯作"人性化界面裝置" ,是從10幾年前的Win98開始就內建支援了.既然名字都有"人性化"了, 那我的說明要配合來人性化囉.

當一個HID裝置插入電腦後 ,第一件事就是送一張表格給作業系統, 告訴作業系統它是什麼裝置和有多少參數要傳給電腦(如 3軸,6按鍵的搖桿). 註冊好之後 ,裝置和電腦就可以開始溝通了.由於HID規範就僅僅只有前述的那一張表格 ,PC就完全被矇在鼓裡. 無法得知USB插槽的後面是50元隻的雜牌鼠,還是連點高手外掛鼠或是高檔的魔盤或手裡鍵.這也就是我最近幾天搜尋到的硬體外掛的廣告都說不會被擋的原因了.

下面的連結可以從USB.ORG網站下載到前面講的表格撰寫工具.

HID Descriptor Tool

抓下來後可以看到有各種裝置的描述表如下


USAGE_PAGE (Generic Desktop) 05 01
USAGE (Mouse) 09 02
COLLECTION (Application) A1 01
USAGE (Pointer) 09 01
COLLECTION (Physical) A1 00
USAGE_PAGE (Button) 05 09
USAGE_MINIMUM (Button 1) 19 01
USAGE_MAXIMUM (Button 3) 29 03
LOGICAL_MINIMUM (0) 15 00
LOGICAL_MAXIMUM (1) 25 01
REPORT_COUNT (3) 95 03
REPORT_SIZE (1) 75 01
INPUT (Data,Var,Abs) 81 02
REPORT_COUNT (1) 95 01
REPORT_SIZE (5) 75 05
INPUT (Cnst,Var,Abs) 81 03
USAGE_PAGE (Generic Desktop) 05 01
USAGE (X) 09 30
USAGE (Y) 09 31
LOGICAL_MINIMUM (-127) 15 81
LOGICAL_MAXIMUM (127) 25 7F
REPORT_SIZE (8) 75 08
REPORT_COUNT (2) 95 02
INPUT (Data,Var,Rel) 81 06
END_COLLECTION C0
END_COLLECTION C0
//
//
//




今天就寫到這裡 ,Google可以查到的我就不多寫了 .若想要再自行深入研究可點下面的連結看更多資料

Google搜尋相關資料

相關文章
自製 USB HID搖桿

2 則留言:

Ching Johnny 提到...
作者已經移除這則留言。
Ching Johnny 提到...

請問我做了一個飛行模擬用的飛行腳踏板但是缺一個介面裝置,該怎麼製作呢?希望能有兩軸四按鍵的功能,還是去哪買比較快呢?感謝指教

張貼留言