USBMassStorage协议

更新时间:2023-06-26 15:40:11 阅读: 评论:0

USBMassStorage协议
简介
USB Mass storage Device协议即海量存储设备协议适⽤于硬盘,U盘等⼤容量存储设备。协议使⽤的接⼝端点有BulkIn、BulkOut和Interrupt端点。该设备类⼜包含6个独⽴的⼦类以及3种传输协议。
bInterfaceSubClass命令集描述
01h RBC 通常,FlashDevice使⽤RBC,事实上所有⼤容量存储设备都可使⽤RBC
02h SFF-8020i,MMC-
2(ATAPI)
适⽤硬盘,C/DVD
03h QIC-157适⽤磁盘
04h UFI适⽤软盘
05h SFF-8070i适⽤移动存储设备
06h SCSI ⽬前绝⼤多数USB Mass Storage设备都使⽤SCSI指令集
bInterfaceProtocol协议实现描述
00h Control/Bulk/Interrupt protocol(含命令完
成中断)理财之道
USB海量存储类CBI传输,只适
⽤于全速
01h Control/Bulk/Interrupt protocol(不含命令
完成中断)
USB海量存储类CBI传输,只适
⽤于全速
50h Bulk-Only传输Bulk-Only传输
本⽂仅介绍SCSI⼦类下Bulk-Only的传输协议,我们⼿中的U盘就是遵循SCSI协议的。要知道U盘不仅仅是USB设备,它还是⼀种存储设备,类似硬盘,USB协议本⾝没有定义对存储设备操作的指令,所以需要通过SCSI来完成读写等操作。关于此类设备的描述符不再赘述,需要注意的是在interface描述符中:
bInterfaceClass = 0x08
bInterfaceSubClass = 0x06
bInterfaceProtocol = 0x50
画二次元人物教程指令、数据和状态协议
CBW指令格式
CBW(Command Block Wrapper)的长度为31个字节,具体定义如下图:
dCBWSignature:
CBW的标识,固定值:43425355h (little endian)。
dCBWTag:
主机发送的⼀个命令块标识,设备需要原样作为dCSWTag(CSW中的⼀部分)再发送给Host;主要⽤于关联CSW到对应的CBW。
dCBWDataTransferLength:
本次CBW命令要求在命令与回应之间传输的字节数。如果为0,则不传输数据。
bmCBWFlags:
u盘怎么加密码反映数据传输的⽅向,0x00 表⽰来⾃Host,0x80 表⽰发⾄Host;
bCBWLUN:
对于有多个LUN逻辑单元的设备,⽤来选择具体⽬标。如果没有多个LUN,则写0。
bCBWCBLength:
命令的长度,范围在0~16.
CBWCB:
传输的具体命令,符合bInterfaceSubClass.中定义的命令规范,此处是SCSI指令集
CSW(Command Status Wrapper)状态格式
CSW的长度为13个字节,是对应CBW指令的状态返回,它指⽰了上⼀条指令执⾏是否成功,具体定义如下:
dCSWSignature:
CSW的标识,固定值:53425355h (little endian)
dCSWTag:
设置这个标识和CBW中的dCBWTag⼀致,参照上⾯关于dCBWTag的解释
dCSWDataResidue:
还需要传送的数据,此数据根据dCBWDataTransferLength-本次已经传送的数据得到
bCSWStatus:
指⽰命令的执⾏状态。如果命令正确执⾏,bCSWStatus 返回0 ,不正确返回1,pha错返回2(当HOST收到此错误时需要对Device复位)
SCSI命令集
04H Format Unit:格式化存储设备
12H Inquiry:获取设备信息
55H Mode Select:HOST⽤来设置外设参数
5AH Mode Sen:返回参数
28H/A8H Read(10)/Read(12):从设备读取数据
25H Read Capacity:读取设备容量
23H Read Format Capacity:读取当前设备容量和可格式化的容量
1EH Prevent/Allow Medium Removal:写保护
03H Request Sen:获取状态信息
2BH Seek(10):为设备分配地址
1DH Send Diagnostic:硬件复位并执⾏诊断
00H Test Unit Ready:查询设备是否ready
2AH/AA Write(10)/Write(12):写数据到存储设备
2EH Write and Verify:写数据到存储设备并校验
Format Unit
Bit
76543210
Byte
004H
1LUN FmtData CmpList Defect List Format
2Vendor-specific
3Interleave (MSB)
4Interleave (LSB)
Bit Byte
7
6
5
43
2
1
0Rerved
1FOV
Extend(0)
DCRT(1)
SingleTrack
Rerved
Immediate
Side
2Defect List Length (MSB) (0)3Defect List Length (LSB) (8)
4—7MSB                        Number of Blocks
心的笔顺怎么写8Rerved
9—11MSB                        Block Length 5—6保留
7Parameter List Length (MSB)8Parameter List Length (LSB)
Interleave:默认为0,对于USB-FDU 此值为1
Parameter List Length:参数列表长度,典型值为12bytes,Host 发出Format 命令后紧接着发参数 Parameter List
FOV:当DCRT或Immediate置1时,此位也须置1DCRT:置1表⽰⽆需对盘符进⾏认证,须置1
SingleTrack:置1表⽰只对指定Format Unit命令指定的Track格式化Immediate:置1时,device必须⽴刻返回状态信息,不⽀持UFI设备Side:对SingleTrack有效,置1从顶部开始格式化,置0从底部开始格式化
注意:Number of Block和Block Length的值要与Read Format Capacity的返回相匹配 Inquiry
Bit Byte
7
6
5
4
3
2
1
012H
1LUN
Rerved
EVPD(0)
2Page Code 3Rerved
4MSB                        Allocation Length
5—11
Rerved
Page Code:需要查询的页码,对于UFI 设备仅⽀持00H Allocation Length :定义了需要查询和返回的最⼤字节数
标准INQUIRY返回数据
Bit
Byte76543210
0Rerved Peripheral Device Type
1RMB Rerved
2ISO Version(00h)ECMA Version(00h)ANSI Version (00h)
3Rerved Respon Data Format
4Additional Length (31)
5—7Rerved
8—15Vendor Information
16—31Product Identification
32—35Product Revision Level
Peripheral Device Type:标识当前连接逻辑单元的类型,00H为直接存储设备,05H为光盘
RMB(Removable Media Bit):置1表⽰是可移除设备
Respon Data Format:UFI设备置1
Additional Length:参数长度,UFI设备此值为1FH
MODE SELECT
Bit
76543210 Byte
055H
1LUN PF Rerved SP
2—6Rerved
7—8MSB                      Parameter List Length
9—11Rerved
PF:UFI设备置1
质数合数
SP(Save Pages):UFI设备不⽀持
Parameter List Length:参数长度
MODE SENSE
Bit
76543210
Byte
05AH
1LUN Rerved DBD Rerved
2PC Page Code
3—6Rerved
7—8MSB                      Parameter List Length
9—11Rerved
DBD - Disable Block Descriptors - if "1" then the target must not return any block descriptors PC - Page control -
00 - return current values
01 - return changeable values
参观的近义词
10 - return default values
关于让的故事
11 - return saved values
Page Code - 参考
PREVENT-ALLOW MEDIUM REMOVAL
Bit
Byte 76543210
01EH
1LUN Rerved
2-3Rerved
4Rerved Prevent
5-11Rerved
Prevent:置1表⽰禁⽌移除设备
READ(10)
Bit
76543210
Byte
028H
1LUN DPO(0)FUA(0)Rerved RelAdr(0)
2-5Logical Block Address
6Rerved
7—8MSB                      Transfer Length
9—11Rerved
READ(12) A8H的Transfer Length为32位,从6-9字节
READ CAPACITY
Bit
76543210 Byte
025H
1LUN Rerved RelAdr(0)
2-5Logical Block Address(0)
6-7Rerved
8                    Rerved  PMI(0)
9—11Rerved
此命令返回8个字节,0-3表⽰最后⼀个逻辑块的地址,4-7表⽰每个逻辑块的长度
READ FORMAT CAPACITIES
Bit
76543210
Byte
023H
1LUN Rerved
2-6Rerved
7-8Allocation Length
9-11Rerved
Allocation Length:定义了HOST能够接收的最⼤格式化数据长度
REQUEST SENSE
Bitofo退押金
76543210
Byte

本文发布于:2023-06-26 15:40:11,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1044721.html

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

标签:设备   命令   需要   协议   存储设备   数据   定义   指令
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图