最終更新:2015-08-26 (水) 20:29:44 (3165d)  

HID/レポート
Top / HID / レポート

HID インターフェースでは、Input、Output、Featureの3タイプのレポートをデバイスとホストの間で転送します。これらのレポートのフォーマットは、レポートディスクリプタでインターフェースごとに定義されます。

メモ

メモ

  • Using USB terminology, a device may send or receive a transaction every USB frame (1 millisecond). A transaction may be made up of multiple packets (token, data, handshake) but is limited in size to 8 bytes for low-speed devices and 64 bytes for high-speed devices. A transfer is one or more transactions creating a set of data that is meaningful to the device—for example, Input, Output, and Feature reports.
  • 最初のバイトはレポートID

エンディアン

  • Multibyte numeric values in reports are represented in little-endian format, with the least significant byte at the lowest address.

USB/パイプ

  • コントロールパイプ必須
    インタラプトIN必須
    インタラプトOUTOptional

レポートディスクリプタ

  • レポートの構造はレポートディスクリプタで定義する。マニアック。

メインアイテム(抜粋)

グローバルアイテム(必須項目抜粋)

  • item tagbTagbTypebSize意味bSize=0bSize=1bSize=2bSize=3
    Usage Page000001nn現在の Usage Page を指定している値。アイテム使用法のインデックスを定義-0x050x060x07
    Logical Minimum000101nn変数または配列のアイテムが報告する最小値。たとえば、0~128 まで X位置価値を報告するマウスは、0 の論理的な最小値をもつ。0x140x150x160x17
    Logical Maximum001001nn変数または配列のアイテムが報告する最大値。たとえば、0~128 まで X位置価値を報告するマウスは、128 の論理的な最大値をもつ。0x240x250x260x27
    Report Size011101nnレポートフィールドのサイズをビットで指定する符号なし値0x740x750x760x77
    Report Count100101nnアイテムのデータフィールド数を指定する符号なし整数
    何個のフィールドがこの特定のアイテムのためにレポートに含められるかを決定する(したがってビットが何個であるかがレポートに付け加えられる)
    0x940x950x960x97

ローカルアイテム(必須項目抜粋)

  • item tagbTagbTypebSize意味bSize=0bSize=1bSize=2bSize=3
    Usage000010nnアイテムまたはコレクションの用法(Usage)インデックスを定義0x080x090x0A0x0B

  • Report Size (3) 
    Report Count (2) 
    Input 
    Report Size (8) 
    Input 
    Output
  • Input
    ビット0-23-56-1314-21
    サイズ3388
  • Output
    ビット0-78-16
    サイズ88
  • のレポートを定義する。

リトルエンディアン

  • Multibyte numeric values in reports are represented in little-endian format, with the least significant byte at the lowest address.

ダンプ

Windows Hardware Dev Center

Handling HID Reports

Windowsでのレポートの送受信

関連

参考