USB大容量存储BOT
+ -

BOT 简介 Bulk-Only Transport

2021-09-26 4850 5

BOT全称Universal Serial BusMass Storage ClassBulk-Only Transport(Bulk-Only Transport),是USB大容量数据存储的基础协议。
BOT协议用于主机和USB设备之间进行大容量数据传输。对于USB主机来说,USB设备外部硬盘驱动器。

BOT协议应用

通过BOT协议连接到计算机的设备包括:

  • 外置磁性硬盘
  • 外置光驱,包括CD和DVD读写器驱动器
  • 便携式闪存 设备
  • 固态硬盘
  • 标准闪存卡和 USB 连接之间的适配器
  • 数码相机
  • 数字音频和便携式媒体播放器
  • 读卡器
  • 掌上电脑
  • 手机
  • 支持该标准的设备称为 MSC(大容量存储类)设备。MSC是最初的缩写,UMS(Universal Mass Storage)也开始普遍使用。

BOT版本

  • BOT协议的当前版本为V1.0
  • BOT协议发布于1999年。

BOT协议的组成

USB 组织在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定义了海量存储设备类(Mass Storage Class)的规范,这个类规范包括四个
独立的子类规范,即:

  1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport
  2. USB Mass Storage Class Bulk-Only Transport
  3. USB Mass Storage Class ATA Command Block
  4. USB Mass Storage Class UFI Command Specification

前两个子规范定义了数据/命令/状态在USB 上的传输方法。Bulk- Only 传输规范仅仅使用Bulk 端点传送数据/命令/状态,CBI 传输规范则使用Control/Bulk/Interrupt 三种类型的端点进行数据/命令/状态传送。
后两个子规范则定义了存储介质的操作命令。ATA 命令规范用于硬盘,UFI 命令规范是针对USB 移动存储。

BOT协议的支持

  • Microsoft Windows 从 Windows 2000 开始支持。
  • Apple Computer的Mac OS 9和macOS支持
  • 在Linux内核自2.4系列(2001年)已经支持
  • MS-DOS和大多数兼容的操作系统都不支持 USB。第三方通用驱动程序,如 Duse、USBASPI 和 DOSUSB,可用于支持 USB 大容量存储设备。FreeDOS支持将 USB 大容量存储作为高级 SCSI 编程接口(ASPI) 接口

BOT协议的意义

USB 大容量存储规范提供了许多行业标准命令集的接口,允许设备公开其子类。实际上,几乎不支持通过其子类指定命令集;大多数驱动程序只支持SCSI 透明命令集,用它们的SCSI 外围设备类型(PDT)指定它们的 SCSI 命令集子集。子类代码指定以下命令集:

  • 减少块命令 (RBC)
  • SFF -8020i、MMC -2(用于 ATAPI 风格的 CD 和 DVD 驱动器)
  • QIC -157(磁带机)
  • 统一软盘接口(UFI)
  • SFF-8070i(由 ARMD 风格的设备使用)
  • SCSI 透明命令集(使用“查询”获取 PDT)

该规范不要求符合设备的特定文件系统。基于指定的命令集和任何子集,它提供了一种读取和写入数据扇区的方法(类似于用于访问硬盘驱动器的低级接口)。操作系统可能会将 USB 大容量存储设备视为硬盘驱动器;用户可以以任何格式(如MBR和GPT)对其进行分区,并使用任何文件系统对其进行格式化。

由于其相对简单,嵌入式设备(如USB 闪存驱动器、相机或数字音频播放器)上最常见的文件系统是 Microsoft 的FAT或FAT32文件系统(可选支持长文件名)。大型、基于 USB 的硬盘可能会使用NTFS进行格式化,而后者(Windows 除外)的支持较少。然而,密钥驱动器或其他设备可以与另一个文件系统(格式化HFS再加上苹果的Macintosh,或的Ext2上的Linux或UNIX文件系统上的Solaris或 BSD)。这种选择可能会限制(或阻止)使用不同操作系统的设备对设备内容的访问。依赖于操作系统的存储选项包括LVM、分区表和软件加密。

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

