Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3
minLevel2
indent20px

Overview

Figure - MSC Architecture shows the general architecture of a USB Host and a USB MSC Device.

Anchor
Figure - MSC Architecture
Figure - MSC Architecture

Panel
borderWidth0
titleFigure - MSC Architecture

MSC ArchitectureImage Added


On the host side, the application communicates with the MSC device by interacting with the native mass storage drivers and SCSI drivers. In compliance with the BOT specification, the host utilizes the default control endpoint to enumerate the device and the Bulk IN/OUT endpoints to communicate with the device.

...

The storage layer shown in  is Figure - MSC Architecture is the interface between the MSC and the storage medium. The storage layer is responsible for initializing the storage medium, performing read / write operations on it, as well as obtaining information regarding its capacity and status. The storage medium could be:

...

By default, Micrium will provide a storage layer implementation (named RAMDisk) by utilizing the hardware’s platform memory as storage medium. Aside from this implementation, you have the option to use Micrium’s µC/FS or even utilize your own file system referred as vendor-specific file system storage layer. In the event you use your own file system, you will need to create a storage layer port to communicate with the storage medium. Please refer to the Porting MSC to a Storage Layer page to learn how to implement this storage layer.

shows Figure - µC/FS Storage layer shows how the µC/FS storage layer interfaces with µC/FS.

Anchor
Figure - µC/FS Storage layer
Figure - µC/FS Storage layer

Panel
borderWidth0
titleFigure - µC/FS Storage layer

Image Added


µC/FS storage layer implementation has two main characteristics:

...

The MSC class supports multiple logical units. A logical unit designates usually an entire media type or a partition within the same media type.  illustrates Figure - Example of Logical Units Configurations illustrates the different multiple logical units configurations supported.

Anchor
Figure - Example of Logical Units Configurations
Figure - Example of Logical Units Configurations

Panel
borderWidth0
titleFigure - Example of Logical Units Configurations

Example of Logical Units ConfigurationsImage Added


Panel
bgColor#f0f0f0

(1) Configuration #1 is an example of single logical unit. The whole RAM region represents one unique logical unit. This configuration is a typical example of USB memory sticks. When the device is connected to a host, this one will display a media icon.

(2) Configuration #2 is an example of multiple logical units within the same media. Each logical unit could be seen as a partition. This configuration is a typical example of USB external hard drive. When the device is connected to the host, this one will display three media icons.

(3) Configuration #3 is an example of multiple logical units of different type. This configuration a a typical example of multi-card reader.


Configurations #1 and #2 are supported by the RAMDisk storage layer. Configurations #1 and #3 are supported by the µC/FS storage layer. The configuration #2 is currently not supported by the µC/FS storage layer.

...