歩き遍路 平成19年春(J1) 記録の準備
マウス付きUSBキーボードの
ディスクリプタ構成を調べる
USBは、プラグ&プレイが可能なインタフェースでUSBバスにいろいろなデバイスがいつでも接続・取り外しができる使いやすいインタフェースです。USBバスにデバイスを接続したときデバイスをエニュメレーションと呼ぶ初期化が行われます。このエニュメレーションは、デバイスを設定することデバイスの機能内容をホストに取り込む作業を行います。デバイスの機能内容は、ディスクリプタと呼ぶデータの構造体に纏めてホストに送ります。
ここでは、USB規格のDevice Class Definition for Human Interface Devices (HID)のAppendix
E: Example USB Descriptors for HID Class Devices を例にしてマウス付きUSBキーボードの機能内容をUSBホスト報せるディスクリプタにつぃて調べます。マウス付きUSBキーボードのディスクリプタ構成を調べす。
●マウス付きUSBキーボードのディスクリプタ構成
Appendix E: Example USB Descriptors for HID Class Devices のマウス付きUSBキーボードのディスクリプタ構成を次に示します。

ディスクリプタは、デバイス・ディスクリプタを
先頭にコンフィグレーション・ディスクリプタが続きます。 コンフィグレーション・ディスクリプタの下に
キーボードとマウス用の2組の
インタフェース・ディスクリプタ、
HIDクラス・ディスクリプタ、
HIDレポート・ディスクリプタ、
エンドポイント・ディスクリプタが続きます。
●Short Itemsのフォーマット
いきなり、レポートディスクリプタで使用のShort Itemsのフォーマットを調べます。

レポートディスクリプタには、Short ItemsとLong Itemsが有るのですが今はほとんどShort Itemsが使われているようです。
Short Itemsは、USBキーボードやマウスの機能内容をUSBホスト報せる構造体のフォーマットで左次の様な構成です
バイト0は、Tag、Type、Sizeを指定します。
Typeは2ビットでMain、Global、Localの3つの Itemsを指定します。
・Main Items:レポートディスクリプタのデータの特性や形を定義することと、グループ化を定義します。
・Global Items:レポートの特定やレポートデータの使い方について定義します。
・Local Items:ノブ、スイッチ等のコントロールの特性を定義します。
Sizeは2ビットでデータ長を指定します。
Tagは4ビットでTypeのサブアイテムを指定します。
バイト1〜4はそのデータでバイト0の内容で決まります。詳細はDevice Class Definition for Human Interface
Devices (HID)を参照ください。
●E.6 Report Descriptor (Keyboard)
キーボードの機能内容をUSBホスト報せる構造体とそのデータフォーマットです。




●10 Report Descriptor (Mouse)
マウスの機能内容をUSBホスト報せる構造体とそのデータフォーマットです。
●標準ディスクリプタ構成
キーボードとマウスのディスクリプタ構成です。
ホームへ戻る