USBはUniversal Serial Busの略です。
USBは
SCSIや
PCIデバイスとは異なり、ホットプラグに対応しています。ホットプラグとは、電源を入れたままで周辺機器等を取り付けたり、取り外したりできることを言います。
また、127台の機器を接続することが可能です。
USB規格
USBには、大きく分けるとUSB1.1とUSB2.0の2つの規格があります。
USB1.1
転送速度は12Mbps
Linuxでは
カーネル2.4から正式対応しました。
USBコントローラとしては、UHCIとOHCIがあります。
UHCIは、IntelとVIA主導のコントローラであり、Linuxのモジュールはuhci_hcdを利用します。
OHCIは、SiS主導のコントローラであり、Linuxのモジュールはohci_hcdを利用します。
USB2.0
転送速度は480Mbps
Linuxではカーネル2.6から正式対応しました。
USBコントローラとしては、EHCIがあります。
EHCIは、UHCIとOHCIを統一したコントローラであり、Linuxのモジュールは、ehci_hcdを利用します。
ドライバ
USBには大きく分けると3種類のドライバが存在します。
ホスト・コントローラ・ドライバ
USBは、PC上のUSBコントローラを介して制御されます。Linuxでは、このドライバはこのコントローラを制御するためのドライバです。
クラス・ドライバ
USBの規格では、機器の種別ごとに標準化されています。この規格化された汎用ドライバのことを言います。
ベンダー・デバイス・ドライバ
クラス・ドライバに存在しないような標準的ではない機器のドライバで、ベンダーが専用で作成したドライバのことを言います。
Linuxでは、USBに接続されている機器を確認するためにlsusbというコマンドが用意されています。
# lsusb
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 413c:2105 Dell Computer Corp.
Bus 001 Device 002: ID 0557:7000 ATEN International Co., Ltd Hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
なお、USB接続時の処理は内部では以下のように実行されます。
最終更新:2009年04月18日 00:16