系统管理指南:设备和文件系统

USB 设备概述

通用串行总线 (Universal Serial Bus, USB) 由 PC 行业开发,用于提供将外围设备(如键盘、鼠标设备和打印机)连接到系统的低成本解决方案。

USB 连接器适用于以某种方式连接的唯一一种类型的电缆。USB 的主要设计意图是缓解对不同设备的多种连接器类型的需求。此设计可减少系统后面板上各种连接的混乱。

设备与外部 USB 集线器或计算机本身的根集线器上的 USB 端口连接。由于集线器有多个端口,因此从集线器可以引出多个设备树分支。

有关更多信息,请参见 usb(7D) 或转至以下站点:

http://www.usb.org

常用的 USB 首字母缩略词

下表介绍了 Solaris OS 中使用的 USB 首字母缩略词。有关 USB 组件和对应的首字母缩略词的完整说明,请访问以下站点:

http://www.usb.org

首字母缩略词 

定义 

UGEN 

USB 通用驱动程序 

USB 

通用串行总线 

USBA 

通用串行总线体系结构 (Solaris) 

USBAI 

USBA 客户机驱动程序接口 (Solaris) 

HCD 

USB 主机控制器驱动程序 

EHCI 

增强型主机控制器接口 

OHCI 

开放主机控制器接口 

UHCI 

通用主机控制器接口 

USB 总线说明

USB 规范是公用免费规范。该规范定义了总线和连接器的电子和机械接口。

USB 采用由集线器为 USB 设备提供附着点的拓扑结构。主机控制器包含根集线器,该集线器是系统中所有 USB 端口的起点。有关集线器的更多信息,请参见USB 主机控制器和集线器

图 7–1 USB 物理设备分层结构

图中显示了带有三个活动 USB 端口的系统,其中包括复合设备(集线器和打印机)和组合设备(键盘和鼠标)。

图 7–1 显示了带有三个活动 USB 端口的系统。第一个 USB 端口连接 USB 内存条。第二个 USB 端口连接外部集线器,该集线器又连接 cdrw 设备和键盘/鼠标复合设备。作为复合设备,此键盘包含 USB 控制器,该控制器可以操作键盘和连接的鼠标。键盘和鼠标共享公用的 USB 总线地址,因为它们由同一个 USB 控制器定向。

图 7–1 还显示了作为组合设备的集线器和打印机的示例。该集线器是与打印机封装在同一个箱子中的外部集线器。打印机与集线器永久连接。集线器和打印机具有各自独立的 USB 总线地址。

以下列出了图 7–1 中显示的一些设备的设备树路径名。

内存条

/pci@1f,4000/usb@5/storage@1

键盘

/pci@1f,4000/usb@5/hub@2/device@1/keyboard@0

鼠标

/pci@1f,4000/usb@5/hub@2/device@1/mouse@1

cdrw 设备

/pci@1f,4000/usb@5/hub@2/storage@3

打印机

/pci@1f,4000/usb@5/hub@3/printer@1

USB 设备和驱动程序

具有类似属性和服务的 USB 服务组成设备类。 每个设备类都有对应的驱动程序。类中的设备由同一个设备驱动程序对进行管理。但是,USB 规范也允许使用不属于特定类的供应商专有设备。

人工接口设备 (Human Interface Device, HID) 类包含用户控制的设备,如以下设备:

通信设备类包含以下设备:

其他设备类包括以下类:

每个 USB 设备都包含反映其所属类的描述符。设备类可指定其成员在配置和数据传输中的行为方式。可以从以下站点获取其他的类信息:

http://www.usb.org

有关 Solaris 发行版支持的 USB 设备的更多信息,请参见 usb(7D)

USB 驱动程序增强功能

从 Solaris 9 4/04 发行版开始,包括以下 USB 驱动程序增强功能。

EHCI、OHCI 和 UHCI 驱动程序

EHCI 驱动程序的功能包括:

使用 prtconf 命令输出可确定系统是支持 USB 1.1 设备还是 USB 2.0 设备。例如:


# prtconf  -D | egrep "ehci|ohci|uhci"

如果 prtconf 输出标识了 EHCI 控制器,则系统支持 USB 2.0 设备。

如果 prtconf 输出标识了 OHCI 或 UHCI 控制器,则系统支持 USB 1.1 设备。

Solaris USB 体系结构 (Solaris USB Architecture, USBA)

USB 设备可以表示为两级设备树节点。设备节点表示整个 USB 设备。一个或多个子 接口 节点表示设备上的各个 USB 接口。

驱动程序绑定是通过使用兼容的名称属性实现的。有关更多信息,请参阅 IEEE 1275 USB 绑定的 3.2.2.1 节以及《编写设备驱动程序》。驱动程序可以绑定至整个设备并控制所有接口,也可以只绑定至一个接口。如果供应商或类驱动程序不要求绑定至整个设备,则可以将通用 USB 多接口驱动程序绑定至设备级节点。此驱动程序会通过使用 IEEE 1275 绑定规范的 3.3.2.1 节中定义的兼容名称属性,尝试将各驱动程序绑定至每个接口。

Solaris USB 体系结构 (USB Architecture, USBA) 遵循 USB 1.1 和 USB 2.0 规范,并且是 Solaris 设备驱动程序接口 (Device Driver Interface, DDI) 的一部分。USBA 模型与 Sun 公用 SCSI 体系结构 (Sun Common SCSI Architecture, SCSA) 类似。如下图所示,USBA 是一个薄层,用于为客户机驱动程序提供通用抽象 USB 传输层,进而为这些驱动程序提供实现核心通用 USB 功能的服务。

图 7–2 Solaris USB 体系结构 (Solaris USB Architecture, USBA)

图中显示了客户机驱动程序、USBA 框架、主机控制器驱动程序以及设备总线之间的关系。