USBとは

USB(Universal Serial Bus)は現在最も普及しているインターフェースであり、パソコンや周辺機器等のデバイスを接続するためのシリアルバス規格です。USBはその汎用性から、パソコンとその周辺機器にとどまらず、モバイル端末、家電、工業用機器等の様々な分野で使用されています。

USB 1.0/1.1では主にマウスやキーボードといったヒューマンインターフェースで使われてきました。USB 2.0の登場で外付けハードディスクやUSBメモリといったストレージ分野で飛躍的に市場を拡大しました。更にUSB 3.0ではUSB 2.0から転送速度が10倍になったことで動画コンテンツ等の大容量のデータを扱うニーズにも応えられるものになりました。USB 3.0以降はUSB 3.1、USB 3.2、USB 4と規格は更新され、最大転送速度は倍々で向上されています。なお、扱うデータが小容量であればUSB 2.0で十分な場面も多く、USB 2.0は発表から20年以上経った今でも使われ続けています。ほとんどの中価格帯以下のスマートフォンではUSB 2.0が使われています。

USB規格のバージョンと特徴

各バージョンの種類や速度等の特徴をまとめました。USB 3.0以降の呼び方は、Gen表記やマーケティング名が使われて、新しいバージョンのリリースの都度それまでのバージョンの呼び方が変わることもあり、混乱のもとになっています。以下の表ではGen表記を基準にしています。

バージョン発表時期最大転送速度(理論値)デュプレックス通称等備考
USB 1.01996/11.5Mbp
12Mbps
半二重[1.5Mbps] Low-Speed
[12Mbps] Full-Speed
USB 1.11998/91.5Mbps
12Mbps
半二重[1.5Mbps] Low-Speed
[12Mbps] Full-Speed
安定性向上
USB 2.02000/41.5Mbps
12Mbps
480Mbps
半二重[1.5Mbps] Low-Speed
[12Mbps] Full-Speed
[480Mbps] High-Speed, Hi-Speed USB
USB 3.2 Gen 1
USB 3.1 Gen 1(旧)
USB 3.0(旧)
2008/115Gbps全二重USB 5Gbps
SuperSpeed USB
USB 3.2 Gen 2
USB 3.1 Gen 2(旧)
2013/810Gbps全二重USB 10Gbps
SuperSpeed USB 10Gbps
SuperSpeedPlus USB
USB 3.2 Gen 2x22017/920Gbps全二重USB 20Gbps
SuperSpeed USB 20Gbps
Enhanced SuperSpeed USB
USB Type-C必須
2レーン
USB4 Gen 2x2
(USB4 Version 1.0)
2019/920Gbps全二重USB 20Gbps
USB4 20Gbps
USB Type-C必須
USB PD必須
2レーン
USB4 Gen 3x2
(USB4 Version 1.0)
2019/940Gbps全二重USB 40Gbps
USB4 40Gbps
USB Type-C必須
USB PD必須
2レーン
USB4 Gen 4x2
(USB4 Version 2.0)
2022/1080Gbps全二重USB 80GbpsUSB Type-C必須
USB PD必須
2レーン

USB規格書

USB規格書は、USB規格団体であるUSB-IF (USB Implementers Forum, Inc.)より無償で入手できます(USB規格書)。USB機器を市場投入するためにはUSBベンダIDが必要で、ベンダIDはUSB-IFから有償で取得する必要があります。

技術的特徴

接続形態

USBバストポロジー

USBはホストのルートハブをルートとしたツリー状の接続形態を成しており、理論上は127台までのデバイス(ハブを含む)を接続可能となっています。ハブはUSBのポート(接続口)を増やすためのデバイスで、理論上はルートハブを含めて6階層までカスケード接続できます。

通信

パイプとエンドポイント

ホストとデバイス間の仮想的な通信路はパイプと呼ばれ、デバイスはエンドポイントと呼ばれるパイプの端点を持ち、ホストはデバイスのエンドポイントと通信を行います。エンドポイントにはアドレス、転送方向及び転送方式が設定されます。

転送方向

転送方向呼び方
ホスト → デバイスOUT転送
デバイス → ホストIN転送

転送方向はホストを基準とした名称が付いています。デバイス側から見ると、入力がOUT転送、出力がIN転送となります。

転送方式

すべてのUSBデバイスは制御用にコントロール転送を持ち、必要に応じてバルク転送・インタラプト転送・アイソクロナス転送のエンドポイントを持つことができます。

転送方式エラー訂正概要用途例
コントロールあり基本制御
エンドポイント0のみ
双方向
-
バルクあり大量のデータ転送
帯域保証なし
外付けハードディスク
USBメモリ
産業用カメラ
インタラプトあり少量の定期的なデータ転送
帯域予約あり
キーボード
マウス
アイソクロナスなしリアルタイム性重視
帯域予約あり
Webカメラ
マイク
スピーカー

全てのデバイスはエンドポイント0もしくはデフォルトエンドポイントと呼ばれる制御用エンドポイントを持ちます。エンドポイント0はアドレス0の双方向のコントロール転送で構成され、ホストがデバイスの基本情報を読み出したり、基本設定を行うために使用されます。実データの転送はエンドポイント0以外のデータ転送用エンドポイントを使用することが一般的で、それらはバルク、インタラプトもしくはアイソクロナス転送で構成されます。

USBデバイスクラス

USBメモリが動作する仕組み

USB通信を実現するためには、ホストソフトウェア(ドライバ)とデバイスソフトウェア(ファームウェア)が必要です。ただし特定機能に関しては、ドライバを開発する必要がありません。この特定機能をデバイスクラスと呼びます。ファームウェアがデバイスクラスに対応していると、ホスト(パソコン等)に標準でインストールされているドライバが呼び出され、動作します。

例えばUSBメモリをPCに挿すと、ドライバのインストール不要でUSBメモリを使用できます。これは、USBメモリがデバイスクラス(Mass Storage Class)に対応しているため、OSが持つMass Storage Class対応ドライバが自動的に呼び出され、動作するためです。

Mass Storage Class以外にもデバイスクラスがあります。これらデバイスクラスの規格書もUSB-IFより入手できます(USBデバイスクラス規格書)。

デバイスクラス名クラスコード用途例
Audio0x01マイク、スピーカー
CDC (Communication Data Class)0x02有線LANアダプタ、仮想COMポート
HID (Human Interface Devices)0x03キーボード、マウス
Image0x06スキャナー
Printer0x07プリンター
MSC (Mass Storage Class)0x08外付けハードディスク、USBメモリ
UVC (USB Video Class)0x0EWebカメラ
Wireless Controller0xE0Bluetoothアダプタ
Miscellaneous0xEFマイク内蔵Webカメラ等の複合デバイス
Vendor Specific0xFFベンダー独自のデバイス
代表的なデバイスクラス
USB機器

なお、上記表中の用途例に挙げた形状の製品が必ずしもそのデバイスクラスに準拠している訳ではないことに注意してください。例えば、有線LANアダプタや仮想COMポート(シリアル変換アダプタ)はベンダー独自クラスでドライバも専用のものである場合も珍しくありません。それはホスト側のデバイスクラスのサポートが不十分であったり、標準仕様ではデバイスの性能を発揮できないといった理由であると考えられます。

デバイスクラスが定義されていない独自機能を持つUSBデバイスを制御するためや、ホストが対応していないデバイスクラスを実現するためには、USBドライバを開発する必要があります。