通用串行总线[1](Universal Serial Bus)是针对PC机外设的一种新型接口技术,具有快速、双向、即插即用(PnP)且价格低廉的特点。USB总线协议有1.0、1.1和2.0三个版本,通讯速度分为1.5Mbps、12Mbps、 480Mbps,并且支持包括主集线器在内的多达7个HUB层及127个外设。USB接口已广泛的用于各种电子设备,其中USB大容量存储类设备可灵活的设计为移动存储、数码影音产品和PC周边,功能强大,故而应用较为广泛【5】,如象移动硬盘,flash闪盘,数码相机,MP3播放机,读写光驱等等。
2 USB大容量存储类[2]简介 USB 国际组织定义了大容量存储类(Mass Storage Class)的规范,包括四个独立的子类规范: 1) USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport; 2) USB Mass Storage Class Bulk-Only Transport; 3) USB Mass Storage Class ATA Command Block; 4) USB Mass Storage Class UFI Command Specification; 前两个子规范定义了USB大容量存储设备进行数据/命令/状态传输两种基本方法。Bulk- Only传输规范仅仅使用批量(Bulk)端点传送数据/命令/状态,CBI传输规范则使用控制(Control)、批量(Bulk)、中断(Interrupt)三种类型端点进行数据/命令/状态传送。后两个子规范则定义了存储介质的操作命令。ATA命令规范用于硬盘,UFI命令规范是基于SCSI- 2和SFF-8070i命令规范发展二来,其针对USB移动存储类设备。 Microsoft公司至Windows98后,USB主机都支持Bulk-Only标准,所以现在的大容量存储类设备几乎都采用或支持Bulk-Only标准。Bulk-Only传输规范是系统通过默认管道(地址0、端点0)进行枚举后,仅仅使用批量(Bulk)端点传送数据/命令/状态,其中有三种类型的数据在USB主机和设备之间传送,即CBW、CSW 和普通数据。CBW(Command Block Wrapper,命令块包)是从USB主机发送到设备的命令包,它由31个字节构成,其中包含的命令遵从接口描述表中的bInterfaceSubClass域所指定的命令集,一般采用SCSI 传输命令集。USB设备从CBW 中取出并执行相应命令,向主机传送指定数据及发出反映当前命令执行状态的CSW(Command Status Wrapper,状态包),它由13个字节构成,主机根据CSW 来判断此次操作是否正确,从而决定是继续传送数据还是进行数据传输的错误校验。事实上错误校验一直伴随着整个数据的处理过程中。 作者: woodses 时间: 2005-12-31 13:50