Intelなど業界大手が中心となり策定した、汎用のシリアルバス規格。
USB 3.0では、Intelが中心となる「USB 3.0 Promoter Group」により策定された。
規格完成後は、USB規格の管轄団体である「USB Implementers Forum」(USB-IF)に、その管理を移管した。
USBには、次のバージョンがある。一つのネットワーク内で混在して利用できる。
但し、USB 1.0/1.1/2.0とUSB 3.0では使用する物理層(信号線そのもの)が違う。機器としては混在可能だが、信号線そのものは混在していない。
仕様の違いは次の通りである。
| USB 1.1 | USB 2.0 | USB 3.0 | |
|---|---|---|---|
| ホストコントローラー | OHCI/UHCI | EHCI | xHCI |
| 転送速度 | 1.5Mbps/12Mbps | 480Mbps | 5Gbps |
| 信号線 | 平衡/半二重 | 平衡/全二重 | |
| トランザクション | ホスト制御、ポーリング、ブロードキャスト | ホスト制御、非同期転送、ユニキャスト | |
| 信号線 | 2本 | 6本 | |
| 供給電力(最大) | 500mA | 900mA | |
ケーブル長は最大5m。
あくまでも、USBホスト(パソコン)対各種周辺機器、という用途が想定されているため、通信は必ずホストを介して行ない、ターゲット同士で直接通信は配慮されていない(後からUSB On-The-Goが登場した)。
その代わり、通信制御の面倒な部分は全てホスト側で全て賄い、機器側は単純な構成で利用可能とし、コストを低く抑えられるようになっている。
伝送速度は、USBのバージョンごとに、次のようになっている。
USB 2.0以降は、新規に追加されたモードのみ記載するが、古いモードも利用できる。
元々は低速がUSB、高速がIEEE 1394という棲み分けが想定されていた。
しかし、パーソナルコンピューターではIEEE 1394は全く普及せず、USBが普及したことから、こちらの高速化が行なわれることになった。
USB 2.0仕様でハイ・スピード(480Mbps)が追加されたことで、帯域についてはIEEE 1394に対抗し得る規格となった。
USB 3.0仕様では更に速度は10倍となり、シリアルATAの2倍速相当にまで高速化された。
Windows 98やWindows 2000以降で標準サポートされている。
登場当初は出足が鈍く、普及が危ぶまれた(当時はIEEE 1394が本命と考えられたため)ものの、Windows 98やiMacで標準対応したため徐々に普及した。
USB 2.0で速度が高速になったことなどから更に普及、もはやパソコンには無くてはならないものとなった。
USB 2.0までの信号線は4本で、信号ライン(緑D+、白D−)と電源ライン(赤VBUS、黒GND)がありコネクタも4ピンである。
ミニUSBとマイクロUSBには更に1本、USB On-The-Goで使うID信号が追加されている。
信号線は差動(平衡)の半二重伝送である。但しEIA-232等と違うのは、物理層だけでなくその上位層も規定がされており、送信データは先頭にアドレスやエンドポイントの番号、最後にCRCを付けた、パケット単位での通信されるという点である。
信号レベルは、ロー・スピードとフル・スピードが、VIHが2.0V以上、VILが0.8V以下であり、つまりTTLレベルである。
対してハイ・スピードではHが360mV以上(一般的には400mV以上にする)、Lが10mV以下となる。
USBはバスなので終端抵抗が必要である。ただし、SCSIなどと異なり、USBの場合はホスト側(ICチップ)または機器に内蔵されているため、ユーザーが明示的に接続する必要はない。
USBホストに何も接続されていない時は、D+/D−共にホスト内蔵の15kΩ±5%でプルダウンされており、信号レベルは「L」である。ホストは、この状態でD+/D−の変化を監視している。
ロー・スピード機器が接続された場合、ターゲットはD−を1.5kΩ±5%でプルアップし、信号レベルを「H」とする。
フル・スピード機器またはハイ・スピード機器が接続された場合、ターゲットはD+を1.5kΩ±5%でプルアップし、信号レベルを「H」とする。
フル/ハイの識別は、USBリセット中に「Chirp」というプロトコルにより、ホスト/ターゲットの双方がハイに対応しているかどうかが確認される。