USBの基礎知識 ――パケットのフォーマットからプロトコルの詳細まで
セットアップ・ステージ
まずトークン・パケットが送られてきます.これによりUSBターゲット・アドレスとエンドポイント番号が示されます.USBターゲット機器をホストに接続した直後の段階では,アドレスが割り当てられていないため,USBターゲット・アドレスは0,コントロール転送用のエンドポイント番号は0と規定されています.
その次はデータ・パケットで,実際のデータが8バイト続きます.最後はハンドシェイク・パケットです.
データ・ステージ
セットアップ・ステージのデータ・パケットで転送したデバイス・リクエストのうち,さらにデータ転送の必要がある場合はデータ転送を伴うコントロール転送となり,続いてデータ・ステージになります.データ転送には,ホストからターゲットのOUT方向,ターゲットからホストへのIN方向の二つがあります.
データ・ステージも,先頭はトークン・パケットで,次にデータ・パケット,最後はハンドシェイク・パケットになります.
ステータス・ステージ
データ転送の実行にかかわらず,コントロール転送の最後には必ずステータス・ステージになります.このステータス・ステージは少し特殊で,データ・ステージでOUT転送だった場合はIN転送が,直前がデータ・ステージでIN転送だった場合はOUT転送が発行され,しかも実際にはデータ部分の長さは0になります.そして一番最後はハンドシェイク・パケットになります.