


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
USB固件开发(Mass Storage设备)/u3/98810/showart_1988886.htmlMass Storage设备,即大容量存储设备,最典型的莫过于U盘了,而U盘一般以Bulk Only传输方式实现。1、USB Mass Storage设备的描述符及枚举过程描述符就是对应标准请求的那些描述符,与HID设备不同,Mass Storage设备没有自己的类描述符。描述符在USB Mass Storage Class Bulk-Only Transport文档中有详细的一对一的描述。所以此处不再赘述,仅举一例:(设备描述符略,通用定义,与设备类无关)(配置描述符略,通用定义,与设备类无关)_Interface_Descriptor: .dw 0x09 /bLength: 0x09 byte .dw 0x04 /bDescriptorType: INTERFACE .dw 0x00 /bInterfaceNumber: interface 0 .dw 0x00 /bAlternateSetting: alternate setting 0 .dw 0x02 /bNumEndpoints: 3 endpoints(EP0,EP1,EP2) .dw 0x08 /bInterfaceClass: Mass Storage Devices Class .dw 0x06 /bInterfaceSubClass: .dw 0x50 /bInterfaceProtocol .dw 0x02 /iInterface: index of string_Interface_Descriptor_End:_Endpoint1: .dw 0x07 /bLength: 0x07 byte .dw 0x05 /bDescriptorType: ENDPOINT .dw 0x81 /bEndpointAddress: IN endpoint 1 .dw 0x02 /bmAttributes: Bulk .dw 0x40, 0x00 /wMaxPacketSize: 64 byte .dw 0x00 /bInterval: ignored_Endpoint2: /Endpoint 2 (0x07 byte) .dw 0x07 /bLength: 0x07 byte .dw 0x05 /bDescriptorType: ENDPOINT .dw 0x02 /bEndpointAddress: OUT endpoint 2 .dw 0x02 /bmAttributes: Bulk .dw 0x40, 0x00 /wMaxPacketSize: 64 byte .dw 0x00 /bInterval: ignored关于请求:第一,主机首先会发出一系列标准请求。第二,在标准请求完成之后,会发出两个类请求:Bulk-Only Mass Storage Reset请求和Get Max LUN请求。这两个请求的格式可以在USB Mass Storage Class Bulk-Only Transport文档中查询。Bulk-Only Mass Storage Reset没有数据阶段,只在状态阶段告诉主机设备的Reset过程完成与否。如果在状态阶段返回ACK,那么主机就认为设备已经Reset完毕并准备好接收CBW了。Get Max LUN要求设备返回一个字节的数据给主机,以表明此USB设备有多少个逻辑设备。返回的这个数据就是最大的设备逻辑号(Logic Unit Number),范围是0到15。例如,如果返回2,那么代表有0、1、2三个逻辑设备。2、USB Mass Storage设备的Bulk数据交换流程通过bulk端点进行的数据传输,都遵循这样一个过程,即三个阶段:CBW-DATA-CSWCBW是一个数据块,携带主机发给设备的SCSI命令。接收了CBW后,设备就可以从中知道在接下来的DATA阶段中该干什么。DATA阶段有三种情况:无数据需要传输,IN传输(设备到主机)或OUT传输(主机到设备)。CSW阶段反馈这次传输的结果给主机。其中值得注意的是:- 在设备枚举完成之后,主机发出的第一个bulk OUT事务就是请求向设备发出CBW。所以设备可以通过这第一次的bulk OUT事务来判定第一次bulk数据传输的开始。此后的bulk数据传输就按照上述的三个阶段反复执行。也就是说,第一次传输CBW后,如果有数据要传输,那么就会经历DATA阶段,然后进入CSW阶段;如果没有数据要传输,则直接进入CSW阶段,就此一次传输结束。接下来,如果又有传输,那么再发出CBW。因此,设备可以认为CSW完成后收到的下一个bulk OUT事务就是主机请求传输新的CBW。- CBW12(CBW数据块的第13个字节)指明了传输方向,CBW8-11指明了传输的数据长度。实际上,CBW中的SCSI命令就暗含了数据要传输的方向和数据长度,因为SCSI规范中已明确规定这个命令所对应的数据格式。(在完整的应用中,要将CBW中的传输方向、数据长度与SCSI命令所表明的传输方向和数据长度做比较,不对应就要进行错误处理(Mass Storage Bulk-Only文档中有相关描述),不过正常情况下二者是匹配的,试验的时候可以暂时不理)。- CSW12(CSW数据块的第13个字节)这个字节很重要,它为0则表示此次传输成功,非0就是不成功。在DATA阶段的数据传完(或者无需数据传输)之后,主机会发出IN事务请求设备返回CSW。如果CSW传送的是不成功的信息,那么主机会接着发送另一个命令来获取失败的详细信息(即RequestSense命令)。3、Mass Storage设备所使用的SCSI命令集0x00 TestUnitReady0x03 RequestSense0x12 Inquiry0x1A ModeSense60x1B StartStop0x1E MediumRemoval0x23 ReadFormatCapacity0x25 ReadCapacity0x28 Read(10)0x2A Write(10)0x2F Verify0x5A ModeSense10其中,- 主机首先发出Inquiry命令,响应了Inquiry之后就可以看到盘符.- Inquiry之后会发出ReadFormatCapacity命令,这个命令在SCSI规范中是“厂家自定义命令”,可以参考UFI命令集文档(实际上,U盘所使用的所有SCSI命令集都可以参考UFI文档,它比SCSI标准文档更简洁明了)。注意这个命令在BusHound里是没有描述的,必须在“Device”选项页里勾选上这个U盘所对应的USB Mass Storage Device这个节点,才能看到这个命令的数据流。- ReadFormatCapacity之后会发出ReadCapacity命令。- U盘读数据(读扇区)时会发送Read(10)。ReadCapacity完成后就会发送Read(10)读取U盘的第一个扇区。- U盘写数据时(写扇区)会发送Write(10)。- TestUnitReady会在无其他数据传输时会定时发送,如果设备没有回应成功的CSW给主机,则主机认为设备已不存在。此时如果再双击磁盘图标,Windows会提示“请插入磁盘”。- Verify在写数据时有用,表示核实数据,一般直接返回成功的CSW就可以了。一般来说,数据校验的工作在接收和向介质写数据时就已经顺带做了,如果发现错误,则直接告诉主机那次的数据传输有误,不会等到主机Verify时。当然,这不是一个必然的方案。- RequestSense:如果CSW指示此次传输不成功,那么主机会发出此请求。- StartStop暂时未发现大用处,一般直接返回成功的CSW。- MediumRemoval在U盘被Eject的时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CHES 129-2024山区小流域沟道治理人工阶梯-深潭系统技术导则
- T/CI 084-2023红花籽油亚油酸含量检测与评级
- 高中化学选修原电池课件
- 2024学年泰州市泰兴市九年级语文上学期期中试卷附答案解析
- 电厂闸门安装施工方案
- 高一民主监督课件
- 高一地球自转课件
- 离婚协议书:财产分割、子女抚养及经济补偿合同
- 离婚房产赠与未成年子女抚养费支付合同
- 离婚协议书英汉对照:法律条款解读与应用
- 融资方案报告范文模板
- 肾脏肿瘤影像学诊断策略
- 仓库定期检查表范例仓库管理工作检查项目与评分标准
- 化疗前的准备和评估
- 显微外科设备器械及显微外科基本技术培训教材培训课件
- GB/T 13871.1-2022密封元件为弹性体材料的旋转轴唇形密封圈第1部分:尺寸和公差
- GB/T 41696-2022下肢康复训练设备的分类及通用技术条件
- GB/T 7276-1987合页通用技术条件
- GB/T 40449-2021犬、猫绝育手术操作技术规范
- 安全工作目标及计划
- 《红楼梦》中的服饰文化共38张课件
评论
0/150
提交评论