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.0 | 1996/1 | 1.5Mbp 12Mbps | 半二重 | [1.5Mbps] Low-Speed [12Mbps] Full-Speed | |
USB 1.1 | 1998/9 | 1.5Mbps 12Mbps | 半二重 | [1.5Mbps] Low-Speed [12Mbps] Full-Speed | 安定性向上 |
USB 2.0 | 2000/4 | 1.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/11 | 5Gbps | 全二重 | USB 5Gbps SuperSpeed USB | |
USB 3.2 Gen 2 USB 3.1 Gen 2(旧) | 2013/8 | 10Gbps | 全二重 | USB 10Gbps SuperSpeed USB 10Gbps SuperSpeedPlus USB | |
USB 3.2 Gen 2x2 | 2017/9 | 20Gbps | 全二重 | USB 20Gbps SuperSpeed USB 20Gbps Enhanced SuperSpeed USB | USB Type-C必須 2レーン |
USB4 Gen 2x2 (USB4 Version 1.0) | 2019/9 | 20Gbps | 全二重 | USB 20Gbps USB4 20Gbps | USB Type-C必須 USB PD必須 2レーン |
USB4 Gen 3x2 (USB4 Version 1.0) | 2019/9 | 40Gbps | 全二重 | USB 40Gbps USB4 40Gbps | USB Type-C必須 USB PD必須 2レーン |
USB4 Gen 4x2 (USB4 Version 2.0) | 2022/10 | 80Gbps | 全二重 | USB 80Gbps | USB Type-C必須 USB PD必須 2レーン |
USB規格書
USB規格書は、USB規格団体であるUSB-IF (USB Implementers Forum, Inc.)より無償で入手できます(USB規格書)。USB機器を市場投入するためにはUSBベンダIDが必要で、ベンダIDはUSB-IFから有償で取得する必要があります。
技術的特徴
接続形態

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

ホストとデバイス間の仮想的な通信路はパイプと呼ばれ、デバイスはエンドポイントと呼ばれるパイプの端点を持ち、ホストはデバイスのエンドポイントと通信を行います。エンドポイントにはアドレス、転送方向及び転送方式が設定されます。
転送方向
転送方向 | 呼び方 |
---|---|
ホスト → デバイス | OUT転送 |
デバイス → ホスト | IN転送 |
転送方向はホストを基準とした名称が付いています。デバイス側から見ると、入力がOUT転送、出力がIN転送となります。
転送方式
すべてのUSBデバイスは制御用にコントロール転送を持ち、必要に応じてバルク転送・インタラプト転送・アイソクロナス転送のエンドポイントを持つことができます。
転送方式 | エラー訂正 | 概要 | 用途例 |
---|---|---|---|
コントロール | あり | 基本制御 エンドポイント0のみ 双方向 | - |
バルク | あり | 大量のデータ転送 帯域保証なし | 外付けハードディスク USBメモリ 産業用カメラ |
インタラプト | あり | 少量の定期的なデータ転送 帯域予約あり | キーボード マウス |
アイソクロナス | なし | リアルタイム性重視 帯域予約あり | Webカメラ マイク スピーカー |
全てのデバイスはエンドポイント0もしくはデフォルトエンドポイントと呼ばれる制御用エンドポイントを持ちます。エンドポイント0はアドレス0の双方向のコントロール転送で構成され、ホストがデバイスの基本情報を読み出したり、基本設定を行うために使用されます。実データの転送はエンドポイント0以外のデータ転送用エンドポイントを使用することが一般的で、それらはバルク、インタラプトもしくはアイソクロナス転送で構成されます。
USBデバイスクラス

USB通信を実現するためには、ホストソフトウェア(ドライバ)とデバイスソフトウェア(ファームウェア)が必要です。ただし特定機能に関しては、ドライバを開発する必要がありません。この特定機能をデバイスクラスと呼びます。ファームウェアがデバイスクラスに対応していると、ホスト(パソコン等)に標準でインストールされているドライバが呼び出され、動作します。
例えばUSBメモリをPCに挿すと、ドライバのインストール不要でUSBメモリを使用できます。これは、USBメモリがデバイスクラス(Mass Storage Class)に対応しているため、OSが持つMass Storage Class対応ドライバが自動的に呼び出され、動作するためです。
Mass Storage Class以外にもデバイスクラスがあります。これらデバイスクラスの規格書もUSB-IFより入手できます(USBデバイスクラス規格書)。
デバイスクラス名 | クラスコード | 用途例 |
---|---|---|
Audio | 0x01 | マイク、スピーカー |
CDC (Communication Data Class) | 0x02 | 有線LANアダプタ、仮想COMポート |
HID (Human Interface Devices) | 0x03 | キーボード、マウス |
Image | 0x06 | スキャナー |
Printer | 0x07 | プリンター |
MSC (Mass Storage Class) | 0x08 | 外付けハードディスク、USBメモリ |
UVC (USB Video Class) | 0x0E | Webカメラ |
Wireless Controller | 0xE0 | Bluetoothアダプタ |
Miscellaneous | 0xEF | マイク内蔵Webカメラ等の複合デバイス |
Vendor Specific | 0xFF | ベンダー独自のデバイス |

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