BOT传输协议和UASP传输协议有什么区别?
BOT传输协议BOT (Bulk-Only Transport),诞生于1999年,专为USB 1.1所设计,至今最快的USB 3.1都可向下兼容这个基本的BOT传输协议。在传输资料作业开始时,外接USB 3.0设备与电脑主板(USB 3.0扩展卡)之间,在同一时间单位内,每次只传输单一指令,所以速......
BOT 简介
BOT全称Universal Serial BusMass Storage ClassBulk-Only Transport(Bulk-Only Transport),是USB大容量数据存储的基础协议。BOT协议用于主机和USB设备之间进行大容量数据传输。对于USB主机来说,USB设备外部硬盘驱动器......
BOT 数据传输过程
按照USB规范,Bulk-Only 传输规范是系统也是通过默认管道(地址0 、端点 0 )进行枚举,枚举后重新分配地址,再次枚举。枚举后,实际工作仅仅使用批量( Bulk )端点传送数据 / 命令 / 状态,批量传输方式不受时间限制并能保证数据的完整性。在取得的端点描述符中包含了 Bulk-In 和......
BOT 设备描述符及布局
Bulk-Only Transport即存储设备和其它的普通设备类似,也有一些通用的描述符,如设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符。BOT大容量存储设备没有其它特殊的描述符。一个标准的USB支持BOT的大容量设备描述符布局如下:设备描述符BOT大容量存储设备类型是接......
BOT 命令块包CBW
CBW即Command Block Wrapper,命令块包)是从 USB 主机发送到设备的命令包,它由 31 个字节构成,其中包含的命令遵从接口描述表中的 bInterfaceSubClass 域所指定的命令集,一般采用 SCSI 传输命令集。 USB 设备从 CBW 中取出并执行相应命令,......
BOT 命令状态包CSW
CSW 应从包的边界开始,在传输了 13 个字节以后结束, CSW 的说明如下表:struct CSW{ DWORD dCSWSignature; // CSW的标识,固定值:53425355h (小端模式) DWORD dCSWTag; //主机发送的一个命令块标......
BOT CBW和CSW数据例解析
读写数据抓包USB传输中:每一个传输包含一笔或多笔事务,每一笔事务又包含一个、两个或三个信息包。事务:Setup(设置)事务、IN(输入)事务、OUT(输出)事务信息包:令牌信息包、数据信息包、联络信息包传输|——>事务——>令牌信息包+数据信息包+联络信息包|——>事务——&......
BOT MASS_STORAGE_RESET
Bulk-Only Mass Storage Reset类特定请求是USB大容量存储设备独有的。 该特定类请求的功能用于复位大容量存储设备和与之关联的接口。通知设备接下来的批量端点输出数据为命令块包(CBW)。由于该请求是控制请求,所以是通过端点0发送的。在设备完成该请求即复位之前,设备应......
BOT GET_MAX_LUN
GET_MAX_LUN特定类请求用于获取最大逻辑单元。GET_MAX_LUN是:控制请求,通过端点0来发送。主机发送组设备,设备返回1字节数据。发送的目标对象是接口。bmRequestTypebRequestwValuewIndexwLengthData1010000......
BOT CBW和CSW的校验
Bulk-Only Protocol传输是通过主机向设备发送CBW请求,设备响应CBW返回CSW响应。Bulk-Only Protocol传输开始是从设备复位(MASS_STORAGE_RESET)之后开始的,设备在接收到CBW请求和主机收到CSW回应后,是需要对CBW和CSW进行拆包解析。CBW......
UASP(USB Attached SCSI Protocol)简介
UASP全称USB Attached SCSI Protocol,中文译名USB附加SCSI协议。 UAS是一种计算机协议,用于将数据从USB存储设备写入和读出,例如硬盘驱动器(HDD)、固态驱动器(SSD) 和拇指驱动器。UAS 依赖于 USB 协议,并使用标准的SCSI命令集。与较旧的USB ......
USB 3.0 支持UASP什么作用
USB 3.0 在数据量较多且零碎传输时,效能的表现会较差,主要原因是在于传输技术所造成的状况。USB 采用半双工传输模式与BOT (Bluk Only Transfer) 传输协议,半双工传输模式就像是再讲对讲机一样,一方说完另一方才能继续对话,也就是说资料的传输方向仅有单向传输功能。BOT ......
U盘BOT存储UFI协议INQUIRY命令说明及实例分析
INQUIRY定义为0x12,用于查询USB存储即U盘的基本信息,这些信息包括厂家信息,产品信息及产品版本号等。INQUIRY流程图INQUIRY命令通过BULK传输的OUT端点下发给设备,设备需要先返回基本的INQUIRY信息,再返回CSW状态。INQUIRY命令格式LUN :被设置为 0......
Windows10 x64基于BOT规范虚拟U盘调试批量端点返回CSW的问题
虚拟了这么多的USB设备,突然想着U盘还没有弄,那就搞一个吧。就当是为了自己学习,没准那天突然有这样的需求。所以说干就干。我们知道,虚拟U盘其实是两套规范的,一种是传统的BOT协议,另一种是UASP的。这里为了兼容性,也是为了学习方便,我们使用BOT规范来虚拟一个标准的U盘。通过UsbTree......
USB存储BOT规范UFI命令大全
命令描述代码配对USB数据流对应章节FORMAT UNIT04houtputsection 4.1 on page 16INQUIRY12hinputsection 4.2 on page 19MODE SELECT55houtputsection......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!