Mass-Storage Class †
Mass-Storage Class は、USB 上で様々な Storage (FDD, HDD, CD-R,...)
を制御するために定義された仕様です。
- OS 標準マスストレージドライバの存在
最近、流行っている USB メモリーは、Storage Class に基づいて作成されています。Mass Storage Class に従うことにより独自にドライバをインストールすることなく、多くの OS で自動的に認識・動作させることが可能です。USB Mass Storage Class に従ってハードウェアを作成する限り、ドライバを独自に新規作成することなく多くの動作実績を積んだ OS 標準ドライバが使用出来るのは大きなメリットです。
- ATAPI/SCSI のラッパー(埋め込み)
USB Mass Storage Class の仕様の殆どは従来から存在する ATA/ATAPI/SCSI コマンドのラッパーとして動作します。ハードウェア側は ATAPI-USB Bridge や SCSI-USB Bridge チップを咬ますことで従来の Storage 機器を容易に USB 対応機器にすることが可能です。ソフトウェア側は、USB Mass Storage Class でラッピングされたコマンドを ATA/ATAPI/SCSI コマンドに復元することで従来から実績のある ATA/ATAPI/SCSI ドライバをそのまま使用することが可能です。
- 転送方式は 2 通り
Bulk-Only 転送と CBI (Control/Bulk/Interrupt) 転送の 2 通り存在します。話によると Bulk-Only 転送は SCSI コマンドのラッパーとして考案され、CBI は ATAPI コマンドのラッパーとして考案されたそうです。この辺の事情については BSD Magazine No.07 の記事「USB デバイスドライバプログラミング 第6回 umass」が詳しいです。
Class Information †
各 Device Class 仕様書 (USB.org) で公開されている Mass Storage Overview 1.2*1を参考にしました。
Descriptor | 値(16) | 詳細 |
bInterfaceClass | 0x8 | Mass-Storage Class |
bInterfaceSubClass | 0x1 | Reduced Block Commands (RBC) T10 Project 1240-D*2 |
0x2 | SFF-8020i,MMC-2 (ATAPI) |
0x3 | QIC-157*3 |
0x4 | UFI*4 |
0x5 | SFF-8070i*5 |
0x6 | SCSI transparent command set |
bInterfaceProtocol | 0x0 | CBI (with command completion interrupt) |
0x1 | CBI (with no command completion interrupt) |
0x50 | Bulk-Only Transport |
複数 LUN (Multiple Logical Unit Number) †
複数 LUN は、1台の USB 機器で同時に複数のメディアをサポートする場合に用いられています。
関連情報 †
用語 †
特集記事 †
OS 対応 †
Firmware †
Tips †
News †
- ワイ・イー・データとティアックが、USBを使ったFDD規格を発表 (PC Watch, 98.02.24)
UFI(USB Floppy Disk Interface) は Y-E DATA と TEAC が中心となって規格したものだったのですよ。仕様書にも記載があります。しばらく USB FDD は Y-E DATA 製 OEM が続くことになります。
実際の所、UFI は SCSI FDD のラッパーのようです。