EN JA
USB(4)
USB(4) FreeBSD Kernel Interfaces Manual USB(4)

名称

usbユニバーサルシリアルバス

書式

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

device usb

もう一つの方法として、ブート時にモジュールとしてドライバをロードするためには、次の行を loader.conf(5) に置きます:

usb_load="YES"

ユーザランドプログラミング

libusb ライブラリを通してユーザランドから USB 関数をアクセスすることができます。詳しい情報については、 libusb(3) を参照してください。

解説

FreeBSD は、ホストとデバイス側モードで、マシンに独立しているバスのサポートと USB デバイスのドライバを提供します。

usb ドライバには、3 つの層 (レイヤ) があります:

USB Controller (バス)
USB Device
USB Driver

コントローラは、 pci(4) のような物理的なバスにアタッチします USB バスはコントローラにアタッチし、ルートハブはコントローラにアタッチします。バスにアタッチされるどんなデバイスも USB バスにアタッチされたルートハブか別のハブにアタッチします。

uhub デバイスはルートハブに必要であるように常に存在します。

USB の紹介

USB は、外部のデバイスを PC に接続できるシステムです。最も一般的な USB 速度は、次の通りです:
Low Speed (1.5Mビット/秒)
Full Speed (12Mビット/秒)
High Speed (480Mビット/秒)

各 USB には、バスのマスタであるホストコントローラがあります。物理的な通信は、単純です、すなわち、ホストコントローラは、一度に 1 つの USB デバイスとしか通信しません。

USB HUB ツリーに最大 127 台のデバイスを接続することができます。各デバイスがバスにアタッチ (取り付けられる) されるとき、アドレスはホストによって動的に割り当てられます。

各デバイスの内部に最大 16 の終点が存在できます。各終点は個別にアドレス付けされ、そしてアドレスは静的です。これらは各終点はは 4 つの異なったモードのうちの 1 つで通信します: コントロール (control), アイソクロナス (isochronous), バルク (bulk) または 割り込み (interrupt) です。デバイスには常に少なくとも 1 つの終点あります。この終点はアドレス 0 を持つコントロール終点で、そして、コマンドを与えるために使用され、デバイスから記述子などの基礎データを抽出します。コントロール終点を除いて、各終点は一方向です。

デバイスの終点はインタフェースに分類されます。インタフェースはデバイスの中の論理ユニットです。例えば、キーボードとトラックボールの両方がある複合デバイスはそれぞれの 1 つのインタフェースが存在します。インタフェースはしばしば、どのように操作するかに影響を及ぼす、代替の設定と呼ばれる、さまざまなモードに設定することができます。さまざまな代替の設定はその中にさまざまな終点があり得ます。

デバイスはさまざまな設定でも操作できます。設定によって、デバイスはさまざまな終点とインタフェースの設定が存在するかもしれません。

USB バスのバス一覧表は数ステップで進行します:

  1. 任意のインタフェース特有のドライバは、デバイスにアタッチ (取り付ける) することができます。
  2. なにも見つけられないなら、一般的なインタフェースクラスのドライバは、アタッチ (取り付ける) することができます。

関連項目

USB 仕様は、次で見つけることができます:

http://www.usb.org/developers/docs/

libusb(3), usbdi(4), aue(4), axe(4), cue(4), ehci(4), kue(4), mos(4), ohci(4), pci(4), rue(4), ucom(4), udav(4), uhci(4), uhid(4), ukbd(4), ulpt(4), umass(4), ums(4), uplcom(4), urio(4), uvscom(4), usbconfig(8), xhci(4)

規格

usb モジュールは、USB 2.0 規格に準拠しています。

歴史

usb モジュールは、最初に Lennart Augustsson によって書かれた NetBSD USB スタックから発想を得ています。 usb モジュールは、 Hans Petter Selasky <hselasky@FreeBSD.org>によって書かれました。
May 20, 2009 FreeBSD