一、摘要
根据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等。
以上准备完毕整体的操作流程如下所示:
三、硬件设计
CH558、CH559模拟U盘使用的SPI接口的串行Flash,硬件如下图:
CH558,CH559是增强型51内核的单片机,内置晶振,所以芯片外围也足够简洁。
芯片资源如下图:
四、软件设计
软件主要包括以下方面:
(1)、USB设备模式初始化
(2)、存储芯片接口初始化
(3)Bulk_Only传输
CBW包:
CSW包:
五、可拓展功能
(1)、其他存储介质:除了以上提到的SPI接口的串行Flash,也可以替换成E2PROMM或者Nand falsh等。
(2)、数据来源可以随意指定,比如串口数据流,并口数据流,甚至其他温湿度传感器设备等。
(3)、CH559+SPI串行Flash模拟U盘测试参数
六、应用场合
虽然现在U盘也不是很贵,但也不代表这种应用生存的空间,此类应用的典型场合,比如:
(1)、代替光盘为客户提供说明书,可以将说明资料直接放到板子的存储介质内。
(2)、U盘数据监控、截取和加密。
(3)、采集数据数据暂存,方便拷贝到主机。
(4)、定制U盘等。
七、源码
CH558、CH559模拟U盘的源码(C语言):559模拟U盘源码.rar
CH563模拟U盘的源码(C语言): CH563模拟U盘源码.rar