Universal Serial Bus
Mass Storage Class
Bulk-Only Transport
Revision 1.0
September 31, 1999
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 2 of 22
Change History
Revision Issue Date Comments
0.7 September 23, 1998 Initial draft, pre-release
0.8 October 6, 1998 Revisions made at the Mass Storage DWG review – Irvine, CA
0.9 October 21, 1998 Revisions made at the Mass Storage DWG review – Plano, TX
0.9a January 5, 1999 Revisions made at the Mass Storage DWG review – Tigard, OR
0.9b February 1, 1999 Additions of LUN support - Milpitas, CA
1.0[RC1] March 5, 1999 RR review - Midway, UT
1.0[RC2] March 23, 1999 Revisions from reflector review comments
1.0[RC3] March 29, 1999 Specification line by line review – Milpitas, CA
1.0[RC4] June 21, 1999 Specification line by line review – RR21 – Milpitas, CA
1.0 September 31, 1999 Final Revision edits for Released Document – SLC, UT
USB Device Class Definition for Mass Storage Devices
Copyright © 1998, 1999, USB Implementers Forum.
All rights reserved.
INTELLECTUAL PROPERTY DISCLAIMER
THIS SPECIFICATION IS PROVIDED “AS IS” WITH NO WARRANTIES WHATSOEVER INCLUDING ANY
WARRANTY OF MERCHANTABILITY, FITNESS FOR ANY PARTICULAR PURPOSE, OR ANY WARRANTY
OTHERWISE ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE.
A LICENSE IS HEREBY GRANTED TO REPRODUCE AND DISTRIBUTE THIS SPECIFICATION FOR
INTERNAL USE ONLY. NO OTHER LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO
ANY OTHER INTELLECTUAL PROPERTY RIGHTS IS GRANTED OR INTENDED HEREBY.
AUTHORS OF THIS SPECIFICATION DISCLAIM ALL LIABILITY, INCLUDING LIABILITY FOR
INFRINGEMENT OF PROPRIETARY RIGHTS, RELATING TO IMPLEMENTATION OF INFORMATION IN
THIS SPECIFICATION. AUTHORS OF THIS SPECIFICATION ALSO DO NOT WARRANT OR REPRESENT
THAT SUCH IMPLEMENTATION(S) WILL NOT INFRINGE SUCH RIGHTS.
Contributors
Al Rickey, Phoenix Technologies
Alan Haffner, Lexar Media
Bill Stanley, Adaptec
Calaimany Bhoopathi, Shuttle Technology
Curtis E. Stevens, Phoenix Technologies
Darrell Redford , Iomega Corporation
Dave Gilbert, In-System Design
David G. Lawrence, Global Technology Development
David L. Jolley, Iomega Corporation
David Luke, In-System Design
Eric Luttman, In-System Design
Glen Slick, Microsoft Corporation
Hiromichi Oribe, Hagiwara Sys-ComCo
Jan Matejica, PIMC/Philips
Jim Blackson, Y-E Data, Inc
Jim Quigley, Iomega Corporation
Johan Craeybeckk, PIMC/Philips
Jordan Brown, Sun Microsystems
Kenny Chu, Hagiwara Sys-ComCo
Kenichi Hamada, Y-E Data, Inc
Mark Williams, Microsoft Corporation
Masayuki Kitagawa, Mitsumi
Mike Chen, CMD Technology
Mike Glass, Microsoft Corporation
Mike Liebow, eTEK Labs
Mike Nguyen, TEAC
Mike Poulsen, Iomega Corporation
Moto Watanabe, Hagiwara
N.R. Devanathan, Shuttle Technology
Paramita Das, Sun Microsystems
Pat LaVarre, Iomega Corporation
Peter S'Heeren, PIMC/Philips
Ryota Okazaki, NEC Corporation
Sadao Yabuki, TEAC
Shigeyoshi Hashi, NEC Corporation
Shing F. Lin, Adaptec
Steve Bayless, Hewlett-Packard
Steve Kolokowsky, Anchor Chips
Steven Smith, eTEK Labs
Terry Moore, MCCI
Tim Bradshaw, Iomega Corp
Toyoko Shimizu, Y-E Data, Inc
Trenton Henry, SMSC
Troy Davidson, Iomega Corporation
Tsuyoshi Osawa, TEAC
Yuji Oishi, Hagiwara Sys-Com Co Ltd
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 3 of 22
Table of Contents
1 Specification Overview and Scope................................................................................... 5
1.1 Scope............................................................................................................................................................. 5
2 Terms and Abbreviations .................................................................................................. 6
2.1 Conventions .................................................................................................................................................. 6
2.2 Definitions..................................................................................................................................................... 6
3 Functional Characteristics ................................................................................................ 7
3.1 Bulk-Only Mass Storage Reset (class-specific request)................................................................................ 7
3.2 Get Max LUN (class-specific request).......................................................................................................... 7
3.3 Host/Device Packet Transfer Order .............................................................................................................. 8
3.4 Command Queuing ....................................................................................................................................... 8
3.5 Bi-Directional Command Protocol................................................................................................................ 8
4 Standard Descriptors ........................................................................................................ 9
4.1 Device Descriptor.......................................................................................................................................... 9
4.1.1 Serial Number ....................................................................................................................................... 9
4.1.2 Valid Serial Number Characters.......................................................................................................... 10
4.2 Configuration Descriptor ............................................................................................................................ 10
4.3 Interface Descriptors ................................................................................................................................... 11
4.4 Endpoint Descriptors................................................................................................................................... 11
4.4.1 Bulk-In Endpoint................................................................................................................................. 11
4.4.2 Bulk-Out Endpoint .............................................................................................................................. 12
5 Command/Data/Status Protocol ..................................................................................... 13
5.1 Command Block Wrapper (CBW).............................................................................................................. 13
5.2 Command Status Wrapper (CSW) .............................................................................................................. 14
5.3 Data Transfer Conditions ............................................................................................................................ 15
5.3.1 Command Transport............................................................................................................................ 15
5.3.2 Data Transport..................................................................................................................................... 15
5.3.3 Status Transport .................................................................................................................................. 16
5.3.4 Reset Recovery.................................................................................................................................... 16
6 Host/Device Data Transfers ............................................................................................ 17
6.1 Overview..................................................................................................................................................... 17
6.2 Valid and Meaningful CBW ....................................................................................................................... 17
6.2.1 Valid CBW.......................................................................................................................................... 17
6.2.2 Meaningful CBW ................................................................................................................................ 17
6.3 Valid and Meaningful CSW........................................................................................................................ 17
6.3.1 Valid CSW .......................................................................................................................................... 17
6.3.2 Meaningful CSW ................................................................................................................................ 17
6.4 Device Error Handling ................................................................................................................................ 17
6.5 Host Error Handling.................................................................................................................................... 18
6.6 Error Classes ............................................................................................................................................... 18
6.6.1 CBW Not Valid................................................................................................................................... 18
6.6.2 Internal Device Error........................................................................................................................... 18
6.6.3 Host/Device Disagreements ................................................................................................................ 18
6.6.4 Command Failure................................................................................................................................ 18
6.7 The Thirteen Cases...................................................................................................................................... 18
6.7.1 Hn - Host expects no data transfers..................................................................................................... 19
6.7.2 Hi - Host expects to receive data from the device............................................................................... 20
6.7.3 Ho - Host expects to send data to the device....................................................................................... 21
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 4 of 22
List of Tables
Table 3.1 – Bulk-Only Mass Storage Reset .............................................................................................................7
Table 3.2 –Get Max LUN ........................................................................................................................................7
Table 4.1 - Device Descriptor ..................................................................................................................................9
Table 4.2 - Example Serial Number Format ..........................................................................................................10
Table 4.3 - Valid Serial Number Characters ..........................................................................................................10
Table 4.4 - Configuration Descriptor .....................................................................................................................10
Table 4.5 – Bulk-Only Data Interface Descriptor ..................................................................................................11
Table 4.6 - Bulk-In Endpoint Descriptor ...............................................................................................................11
Table 4.7 – Bulk-Out Endpoint Descriptor ............................................................................................................12
Table 5.1 - Command Block Wrapper ...................................................................................................................13
Table 5.2 - Command Status Wrapper ...................................................................................................................14
Table 5.3 - Command Block Status Values ...........................................................................................................15
Table 6.1 - Host/Device Data Transfer Matrix.......................................................................................................19
List of Figures
Figure 1 - Command/Data/Status Flow ................................................................................................................. 13
Figure 2 - Status Transport Flow .......................................................................................................................... 15
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 5 of 22
1 Specification Overview and Scope
1.1 Scope
A familiarity with the USB 1.0 and 1.1 Specifications and the USB Mass Storage Class Specification Overview is
assumed.
This specification addresses Bulk-Only Transport, or in other words, transport of command, data, and status
occurring solely via Bulk endpoints (not via Interrupt or Control endpoints). This specification only uses the
default pipe to clear a STALL condition on the Bulk endpoints and to issue class-specific requests as defined
below. This specification does not require the use of an Interrupt endpoint.
This specification defines support for logical units that share common device characteristics. Although this
feature provides the support necessary to allow like mass storage devices to share a common USB interface
descriptor, it is not intended to be used to implement interface bridge devices.
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 6 of 22
2 Terms and Abbreviations
2.1 Conventions
Numbers without annotation are decimal ----------------------------------------------- 1, 17, 23
Hexadecimal numbers are followed by an ‘h’------------------------------------------- 1Fh, FCh, 38h
Binary numbers are followed by a ‘b’ ---------------------------------------------------- 011b, 101b, 01110010b
Words in italics indicate terms defined by USB or by this specification ----------- bRequest, dCSWTag
2.2 Definitions
Command Block Wrapper (CBW)
A packet
containing a command block and associated information.
Command Status Wrapper (CSW)
A packet containing the status of a command block.
Data-In
Indicates a transfer of data IN from the device to the host.
Data-Out
Indicates a transfer of data OUT from the host to the device.
Device Request
Requests from the host to the device using the default pipe.
Phase Error
An error returned by the device indicating that the results of processing further CBWs will be
indeterminate until the device is reset.
Processed
Data received and controlled internally by the device to the point that the host need no longer be
concerned about it.
Relevant
The amount of the data sent to the host by the device that is significant.
Reset Recovery
An error recovery procedure by which the host prepares the device for further CBWs.
Thin Diagonal
Cases where the host and device are in complete agreement about the data transfer. See Chapter 6 -
Host/Device Data Transfers, for additional information regarding error cases and the "thin diagonal."
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 7 of 22
3 Functional Characteristics
3.1 Bulk-Only Mass Storage Reset (class-specific request)
This request is used to reset the mass storage device and its associated interface.
This class-specific request shall ready the device for the next CBW from the host.
The host shall send this request via the default pipe to the device. The device shall preserve the value of its bulk
data toggle bits and endpoint STALL conditions despite the Bulk-Only Mass Storage Reset.
The device shall NAK the status stage of the device request until the Bulk-Only Mass Storage Reset is complete.
To issue the Bulk-Only Mass Storage
Reset the host shall issue a device request on the default pipe of:
• bmRequestType: Class, Interface, host to device
• bRequest field set to 255 (FFh)
• wValue field set to 0
• wIndex field set to the interface number
• wLength field set to 0
Table 3.1 – Bulk-Only Mass Storage Reset
bmRequestType bRequest wValue wIndex wLength Data
00100001b 11111111b 0000h Interface 0000h none
3.2 Get Max LUN (class-specific request)
The device may implement several logical units that share common device characteristics. The host uses
bCBWLUN (see 5.1 Command Block Wrapper (CBW)) to designate which logical unit of the device is the
destination of the CBW. The Get Max LUN device request is used to determine the number of logical units
supported by the device. Logical Unit Numbers on the device shall be numbered contiguously starting from LUN
0 to a maximum LUN of 15 (Fh).
To issue a Get Max LUN device request, the host shall issue a device request on the default pipe of:
• bmRequestType: Class, Interface, device to host
• bRequest field set to 254 (FEh)
• wValue field set to 0
• wIndex field set to the interface number
• wLength field set to 1
Table 3.2 –Get Max LUN
bmRequestType bRequest wValue wIndex wLength Data
10100001b 11111110b 0000h Interface 0001h 1 byte
The device shall return one byte of data that contains the maximum LUN supported by the device. For example,
if the device supports four LUNs then the LUNs would be numbered from 0 to 3 and the return value would be
3. If no LUN is associated with the device, the value returned shall be 0. The host shall not send a command
block wrapper (CBW) to a non-existing LUN.
Devices that do not support multiple LUNs may STALL this command.
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 8 of 22
3.3 Host/Device Packet Transfer Order
The host shall send the CBW before the associated Data-Out, and the device shall send Data-In after the
associated CBW and before the associated CSW. The host may request Data-In or CSW before sending the
associated CBW.
If the dCBWDataTransferLength is zero, the device and the host shall transfer no data between the CBW and the
associated CSW.
3.4 Command Queuing
The host shall not transfer a CBW to the device until the host has received the CSW for any outstanding CBW.
If the host issues two consecutive CBWs without an intervening CSW or reset, the device response to the second
CBW is indeterminate.
3.5 Bi-Directional Command Protocol
This specification does not provide for bi-directional data transfer in a single command.
Revision 1.0
September 31, 1999
USB Mass Storage Class – Bulk Only Transport Page 9 of 22
4 Standard Descriptors
The device shall support the following standard USB descriptors:
• Device. Each USB device has one device descriptor (per USB Specification).
• Configuration. Each USB device has one default configuration descriptor, which supports at least one
interface.
• Interface. The device shall support at least one interface, known herein as the Bulk-Only Data
Interface. Some devices may support additional interfaces, to provide other capabilities.
• Endpoint. The device shall support the following endpoints, in addition to the default pipe that is
required of all USB devices:
(a) Bulk-In endpoint
(b) Bulk-Out endpoint
Some devices may support additional endpoints, to provide other capabilities. The host shall use the
first reported Bulk-In and Bulk-Out endpoints for the selected interface.
• String. The device shall supply a unique serial number as detailed in 4.1.1 - Serial Number.
This specification defines no class-specific descriptors.
The rest of this section describes the standard USB device, configuration, interface, endpoint, and string
descriptors for the d
本文档为【usbmassbulk_10_im】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。