新闻中心

EEPW首页>嵌入式系统>设计应用> FatFS的水动力实验数据存储系统设计

FatFS的水动力实验数据存储系统设计

作者: 时间:2013-04-23 来源:网络 收藏

DRESULT disk_write(BYTE drv,BYTE *buff,DWORDsector,BYTE count)为写扇区函数。与disk_read相似,其功能是向导入扇区的数据。*buff用于保存将要写入的数据,sector是待写入扇区的起始扇区数,count是需要写入的扇区数。在写数据接口函数基础上编写,如果执行无误,则返回0值;否则,返回非0值。
DRESULT disk_ioctl(BYTE drv,BYTE ctrl,void*buff)为存储介质控制函数。ctrl是控制代码,*buff用于保存或接收需要控制的数据。用户在此函数添加自己需要的功能代码,例如获得存储介质的容量、扇区数等。如果不执行任何功能,则直接返回0值。
DWORD disk_fattime为实时时钟函数。该函数将读取的实时钟信息保存在一个32位无符号整数中,并将其作为函数的返回值。时钟信息的具体分布如图9所示。

本文引用地址://m.amcfsurvey.com/article/148053.htm

h.JPG


4.3裁减与配置
提供了丰富的库函数,可以实现创建、读取文件夹,创建、读写文件,移动文件指针,使用者可以根据自己的需求设置相应的宏,对FatFS进行裁减,仅保留需要的功能函数,从而精简文件系统的内存开销。FatFS还需要加入对应的语言包,cc936支持的是简体中文。FatFS提供的函数与宏的对应关系如图10所示。

i.JPG


使用FatFS向文件中写入或读取字符串,需要使用类似C语言fprintf()的格式化输入功能时,将_USE_STRFUNC设置为2,_USE_READONLY设置为1即可。

5 FatFS文件系统的使用和系统应用
FatFS文件系统中涉及2个基本的数据结构:文件系统(磁盘)的数据结构FatFS和文件的数据结构FIL。这两个结构是FatFS软件主要的RAM开销,FatFS数据结构中有针对磁盘的512字节读写缓存,FIL则有针对每个文件的缓存。而采用Tiny—FatFS配置则不会开设文件读写缓存,节约RAM。本设计中,开启Tiny—FatFS配置比关闭共节约了未初始化的数据段(ZI—data)4 096个字节。
依次使用f_mount、f_open、f_read/f_write、f_close可以完成基本的读写。FatFS允许对同一文件同时读写,或者打开几个文件进行读写。f_write和f_printf可以分别实现对文件大块数据和字符串类型的数据写入功能。后者可以对写入的数据进行一些格式转换,包括数据类型、数据长度和有无符号等。
在水动力的实验中,采用本系统记录数据。系统主频工作在72 MHz,采用2 GB的Micro,每次记录的文件长度为2 308 KB,即时长为65 s。文件名称为数据记录的当前时刻。在一组实验结束后,通过USB口与上位机连接,即可对存储的数据文件进行操作。在上位机端,文
件读写的速度达到了200 KB/s。从测试结果上可以看出,数据储存接口正确,速度令人满意,完全适合嵌入式系统的需求,可以作为通用型数据记录系统。

结语
本系统采用的内部集成SDIO接口,并且ST公司提供了完善的库函数,通过相应的函数就可以方便地实现对SD卡的读写,简化了硬件的开发过程。具备USB接口使得该系统大大增强了通用性和兼容性。同时,独立于硬件平台的FatFS文件系统可以方便地移植到嵌入式系统中,用户只需要对负责底层硬件接口的diskio.c进行修改,即可完成移植,并使用FatFS提供的丰富且易于使用的各种接口函数。该系统具有体积小、存储数据灵活和通用性强的优点。用户既可以直接通过USB接口将该系统识别为U盘进行数据读写和分析,也可以取出MicroSD卡在读卡器上读写数据。将该系统拓展应用在嵌入式系统应用中,具有良好的前景。

晶振相关文章:晶振原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