USB大容量存储设备_usb网卡变成大容量存储设备

USB大容量存储设备_usb网卡变成大容量存储设备[USB开发]USB大容量存储设备的开发cxl84发表于2008-3-1723:24:00USB是目前在打印机,数字存储设备,输入/输出设备,数码像机,MP3播放器等其他周边设备中得到广泛应用的连接方式。USB设备具有使用方便,速度快,连接灵活,即插即用,总线供电等优点。基于USB接口的大容量存储设备(USBMassStorage)应运而生,目前市场上的这类设备主要有:USB移

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

[USB开发]USB 大容量存储设备的开发cxl84 发表于 2008-3-17 23:24:00

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字节长度的操作命令。
    图2是USB大容量存储设备软件结构示意图。虚线左边部分是主机的驱动程序结构。最顶层是应用程序接口(API),用于提供给用户访问存储设备的方法;中间的UFI/ATA驱动层将应用程序的访问转换成UFI或ATA命令/数据格式,与外部存储设备之间按照子规范3或4的定义进行命令/状态/数据的交换;最底层则是USB传输驱动,负责将上层的UFI/ATA数据发送到USB总线上以及接收从存储设备返回的状态/数据。图2虚线右边部分是大容量存储设备的固件(Firmware)功能结构。在USB总线接口上面是USB传输处理层,它与主机之间按照子规范1或2的定义进行通讯,将主机的命令/数据传递到 UFI/ATA 命令处理层并将其状态/数据返回到主机,它还需要检查并处理数据传输过程中的错误。UFI /ATA 命令处理层负责对主机的UFI /ATA 命令进行处理,并将结果返回给主机。存储介质接口提供与不同存储介质连接的方法,负责将接收到的UFI /ATA 命令/数据转换成具体的物理信号发送到存储介质,并从存储介质获取状态/数据。

    在具体实现上,存储设备可以选择支持两种传输规范(CBI或Bulk-Only)或者只支持其中的一种。实际上,Bulk- Only传输规范是一种更常用的方法。大多数USB存储设备都是基于Bulk- Only传输规范和UFI命令规范设计的。Win Me,Win 2K 以及Win XP都有内建的类驱动程序以支持基于Bulk-Only 模式的USB1.1大容量存储设备,因此,开发人员无需设计在这些操作系统上的驱动程序,而将更多的工作精力集中在存储设备固件开发上。对于存储介质采用 ATA/IDE接口的大容量存储设备,其固件的功能相对比较简单,它只需要处理USB传输管理,从中提取或包装UFI命令/状态/数据,并将UFI命令/ 数据通过ATA/IDE接口发送到介质上或从接口中读回数据/状态传送给主机。对于基于闪存设备的大容量存储设备,由于没有像ATA/IDE设备内部的一些控制逻辑,固件的功能就相对比较复杂,USB微控制器除了传输处理及UFI命令处理等工作外,还需要处理如存储介质的寻址/格式化/数据校验等操作。以一个闪盘的基本的固件功能为例,它至少需要有:1. 提供USB枚举信息 2. USB传输管理 3. 根据主机的UFI命令进行相应的处理 4. 提供闪盘基本信息,如:扇区大小,簇大小,闪盘容量等。5. 逻辑簇(Logical Cluster)到物理块(Physical Block)的转换 6. 物理块的读/写/更新 7. 闪存数据写入时的数据校验位产生以及数据读出时的校验和错误恢复。其中许多的固件功能是与闪存的操作相关的。

Cypress 解决方案
    Cypress为业界提供了最广泛的USB微处理器产品线,并且提供了许多USB设备的解决方案,使设计者可以很快推出产品原型。在Cypress众多 USB产品中,有三个产品线可以支持大容量存储设备,即:1. ISD系列产品,包括ISD200和ISD300。该系列产品实际上是USB到ATA/IDE桥,用户不需要固件开发工作既可支持ATA/IDE设备。 2. EZ-USB系列产品,包括EZ-USB FX和EZ-USB FX2。该系列USB微控制器内核采用增强型8051处理器,控制器内部有丰富的RAM资源,并提供快速通道与外部进行数据交换。程序编写比较容易,调试界面友好。3. CY16系列,包括SL11RIDE及CS5954。该系列产品是低价位的全速USB微控制器,其内核采用16位RISC处理器,并且内建有BIOS ROM以减少固件开发的工作量。Cypress针对不同应用提供了十分丰富的参考设计,并提供不同操作系统下的驱动程序。表1是Cypress三个USB 产品线器件关于大容量存储设备解决方案及其特点。设计人员可以根据需求从中选择适合的器件。

