USB 技術的特徴
OUT転送、IN転送
USBはホスト(パソコン等)とデバイス間(パソコン周辺機器等)の通信です。転送方向には名前が付いています。
ホスト → デバイス | OUT転送 |
デバイス → ホスト | IN転送 |
USB通信は、全てホストからの要求で開始されます。よって、OUT転送は単純です。
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に限らずシリアル通信の定石です。