USB Mass Storage

Overview
The Universal Serial Bus (USB) is a communications architecture that gives a PC the ability to interconnect a variety of devices via a simple four-wire cable. The USB is actually a two-wire serial communication link that runs at 1.5, 12, or 480 megabits (Mbs) per second. USB protocols can configure devices at startup or when they are plugged in at run time.
Devices in a given class can be broken into subclasses. These divisions allow software to search the bus and select all of the devices that it can control. Each device can have one or more configurations that define how the device functions. A device that can function in several different ways will have a configuration for each function. A configuration is a collection of interfaces. An interface specifies which hardware in the device will interact with the USB. Each of these pieces of hardware is called an endpoint. Therefore, an interface is a collection of endpoints (for each alternate setting of the interface). The USB Device Class Definitions define the default configurations, interfaces, alternate settings, and endpoints that a device in a given class or subclass should provide.

Spec
A Mass Storage USB Class/Function Driver is a USB class/function driver that supports the USB Mass Storage Class Specification.
This specification addresses the Control/Bulk/Interrupt (CBI) architecture, in which the Control, Bulk In/Out and Interrupt endpoints are used for communication between the host stacks and device stacks . That is, the Control endpoint is used to transport command blocks to the device via a class-specific request, as well as to transport standard USB requests. The Bulk In and Bulk Out endpoints are used to transport data between the host and the device. The Interrupt endpoint is used to signal command completion. The host and mass storage devices communicate over the USB using the protocols described by this specification. These protocols are based on the command/data/status style of communication. That is, the protocols transport command blocks from the host to the device; transport data between the host and device; transport “status” of the command block from the device to the host; and allow the host to reset the device. Mass storage devices shall accept two types of resets and three types of command blocks. The two types of resets are: The three types of command blocks are: The three types of command blocks, with their respective protocols, including status and error reporting, are covered below. The host decides which protocol to try. The device then decides whether to cooperate. The “status” of a command block is given by the device and is one of In-Progress, Passed, or Failed. This specification does not define how the device responds if the host fails to comply with the requirements of this specification (often expressed using the phrase “ the host shall…” ). A host that discovers it has violated protocol inadvertently should reset the device.

Implementation
The Mass Storage USB Class Driver supports the host-side communication with mass storage USB peripherals, while the Mass Storage USB Function Driver provides the required device-side USB mass storage implementation for such peripherals.
Mass Storage
The USB Mass Storage device Class Working Group is open to any DWG members and addresses issues related to using hard drives, flash media, optical devices and other types of mass storage devices over the Universal Serial Bus.
Lockable Mass Storage
Lockable Mass Storage is tasked with creating a specification that allows users to lock their mass storage device so that the data stored on it will not be vulnerable in the event the device is lost or stolen. This feature specification extends the USB Mass Storage class to allow hosts and devices to lock and unlock storage, without breaking the legacy host behavior that exists today and without resorting to vendor-specific descriptors and requests. DWG Members may join this group only after executing the IP Agreement corresponding to the specification under development by this group.
Mass Storage Compliance Test
Mass Storage Compliance is an open sub-group of the Mass Storage Working Group and handles distribution of and feedback concerning the Mass Storage Compliance testing software integrated into USBCV. Engineering releases of the Compliance Test software will be available here for testing before public release. Interim releases and enhancements may also be available here between public releases. Note that these non-public releases are subject to their own license agreement. The license agreement is provided as part of the . zip file containing the software. Be sure to read the terms of that agreement. The sub-group mailing list can be used for feedback and technical questions regarding the software, and discussion of how the software implements the Compliance Test specification, as well as discussion of the specification itself.

Resources
The USB mass storage device class is a set of computing communications protocols defined by the USB Implementers Forum that run on the Universal Serial Bus. The standard provides an interface to a variety of storage devices.


For further details and to contribute information relevant to our website, please Contact us