2.1.2. USB MSC的各个协议之间关系总结

为了说明清楚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各个协议之间的关系,显得更加直观:

图 2.7. USB Storage Class Protocol Relation

USB Storage Class Protocol Relation


如上图,我们U盘实现的功能,主要就是数据的读写,而Device和Host之间的数据通信,主要有两种:

  1. CBI:主要用于Floppy设备,所以新的设备,都很少用此协议
  2. BOT:Bulk-Only Transport,也称BBB(Bulk/Bulk/Bulk),

而对于BOT/BBB来说,对其提高USB总线利用率,提高了USB速度后,就是对应的UASP协议,故此处称UASP为BOT的增强版的协议。

协议方面说完了,再来看看USB Device这一端。

而USB的Device端,根据内部数据存储的介质类型不同,又分两种:

  1. 一种是Floppy设备,对应用的是UFI Command Set;
  2. 而另外一种,就是我们常见的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)

【总结】

至此,各个协议和规范之间的关系,就很容易理解了。上面这么多协议中,其中我们所要关心的,只有三个规范,如前面的图中,已经用星号标识出来了:

  1. 最需要关心的是BOT,即Host和Device间数据通讯的协议

    ★★★ ②USB Mass Storage Class Bulk-Only (BBB) Transport

  2. 其次,需要关心USB Device内部和数据存储介质之间通信的协议

    ★★ SCSI - Small Computer System Interface

  3. 最后,对于,如果要实现更好的性能,那么需要关心BOT的升级版

    ★⑦USB Mass Storage Class USB Attached SCSI Protocol (UASP)