USB单片机CH559实现模拟U盘应用源码.doc_第1页
USB单片机CH559实现模拟U盘应用源码.doc_第2页
USB单片机CH559实现模拟U盘应用源码.doc_第3页
USB单片机CH559实现模拟U盘应用源码.doc_第4页
USB单片机CH559实现模拟U盘应用源码.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

USB单片机CH559实现U盘控制器应用实例一、摘要根据Mass Storage Class(大容量/海量存储器,以下简称MSC)协议,使用CH558、CH559和CH563分别实现模拟全速和高速U盘的功能,外部存储介质和U盘容量支持自由调整,用以解决数据转存或者定制U盘等功能。关键在于CH5XX USB设备控制器操作、Bulk-Only传输协议、SCSI命令支持和存储介质读写这几个部分。二、总体概述模拟U盘关键功能部件包括以下几点:(1)、USB Mass Storage Framework(2)、以U盘为例,下图是PC和U盘的内部抽象逻辑框图CH558、CH559和CH563内置USB设备控制器和PHY,对于实现U盘控制器的应用,只需要配置USB设备模式和读写外部存储介质。(3)、USB MSC CBI/BBB TransportUSB MSC Control/Bulk/Interrupt Transport 只能用于Full-speed的软盘(Floppy drive),这里不赘述,有兴趣可以自己百度。Bulk-only传输类控制、批量都是通过批量端点,即用Bulk端点来传送命令块,数据,状态,因此,才类似于Control/Bulk/Interrupt被简称为CBI一样,而Bulk/Bulk/Bulk被简称为BBB。(4)、USB MSC Protocol relation传输通讯:Host和Device之间的数据通讯根据存储介质(Floppy或Flash)分别使用UFI和SCSI协议,更深入的设备特性配置参考More Feature。(5)、U盘配置描述符Class,Subclass和Protocol对应关系对应的,了解USB的都知道,每个设备的描述符中,都有对应下面这几个域:bInterfaceClass 、 bInterfaceSubClass 、 bInterfaceProtocol分别对应着USB的Class,Subclass,Protocol。而对于我们此处的U盘:bInterfaceClass=0x08=Mass Storage,Class就是USB Mass Storage Class,bInterfaceSubClass=0x06=SCSI Transparent,Subclass,所支持的列表如下:SubClass Codes Mapped to Command Block SpecificationsbInterfaceProtocol=0x50=Bulk Only Transport,Protocol,所支持的列表如下:Mass Storage Transport Protocol(6)、MSC使用的SCSI命令集0x00TestUnitReady 0x03RequestSense0x12Inquiry 0x1AModeSense60x1BStartStop 0x1EMediumRemoval0x23ReadFormatCapacity 0x25ReadCapacity0x28Read(10) 0x2AWrite(10)0x2FVerify 0x5AModeSense10SCSI命令使用各位可以阅读代码,或者去USB-IF搜索SCSI协议,实际上U盘所使用的所有SCSI命令集都可以参考UFI文档,它比SCSI标准文档更简洁明了。(7)、Bulk-Only传输协议详细的规范请阅读Universal Serial BusMass Storage ClassBulk-Only Transport)设备插入到USB 后,USB 即对设备进行搜索,并要求设备提供相应的描述符。在USBHost 得到上述描述符后,即完成了设备的配置,识别出为BulkOnly 的Mass Storage 设备, 然后即进入BulkOnly 传输方式。在此方式下,USB 与设备间的所有数据均通过BulkIn和BulkOut 来进行传输,不再通过控制端点传输任何数据。在这种传输方式下,有三种类型的数据在USB 和设备之间传送,CBW、CSW 和普通数据。CBW(Command Block Wrapper,即命令块包)是从USB Host 发送到设备的命令,命令格式遵从接口中的bInterfaceSubClass 所指定的命令块,这里为SCSI 传输命令集。USB设备需要将SCSI 命令从CBW 中提取出来,执行相应的命令,完成以后,向Host 发出反映 当前命令执行状态的CSW(Command Status Wrapper),Host 根据CSW 来决定是否继续发 送下一个CBW 或是数据。Host 要求USB 设备执行的命令可能为发送数据,则此时需要将 特定数据传送出去,完毕后发出CSW,以使Host 进行下一步的操作。USB 设备所执行的操作可用下图描述CBW和CSW命令包格式在程序里面有或者参看Bulk-Only协议。三、硬件设计CH558、CH559模拟U盘使用的SPI接口的串行Flash,硬件如下图:CH558,CH559是增强型51内核的全速(12Mbps)USB单片机,内置晶振,芯片外围也足够简洁。CH563是32位高速USB MCU,内置网络PHY和协议栈。芯片资源如下图:四、软件设计软件主要包括以下方面:(1)、USB设备模式初始化(2)、存储芯片接口初始化(3)Bulk_Only传输CBW包:CSW包:五、可拓展功能(1)、其他存储介质:除了以上提到的SPI接口的串行Flash,也可以替换成EEPROM或者Nand falsh等非掉电易失存储介质。(2)、数据来源可以随意指定,比如串口数据流,并口数据流,甚至其他温湿度传感器设备等。(3)、CH559+SPI串行Flash模拟U盘测试参数测试系统,功能复制粘贴创建写格式化XPWIN7WIN10安卓六、应用场合应用的典型场合,比如:(1)、代替光盘为客户提供说明书,可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论