USB MSD设备的SCSI命令详解
需积分: 5 4 浏览量
更新于2024-08-03
收藏 1.19MB PDF 举报
"USB学习笔记-SCSI命令.pdf"
在深入探讨USB存储设备(Universal Serial Bus Mass Storage Device,MSD)的SCSI(Small Computer System Interface)命令之前,我们需要理解USB和SCSI之间的关系。USB是一种通用接口,允许各种设备与计算机进行高速通信,包括存储设备。SCSI则是一种标准的命令集,用于控制存储设备如硬盘、光驱等进行数据读写。当USB设备使用SCSI命令集时,我们就有了USB MSD设备。
USBMSD应用中,设备的bInterfaceSubClass设置为06h,表明它遵循SCSIPrimary Commands-2(SPC-2)规范,即支持SCSI命令。bInterfaceProtocol设置为0x50,则表示设备支持Bulk-Only Transport (BOT)协议,这是USB MSD设备通信的基础。BOT协议下,数据传输始于Command Block Wrapper (CBW),主机发送CBW到设备,设备响应以Command Status Wrapper (CSW)。
以下是MSD设备支持的一些关键SCSI命令:
1. **INQUIRY(Opcode 12h)**:
INQUIRY命令用于获取设备的逻辑单元(LU)信息,如设备类型、版本、制造商信息等。根据SPC-3,设备应尽快回复INQUIRY数据,即使正在执行其他命令,且数据应立即可用,至少包含36字节的标准信息。
2. **READ CAPACITY(Opcode 25h)**:
此命令用于获取设备的容量信息,包括最后可访问逻辑块地址(LBA)和每个块的大小。设备回应4字节的LBA和4字节的块长度。如果LBA超过设备实际容量,设备应返回FFFFFFFFFFh作为最大LBA。
3. **READ(10)(Opcode 28h)**:
READ(10)命令用于从设备读取数据。主机指定要读取的LBA和数据长度,设备则通过Bulk-In端点传输相应数据。这个命令是读取设备存储数据的基本方式。
除了这些基本命令,MSD设备还可能支持其他SCSI命令,如WRITE(10)、FORMAT UNIT、TEST UNIT READY等。在实际应用中,主机通过USB控制器发送这些命令,并通过BOT协议管理数据传输和状态反馈,确保设备操作的正确性和效率。
了解和掌握这些SCSI命令对于开发、调试或者优化USB MSD设备至关重要,因为它们定义了主机与存储设备之间的基本交互方式。熟悉这些命令的使用可以帮助解决设备兼容性问题、提高数据传输性能,并确保数据的可靠存储。在设计USB存储设备驱动程序或处理相关问题时,深入理解SCSI命令的运作机制是非常必要的。
论文
点击了解资源详情
论文
论文
论文
2023-07-25 上传
antion182
- 粉丝: 2
- 资源: 22
最新资源
- WebLogic集群配置与管理实战指南
- AIX5.3上安装Weblogic 9.2详细步骤
- 面向对象编程模拟试题详解与解析
- Flex+FMS2.0中文教程:开发流媒体应用的实践指南
- PID调节深入解析:从入门到精通
- 数字水印技术:保护版权的新防线
- 8位数码管显示24小时制数字电子钟程序设计
- Mhdd免费版详细使用教程:硬盘检测与坏道屏蔽
- 操作系统期末复习指南:进程、线程与系统调用详解
- Cognos8性能优化指南:软件参数与报表设计调优
- Cognos8开发入门:从Transformer到ReportStudio
- Cisco 6509交换机配置全面指南
- C#入门:XML基础教程与实例解析
- Matlab振动分析详解:从单自由度到6自由度模型
- Eclipse JDT中的ASTParser详解与核心类介绍
- Java程序员必备资源网站大全