usb开发笔记1-Bulk-Only传输协议

usb开发笔记1-Bulk-Only传输协议
U盘应属于海量存储类。
USB海量存储设备⼜包括通⽤海量存储⼦类,CDROM,Tape等,U盘实际上属于海量存储类中通⽤海量存储⼦类。通⽤海量存储设备实现上是基于块/扇区存储的设备。
奶浆柴胡USB组织定义了海量存储设备类的规范,这个类规范包括4个独⽴的⼦类规范。主要是指USB总线上的传输⽅法与存储介质的操作命令
海量存储设备只⽀持⼀个接⼝,即数据接⼝,此接⼝有三个端点Bulk input ,Bulk output,中断端点
这种设备的接⼝采⽤SCSI-2的直接存取设备协议,USB设备上的介质使⽤与SCSI-2以相同的逻辑块⽅式寻址
烤花炉⼆、 Bulk-Only传输协议
翻罐笼
当⼀个U盘插⼊主机以后,主机会要求USB设备传回它们的描述符,当主机得到这些描述符后,即完成了设备的配置。识别出USB设备是⼀个⽀持Bulk-Only传输协议的海量存储设备。这时应可进⾏Bulk-Only传输⽅式。在此⽅式下USB与设备之间的数据传输在这种传输⽅式下,有三种类型数据在USB和设
备传送,它们是命令块包(CBW),命令执⾏状态包(CSW)和普通数据包。CBW是主机发往设备的命令。格式如下:
隔离dcdc电源其中dCBWSignature的值为43425355h,表⽰当前发送的是⼀个CBW。
DCBWDataTransferLength:表⽰这次CBW要传送数据长度。
BmCBWFlags:表⽰本次CBW是读数据还是写数所生态浮床
BBWCBLength:表⽰命令的长度。
CBWCB:表⽰本次命令内容。也即是SCSI命令。
当设备从主机收到CBW块以后,它会把SCSI命令从CBW中分离出来,然后根据要求执⾏,执⾏的结果⼜以CSW的形式发给主机。
CSW的格式如下:
钢管在线其中dCSWSignature的值为53425355h,表⽰当前发送的是⼀个CSW。
DCSWTag:必须和CBW中dCBWTag⼀样。
DCSWDataResidue:还要传送的数据。
BCSWStatue:命令执⾏状态,命令正确执⾏时,为0。
三、 SCSI命令集
在Bulk-Only的命令块包(CBW)中,有⼀段CBECB内容,它就是SCSI命令块描述符。其内容如下:
Operation Code:是SCSI命令操作代码。
Logical Block Address:逻辑块地址,对U盘⽽⾔应是扇区。前⾯已经讲过:通⽤海量存储设备是⼀个基于块/扇区存储的设备,因此在SCSI中要提供这个参数是很显然的。
transfer length:为要传送的扇区数
SCSI中直接存取类型的存储介质的传输命令有很多,如:
INQUIRY:其操作码为12H
Test Unit Ready:其操作码为00H
Format Unit:其操作码为04H
.......

本文发布于:2024-09-22 14:25:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/128832.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   海量   命令   存储设备
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议