最終更新:2016-02-08 (月) 16:22:52 (1074d)  

コントロール転送 はてなブックマークを見る
Top / コントロール転送

周辺機器の制御などに必要な情報のやりとりに使用される転送方式

概要

  • ホストとデバイスの間に生成されるデフォルトパイプ?エンドポイント0:双方向)を使って行うデータ転送モード
  • すべてのUSBデバイスが持っていなければならない転送モードで、ホストによるUSBデバイスのセットアップや各種設定用のデータ転送に使われる。
  • 他の転送モードとは異なり、転送されるデータについても規定がある
  • コントロール転送だけが、半二重通信が可能な双方向通信パイプ(デフォルトパイプ?)を使う
  • コントロール転送エンドポイント0のみ (事実上エンドポイント0専用)

メモ

  • すべてのハイスピードデバイスはフルスピードでコントロールリクエストに応答できなければならない

通信内容

USB/リクエスト

  • USB/標準リクエスト
    • GET_STATUS - デバイスの状態の取得(給電状態、リモートウェイクアップ)
    • CLEAR_FEATURE - 特定の機能をなくしたり無効化
    • SET_FEATURE - 特定の機能を有効化
    • SET_ADDRESS - USBアドレスの設定
    • GET_DESCRIPTOR - 指定されたデスクリプタを(存在すれば)返す。
    • SET_DESCRIPTOR? - (オプション)既存のディスクリプタの更新
    • GET_CONFIGURATION - リクエストはデバイスの現在のコンフィグレーション値を返す。
    • SET_CONFIGURATION - デバイスのコンフィグレーションを設定
    • GET_INTERFACE? - returns the selected alternate setting for the specified interface.
    • SET_INTERFACE - allows the host to select an alternate setting for the specified interface.
    • SYNCH_FRAME? - used to set and then report an endpoint’s synchronization frame

1フレーム当り最大

  • 64バイト(フルスピードモード)
  • 8バイト(ロースピードモード)

コントロール転送/ステージ

  • 全体が3つのステージに分かれている

ライブラリ別

hid.dll

libusb

Linux

関連