最終更新:2015-09-16 (水) 14:58:23 (3135d)  

USB/エンドポイント
Top / USB / エンドポイント

USBデバイス内部のデータのソースまたはシンクであり、アドレス指定の可能なFIFO

デバイスエンドポイント

  • 受信されたデータや送信するデータを格納するデバイスバッファのこと。
  • A uniquely addressable portion of a USB device that is the source or sink of information in a communication flow between the host and device. (USB 2.0 SpecのTerms)
  • 通常複数バイトを格納できるバッファであり、デバイスコントローラチップ内のメモリブロック、もしくはレジスタで構成される。
  • ホストがエンドポイントを持っているわけではない。

概要

  • エンドポイントはホスト・デバイスが通信相手を特定するための情報の 1 つで,0-15 の番号と方向(IN/OUT)で指定されます。
  • エンドポイントは周辺機器で使用するデータ通信経路ごとに用意しなければならず,複数の通信経路で共用できません
    • たとえば,SDカードへの書き込み/読み出しとプリント出力の機能を持った機器の場合,SD カードへの書き込み用エンドポイント,読み出し用エンドポイント,プリント出力用エンドポイントを個別に持つ必要があります。
  • データ通信を行うとき,ホスト・デバイスは機器を特定する USB デバイス・アドレスとともにエンドポイント(番号と方向)を使用して,機器内部の通信先を特定します。
  • エンドポイントのための物理的な回路として周辺機器内にバッファ・メモリを装備し,USB と通信先(メモリなど)の速度差を吸収する FIFO の役割も果たします。

エンドポイントディスクリプタ

エンドポイント数

方向

デバイス → ホストIN転送
ホスト → デバイスOUT転送
双方向通常はエンドポイント0のみ

エンドポイント0

  • デバイスを接続した直後の状態は、コンフィグレーション前の状態となっていて、エンドポイント0デフォルトパイプ?であるコントロール転送(双方向)だけが通信できる状態となっている
  • どのような機器でも必ず使用
  • エンドポイント0は各インターフェイスで共有される

それ以外のエンドポイント

  • デフォルトパイプ以外は単方向パイプ。(EP1にIN/OUTがそれぞれある)

メモ

  • エンドポイントは4ビットで割り当てられ,最大数はIN=16,OUT=16の合計32
  • USB 3.0では、1つのエンドポイントにIN転送/OUT転送、両方の機能を指定できる

コントロール転送

インタラプト転送

関連

参考