1、USB大容量存储设备类驱动,Dayong 数码音乐课 2003.04,简述USB协议 USB MASS STORAGE PROTOCOL SCSI指令 File System The Firmware of The System,简述USB协议,USB系统包括3部分:USB主机、USB设备和USB连接(USB设备与主机连接和进行通讯的方式) 拓扑结构 :层次性的星型拓扑结构,最多可以拥有127个外部设备(HUB也是外部设备),简述USB协议(续一),USB总线协议USB总线属于一种轮讯方式的总线,主机控制初始化所有的数据传输。每次总线传输最多传送3个信息包:令牌包(token packet)、
2、数据包(data packet)和握手包(handshake packet) 。如图1,简述USB协议(续二),传输方式 1)同步传输:占用大量USB带宽,有严格的时间间隔,又被称为实时流传输。2)控制传输:双向传输,该方式传输数据量一般,但要求交付无损且强调实时效果。3)中断传输:用于少量的、分散的、不可预知的数据传输。4)批量传输:用于大数据量传送和接收精确度较高的数据,且没有对带宽和时间间隔的要求。,端点端点是USB中一个独特的概念,它是一个可以与USB Host交换数据的硬件单元。USB Host和USB设备之间都是通过端点来传输数据的,端点是桥梁和纽带,不同的端点其传输数据的能力不同
3、,适于不同的应用场合。设备地址和端点号唯一的确定USB的一个通讯管道(pipe)。USB复位或重新启动后,USB的地址0和端点0所构成的默认通道就已经启动。,简述USB协议(续三),标准描述表支持USB描述表为:设备描述表,配置描述表,接口描述表,端点描述表。按照USB 协议,每个USB设备都有一个或多个配置,每个配置对应相应设备的一项功能。配置是接口的集合,通过接口指定设备如何进行USB互联,而接口又是一系列端点的集合。其结构为如下图的树形结构:,简述USB协议(续四),简述USB协议(续五) USB设备类,简述USB协议(续五) 各种主机介面的比较,USB MASS STORAGE PRO
4、TOCOL,USB 国际组织定义了大容量存储设备类(Mass Storage Class)的规范,这个类规范包括四个独立的子类规范:1) USB Mass Storage Class Control/ Bulk/Interrupt (CBI) Transport 2) USB Mass Storage Class Bulk-Only Transport3) USB Mass Storage Class ATA Command Block 4) USB Mass Storage Class UFI Command Specification,USB MASS STORAGE PROTOCOL续一
5、,注意:配置描述表,接口描述表,端点描述表是同时返回的。,标准描述表 大容量存储设备类也遵循标准描述表的层次结构。但是它一般两个接口,三种类型的端点。设备描述表和配置描述表这两个描述表的结构和含义所有USB设备类几乎相同,这儿不再赘述。重点讲一下接口描述表和端点描述表。,USB MASS STORAGE PROTOCOL续二 接口描述表,接口描述表 续一,接口描述表的结构和含义在大容量存储类协议中需要指出的有三点:1) 描述表中的bInterfaceClass域,必需为08h,用以说明设备为大容量存储系统;2) bInterfaceSubClass域用来指明设计所用的对设备进行控制的标准命令集
6、,如01h表示Reduced Block Commands,06h表示为SCSI command set,04h表示UFI Command set等;3) bInterfaceProtocol域表示存储设备设计用的传输方法。00h和01h说明使用CBI方式,50h说明使用的是Bulk-Only方式。,USB MASS STORAGE PROTOCOL续三 端点描述表,CBI传输规范则使用控制(Control)、批量(Bulk)、中断(Interrupt)三种类型端点进行数据/命令/状态传送,支持两种类型请求,完成各种数据的交换传输。1)标准USB设备请求:数据传输执行支持总线功能和相关功能,即
7、完成枚举动作,建立起USB通讯功能。2)类特定请求:CBI方式的存储设备在控制端点上支持USB类相关命令:Accept Device-Specific Command(ADSC),此命令包含8字节。数据传输过程为主机由控制端点发出ADSC包,表明向设备发送对进行控制的标准命令(由接口描述表的bInterfaceSubClass域决定),接着是主机发送命令,然后设备根据命令进行相应的数据传输,主机接收数据。,USB MASS STORAGE PROTOCOL续四 CBI,Microsoft公司至windows98后,系统就支持BulkOnly标准,所以现在的大存储容量设备几乎都采用或支持Bulk
8、-Only方式。Bulk-Only传输规范,系统通过默认管道进行枚举后,仅仅使用批量(Bulk)端点传送数据/命令/状态。而后的传输中,有三种类型的数据在USB 和设备之间传送,CBW、CSW 和普通数据。,USB MASS STORAGE PROTOCOL续五 BulkOnly,Bulk-Only命令/数据/状态传输流程图,BulkOnly 续一 CBW,BulkOnly 续二 CBW,SCSI指令集,Bulk-Only 的CBW 中的CBWCB 中的内容即为如下格式的命令块描述符(Command Block Descriptor)。SCSI-2 有三种字长的命令,6 位、10 位和12 位
9、。,SCSI指令集 续一,对于不同的命令,其命令块描述符略有不同,其要求的返回内容也有所不同。以INQUIRY 请求的命令块描述符和其返回内容的数据格式为例:,SCSI指令集 续二,SCSI指令集 续二,返回数据:,File System,File System 续一,簇号链,FAT表项:,第00簇, ,第n1簇, ,第n2簇, ,第n3簇, ,第n4簇, ,该磁盘文件所占据的逻辑空间:, , , , , ,簇号: n1 n2 n3 n4,该磁盘文件所占据的物理空间:,文件所占据的物理 空间不一定连续性,File System 续二,The Firmware of The System,在SPCA720系统上构筑USB主机功能使其实现通用PC的MASS STORAGE主机功能,让系统可以把Mass Storage中媒体数据解析播放出来。在设计系统过程中,我们把其驱动分为了三个层次来实现API,如下图:,The Firmware of The System 续一,系统hardware:,The Firmware of The System 续二 系统Software模块框架图:,Q&A,Thanks!,