SH7286 Group
USB Function Module: USB Mass Storage Class
R01AN0063EJ0100 Rev. 1.00
Page 5 of 32
Oct. 22, 2010
3. USB Mass Storage Class (Bulk-Only Transport) Overview
This chapter describes the USB Mass Storage Class (Bulk-Only Transport). Use this guide as the reference when you
develop the USB storage systems. For more information on the USB specifications, refer to (3) and (4) in 6 References.
3.1
USB Mass Storage Class
The USB Mass Storage Class is a USB protocol to read from or write data to a "mass storage" device which is
connected to a host computer.
To notify the host computer that the module is a mass storage class-compliant function, set H'08 in the bInterfaceClass
field of the Interface Descriptor. As a USB function module must notify the serial number to the host by the string
descriptor in USB Mass Storage Class, this sample program returns 000000000001 by Unicode.
To transfer data between the host computer and a function module, use one of the four transfer types (Control transfer,
bulk transfer, interrupt transfer, and isochronous transfer). The protocol code defines how to use these transfer types.
USB Mass Storage Class has two data transfer protocols:
•
USB Mass Storage Class Bulk-Only Transport
•
USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport
USB Mass Storage Class Bulk-Only Transport uses only Bulk transfer.
USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport uses control transfer, bulk transfer, and interrupt
transfer. CBI Transport divided into two data protocols, one that uses interrupt transfer, and one that does not use
interrupt transfer.
The sample program uses USB Mass Storage Class Bulk-Only Transport as its data transport protocol.
When the host computer uses a device to load or save data, the host computer transmits instructions (commands) to the
USB function. The USB function can load or save data by executing the commands which are transmitted from the host
computer. Commands from the host computer to the function are defined as Subclass codes.
3.2 Subclass
Codes
Subclass codes indicate the command formats which are transmitted from the host computer to the function. There are 7
commands formats, and Subclass codes are defined as shown in Table 2.
Table 2 Subclass Codes
Subclass Codes
Command Block Specifications
H'01
Reduced Block Commands (RBC), T10/1240-D
H'02
Attachment Packet Interface (ATAPI) for CD-ROMS, SFF-8020i, Multi-Media
Command Set 2 (MMC-2)
H'03
Attachment Packet Interface (ATAPI) for Tape, QIC-157
H'04
USB Mass Storage Class UFI Command Specification
H'05
Attachment Packet Interface (ATAPI) for Floppies, SFF-8070i
H'06
SCSI Primary Commands-2 (SPC-2), Revision 3 or later
To notify the command format supported by the mass storage device to the host computer, describe the Subclass code in
the bInterfaceSubClass field of the Interface Descriptor.
This sample program uses H'06 SCSI Primary Commands.