大容量SD卡在海洋数据存储中的应用
[10-10 20:38:44] 来源:http://www.88dzw.com 单片机学习 阅读:8698次
文章摘要:文件管理和目录管理模块是直接与应用程序接口的模块,位于整个文件系统的最高层。文件管理模块提供所有与文件操作相关的函数,目录管理模块提供所有与目录操作相关的函数。在对文件操作的大多数情况下,文件管理模块需要调用目录管理模块的相关功能。文件分配表管理模块主要用来对文件系统的FAT表进行管理,根据系统的请求对FAT表的内容进行相应的修改。文件目录表管理模块主要提供对文件和目录的基本属性信息的管理。这两个模块管理着文件系统的两个重要数据结构,应用程序不能直接调用它们。缓存模块是为了降低系统访问SD卡的次数,提高整个系统的处理速度而加入的。它使用了部分RAM作为缓存来保存一些访问过的扇区的数据,一般用来
大容量SD卡在海洋数据存储中的应用,标签:单片机开发,单片机原理,http://www.88dzw.com文件管理和目录管理模块是直接与应用程序接口的模块,位于整个文件系统的最高层。文件管理模块提供所有与文件操作相关的函数,目录管理模块提供所有与目录操作相关的函数。在对文件操作的大多数情况下,文件管理模块需要调用目录管理模块的相关功能。
文件分配表管理模块主要用来对文件系统的FAT表进行管理,根据系统的请求对FAT表的内容进行相应的修改。文件目录表管理模块主要提供对文件和目录的基本属性信息的管理。这两个模块管理着文件系统的两个重要数据结构,应用程序不能直接调用它们。
缓存模块是为了降低系统访问SD卡的次数,提高整个系统的处理速度而加入的。它使用了部分RAM作为缓存来保存一些访问过的扇区的数据,一般用来加载FAT表和FDT表的数据;向SD卡写入数据时,也需要用它加载数据。
以上几个模块的操作都建立在底层驱动程序上。底层驱动程序主要是向SD卡读写某个扇区的程序。
文件分配表管理模块包含几个处理簇链的函数,如获取指定簇下一簇簇号(fat_next_clus())、建立簇与指定簇的链接关系(fat_link_clus())、在簇后增加一个空白簇到簇链中(fat_add_clus())和删除指定簇的簇链(fat_del_clus_chain())。文件目录表管理模块包含几个处理文件登记项的函数,如在给定目录下查找文件(fat_find_fdt())、在给定目录下添加文件(fat_add_fdt())和在给定目录下删除文件(fat_delete_fdt())。目录管理模块主要是实现建立、删除目录的操作,包含的函数有根据路径查找目录所在簇(fat_open_dir())、建立目录(fat_make_dir())和删除目录(fat_del_dir())。用户使用文件系统主要是对文件的操作,文件管理模块提供了对文件的创建、修改和删除等操作,包含函数新建文件(file_create())、打开文件(file_open())、读写指针设定(file_seek())、读取文件数据(file_read())、写入文件数据(file_write())、删除文件(file_delete())和关闭文件(file_close())。
结语
本文介绍了SD卡在海洋数据存储中的应用,使用高性能的STM32F103xx系列处理器提高了SD卡的数据读写速率,很好地解决了海洋数据采集中的大容量存储问题和SDl.x与SD2.0的识别问题,并给出了适用于SD卡的FAT32文件系统的参数设置及其实现方法。 www.88dzw.com2.2 SD1.x与SD2.0标准的识别
由于大容量SDHC的出现,SD1.x满足不了SDHC的容量要求,标准已经升级为SD2.0。但也因此出现了许多电子设备无法驱动大容量SD卡的情况,如何识别SD1.x与SD2.0就显得尤为重要。SD2.0的SPI模式初始化流程如图3所示。

判断是否为SD2.0卡,CMD8(SD2.0新增的命令)是关键。若卡是SD2.0,则发送CMD8将会返回有效响应;若是SD1.x,则返回非法响应,这样就可以识别SD卡的类型。
SD1.x与SD2.0的最大不同在于命令地址的表示。SD1.x的地址单位是字节,而SD2.0的地址单位是扇区,地址仍然采用32位4个字节来表示。因此在读写操作时应该根据不同的卡对地址进行相应的处理,若是SD1.x则写入字节地址,若为SD2.0则写入扇区地址。
3 FAT32文件系统
目前有3种FAT文件系统:FAT12、FAT16和FAT32。它们的区别在于文件分配表(File Allocation Table,FAT)中每一表项的大小(也就是所占的位数):FAT12为12位,FATl6为16位,FAT32为32位。本设计选择FAT32文件系统。
由于文件存储在硬盘上占用的存储器空间以簇为最小单位,FAT32文件系统不适合管理容量低于512 MB的存储器。簇如果太大,存储小文件会浪费大量的存储空间;如果太小,FAT表会变大,不方便管理。综合考虑,FAT32每簇大小为4 KB。
3.1FAT32文件系统结构
FAT32文件系统可以分为以下几部分;保留区(reserved region),存放FAT文件系统的重要参数和引导程序;FAT区(FAT region),记录簇(cluster)的使用情况;根目录区(root directory region),记录根目录信息,FAT32文件系统舍弃了这个区,根目录区可以指定为任意一个簇;文件目录数据区(file and directory data region),是各种文件数据实际存放的区域。
Tag:单片机学习,单片机开发,单片机原理,维修教程知识 - 单片机学习
《大容量SD卡在海洋数据存储中的应用》相关文章
- › 大容量SD卡在海洋数据存储中的应用
- 在百度中搜索相关文章:大容量SD卡在海洋数据存储中的应用
- 在谷歌中搜索相关文章:大容量SD卡在海洋数据存储中的应用
- 在soso中搜索相关文章:大容量SD卡在海洋数据存储中的应用
- 在搜狗中搜索相关文章:大容量SD卡在海洋数据存储中的应用
最新更新