FatFs文件系统在微型水声监测系统中的应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:napone
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:以典型微型水声监测系统硬件结构为例,分析了几种常见嵌入式应用方面的文件系统的优缺点,介绍了FatFs文件系统的详细移植方法和过程,最后以监测系统的实际使用效果证明了应用FatFs文件系统的优势。
  关键词:FatFs;文件系统;水声;监测系统
  中图分类号:TP368 文献标识码:A 文章编号:1009-3044(2016)22-0200-03
  Abstract: Take the hardware structure of the typical miniature hydroaccoustic monitoring system as an example, this paper analyzes the advantages and disadvantages of several common file systems in embedded system application, and introduces the method and process of migrating FatFs file system in detail, finally the practice effect proves that FatFs file system benefits miniature hydroaccoustic monitoring system.
  Key words: FatFs; file system; hydroaccoustic monitoring system
  1 引言
  随着科学技术的进一步发展和海洋探索的进一步加深,采用电池供电的便携式微型监测系统在水声信号采集和存储领域有着更多的需求[1]。尤其是目前对水声监测系统越来越长的工作时间要求,致使监测数据动辄几百M、几G甚至几十G字节,在这种情况下,对监测数据采用何种存储方式就显得尤为重要。
  传统的存储方式一般采用在软盘、光盘、硬盘、闪存等存储介质上直接写入监测数据,完成监测任务后再使用特定编写的软件读出监测数据,转换成与操作系统兼容的TXT、DAT、XLS等文件,以便分析使用或者归档存储。随着存储数据量的越来越大,这种传统存储方式的弊端也愈发突出,如无法避免的转换过程、转换时间越来越长、多次记录数据管理能力的缺失等,都成为了水声监测系统发展上的制约。采用嵌入文件系统的存储方式,可以直接把数据存储为与操作系统兼容的文件格式,并且支持多次记录数据的管理,从而简化监测系统设计上的复杂度,减少监测任务后的数据处理时间,增加水声监测系统使用方法上的灵活性。
  2 硬件结构
  本文重在讨论FatFs文件系统在微型水声监测系统中的应用,因此硬件系统结构选择有代表性的典型部件来举例说明。在此,我们选择STM32F103RE作为MPU,ADS8326为AD采样核心器件,16G Micro SD卡作为存储介质。此外,硬件系统器件均采用低功耗器件,并进行最小化电路设计,使得我们可以选择普通手机电池为系统电源,以达到降低硬件系统成本和减少系统复杂度的目的。硬件结构如图1所示。
  3 文件系统
  操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统[2]。文件系统由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。从系统角度来看,文件系统是对文件存储空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等。
  3.1 常见文件系统对比
  我们最早和经常接触的文件系统主要在计算机应用方面,比较常见的有window系统的FAT12、FAT16、FAT32和NTFS,Linux 系统的Ext2、Ext3和Ext4,还有大部分光盘使用的CDFS等。同样,在嵌入式系统应用方面,也有UC/FS、ZLG/FS、efsl、MINIFAT、FatFs等众多常见文件系统,下面进行简要介绍[3-4]。
  UC/FS是由Micrium公司开发的文件系统,它是一个高度可移植、可固化的嵌入式FAT文件系统。UC/FS是为与各种类型的硬件兼容而设计的,它适用于所有的存储介质。但它是一个付费的嵌入式文件管理系统,是一个商业版软件,它比较大,且对磁盘的操作效率不高。
  ZLG/FS是广州周立功单片机科技有限公司开发的嵌入式文件系统,其公司很多的开发板上面都送了这个文件系统的源代码,但它对磁盘读写操作速度太慢,不适用于实际应用,比较适用于教学。
  efsl是sourceforge.net网站发布的一个开源、免费的文件系统,它的整体结构很简单,只需要提供读扇区和写扇区2个函数即可,因此移植工作量很少,但它功能较少,稳定性较差。
  MINIFAT是 Toshiba 提供的一个文件系统,此文件系统只支持 fat12/16,提供了比较完整的文件操作函数,支持多设备和多文件,也支持cache管理,有较高的管理效率。但此文件系统不支持长文件名的读取,所有的文件都严格要求是Dos8.3格式的短文件名,总体来说代码清晰,可以自行扩展fat32及长文件名的支持。
  FatFs是一个完全免费开源的文件系统,它是一个专门为小型嵌入式系统设计的通用FAT文件系统模块。FatFs完全用标准C语言编写,并且完全与磁盘I/O层分开,因此它独立于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051,PIC ,ARM, Z80, 68K等等,而且移植比较简单。它支持FATl2、FATl6 和FAT32,支持多个存储介质;有独立的缓冲区,可以对多个文件进行读/写,并特别对8 位单片机和16 位单片机做了优化。   程序清单2 disk_initialize函数
  Prog.2 disk_initialize function
  DSTATUS disk_initialize (
  BYTE drv /* 物理驱动器号 */
  )
  {
  if (drv) /* 只有1个,只能是0 */
  {
  return STA_NOINIT;
  }
  Status = SD_Init(); /* SD卡的初始化程序 */
  if (Status != SD_OK )
  {
  return STA_NOINIT;
  }
  else
  {
  return RES_OK;
  }
  }
  程序清单3 disk_read函数
  Prog.3 disk_read function
  DRESULT disk_read (
  BYTE drv, /* 物理驱动器号 */
  BYTE *buff, /* 数据缓冲区地址指针*/
  DWORD sector, /* 起始扇区号*/
  BYTE count /* 读取扇区数 */
  )
  {
  if (count > 1)
  {
  SD_ReadMultiBlocks(buff, sector * BLOCK_SIZE, BLOCK_SIZE, count); /* 读多扇区块函数 */
  SD_WaitReadOperation(); /* 等待读操作完成 */
  }
  else
  {
  SD_ReadBlock(buff, sector * BLOCK_SIZE, BLOCK_SIZE);
  /*读单扇区块函数*/
  SD_WaitReadOperation(); /* 等待读操作完成 */
  }
  return RES_OK;
  }
  程序清单4 disk_write函数
  Prog.4 disk_write function
  DRESULT disk_write (
  BYTE drv, /* 物理驱动器号 */
  BYTE *buff, /* 数据缓冲区地址指针*/
  DWORD sector, /* 起始扇区号*/
  BYTE count /* 读取扇区数 */
  )
  {
  if (count > 1)
  {
  SD_WriteMultiBlocks(buff, sector * BLOCK_SIZE, BLOCK_SIZE, count); /* 写多扇区块函数 */
  SD_WaitWriteOperation(); /* 等待写操作完成 */
  }
  else
  {
  SD_WriteBlock(buff, sector * BLOCK_SIZE, BLOCK_SIZE);
  /*写单扇区块函数*/
  SD_WaitWriteOperation(); /* 等待写操作完成 */
  }
  return RES_OK;
  }
  5 结束语
  通过以上三个步骤的移植后,我们即可使用FatFs文件系统提供的多种多样、功能强大的应用层函数进行存储介质的文件系统管理,实现微型水声监测记录系统免除数据文件转换、直接存储系统兼容文件、多次记录数据管理等目的。
  在微型水声监测记录系统的实际使用中,连续监测8小时数据量为6GB左右,由于采用FatFs文件系统并直接存储为二进制*.dat文件形式,能节约数据导出和转换时间40分钟左右。对于多次监测记录任务而言,也无需考虑存储区域管理和分配问题,定义不同的存储文件名即可记录不同任务的数据。实践证明,文件系统的使用能简化微型水声监测系统设计上的复杂度,减少监测任务后的数据处理时间,增加水声监测系统使用方法上的灵活性。
  参考文献:
  [1] 曲加圣,杨松. 便携式水下声信标探测定位设备技术设计与实现[J]. 舰船科学技术,2012(4):75-78.
  [2] 席卫华. FatFs文件系统在数码相框上的应用[J]. 信息安全与技术,2012(1): 71-73.
  [3] 王亮. 基于FatFs嵌入式文件系统的振动检测设备[J]. 可编程控制器与工厂自动化,2014(7):91-93 126.
  [4] 龙德亮. 基于μC/GUI和FATFS的车载GPS数据显示与存储系统[D]. 山东师范大学,2014.
  [5] 路敦强,吴晓荣. 基于MSP430F5438和FatFs嵌入式文件系统的实现[J]. 天津师范大学学报:自然科学版,2011(2):28-31 68.
