本文介绍USB
海量存储规范概述,主要是如下文档的简单翻译和总结。
USB Mass Storage ClassSpecification Overview, Rev. 1.2, June 23, 2003
1. Overview
USB
海量存储规范主要包含如下几种规范,除此之外,USBCWG还支持一些其他USB
海量存储协议规范。
USB Mass Storage ClassControl/Bulk/Interrupt (CBI) Transport
USBMass Storage Class Bulk-Only (BBB) Transport
USBMass Storage Class UFI (UFI) Command Specification
USBMass Storage Class Bootability Specification
USBMass Storage Class Compliance Test Specification
USBLockable Storage Devices Feature Specification (LSD FS)
USBMass Storage Class USB Attached SCSI Protocol (UASP)
其中,USBCBI传输协议仅仅用于全速软盘驱动,CBI不能使用与高速设备或者非软盘驱动。USB Bulk-Only传输是U盘采用的传输一些,是U盘驱动开发需要重点了解的。
2. Subclass Codes
USB
海量存储设备的接口描述符包含了一个bInterfaceSubClass域,该域表示
海量存储接口传输的工业标准命令集。该域的值可以设置为表1中的值。
Subclass的值表示工业标准规范,用于定义接口的传输命令集,不表示存储设备,比如CD-ROM或者软盘驱动。
Table 1 — SubClass CodesMapped to Command Block Specifications
3 Protocol Codes
USB
海量存储设备的接口描述符包含了一个bInterfaceProtocol域,该域表示接口所使用的传输协议。USB CBI传输规范(Protocol 值为0x000x01),仅用于全速的软盘驱动。CBI不能用于高速设备,红着其他费软盘驱动的设备。
5 Class Specific Descriptor Codes
Table 2 — Mass Storage Transport Protocol
4 Request Codes
Core USB specifies that a USB control Request addressed towIndex = bInterfaceNumber of a USB Mass
Storage Class device interface includes a bRequestfield.
The meaning of the bRequest code is specific to the devicevendor when the bmRequestType. Type is Vendor,but the meaning ofthe bRequest code is specific to the interface class when thebmRequestType.Type is Class.
Table 3 — Mass Storage Request Codes
Some Mass Storage subclass and protocol specifications requireclass specific descriptors. Table 4 lists the class specificdescriptors used by the Mass Storage Class.
Table 4 — Mass Storage Class Specific Descriptors
对于U盘,上述值分别是:
bInterfaceSubClass :06h
bInterfaceProtocol:50h