本ウェブサイトでは、JavaScriptおよびスタイルシートを使用しております。
お客さまがご使用のブラウザではスタイルが未適応のため、本来とは異なった表示になっておりますが、
情報は問題なくご利用いただけます。
USBは単一形状のコネクタに統合しているので、すべてのUSB機器のデータ転送は同一のプロトコルバスをタイムシェアリングすることで行います。すべてのUSB周辺機器で基本プロトコルは同じになりますから、データの中身に対して異なった意味をもたせるためには、アプリケーションに近い上位のソフトウェアスタックで処理することと時間に対する概念を追加する必要があります。
USBでは転送の種類をInterrupt、Bulk、Isochronous、Controlの4つに分類することで、この2つの仕組みを導入しており、各周辺装置は自分に合った転送方式を選択することで、最適な通信を実現できます。データレートとしては、USB1.xでは12MHzのFull-Speedと1.5MHzのLow-Speedの2種類をサポートし、USB2.0ではさらに、より高速な480MHzのHigh-Speedもサポートするようになりました。
|
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の転送レートを実現できます。
マウス、キーボード、ジョイスティックなどのようなヒューマン・インタフェースに期待される能力は、遅いなどの違和感を感じない一定時間内に、入力されたデータを処理することです。従来は入力の検出によりシステムに割りこみ要求をかけて処理していましたが、USBではすべてのデータ転送の要求はホストから発行され、マウスやキーボードからの割りこみによって処理を開始することはできません。例えば、キーボードによる文字の入力から画面表示までに10msかかったとしても、人間の感覚では遅いと感じることはありませんから、USBでは不都合にならない一定周期ごとにホストがマウスやキーボードからデータを引き取るによって、割り込みによる処理の代替えをしています。この一定周期ごとにホストがデータ送信または受信を行う転送方式をInterrupt転送と定義しています。
1.5MHzのLow-SpeedデバイスはInterrupt転送を使う装置でのみ許された特権で、マウス、キーボード、ジョイスティックなどを安価で作るための仕様です。マウス、キーボードを実現するためにはさらにControl転送も利用します。
プリンタ、スキャナ、デジタル・スチル・カメラ、メモリカード・リーダー、FDD、CD-ROM、CD-R、ZIPなどのように画像入力、印字、ストレージ系の装置に期待されることは、大規模なデータを正確に(データの欠落のないように)転送することです。例えば、プリンタでデータの欠落がおこって印字異常になっては困ります。高いデータ転送の信頼性を実現できますが、バス全体の利用効率を上げるためにデータ転送に対しての時間的制約を設けることのできないデータ送信/受信を行う転送方式をBulk転送と定義しています。
画像入力、印字、ストレージ系の装置の転送レートはバスの利用状況によって大きく変動するため、転送レートに対して厳しいスペックを期待する装置はBulk転送には向きません。なお、画像入力、印字、ストレージ系の装置を実現するためにはさらにControl転送も利用します。
スピーカ、マイク、電話、ビデオカンファレンスなどのように、音や動画を扱う装置に期待されることは時間の概念を正しく反映させること、つまりある周期の間に一定量のデータを送らなければなりません。USBでは時間をフレーム(USB2.0ではマイクロ・フレームと定義)という単位で分割し、その中で各転送を割り振ります。
Isochronous転送で最も重要なことは、ある決まった周期に、一定量のデータを転送することです。そのため、転送失敗によるリトライは時間の概念の維持を困難にするので、USBでは行わないようになっています。なお、スピーカなどを実現するためには、さらにControl転送も利用します。
このControl転送は、Interrupt、Bulk、Isochronousの各転送方式とは異なり、転送されるデータ自身についても規定がある転送方式です。
デバイスの情報のやり取りやUSB環境下でのアドレス設定、デバイスの設定などに利用されるので、どんなデバイスでも、この転送方式は必ず利用します。
USBでは、これらの転送方法とInterfaceと言う概念を併用することで、いろいろな種類の装置を実現できます。