单片机读写U盘开发笔记

整理开发过程中的笔记,希望对刚刚开始做U盘的朋友有所帮助。 对于U盘可以采取两种方式:1.把U盘当作一个打的RAM这种方法不需要分析复杂的FAT格式。提起这种说法,很

多同仁不屑。我觉得不然,所谓 “简单就是科学”往往最简单,最直接的东西是最好的东西也是最可靠的东西

。如果您只需要将数据存储到U盘,然后把U盘拿到计算机上分析数据的化。完全可以采取这种思路。就是把硬

件都接好,却定好需要的空间,分配好地址。单片机把需要存储的数据写入到相应的地址,这样U盘也就是一个 大的RAM了。对于数据的读出,将串口接到计算机的RS232上,单片机将U盘的固定地址的数据依次读出来,发送 到串口上就可以。这样,U盘和外部RAM的区别就是读写单位是一个簇(容量比较小的U盘一个扇区就是一个簇)

。2.分析FAT格式.在进行读写U盘之前,先不要急着调试程序。要紧的是了解U盘的结构。其实U盘也就是 一块硬盘,只不过容量比较小。U盘的FAT表,FDT表和目录登记项与硬盘的结构完全一样。所以,如果您不了解 硬盘的结构,就试图读写成功是不可能的。在此我向大家推荐一本书《硬盘扇区读写技术》宋群生 主编的。 这本书里面详细的介绍了,硬盘的FAT表 FDT表 他们的具体参数的内容以及,他们在U盘中的分布位置。 并且针对FAT16 FAT32分区格式的硬盘做了具体的分析。 如需交流:www.jnyldz.com 邮件:个人信息保护,已隐藏 。 3.单片机读写U盘的文件系统。对于FAT格式的文件系统的功能是强大的。但是我觉得对于单片机这个小小的芯

片,并且是没有移植操作系统的单片机系统来说,取其关键就足矣。对于单片机系统来说约简单越好。在计算

机上,在WINDOWS下进行文件系统是很简单的。但是对于单片机难度就太大了,就象一条鲸游从大海入了一条小

河,想让他在河里灵活自如的游动是不可能的。那怎么办,减肥。是的,去掉文件系统多余的部分取其精华。 当然文件系统,是肯定少不了FAT FDT表的。这也是FAT格式的关键之所在。找到这两个表,进行分析,取出 需要的关键字节,进行运算,根据簇链寻址的原理就可以灵活的读写U盘。 以上是本人在开发读写U盘过程中的一点心得,有不对的地方,希望大家笔下留情。

好,顶一下


我支持第3种观点,根据实际需要简化文件系统. 但是也就成了非通用系统,必须有方法2的支持.


谢谢,收藏


我是菜鸟,读后很有启发


“去掉文件系统多余的部分”,比如呢?


请教:电子盘模块CH375EDM 的用法.

下面是电子盘模块CH375EDM 的电路图,用于插入在兼容SRAM-6264 引脚的DIP28 插座中。 单片机系统应该提供兼容SRAM-6264引脚的DIP28插座,电子盘模块应该插入该DIP28插座中, 然后在电子盘的模块的P1 端口插入U 盘(USB 闪存盘)或者通过USB 延长线插入U 盘。 以原SRAM-6264 的片选地址作为基址,各端口地址如下: 基址加0 的地址为CH375 的数据端口, 基址加1 的地址为CH375 的命令端口, 基址加2 的地址为CH375 的状态端口,其中位0 为CH375 的INT#引脚状态。 要使用电子盘模块,单片机系统必须给DIP 插座提供以下信号: 低电平有效的CE#片选信号和高电平有效的CE 片选信号,与SRAM-6264 兼容; 低电平有效的RD#/OE#读选通信号,低电平有效的WR#/WE#写选通信号,与SRAM-6264 兼容; 地址线A1 和A0,双向数据总线D7-D0,与SRAM-6264 兼容; 可选的中断信号,从DIP28 插座的第1 脚输出,当跳线J1 连接1-2 时提供低电平中断信号,当 跳线J1 连接2-3 时提供高电平中断信号。 单片机系统可以直接使用CH375读写U 盘,将U盘当作大容量闪存使用。如果需要使用文件系统 以文件格式读写数据,可以使用CH375的U 盘文件级子程序库,只要在程序中设置正确的端口地址, 相关的示例程序都可以直接使用。


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