USBは単一形状のコネクタに統合しているので、すべてのUSB機器のデータ転送は同一のプロトコルバスをタイムシェアリングすることで行います。すべてのUSB周辺機器で基本プロトコルは同じになりますから、データの中身に対して異なった意味をもたせるためには、アプリケーションに近い上位のソフトウェアスタックで処理することと時間に対する概念を追加する必要があります。

USBでは転送の種類をInterrupt、Bulk、Isochronous、Controlの4つに分類することで、この2つの仕組みを導入しており、各周辺装置は自分に合った転送方式を選択することで、最適な通信を実現できます。データレートとしては、USB1.xでは12Mbpsのfull-Speedと1.5Mbpsのlow-Speedの2種類をサポートし、USB2.0ではさらに、より高速な480Mbpsのhigh-Speedもサポートするようになりました。

 

  Control転送 Bulk転送 Interrupt転送 Isochronous転送
特徴 周辺機器の制御などに必要な情報のやりとりに使用される転送方式 非周期的に大量データを扱う転送方式 周期的でバンド幅が低いデータ転送方式 リアルタイム性が要求される転送方式
high-Speed 480Mbps 64 byte/packet 512 byte/packet 1-1024 byte/packet 1-1024 byte/packet
full-Speed 12Mbps 8,16,32,64 byte/packet 8,16,32,64 byte/packet 1-64 byte/packet 1-1023 byte/packet
low-Speed 1.5Mbps 8 byte/packet 1-8 byte/packet
転送の優先順位 3 3 2 1
主な用途 すべてのデバイス プリンタ、スキャナ、DSC、FDD、CD-ROMなど(データ転送に高信頼性が必要なもの) マウス、キーボード、ジョイスティックなど スピーカ、マイク、電話など

 

USB1.xでは一つのエンドポイントに対するInterruptまたはIsochronous転送は1 フレーム(後述)に1回以上は行えませんでしたが、USB2.0では一つのエンドポイントに対するInterruptまたはIsochronous転送は1 マイクロフレーム(後述)に3回まのでの転送が許されます。このため、USB1.xではIsochronous転送でも1つのエンドポイントに対して最大1023K byte/sの転送レートでしたがUSB2.0ではInterruptまたはIsochronous転送で1つのエンドポイントに対して最大8 X 3 X 1024K byte/sの転送レートを実現できます。

 

4種類のデータ転送方式について

Interrupt転送

マウス、キーボード、ジョイスティックなどのようなヒューマン・インタフェースに期待される能力は、遅いなどの違和感を感じない一定時間内に、入力されたデータを処理することです。従来は入力の検出によりシステムに割りこみ要求をかけて処理していましたが、USBではすべてのデータ転送の要求はホストから発行され、マウスやキーボードからの割りこみによって処理を開始することはできません。例えば、キーボードによる文字の入力から画面表示までに10msかかったとしても、人間の感覚では遅いと感じることはありませんから、USBでは不都合にならない一定周期ごとにホストがマウスやキーボードからデータを引き取るによって、割り込みによる処理の代替えをしています。この一定周期ごとにホストがデータ送信または受信を行う転送方式をInterrupt転送と定義しています。

1.5Mbpsのlow-SpeedデバイスはInterrupt転送を使う装置でのみ許された特権で、マウス、キーボード、ジョイスティックなどを安価で作るための仕様です。マウス、キーボードを実現するためにはさらにControl転送も利用します。

Bulk転送

プリンタ、スキャナ、デジタル・スチル・カメラ、メモリカード・リーダー、FDD、CD-ROM、CD-R、ZIPなどのように画像入力、印字、ストレージ系の装置に期待されることは、大規模なデータを正確に(データの欠落のないように)転送することです。例えば、プリンタでデータの欠落がおこって印字異常になっては困ります。高いデータ転送の信頼性を実現できますが、バス全体の利用効率を上げるためにデータ転送に対しての時間的制約を設けることのできないデータ送信/受信を行う転送方式をBulk転送と定義しています。
画像入力、印字、ストレージ系の装置の転送レートはバスの利用状況によって大きく変動するため、転送レートに対して厳しいスペックを期待する装置はBulk転送には向きません。なお、画像入力、印字、ストレージ系の装置を実現するためにはさらにControl転送も利用します。

Isochronous転送

スピーカ、マイク、電話、ビデオカンファレンスなどのように、音や動画を扱う装置に期待されることは時間の概念を正しく反映させること、つまりある周期の間に一定量のデータを送らなければなりません。USBでは時間をフレーム(USB2.0ではマイクロ・フレームと定義)という単位で分割し、その中で各転送を割り振ります。
Isochronous転送で最も重要なことは、ある決まった周期に、一定量のデータを転送することです。そのため、転送失敗によるリトライは時間の概念の維持を困難にするので、USBでは行わないようになっています。なお、スピーカなどを実現するためには、さらにControl転送も利用します。

Control転送

このControl転送は、Interrupt、Bulk、Isochronousの各転送方式とは異なり、転送されるデータ自身についても規定がある転送方式です。
デバイスの情報のやり取りやUSB環境下でのアドレス設定、デバイスの設定などに利用されるので、どんなデバイスでも、この転送方式は必ず利用します。

USBでは、これらの転送方法とInterfaceと言う概念を併用することで、いろいろな種類の装置を実現できます。

  • カタログポータル