Wishing you all a Happy and Prosperous New Year 2009


Nov 6, 2008

USB Mass Storage Device Class (MSD) [Or] The "Flash Drive, MP3 Player, External USB Hard Drive, Digital Camera" Class

1. USB Mass Storage Device (MSD) Class - Introduction

After HID Class MSD (Mass Storage Device) Class is the most celebrated device class out of all the USB Device Classes. Unlike HID class it is really not used for many different kinds of applications. It's sole purpose of existance is to connect a device to the PC as if the device is a Disk Drive. Thus the name Mass Storage Device Class.

Most popular examples of devices based on Mass Storage Device Class are:

* external magnetic hard drives
* external optical drives, including CD and DVD reader and writer drives
* portable flash memory devices
* adapters bridging between standard flash memory cards and a USB connection
* digital cameras
* various digital audio players & portable media players
* Card readers
* Portable Gaming systems (Nokia N-GAGE/Sony PSP)
* personal data assistants and handheld computers
* some newer mobile phones, like Sony Ericsson K800 and K510, Nokia N73, Nokia E61

Two books that covers MSD to the core are USB Complete and USB Mass Storage .

2. Benefits of using MSD device in your application

Mass Storage Devices are almost supported by all existing operating systems. For Windows 95, the MSD device used to come with it's own Windows 95 driver, as Microsoft did not produce any Generice USB MSD driver by then. Similar case with Windows 98 too. Almost all versions of Microsoft Windows starting from Windows 98 SE, and all most all Linux variants, latest MaxOS versions give good support to Mass Storage Device Class. What it means to you as an USB device developer is, you don't have put effort on developing OS specific device drivers. These device drivers are already available for your use. The only catch is when you design and develop a Mass Storage Device hardware/firmware you are essentially developing a device that will be viewed by the host computer as a Disk Drive. And that is what you need to remember.

Windows Mobile supports accessing of the most USB mass storage devices formatted with FAT on devices with USB Host. Also note that there is no native support for Mass Storage Devices in Windows NT.


3. How to interact with any MSD device on Windows

The USB mass storage specification does not require any particular file system to be used on MSD devices. Instead, it provides a simple interface to read and write sectors of data—much like the low-level interface used to access any hard drive—using the "SCSI transparent command set." Operating systems may treat the USB drive like a hard drive, and can format it with any file system they like.

But if you want to provide additional File System support then, MSD device need to implement a File Syetem on top of the firmware. Some standard file systems are NTFS, FAT, FAT32 etc..

Once you are have your MSD firmware stack ready, and your device is viewed as MSD device by the OS, and you can access the MSD device from your application like access any other file system. You can create files, directories, format the drive and do all sorts of things that you can do with a file system.

4. How to Initialize any MSD device on Linux

The following articles will provide better understanding on MSD on Linux.
These articles explain how Mass Storage Devices can be initialized in Linux, what are Linux commands need to use called etc...

No comments: