USB大容量存储设备的开发

usb 是目前在打印机,数字存储设备,输入/输出设备,数码像机,mp3播放器等其他周边设备中得到广泛应用的连接方式。usb设备具有使用方便,速度快,连接灵活,即插即用,总线供电等优点。基于usb接口的大容量存储设备(usb mass storage)应运而生,目前市场上的这类设备主要有:usb移动硬盘,usb 外置光驱,usb 外置软驱,usb闪存盘(闪盘),usb compactflash / smartmedia卡读卡器等。由于usb大容量存储设备的方便与快捷,它们很快得到用户的认可。本文将介绍usb大容量存储设备的基本硬件结构,软件结构以及cypress的相应解决方案。

硬件结构

  虽然usb大容量存储设备中有着不同的解决方法,但通常使用一个带有usb接口引擎的mpu(又可称为usb微控制器)用于处理主机发送的命令以及对存储设备进行操作。图1显示了一个usb大容量存储设备通常采用的硬件结构。rom和ram用于存储数据和程序,eeprom用来存放厂商代码/产品代码(vid/pid)等基本信息。由于存储介质的接口不同(如图1虚线外部所示),usb微控制器与它们的连接也略有不同。光驱,硬盘和compactflash(cf)提供的是atapi或ide接口,所以usb微控制器实际上是完成usb到atapi/ide的桥接功能,它把主机的scsi/ide命令和数据转发到存储设备上,并将存储设备返回的状态和数据发送回主机。有些厂商则推出专用asic完成usb到atapi/ide桥接功能,使设备开发更加简单。另一类常见的大容量存储设备是基于闪存设备(flash device),如smartmedia卡(smc),multimedia卡(smc),memory stick(ms),nand结构的闪存器件等。闪盘(usb flash disk) 就是采用nand结构的闪存器件作为存储介质。

  这类闪存设备有特殊的接口总线,因此,usb微控制器通过微控制器的系统总线或通用i/o线与闪存设备连接。微控制器除了实现与主机之间的数据/命令传输外,还需要根据主机的命令对闪存器件进行读/写/格式化,实现逻辑扇区与物理扇区之间的转换,数据错误校正等操作。

  大容量存储设备的读/写操作速度是一个关键指标,usb微控制器的性能很大程度上决定了这一指标。微控制器不但要有较快的运行速度,更需要提供快速的usb接口引擎,并能够和外部的存储介质实现高速的数据交换。在usb2.0的大容量存储设备中,微控制器和外部介质接口的速度往往决定了设备的速度。

软件设计

  usb组织定义了大容量存储设备的类规范,这个类规范包括四个独立的子类规范,即: 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三种类型的端点进行数据/命令/状态传送。后两个子规范则定义了存储介质的操作命令。ufi命令规范是针对usb移动存储而制定的,实际上ufi命令格式是基于sff-8070i和scsi-2规范,总共定义了19个12字节长度的操作命令。

  • USB大容量存储设备的开发已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计