为了说明清楚USB Mass Storage各个协议的关系,我们先给这些协议编个号:
①USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport
②USB Mass Storage Class Bulk-Only (BBB) Transport
③USB Mass Storage Class Universal Floppy Interface (UFI) Command Specification
④USB Mass Storage Class Bootability Specification
⑤USB Mass Storage Class Compliance Test Specification
⑥USB Lockable Storage Devices Feature Specification (LSD FS)
⑦USB Mass Storage Class USB Attached SCSI Protocol (UASP)
直接用图来表示USB MSC各个协议之间的关系,显得更加直观:
如上图,我们U盘实现的功能,主要就是数据的读写,而Device和Host之间的数据通信,主要有两种:
- CBI:主要用于Floppy设备,所以新的设备,都很少用此协议
- BOT:Bulk-Only Transport,也称BBB(Bulk/Bulk/Bulk),
而对于BOT/BBB来说,对其提高USB总线利用率,提高了USB速度后,就是对应的UASP协议,故此处称UASP为BOT的增强版的协议。
协议方面说完了,再来看看USB Device这一端。
而USB的Device端,根据内部数据存储的介质类型不同,又分两种:
- 一种是Floppy设备,对应用的是UFI Command Set;
- 而另外一种,就是我们常见的Flash Memory,对应的是用SCSI Command Set。
而SCSI协议,本身就是有的了,所以不是属于USB MSC协议范畴,即SCSI只是和USB MSC相关的协议。
同样的,对于USB Device本身,如果需要一些用到其他的特性,比如可启动性,兼容性,可锁定性等等,那么分别对应的规范是
④USB Mass Storage Class Bootability Specification
⑤USB Mass Storage Class Compliance Test Specification
⑥USB Lockable Storage Devices Feature Specification (LSD FS)
【总结】
至此,各个协议和规范之间的关系,就很容易理解了。上面这么多协议中,其中我们所要关心的,只有三个规范,如前面的图中,已经用星号标识出来了:
最需要关心的是BOT,即Host和Device间数据通讯的协议
★★★ ②USB Mass Storage Class Bulk-Only (BBB) Transport
其次,需要关心USB Device内部和数据存储介质之间通信的协议
★★ SCSI - Small Computer System Interface
最后,对于,如果要实现更好的性能,那么需要关心BOT的升级版
★⑦USB Mass Storage Class USB Attached SCSI Protocol (UASP)