其他文献
摘要:卓越软件工程师培养需要进行良好的环境建设。在优化人才培养方案的基础上,充分运用“互联网 ”时代的创新思维,构建良好的软硬件育人环境,实现部门、人员、课程与平台的协同工作、协同发展与协同创新。该文对人才培养方案优化、教学模式改革和教学环境建设三个方面进行了论述,并提出了卓越工程师教育培养计划持续发展的思路。  关键词:卓越软件工程师;协同育人环境建设;培养模式  中图分类号:TP311 文献标
该文对文献[1]所设计的输出反馈自适应控制系统进行鲁棒性分析;在较弱的条件下证明了该闭环系统的全局稳定性,还证明了输出跟踪的精度完全达到预定的要求,即解决了ε-跟踪问
欧也妮和周冲结婚了。葛朗台吁了一口气:背了大半个世纪被人唾骂的沉重包袱,也该轻松一下了。世人老是说他吝啬,这回大方一次让他们瞧瞧。家里的金库也该清理一下了。
王勃的《滕王阁序》是一篇美文。然而,对这篇“序”究竟是“书序”、“赠序”还是其他什么类型的文体,似乎认识不同。有人认为是“赠序”,有人认为是“书序”。这可有必要翻翻古
比较了盘基网柄菌(Dictyostelium discoideum)野生型细胞KAx-3和突变型细胞AK127在多细胞发育过程中的形态发生.两者有明显的区别;突变细胞的发育只能停留在细胞疏松聚集阶段
摘要:小规模限制性在线课程有利于教育资源和课堂教学的融合。结合SPOC的原理与方法,利用现有丰富、优质的资源,在学校搭建的高校云平台上建设“校本化”高职平面设计课程的资源。为在高职学校开展翻转课堂的教学模式提供了有利支持。  关键词:SPOC;翻转课堂;平面设计;MOOC  中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)33-0151-03  Abstract: S
长江口宽度大叉道多,影响潮流运动的因素错综复杂,且各种变化量的实测资料有限,面对如此一个复杂的非线性随时间变化且实测资料有限的系统,利用传统的方法分析研究系统的建模
随着城市现代化进程的日益加快,城市防汛管理和决策水平滞后的状况更为突出,需要引入SDSS(空间决策支持系统)的理论和技术来全面支持防汛决策过程.针对特大城市上海的防汛特点,综合水文、气象、地理、城市、地理信息系统、模型库、知识库等多项内容,设计了具有实时监测、预测预报特色的防汛SDSS.系统辅助防汛指挥部门科学合理地制定决策调度方案,初步实现把城市防汛工作纳入现代化管理轨道的目标.
爸爸说:“高三了,要更加刻苦。”老师说:“高三了,要把握住时间。”
摘要:随着我国信息网络的发展,互联网视频内容相关服务得到了快速发展。针对分享式视频服务对视频编码压缩的处理需求,提出并设计了一种利用图形处理器GPU协处理视频编码的服务平台。在该系统中,视频源输入后经过预处理得到解码后的亮度和色度数据,然后根据系统硬件配置和资源占用情况,选择GPU硬件编码或CPU软件编码,最后得到编码数据。测试结果表明,所提出的GPU协处理视频编码方案与CPU直接软编码方案相比,