[分享]LPC1768+USBHOST+U盘+SD卡+znFAT 实现 U盘文件拷贝到SD卡
振南的znFAT -- 单片机上的FAT32文件系统
技术发布与支持 [url=http://www.znfat.com/]http://www.znfat.com[/url][url=http://www.znmcu.cn/]http://www.znmcu.cn[/url]
论坛 [url=http://www.znfat.com/bbs]http://www.znfat.com/bbs[/url]
源代码下载:
datacopy.zip
(708.51 KB)
资源占用情况: Program Size: Code=25880 RO-data=27332 RW-data=200 ZI-data=13008 实验在线视频演示:
实际实验效果录像,请看:
通过长期的应用实践,我发现很多人都有一个功能需求,即文件数据的拷贝。他们希望可以将一个文件的数据,全部或部分地拷贝到别一个文件中。如下图所示:
要实现文件的拷贝,其实就是 文件数据的搬移,就要求文件系统方案必须要可以支持 多文件,即同时可以操作多个文件(从文件1读数据,同时要向文件2写入数据)。 znFAT通过独立的文件信息封装(每一个文件有各自的FileInfo),实现了多文件。因此使用 znFAT来完成文件的拷贝还是比较简单的(在znFAT的那28个基础应用标准实例中,就有文件拷贝的实验,这些实例发布在了 www.znfat.com 及其论坛 www.znfat.com/bbs )。 但是,我们这里所要说的“文件数据拷贝”,与上面说的又有所不同,而是“跨越存储设备的文件拷贝”,即 源文件与目标文件是不在同一个存储设备上的,比如把U盘上的文件拷贝到SD卡上。 这对于文件系统方案的功能需求是一个较大的挑战,它要求文件系统方案必须可以支持“多设备”,即可以同时挂接多种不同的存储设备,并可以同时操作这些存储设备上的文件。如下图所示:
znFAT通过分立的存储设备文件系统信息封装,实现了“多设备”功能,可以同时挂接多种存储设备(znFAT的物理层接口已经提供了多存储设备驱动的模板,详情参阅《技术文档》),并且可以在多种存储设备之间进行随时随意的灵活切换。有了这个重要的功能属性,使用znFAT来实现跨存储设备的文件数据拷贝也不是难事! 我以前也作过跨存储设备的文件拷贝实验,当时是使用51单片机、U盘读写使用的是我的CH375模块。介于现在Cortex-M3 ARM芯片的盛行,在这里就使用LPC1768来完成这个实验(因为LPC1768这个芯片内置有USBHOST,可以直接读写U盘)。下面是实验的示意图: 硬件平台:(LPC1768测试板 + 振南的SD卡模块)
|