大容量SD卡在海洋数据存储中的应用_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大容量sd卡在海洋数据存储中的应用海洋要素测量系统要求数据存储量大、平安性高,采纳可插拔式存储卡是一种不错的挑选。目前,可插拔式存储卡有cf卡、u盘及sd卡。cf卡不能与计算机挺直通信;u盘需要外扩接口芯片才干与通信,增强了形状尺寸及功耗;而sd卡具有耐用、牢靠、平安、容量大、体积小、便于携带和兼容性好等优点,十分适合于测量系统长久的数据存储。本设计用法8 gb的sdhc(high capacity sd memory card,大容量sd存储卡),为了便利卡上数据在操作系统上的读取,以及数据的进一步分析和处理,在sdhc卡上建立了fat32文件系统。1sd卡接口的硬件设计f103xx增加型系

2、列是公司生产的基于-m3的高性能的32位risc内核,工作频率为72 mhz,内置高速存储器(128 kb的闪存和20 kb的sram),以及丰盛的增加io端口和衔接到2条apb的外设。stm32f103xx系列工作于-40+105的温度范围,供电为2.03.6 v,与sd卡工作电压兼容,一系列的省电模式可满足低功耗应用的要求。sd卡支持sd模式和spi模式两种通信方式。采纳spi模式时,占用较少的io资源。stm32f103vb包含串行外设spi接口,可便利地与sd卡举行衔接。通过4条信号线即可完成数据的传输,分离是时钟sclk、主机输入从机输出miso、主机输出从机输入mosi和片选cs。

3、stm32f103vb与sd卡卡座的接口1所示。sd卡的最高数据读写速度为10 mbs,接口电压为2.73.6 v,具有9个引脚。sd卡用法卡座代替传输电缆,削减了环境干扰,降低了出错率,而且1对1传输没有分享信道的问题。sd卡在spi模式下各引脚的定义如表1所列。2 sd卡接口的软件设计本设计采纳stm32f103vb自带的串行外设spi接口与sd卡举行通信,这里只介绍spi模式的通信方式。2.1sd卡的读写先对stm32f103vb的spi_crl(spi控制寄存器)以及spi_sr(spi状态寄存器)举行初始化设置,使能spi并用法主机模式;同时设置好时钟,在时钟升高沿锁存数据。spi通

4、道传输的基本单位是字节,由stm32f103vb控制其和sd卡之间的全部通信。要读写sd卡,首先要对其举行初始化。初始化胜利后,即可通过发送相应的读写指令对sd卡举行读写。sd卡的读写流程2所示。2.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,则返回非

5、法响应,这样就可以识别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文件系统。因为文件存储在硬

6、盘上占用的存储器空间以簇为最小单位,fat32文件系统不适合管理容量低于512 mb的存储器。簇假如太大,存储小文件会铺张大量的存储空间;假如太小,fat表会变大,不便利管理。综合考虑,fat32每簇大小为4 kb。3.1fat32文件系统结构fat32文件系统可以分为以下几部分;保留区(reserved region),存放fat文件系统的重要参数和引导程序;fat区(fat region),记录簇(cluster)的用法状况;根名目区(root directory region),记录根名目信息,fat32文件系统舍弃了这个区,根名目区可以指定为随意一个簇;文件名目数据区(file and

7、 directory data region),是各种文件数据实际存放的区域。保留区中的bpb表从扇区0偏移11个字节开头,共占25字节。表2是格式化为fat32文件系统的8 gbsd卡首扇区中读出的bpb参数内容。在保留区之后是fat区,存有文件分配表。普通文件系统中有2份文件分配表fat1和fat2,每份fat表占用空间的大小可从bpb表中查得。因为采纳的是sdhc卡和fat32文件系统,紧接在fat区之后的是文件名目数据区,真正意义上的数据从这个区开头,以簇编号,挨次上第1个簇编号为第2簇,此簇通常为fat32根名目所用。fat16从根名目所占的32个扇区之后的第一个扇区开头以簇为单位举

8、行数据处理,这之前仍以扇区为单位。名目与数据是统一放到这个区域的,并且都不是在一个延续的区域内存放。没有任何特别标志来区别哪个簇是名目项,哪个簇是数据项,而是由文件系统从根名目动身通过查找的办法来确定簇的类型。3.2 fat32文件系统实现本文设计的文件系统采纳模块化层次结构,其总体框架4所示。其中,箭头表示调用关系。应用程序是面对用户的,为满足某种功能需求而编写的程序。可以通过调用文件系统提供的api函数对文件和名目举行相应的操作。文件管理和名目管理模块是挺直与应用程序接口的模块,位于囫囵文件系统的最高层。文件管理模块提供全部与文件操作相关的函数,名目管理模块提供全部与名目操作相关的函数。在

9、对文件操作的大多数状况下,文件管理模块需要调用名目管理模块的相关功能。文件分配表管理模块主要用来对文件系统的fat表举行管理,按照系统的哀求对fat表的内容举行相应的修改。文件名目表管理模块主要提供对文件和名目的基本属性信息的管理。这两个模块管理着文件系统的两个重要数据结构,应用程序不能挺直调用它们。缓存模块是为了降低系统拜访sd卡的次数,提高囫囵系统的处理速度而加入的。它用法了部分ram作为缓存来保存一些拜访过的扇区的数据,普通用来加载fat表和fdt表的数据;向sd卡写入数据时,也需要用它加载数据。以上几个模块的操作都建立在底层驱动程序上。底层驱动程序主要是向sd卡读写某个扇区的程序。文件

10、分配表管理模块包含几个处理簇链的函数,如猎取指定簇下一簇簇号(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_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论