表1. Cypress大容量存储设备解决方案及其特点

器件 支持的存储设备类型 特点
ISD200 IDE/ATA设备 固定功能,用户无需配置
ISD300 IDE/ATA设备 固定功能,用户无需配置,支持USB2.0
EZ-USB FX IDE/ATA设备 固件功能可配置,无需外部RAM
EX-USB FX2 IDE/ATA设备 固件功能可配置,无需外部RAM,支持USB2.0
SL11RIDE IDE/ATA设备,SMC,MMC,闪存 提供几乎所有大容量存储设备的解决方案,固件功能可配置
CS5954 IDE/ATA设备,SMC,MMC,闪存 SL11RIDE的简化版, 价格更低廉

结语
    USB为接口种类繁多的存储媒介与主机之间提供了方便可靠的连接。Intel刚刚推出的845G与845GL芯片组支持USB2.0接口,其总线速度可达到480Mbps, 极大地提高了传输速度,这将更好地支持硬盘,光驱等容量较大的存储设备。Cypress也将陆续推出一些性能价格比更优的存储设备解决方案以及 USB2.0的高端应用。可以预见,基于USB的大容量存储设备将迅速占领传统的存储市场。

参考文献
1. Universal Serial Bus Specification Reversion1.1
2. USB Mass Storage Class Bulk-Only Transport Reversion1.0
3. USB Mass Storage Class UFI Command Specification Reversion1.0
4. SmartMedia(tm) Standard 2000

本文来自:我爱研发网(52RD.com) – R&D大本营
详细出处:http://www.52rd.com/Blog/Detail_RD.Blog_cxl84_13555.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188059.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网络爬虫必备知识之正则表达式

    1.正则表达式概念正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。许多程序

    2021年12月29日
    42
  • linux关闭防火墙命令iptables_centos开启防火墙命令

    linux关闭防火墙命令iptables_centos开启防火墙命令1.iptables常用命令1.1查看是否已经安装了iptables以及iptables版本号iptables-V(注意:V是大写字母V)1.2关闭iptablesserviceiptablesstop1.3启动iptablesserviceiptablesstart1.4重启iptablesserviceiptablesrestart1.5保存命令行中设置的ipt…

    2022年9月16日
    1
  • 图形推理题 答案揭晓图_图形推理1000题

    图形推理题 答案揭晓图_图形推理1000题本周一,小灰给大家出了一道图形推理题,有许多小伙伴都在踊跃作答,非常感谢大家的积极参与!原题如下,需要根据前两行的图形规律,找出第三行最后一个图形是什么:这道题的难度不小…

    2022年9月9日
    0
  • mysql 快速导入数据_MySQL导入数据

    mysql 快速导入数据_MySQL导入数据有时候需要批量插入一批数据到数据库,有很多种办法,这里我用到过三种办法:1、通过Excel直接生成insert语句=CONCATENATE("insertintoaisee_pingfen_fengcai(id,order_n,department,subject_n,teacher_name)values(‘",A1,"’,’",B1,&

    2022年9月21日
    0
  • Spring AOP 实现监控方法执行的时间(统计service中方法执行的时间)

    项目中有时候会遇到统计方法执行的时间,来对项目进行优化!下面是我自己在工作中遇到的问题,和我自己的解决方法。要统计出项目中方法执行时间大于1秒的那些方法!我们的项目开发使用的是SpringMVC 那么首先想到使用 Aop Aspet 切面统计,那样子更加方便也高效。1:打开切面!因为项目使用的SpringMVC,项目中的配置文件就配置的 <aop:aspectj-autoproxy …

    2022年2月24日
    46
  • 桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!

    桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!前言前段时间,写了篇博客关于Python自制一款炫酷音乐播放器。有粉丝问我,音乐播放器为什么要用PyQt5,效果是不是比Tkinter赞?PyQt5真的可以实现这些炫酷的UI画面吗?之前没接触过PyQt5,能不能多分享一些这方面的开发案例?今天就带大家,一起用Python的PyQt5开发一个有趣的自定义桌面动画挂件,看看实现的动画挂件效果!下面,我们开始介绍这个自定义桌面动画挂件的制作过程。一、核心功能设计总体来说,我们需要实现将自己喜欢的动态图gif或者视频转成一个桌面动画挂件,并且可以通过鼠

    2022年4月25日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号