一、摘要

       根据masstorage和Bulk-Only传输协议,使用CH559实现模拟U盘的功能,U盘容量根据外部存储自由调整。用以解决数据转存或者定制U盘功能。关键点在于CH559 USB设备模式初始化、扇区读写和外部存储芯片的操作。

二、总体概述

       模拟U盘关键功能部件包括以下几点:

       (1)、具有USB设备功能的MCU或接口芯片(CH558,CH559,CH563),CH558只有一个USB设备接口,CH559有2个USB主机接口和1个USB设备接口,CH563的1个USB接口既可以做主机也可以做设备。

       (2)、根据实际需要或者接口选择合适的外部存储来作为U盘的存储空间,比如SPI的串行Flash、E2PROMM,甚至是Nand Flash等。

       以上准备完毕整体的操作流程如下所示:

    1.bmp

三、硬件设计

       CH558、CH559模拟U盘使用的SPI接口的串行Flash,硬件如下图:

    2.bmp

      CH558,CH559是增强型51内核的单片机,内置晶振,所以芯片外围也足够简洁。

      芯片资源如下图:

    3-4.png

四、软件设计

       软件主要包括以下方面:

       (1)、USB设备模式初始化

   5.bmp

       (2)、存储芯片接口初始化

    6.bmp

       (3)Bulk_Only传输

       CBW包:

    7.bmp

       CSW包:

    8.bmp

    

五、可拓展功能

       (1)、其他存储介质:除了以上提到的SPI接口的串行Flash,也可以替换成E2PROMM或者Nand falsh等。

       (2)、数据来源可以随意指定,比如串口数据流,并口数据流,甚至其他温湿度传感器设备等。

       (3)、CH559+SPI串行Flash模拟U盘测试参数

     9.bmp

    

六、应用场合

       虽然现在U盘也不是很贵,但也不代表这种应用生存的空间,此类应用的典型场合,比如:

       (1)、代替光盘为客户提供说明书,可以将说明资料直接放到板子的存储介质内。

       (2)、U盘数据监控、截取和加密。

       (3)、采集数据数据暂存,方便拷贝到主机。

       (4)、定制U盘等。

    

七、源码

       CH558、CH559模拟U盘的源码(C语言):559模拟U盘源码.rar

                                          

         CH563模拟U盘的源码(C语言):          CH563模拟U盘源码.rar