CN107608636A - 一种基于fat文件系统的设计方法及其应用的数据采集装置 - Google Patents
一种基于fat文件系统的设计方法及其应用的数据采集装置 Download PDFInfo
- Publication number
- CN107608636A CN107608636A CN201710907028.7A CN201710907028A CN107608636A CN 107608636 A CN107608636 A CN 107608636A CN 201710907028 A CN201710907028 A CN 201710907028A CN 107608636 A CN107608636 A CN 107608636A
- Authority
- CN
- China
- Prior art keywords
- data
- fat
- flash
- file system
- design method
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于FAT文件系统的设计方法及其应用的数据采集装置,括数据接口、单片机、实时时钟RTC和FLASH,所述数据接口连接至单片机,所述数据接口用于接收和输入数据,所述单片机与FLASH双向连接,所述FLASH用于存储文件形式的数据,所述实时时钟RTC连接至单片机,所述单片机具有USB接口,用于连接PC,所述FLASH上应用有基于FAT文件系统的设计方法,包括以下步骤:将FAT文件系统中的FAT区虚拟化,将FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上,虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。本发明延长了FLASH寿命和减少对FLASH文件的操作占用的RAM和ROM资源。
Description
技术领域
本发明涉及FAT文件系统,特别是一种基于FAT文件系统的设计方法及其应用的数据采集装置。
背景技术
文件存储在磁盘中需要某种组织方式,以便于文件在各个平台上的共享。这种组织形式包括常见的NTFS,FAT等。但是这些组织形式本身也必然会消耗大量的RAM和ROM资源,对于电脑来说,当然可以不用考虑这部分资源占用,但是对于本身资源就很少的微处理器就变得尤为重要了。
CN02108017.8公开了一种可适用于快闪存储卡的控制装置及其建构方法,其特征是:在控制装置开机且已完成对存储卡的每一资料区块的实体区块位址(PBA)逐一扫描后,控制装置将依据其内一分段实体区块映射表的容量大小而规划并分割存储卡成为多个分段区,再搭配控制装置内另一FAT映射附表以作为对作业系中记录FAT的逻辑位址的映射,当电脑主机欲进行档案存取动作时,分段实体区块映射表将可作为分段区内资料段的映射,而FAT映射附表将配合作业系统对FAT区更新时提供快速的寻找实体区块位址ab效。
CN200410103980.4公开了一种闪存文件系统管理方法,将闪存划分为FAT表区和数据存储区,同时划分为多个块区;上电后,在内存中建立空间映射表,写入各文件包含的数据块所在块区号的信息;创建新文件时,在FAT表中追加一条新记录,将该新文件ID、所占块的数量、文件索引号写入该记录;然后依次将该文件的各数据块写入空闲块,并将各数据块所在块区号写入空间映射表中对应的位置;更新文件数据时,只对文件数据存储区进行操作;读取数据时,确定要读的数据在哪几个数据块中后,根据文件标识查询该数据块所在块区号,只在块区内查找该数据块。
CN200510117738.7公开了在Flash存储介质上关于文件分配表的缓存实现方法,发明的缓存针对单个的文件,当创建或打开文件时,就会创建一文件对象结构与之对应,在文件对象结构中有结构数组FatCache[FAT_CACHE_NUM]作为要修改的目录项的缓存,FatCache数组中的每一项对应文件的一个FAT项,其结构包含簇号、簇对应的FAT项的值以及FAT项的修改时间,当文件系统修改FAT项时,就在FatCache[]找一节点,将要修改的FAT项对的簇号、FAT值、时间写入对应的节点中,当关闭或刷新文件时,文件系统会将FatCache[]中的有效内容写入diskFAT区的对应位置。
就FAT系统而言,文件的记录每写满一个簇就需要申请FAT表,也就涉及到FAT的不断修改添加,然而对于容量小、单次操作慢和本地资源紧张的存储器,以FLASH为例,一次擦除单位都比较大,改写扇区内容需要4K缓存,对FLASH文件的操作占用了大量的RAM和ROM资源,此外,频繁的擦写也极大地缩减FLASH寿命。
发明内容
针对现有技术中存在的问题,本发明提供了一种延长了FLASH的寿命和减少对FLASH文件的操作占用的RAM和ROM资源的一种基于FAT文件系统的设计方法及其应用的数据采集装置。
本发明的目的通过以下技术方案实现。
一种基于FAT文件系统的设计方法应用的数据采集装置,包括数据接口、单片机、实时时钟RTC和FLASH,所述数据接口连接至单片机,所述数据接口用于接收和输入数据,所述单片机与FLASH双向连接,所述FLASH用于存储文件形式的数据,所述实时时钟RTC连接至单片机,所述单片机具有USB接口,用于连接PC,所述FLASH上应用有基于FAT文件系统的设计方法,步骤包括:
1)将FAT文件系统中的FAT区虚拟化,之后执行步骤2);
2)将所述FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上,之后执行步骤3);
3)虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。
进一步的,所述数据接口为串口或者并口。
一种基于FAT文件系统的设计方法,应用于FLASH上,步骤包括:
1)将FAT文件系统中的FAT区虚拟化,之后执行步骤2);
2)将所述FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上,之后执行步骤3);
3)虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。
进一步的,所述DBR区仅占一个扇区。
进一步的,所述存储地址映射层将外接设备对首扇区地址数据的请求转换成最后一个扇区的数据。
进一步的,所述存储地址映射层将外接设备对数据区地址数据的请求转换成首扇区开始的数据。
进一步的,所述存储地址映射层根据外接设备的对FAT区的请求,找到文件目录项区文件大小,然后计算FAT表,返回临时构建的FAT区数据。
进一步的,所述文件目录项的存储扇区大小为4K,在对所述文件目录项进行修改时,所述文件目录项的首地址向下偏移32个字节重写,写满所述扇区后,擦出整个扇区,并偏移到扇区头重写。
相比于现有技术,本发明的优点在于:本发明通过将FAT区的物理存储改为软件虚拟,同时通过目录项移动,减少了目录项所在扇区的擦除次数,不用频繁操作FLASH,延长了FLASH的寿命,同时,节省出了FAT区的存储空间,扩大了FLASH中的文件存储空间,解决了现有技术中对FLASH的频繁擦除所带来FLASH寿命极大缩减的问题和对FLASH文件的操作占用了大量的RAM和ROM资源的问题。
附图说明
图1为本发明一种基于FAT文件系统的设计方法的流程图;
图2为本发明存储地址映射层的一种映射关系;
图3为本发明一种基于FAT文件系统的设计方法应用的数据采集装置的结构框图。
具体实施方式
下面结合说明书附图和具体的实施例,对本发明作详细描述。
实施例1
如图1所示,一种基于FAT文件系统的设计方法,步骤包括:
1)将FAT文件系统中的FAT区虚拟化;
2)将FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上;
3)虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。
其中DBR区域可仅占一个扇区,存储地址映射层,可将外接设备的地址数据请求转换成最后一个扇区内容,可将外接设备的数据区数据请求转换成首扇区内容,可根据外接设备的关于FAT区的请求,找到文件目录项区文件大小,然后计算FAT表,返回临时构建的FAT区数据。
文件的记录每写满一个簇就需要申请FAT表,也就涉及到FAT的不断修改添加,然而对于FLASH,一次擦除单位都比较大(如W25Qxx最小擦4K),就需要4K缓存。较占RAM。
此外,频繁的擦写也会极大的缩减FLASH寿命。然而,实现方案中的FAT区并不实际存在于FLASH上,而是根据目录项中当前文件大小临时生成。FAT表是一个链表结构,默认文件是顺序存储。
常规的文件大小是存在于固定位置的目录项上。由于FLASH写的特殊性,同上。所以目录项的位置需要在每次修改后换位置存储,以使FLASH擦写次数均衡。实现方案中对文件目录项的存储实现方式是预留一个4k扇区,擦除扇区后所有位置均为FF,每个目录项32字节,所以每次擦除后,可写4096/32=128次再次擦除,极大减少擦除次数。
数据区文件数据的写入,不用记录簇号、簇大小、LBA地址等信息,减少单片机CODE区开销。只需要记录当前文件大小即可,以便于最后更新到FLASH。
如图2所示,现有FAT文件系统包括DBR、FAT1、FAT2、DIR和DATA等区域。
本发明中将FAT1和FAT2区域虚拟为存储地址映射层,FAT区并不实际存在于FLASH上,而是根据目录项中当前文件大小临时生成。
假设一个FLASH有N个存储块(按最小擦除单位记),预留最后两个区域(N-2区、N-1区)分别用于记录目录项和DBR区。其他区域是实际文件存储区域。当PC请求DBR区和DATA区时,直接更改地址请求数据即可。当PC请求FAT区内容,会先请求N-2区,找到当前文件大小,然后计算FAT表,返回当前文件的链表存储占用空间。每次更新文件名、文件长度等属性信息,会到N-2区更改,并在后32字节写入最新的属性,写满擦除。
实施例2
如图3所示,一种基于FAT文件系统的设计方法应用的数据采集装置包括串口301,MCU302、实时时钟RTC303和FLASH304,所述串口301连接至MCU302,用于接收和输入数据,所述MCU302与FLASH304双向连接,所述FLASH304用于存储文件形式的数据,所述实时时钟RTC303连接至MCU302,所述MCU302具有USB接口,用于连接PC,可以通过PC读写FLASH304里面的文件。所述FLASH304上应用有基于FAT文件系统的设计方法,步骤包括:
1)将FAT文件系统中的FAT区虚拟化,之后执行步骤2);
2)将所述FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上,之后执行步骤3);
3)虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。
Claims (8)
1.一种基于FAT文件系统的设计方法应用的数据采集装置,其特征在于包括数据接口、单片机、实时时钟RTC和FLASH,所述数据接口连接至单片机,所述数据接口用于接收和输入数据,所述单片机与FLASH双向连接,所述FLASH用于存储文件形式的数据,所述实时时钟RTC连接至单片机,所述单片机具有USB接口,用于连接PC,所述FLASH上应用有基于FAT文件系统的设计方法,步骤包括:
1)将FAT文件系统中的FAT区虚拟化,之后执行步骤2);
2)将所述FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上,之后执行步骤3);
3)虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。
2.根据权利要求1所述的一种基于FAT文件系统的设计方法应用的数据采集装置,其特征在于所述数据接口为串口或者并口。
3.一种基于FAT文件系统的设计方法,应用于FLASH上,其特征在于步骤包括:
1)将FAT文件系统中的FAT区虚拟化,之后执行步骤2);
2)将所述FAT文件系统中的DATA区、文件目录项和DBR区依次划分于FLASH存储上,之后执行步骤3);
3)虚拟一个存储地址映射层,将外接设备的请求地址转换成FLASH物理地址所对应的数据或临时构建的FAT区数据。
4.根据权利要求3所述的一种基于FAT文件系统的设计方法,其特征在于所述DBR区仅占一个扇区。
5.根据权利要求3或4所述的一种基于FAT文件系统的设计方法,其特征在于所述存储地址映射层将外接设备对首扇区地址数据的请求转换成最后一个扇区的数据。
6.根据权利要求3或4所述的一种基于FAT文件系统的设计方法,其特征在于所述存储地址映射层将外接设备对数据区地址数据的请求转换成首扇区开始的数据。
7.根据权利要求3或4所述的一种基于FAT文件系统的设计方法,其特征在于所述存储地址映射层根据外接设备的对FAT区的请求,找到文件目录项区文件大小,然后计算FAT表,返回临时构建的FAT区数据。
8.根据权利要求3所述的一种基于FAT文件系统的设计方法,其特征在于所述文件目录项的存储扇区大小为4K,在对所述文件目录项进行修改时,所述文件目录项的首地址向下偏移32个字节重写,写满所述扇区后,擦出整个扇区,并偏移到扇区头重写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710907028.7A CN107608636B (zh) | 2017-09-28 | 2017-09-28 | 一种基于fat文件系统的设计方法及其应用的数据采集装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710907028.7A CN107608636B (zh) | 2017-09-28 | 2017-09-28 | 一种基于fat文件系统的设计方法及其应用的数据采集装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107608636A true CN107608636A (zh) | 2018-01-19 |
CN107608636B CN107608636B (zh) | 2020-07-07 |
Family
ID=61067213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710907028.7A Active CN107608636B (zh) | 2017-09-28 | 2017-09-28 | 一种基于fat文件系统的设计方法及其应用的数据采集装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608636B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101484882A (zh) * | 2005-12-09 | 2009-07-15 | 晟碟以色列有限公司 | 闪存管理方法 |
CN101763426A (zh) * | 2010-01-08 | 2010-06-30 | 浙江大学 | 一种实现文件分配表文件系统可靠性的方法和装置 |
CN102789425A (zh) * | 2012-07-17 | 2012-11-21 | 上海晟东电力科技有限公司 | 基于flash存储介质的文件读写方法 |
CN104007939A (zh) * | 2014-06-23 | 2014-08-27 | 深圳供电局有限公司 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
-
2017
- 2017-09-28 CN CN201710907028.7A patent/CN107608636B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101484882A (zh) * | 2005-12-09 | 2009-07-15 | 晟碟以色列有限公司 | 闪存管理方法 |
CN101763426A (zh) * | 2010-01-08 | 2010-06-30 | 浙江大学 | 一种实现文件分配表文件系统可靠性的方法和装置 |
CN102789425A (zh) * | 2012-07-17 | 2012-11-21 | 上海晟东电力科技有限公司 | 基于flash存储介质的文件读写方法 |
CN104007939A (zh) * | 2014-06-23 | 2014-08-27 | 深圳供电局有限公司 | 用于小文件频繁写入的嵌入式fat文件系统及方法 |
Non-Patent Citations (1)
Title |
---|
匡伟等: "一种支持FAT文件系统的Flash转换层设计", 《重庆邮电大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107608636B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11640353B2 (en) | Memory system, data storage device, user device and data management method thereof | |
Kwon et al. | Strata: A cross media file system | |
Chung et al. | A survey of flash translation layer | |
US8078794B2 (en) | Hybrid SSD using a combination of SLC and MLC flash memory arrays | |
US8447915B2 (en) | Flash memory device for allocating physical blocks to logical blocks based on an erase count | |
US7461198B2 (en) | System and method for configuration and management of flash memory | |
CN110678836A (zh) | 用于键值存储的持久性存储器 | |
US5765201A (en) | Changing page size in storage media of computer system | |
CN106326229B (zh) | 一种嵌入式系统的文件存储方法和装置 | |
KR20090046567A (ko) | 반도체 디스크 및 그것의 동작 방법 | |
US20060218347A1 (en) | Memory card | |
CN107239526A (zh) | 文件系统实现方法、碎片整理方法、操作位置定位方法 | |
US20150324281A1 (en) | System and method of implementing an object storage device on a computer main memory system | |
CN111522507B (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
US20190303019A1 (en) | Memory device and computer system for improving read performance and reliability | |
US9183127B2 (en) | Sequential block allocation in a memory | |
US8046391B2 (en) | Storage apparatus and its file control method and storage system | |
CN106354658A (zh) | 一种降低混合映射算法中映射表内存资源占用的方法 | |
CN111007990B (zh) | 一种对快照系统中数据块引用进行快速定位的定位方法 | |
EP4336336A1 (en) | Data compression method and apparatus | |
CN116755625A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
KR20120045421A (ko) | 메모리 시스템 및 데이터 저장 장치 그리고 그것의 데이터 관리 방법 | |
US7424574B1 (en) | Method and apparatus for dynamic striping | |
CN103257928B (zh) | 闪存设备数据管理方法和系统 | |
CN115904255B (zh) | 一种数据请求方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210409 Address after: No.18, ningshuang Road, Nanjing, Jiangsu, 210000 Patentee after: Nanjing qinheng Microelectronics Co.,Ltd. Address before: 210012 building C, 18 ningshuang Road, Yuhuatai District, Nanjing City, Jiangsu Province Patentee before: JIANGSU QINHENG Co.,Ltd. |
|
TR01 | Transfer of patent right |