MC9S12UF32的嵌入式文件系统数据存储模块

[10-10 20:38:44]   来源:http://www.88dzw.com  单片机学习   阅读:8489

文章摘要:具有突然掉电的可能性,一些关键代码段可能导致文件系统错误,所以要注意调用f_sync()及时写入。当然,如果是一组连续的f_write()写入,而每次写完都f_sync(),则会极大地影响速度,可以全部写完后f_sync()。 V0.07以后版本的FatFS,增加了以下新的功能: ①_FS_TINY。Tiny模式变成了一个宏选项,而不是独立的代码包。 ②_FS_RPATH。决定是否有当前路径的概念,这将影响两个相关函数的参数。 ③_USE_LFN。启用长文件名支持,可为1或2,为2时可重入。由于长文件名存在堆栈上,而且启用LFN会依据代码页增加一个很大的转换表,占掉几十

MC9S12UF32的嵌入式文件系统数据存储模块,标签:单片机开发,单片机原理,http://www.88dzw.com
具有突然掉电的可能性,一些关键代码段可能导致文件系统错误,所以要注意调用f_sync()及时写入。当然,如果是一组连续的f_write()写入,而每次写完都f_sync(),则会极大地影响速度,可以全部写完后f_sync()。
    V0.07以后版本的FatFS,增加了以下新的功能:
    ①_FS_TINY。Tiny模式变成了一个宏选项,而不是独立的代码包。
    ②_FS_RPATH。决定是否有当前路径的概念,这将影响两个相关函数的参数。
    ③_USE_LFN。启用长文件名支持,可为1或2,为2时可重入。由于长文件名存在堆栈上,而且启用LFN会依据代码页增加一个很大的转换表,占掉几十~几百KB,所以不推荐。
    ④_LFN_UNICODE。长文件名使用Unicode,实验阶段,尚未正式写入文档。

结语
    MC9S12UF32单片机内部集成的SDHC模块,可将SD总线转换为单片机内部的IP总线,开发者只需要对SD协议的基本内容有所了解,通过读写相应的寄存器就可以方便地实现对SD卡的底层读写,大大简化了硬件的开发过程。同时,独立于硬件平台的FatFS软件包可以方便地移植到各种嵌入式系统中,研发者只需要对该软件包的diskio.c和ff.h进行修改,即可完成移植,从而使用FatFS提供的丰富且易于使用的各种接口函数。
    应用上述主要技术实现的具有嵌入式文件系统的数据模块如图4所示。


    该模块体积小巧、存储数据的灵活性和通用性很高,可以通过模块自带的串行通信接口接收数据,并以文件的形式存储起来。用户既可以直接通过USB接口将本模块识别为U盘进行数据读写和分析,也可以将micro SD卡拔出,在任意一个具有micro SD读卡器功能的设备上读写数据。上述功能特性使得这款数据存储模块具有很良好的应用前景。

www.88dzw.comMC9S12UF32内部集成的SDHC模块支持SD卡1.O版本的物理层协议,所以本系统使用标准microSD卡(而非SDHC卡),其存储容量最大为2 GB。这样的存储容量已经完全可以满足大多数嵌入式应用的需求。


    (2)MC9S12UF32与SD卡之间的数据传输
    在完成对时钟频率和传输数据线宽度的配置之后,通过发送相应的读写命令就可以实现单片机与SD卡之间的数据传输了。在单片机向SD卡写入数据的过程中,编程者将需要写入的数据写入SDHC模块的SDATA寄存器(16位)之后,该数据将被转移至发送数据FIFO中。与此同时,只要发送数据FIFO非空,其中的数据就会不断地通过数据线被写入SD卡的相应位置。在单片机从SD卡中读取数据的过程中,SD卡中的数据将不断发送至接收数据FIFO中。只要接收FIFO非空,单片机就可以不断地通过读SDATA寄存器得到接收数据FIFO中的数据。
2.2 DSl2887实时钟模块
    DSl2887模块使用数据/地址复用的并行异步总线,可以为单片机提供100年以内的实时钟信息(年/月/日/时/分/秒)。它内部具有石英晶振和锂电源,首次使用时,需要对该模块内部的寄存器进行相应配置,激活晶振使其进入工作状态。由于DSl2887内部带有锂电源,所以一旦晶振被激活,即使外部掉电,该模块依然可以保存并提供正确的实时钟信息。
    设定DSl2887的时间和从DSl2887中读取时间信息的底层程序比较简单,只需参照芯片手册对寄存器进行合理配置。但是,需要特别注意的是,在写时钟和读取时钟之前需要锁存时钟信息相关的buffer,防止在读写过程中由于出现时钟信息自动更新情况而导致的错误。系统中,在每次读写实时钟之前,查询DSl2887内部控制寄存器A最高位UIP是否为O,以避免上述错误的产生。因为芯片手册中给出,一旦UIP=O,那么在244μs内实时钟模块都不会自动更新当前的时钟信息,而这段时间足以让单片机完成读写实时钟的过程。

上一页  [1] [2] [3] [4]  下一页


Tag:单片机学习单片机开发,单片机原理维修教程知识 - 单片机学习