■ USB
USB (Universal Serial Bus)とは
PCと周辺機器を接続するためのプロトコルです。USBは通信速度1.5Mbps
(Low Speed)/12Mbps (Full Speed)/480Mbps (High Speed)の高速通信が可能な低コストのバスです。
USBバスでは、パケット(トークン、データ、ハンドシェイク、スペシャル)が最小単位となっており、いくつかパケットによってトランザクション(バルク・インタラプトトランザクション、アイソクロナストランザクション、コントロールトランザクション、スプリットトランザクション)が構成されます。
ホストはフレーム(1ms)内にバルク・インタラプト/アイソクロナス/コントロールトランザクションをスケジューリングします。各フレームの先頭ではSOF(Start
Of Frame)を必ず発行します。SOFには000h-7FFFhまで順番にインクリメントされるフレーム番号が含まれています。USB2.0では更に細かくスケジューリングするためマイクロフレームが導入されました。
SYNC |
:同期パターン |
PID(Packet Identifier Field) |
:パケットの種類 |
ADDR(Address Field) |
:デバイスのアドレス(127個まで) |
ENDP(Endpoint Field)
|
:USBデバイスが持つ仮想的な通信接続口
Full Speedデバイスでは16、Low Speedデバイスでは2個まで持つことができます。
エンドポイント0(コントロール転送用)は双方向、その他は単方向となります。 |
USBの転送モードには、コントロール転送/インタラプト転送/アイソクロナス転送/バルク転送の4種類があります。コントロール転送はUSBデバイスの種類を調べたり動作・属性を設定・変更するために用いられます。アイソクロナス転送は画像データなどある程度大量なデータを一定時間に転送する場合に用いられます。バルク転送は大量のデータを転送する場合に用いられますが、アイソクロナス転送、インタラプト転送より優先順位は低くなっています。