面向闪存类存储设备嵌入式文件系统研究和实现.docVIP

面向闪存类存储设备嵌入式文件系统研究和实现.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向闪存类存储设备嵌入式文件系统研究和实现

面向闪存类存储设备嵌入式文件系统研究和实现   摘要:介绍了面向闪存类设备的嵌入式文件系统。提出了一种不依靠任何操作系统,以单片机和闪存类设备为硬件基础的,依照FAT类型文件系统所构建的嵌入式主机文件系统的设计思路,详细地、分模块地对该系统进行了分析,并在实际开发和应用中已经得到了验证。   关键词:嵌入式文件系统; 单片机; 闪存类设备; 文件分配表   中图分类号:U463.211文献标志码:A   文章编号:1001-3695(2008)03-0814-02      数据采集仪作为故障诊断的前端采集器,广泛地应用在工业生产的各个领域中。其中,数据存储技术是数据采集仪的关键技术之一。考虑到数据采集仪的现场工作环境恶劣,对数据存储介质的要求有如下几个特点:体积小、可靠性高、存取速度快、通用性好。闪存类存储设备在单片机系统中得到了广泛的应用,常见的有USB电子盘、闪存卡等。其中闪存卡包括MMC卡、CF卡、SD卡,还有SONY的Memory Stick。   为了能在数据采集仪与PC之间进行交互,必须按照一定的标准来组织数据。通常采用的方法就是在其中嵌入文件系统。目前,市场上存在多种商用的嵌入式操作系统可以支持文件系统,如XPE等。但与之对应的是,上述的操作系统对硬件的要求很高,而且价格昂贵,并且对存储空间也有一定的额外要求。但目前数据采集仪中有很多采用的是8位或者16位的MCU,较少使用操作系统,即使采用操作系统往往也并不支持文件系统。所以,很有必要开发一种面向移动存储介质,而且不依赖于操作系统的标准文件系统。      1系统概述      本文所讨论的文件系统是依照集中索引文件系统所建立的。集中索引文件系统是目前最常用的基于磁盘存储器的文件系统,包括Windows的FAT系列和基于Linux的Ext系列。所谓的集中索引文件系统,是将存储器的使用信息和文件的索引信息集中存放在存储区的固定位置。   闪存设备可以通过使用闪存转译层(FTL)驱动而模拟成与磁盘相似的块设备,所以该类设备均可以通过调用相应的驱动程序,从而按照集中索引文件系统来管理数据。考虑到数据转换和使用方便,本文件系统主要实现的是基于FAT16类文件系统格式化的闪存类设备的数据文件的读写。   文件系统是一个独立的整体,并且有明确的模块划分,能够使该文件系统在对文件系统格式支持收纳该具有很好的扩展性,对文件系统的设备管理上也实现了设备无关性。   本文件系统模块如图1所示。      用户接口(文件系统API)模块:对文件系统进行最后的封装,对用户提供文件系统的API接口,用户可以直接调用该模块的函数进行文件级的操作;文件系统模块:主要实现FAT文件系统中间级函数;   设备驱动管理模块:主要实现对文件设备驱动程序的管理,最终实现文件系统的设备无关性,通过通用的函数接口来实现对各种闪存类设备底层物理意义的读写。      2设备驱动管理模块      闪存类设备可以通过闪存转译层(FTL)驱动而模拟成块设备,所以本文件系统的设备驱动管理模块作为整个文件系统最底层的模块可以被上两层的模块直接调用。物理上来看,闪存类设备均可以由扇区组成,每扇区512 Byte,均采用逻辑块寻址方式LBA(logical block addressing)。   2.1控制器驱动层   块设备控制器驱动是设备驱动层最底层的函数,是MCU与块设备的通信接口,通过数据线、读写控制线、片选线完成对块设备或块设备控制器的I/O读写等操作,可为上层驱动提供对块设备的访问接口。不同的闪存类设备依照自身的硬件特点,接口电路也不尽相同。例如MMC卡、CF卡可直接与MCU通信,而USB电子盘则必须通过接口芯片与MCU进行通信。用户可根据所选用的闪存设备以及自身硬件电路的特点来选择这部分的驱动程序。   例如在本实验室自主开发的基于C8051F124的与MMC卡和USB电子盘的存储模块中,块设备的控制器驱动层如下:   a)C8051F124与MMC卡通过SPI通信的驱动程序   INT8U MMCdatachange(uchar Bdata)   {   SPIODAT=Bdata;   while(!SPIF);   SPIF=0:   return SPIODAT;   }   b)C8051F124通过USB主机接口芯片CH375与USB电子盘通信的驱动程序   CH375命令端口的I/O地址:INT8U volatilexdataCH375_CMD_PORT _at_ 0xBDF1;   CH375数据端口的I/O地址:INT8U volatilexdataCH375_DAT_PORT _at_ 0xBCF0;   写

文档评论(0)

151****1926 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档