USB 技術的特徴

OUT転送、IN転送

USBはホスト(パソコン等)とデバイス間(パソコン周辺機器等)の通信です。転送方向には名前が付いています。

ホスト → デバイス OUT転送
デバイス → ホスト IN転送

USB通信は、全てホストからの要求で開始されます。よって、OUT転送は単純です。

OUT転送

IN転送は、ホストからの要求で転送が開始されます。

IN転送

エンドポイント

USBはシリアル通信ですが、エンドポイントと呼ばれる仮想的通信路を持ちます。エンドポイントの数は、全てのUSBバージョンで32個(IN 16個、OUT 16個)です。USB2.0では、各エンドポイントはIN転送またはOUT転送、どちらかしか設定できませんでした。USB3.0では、1つのエンドポイントにIN転送/OUT転送、両方の機能を指定できます。

転送方式

USBは4つの転送方式を備えます。USB3.0/2.0の転送方式と、各最大パケットデータ長は以下です。なおBurst機能はUSB3.0のみが持ちます。

転送方式 USB3.0 USB2.0
Control 512Bytes
Burst Size 1
64Bytes
Bulk 1024Bytes
Burst Size 1
512Bytes
Interrupt 1024Bytes
Burst Size 3-16
1024Bytes
Isochronous 1024Bytes
Burst Size 1-16
1024Bytes

Contol転送はエンドポイント0のみが実行できます。エンドポイント1-16では、Bulk転送/Interrupt転送/Isochronous転送を指定できます。

転送速度を向上させるためには、最大パケットデータ長を越えない可能な限り大きなデータ長で転送すべきです。これは、USBに限らずシリアル通信の定石です。