USBデバイスについて | LPIC対策講座 - レベル1、レベル2、レベル3 -

USBデバイスについて

USBは、キーボードやマウス、モデムなどの周辺機器とパソコン
を結ぶバスの規格の1つです。
プラグアンドプレイやホットプラグ対応といった特徴を持ち、広く普及しています。


従来の規格USB1.1は最大転送速度が12Mbpsと低速でしたが、
現在ではUSB2.0(転送速度480Mbps)が普及しています。


※最近では、USB3.0もでてきました。


Linuxもカーネル2.4からUSB1.1に対応
2.4.18以降(2.6も含む)のカーネルでUSB2.0が対応しました。


特徴を以下にまとめてます。
・最大127のUSBデバイスを接続可能
・プラグアンドプレイによりドライバを自動認識
・ホットプラグを実装し、PC起動中に抜き差し可能
・USBポートからの電源供給
・USBコントローラとしてOHCI,UHCI,EHCIがある


USBコントローラとは、USBを制御するためのチップのことです。


【USB1.1】
☆Intel社とVIA社主導
USBコントローラ:UHCI
USBモジュール(カーネル2.6):uhci_hcd

☆SiS社主導
USBコントローラ:OHCI
USBモジュール(カーネル2.6):ohci_hcd


【USB2.0】
UHCIとOHCIの互換性の問題を解消するべくEHCIに統一。

USBコントローラ:EHCI
USBモジュール(カーネル2.6):ehci_hcd



USB規格は、「デバイスクラス」として、USBデバイスの機能ごとに
データ送受信形式を標準化して定義しています。「クラス・ドライバ」
はデバイスクラスごとに利用される汎用ドライバを指し、1つのデバイスクラス
に属するUSBデバイスは、同じクラス・ドライバを介して制御されます。


各デバイスクラスには固有の「クラスID」が設定されており、
各USBデバイスは、自身が属するデバイスクラスのクラスIDに応じて、クラス・ドライバを選択利用します。


なおクラスID255は、汎用ドライバであるクラス・ドライバでは対応できないUSB
デバイスのデバイスクラスを表します。この場合はドライバとしてクラス・ドライバ
ではなく、ベンダーが提供している「ベンダー・デバイス・ドライバ」を利用します。