USB 协议能够在启动或是当设备插入系统时对设备进行备置,这就是 USB 设备为什么可以执插拨的原因。 USB 设备被分成以下几类:显示器( Monitors )、通讯设备( Communication devices )、音频设备( Audio )、人机输入( Human input )、海量存储( Mass storage )。
 
特定类( class )的设备又可划分成子类( subclass ),划分子类的后软件就可以搜索总线并选择所有它可以支持的设备。每个设备可以有一个或多个配置( Configuration ),配置用于定义设备的功能。如果某个设备有几种不同的功能,则每个功能都需要一个配置。配置( configuration )是接口( interface )的集合。接口指定设备中的哪些硬件与 USB 交换数据。
 
每一个与 USB 交换数据的硬件就叫做一个端点( endpoint )。因此,接口是端点的集合。
 
USB 的设备类别定义( USB Device Class Definitions )定义特定类或子类中的设备需要提供的缺省配置、接口和端点。
 
描述符( descriptor )描述设备、配置、接口或端点的一般信息,下图为 USB 描述符的层次结构。
 
基于OHCI的USB主机 —— USB设备命令介绍_第1张图片
USB Host )唯一通过描述符了解设备的有关信息,根据这些信息,建立起通信,在这些描述符中,规定了设备所使用的协议、端点情况等。因此,正确地提供描述符,是 USB 设备正常工作的先决条件。
 
USB 海量存储设备( USB Mass Storage Class )包括 General Mass Storage Subclass CD ROM Tape Solid State Mass Storage Class 只需要支持一个接口,即数据( Data )接口,选择缺省配置时此接口即被激活。数据接口允许与设备之间进行数据传输,它提供三个端点:
 
Bulk Input 端点、 Bulk Output 端点和中断端点。
 
通用海量存储设备( General Mass Storage Device )是随机存取、基于块/扇区存储的设备。它只能存储和取回来自 CPU 的数据。这种设备的接口遵循 SCSI 2 标准的直接存取存储设备( Direct Access Storage Device )协议。 USB 设置上的介质使用与 SCSI 2 设备相同的逻辑块( logical blocks )方式寻址。