CH559 USB模拟U盘应用源码

一、摘要

       根据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语言):icon_rar.gif559模拟U盘源码.rar

                                          

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

    


我有这个需求,将截取数据流发送到一个网络服务器,请问找谁可以实现。


你好,请问在电脑上将一个文件放到模拟U盘里,还能通过SPI接口把串行flash里面的文件读出来吗


能够使用 SPI 闪存模拟 UDisk。 当我将设备连接到计算机时,我可以将其视为可移动磁盘。 我想在它未连接到计算机时创建、读取和写入文件。 任何小例子都会非常有用。 请举例说明...


请提供一些示例代码,以便在未连接到 PC 时使用 w25qxx 从模拟 udisk 创建/写入/读取文件...我想创建一个文件并将数据写入其中。 当它连接到计算机时,它应该充当 udisk 并读取之前创建的文件。


由于做U盘时文件系统全部由电脑管理,所以用户代码中还需要自行处理CPU访问存储介质是文件系统的处理,可以借鉴fatfs之类


只有登录才能回复,可以选择微信账号登录