分离式文件系统及其管理方法

文档序号:6374127阅读:206来源:国知局
专利名称:分离式文件系统及其管理方法
技术领域
本发明涉及ー种文件存储系统,尤其是涉及一种用于无线传感网络节点的分离式文件系统及其管理方法。
背景技术
自2009年8月温总理提出“感知中国”以来,物联网技术高速的发展着,传统的传感器正逐步实现微型化、智能化、信息化、网络化,即逐步完善物联网四大核心技术之ー的无线传感网技木。无线传感网络主要用于数据采集并通过网络传递。传感网络中可能有大量的传感数据需要本地存储并集中发送,以达到減少通信次数、降低功耗、减小对网络实时 性要求、提升数据传送成功率的目的。存储大量的传感数据需要一种适用的管理方式,而现有的基于Flash文件系统主要应用于嵌入式系统,对内存限制不高,外存容量也比较大。这对于无线传感器网络节点内存受限、以传感数据为信息単元的应用不适合。中华人民共和国国家知识产权局于2006年8月23日公开了公开号为CN1822230A的专利文献,名称是基于NADA Flash存储器文件系统的实现方法,它是建立NAND Flash存储器文件系统控制块索引,利用索引进行链表化区块分配和链表化垃圾数据收回,并以猝发式输入输出进行数据读写,使用垃圾区块回收机制来回收那些不再包含有效数据的块。但是本方案在读取和写入时仍然是以块为操作对象,具有较大的内存占用,难以适用于无线传感网络。

发明内容
本发明主要是解决现有技术所存在的读写基本単位较大、对内存占用大、对存储器的擦写频繁的技术问题,提供ー种以单条信息为读写对象、占用内存少、減少对存储器擦写次数的分离式文件系统及其管理方法。本发明针对上述技术问题主要是通过下述技术方案得以解决的一种分离式文件系统,包括主控MCU、第一存储器和第二存储器,所述第一存储器和第二存储器分别与所述主控MCU连接,所述第一存储器为E2PR0M存储器,所述第二存储器为Flash存储器。E2pRom存储器能够单字节的读写,而Flash存储器由于本身特性,对于存储器的写操作只能将I写为0,反之不行,故对Flash进行操作时需要先擦除后写入数据,而Flash存储器只能对ー个数据段进行擦除。基于以上特性,提出了将需要经常进行修改保存的目录及页面管理区存储于可单字节读写的E2pR0M存储器中,而将数据量较大不需经常修改的传感数据存储于Flash存储器。本发明中的E2PR0M泛指可以直接进行单字节读写的存储器,如FRAM (铁电存储器,无读写次数的限制)。
主控MCU控制数据在各存储器中的读取、写入和删除。一种分离式文件系统管理方法,具体为建立目录区、页面管理区和数据区三个逻辑区域,目录区和页面管理区位于E2PR0M存储器,数据区位于Flash存储器,目录区存放文件目录信息,页面管理区放置文件各部分在数据区的具体位置信息,数据区存放文件内容信息,文件内容信息为传感数据,文件内容信息写入和读取的基本单位为一条传感数据,数据区包括若干个页面(Page),每一个页面可以存储若干条传感数据。作为优选,还建立有开发预留区和功能辅助区,开发预留区和功能辅助区都位于E2PR0M存储器,开发预留区存放开发过程中使用到的序列号、密钥和系统参数中的一种或多种,功能辅助区包括存放文件的格式化标志的格式化标志区(FormatFlag)和存放要删除文件Fid号的被删文件区(FidToDelete)。文件Fid号为文件在目录区中所占的目录编号,例如第一条目录的文件Fid号为1,第一条目录的文件Fid号为2,以此类推。
作为优选,所述目录区包括若干个目录数据单元,每个目录数据单元包括
文件名区,存放文件名称;
文件类型区(FileType),存放文件类型,并说明文件所存储的信息类型、信息单元的长度和数据区的一个页面能存储的数据条数;
起始页面区(StartPage),存放文件的起始页面号,可用于查找文件的起始位置;
页面总数区(PageCount),存放文件占用的页面数量,可用于指示文件占用存储空间的大小;
末页信息区(LstCount),存放文件在最后一个页面具有的传感数据条数,联合PageCount能计算出文件总的传感数据条数。信息单元具体指存储于Flash数据区的最小读写单元,即一条传感数据,每条传感数据的长度可根据应用的不同来设定。作为优选,所述页面管理区包括若干个页面管理单元,页面管理单元的数量与数据区的页面的数量相同,并且页面管理单元与数据区的页面按顺序一一对应,每个页面管理单元包括
下一页位置区(NextPage),存放下一个属于文件的页面的位置或者文件尾;
从属状态区(Fid),存放本页面管理单元所对应的页面的状态。从属状态包括此页为空和不为空两种状态。页面管理单元具有三种情况
1、NextPage数据为O,Fid数据不为O,则表示该页面管理单元所对应的页面为文件
尾;
2、NextPage数据为O,Fid数据为O,表示该页面管理单元所对应的页面为空闲页;
3、NextPage数据不为O,Fid数据不为O,表示该页面管理单元所对应的页面已被文件占用。页面管理区为链表式结构,即每个页面管理单元都指明本文件的下一个页面管理单元的位置。而页面管理单元与数据区页面按顺序一一对应,读取数据区的数据时只要找到页面管理单元就可以找到对应的页面。作为优选,文件管理包括初始化、写入、读取、格式化和删除;
格式化具体操作为删除目录区的所有数据和页面管理区的所有数据,同时将格式化标志设置为已格式化的状态;
删除具体操作为=SlOl将要删除文件的Fid号存入被删文件区;
S102通过遍历目录区查找到要删除的文件对应的目录数据単元;
S103根据目录数据单元的起始页面区查找第一个页面管理単元;
S104根据各页面管理単元的链式结构删除所有本文件的页面管理単元的数据直至最后ー页;
S105将被删文件区中存放的要删除文件的Fid号删除。作为优选,初始化操作具体为
S201主控MCU上电,读取格式化标志,如果格式化标志表明文件已经格式化,则跳转到步骤S203,如果格式化标志表明文件未被格式化,则跳转到步骤S202 ;
S202删除目录区的所有数据和页面管理区的所有数据,同时将格式化标志设置为已格式化的状态,然后跳转到步骤S203 ;
S203读取要删除的文件信息,如果要删除的文件信息为有文件要删除的状态,则跳转到步骤S204,否则结束初始化;
S204遍历目录区和页面管理区,删除目录区的所有数据和页面管理区的所有数据,减少文件碎片占用存储空间的可能,结束初始化。作为优选,写入的具体操作为
S301判断要写入的文件是否存在,如果存在则跳转到步骤S302,否则跳转到步骤S304 ;
S302判断是否还有页面空间用于存储数据,如果没有页面空间则写入失败,告知用户空间不足,同时结束写入;如果还有页面空间,则跳转到步骤S303 ;
S303根据文件的目录数据単元中的信息计算本条数据在Flash存储器中的位置,将数据写入相应的位置,修改页面总数区和末页信息区的相应信息,告知用户写入成功,结束写入;
S304新建文件 ,然后判断文件建立是否成功,如果成功则跳转到步骤S303,如果建立不成功则告知用户空间不足,结束写入。作为优选,读取包括读单条传感数据和读整个文件;
读单条传感数据具体为判断所要读取的传感数据是否文件内;如果不在文件内,则直接退出并告知用户读取失败;如果在文件内,则根据页面管理区的信息和单个页面存储的数据条数计算该条传感数据的位置并读取数据;
读整个文件具体为根据页面管理区链表和总的数据条数将文件读取存入指定的内存位置。两种读取方法都需要读总数据条数,总数据条数=单个页面数据条数容量X (文件占用页面数量-I) +最后ー个页面具有的信息条数。Flash存储器具有先擦除后写入的特性,现有的Flash文件系统需要有数据缓冲机制,而本发明提出的文件系统将文件的不同部分分别存于不同类型存储器,并提供专用的文件名命名规则与读写数据以单条传感数据为数据单元的机制,不必使用数据缓冲机制的情况下实现了单条信息的实时写入,有效减小文件系统对内存的占用。现有技术存在的问题现有的Flash文件系统最小操作单元为一个簇,采用数据缓冲的机制,无论是对目录还是文件数据进行修改时,都需要将整个簇的信息读入内存,而一个簇的大小一般为2K到32K字节,这对内存要求苛刻的单片机系统是难以忍受的。若采用现有的Flash文件系统,即使采用如下优化方式,都不能很好的解决问题 一、采用最小的文件擦除单元,读写时目录和文件一般各需占用512字节,相比常规的
用法能够减少一半的内存占用量,但占用内存量仍然非常大,且存在间隙的写入一条传感信息,每次写入都需擦除一次Flash,对将大大降低存储器使用寿命。二、基于优化办法一,可提出在内存储传感信息直到满足减少对Flash擦写次数的要求,但该类型的应用一般程序非常容易受到干扰,若系统复位,存于内存中的数据将全部丢失,这种方法也是不可取。本发明提供的文件系统以单条传感数据为一个读写单元,只在文件新添加一页时擦除页面一次,每次写入一条传感信息时可根据文件在目录区的信息计算出要写入的位 置,可直接写入。无论对经常需要修改的文件目录信息还是文件信息都不必将整个簇的所有信息读入内存,减少了对内存的占用。数据区的页面可以是一个或者若干个Flash存储器最小擦除单元即Flash存储器的物理页。对于目录和页面管理区,若存于Flash中,需要经常修改,修改时势必也需将最小擦除单元内的所有数据读出,本发明将该数据存于E2pR0M存储器,直接写入即可,不必占用内存。对于数据信息,每条信息写入Flash时,先通过目录和页面管理区信息计算得出将要写入的信息位置,传感数据属于追加的方式,故不用先读取数据至内存,再修改内存数据,最后写回Flash的方式。该方法即保证了减少内存的占用,也不必多次擦写Flash存储器,保证了存储器使用寿命。本发明带来的实质性效果是,减少了内存占用、减少Flash存储器的擦写次数、提高了存储器的使用寿命。


图I是本发明的一种物理结构示意 图2是本发明的一种总数据结构示意 图3是本发明的一种功能辅助区的结构示意 图4是本发明的一种目录区的数据结构示意 图5是本发明的一种页面管理区的数据结构示意 图6是本发明的一种数据区的数据结构示意 图7是本发明的一种初始化流程 图8是本发明的一种写入流程提。图中1、主控MCU,2、E2PR0M存储器,3、Flash存储器,4、开发预留区,5、功能辅助区,6、目录区,7、页面管理区,8、数据区,501、FormatFlag,502、FidToDelete, 503、功能辅助预留区,601、文件名区,602、FileType,603、StartPage,604、PageCount, 605、LstCount,701、NextPage, 702、Fid,801、Page。
具体实施例方式下面通过实施例,并结合附图,对本发明的技术方案作进ー步具体的说明。实施例本实施例的一种分离式文件系统,如图I所示,包括主控MCU1、E2PR0M存储器2和Flash存储器3,E2PR0M存储器2和Flash存储器3分别与主控MCUl连接。一种分离式文件系统管理方法,如图2所示,建立开发预留区4、功能辅助区5、目录区6、页面管理区7和数据区8五个逻辑区域,开发预留区4、功能辅助区5、目录区6和页面管理区7位于E2PR0M存储器,数据区8位于Flash存储器。目录区6存放文件目录信息,页面管理区7放置文件各部分在数据区8的具体位置信息,数据区8存放文件内容信息,文件内容信息为传感数据,文件内容信息写入和读取的基本単位为一条传感数据。如图6所示,数据区8包括若干个页面(Page 801),每ー个页面可以存储若干条传感数据。开发预留区4存放开发过程中使用到的序列号、密钥和系统參数中的一种或多种。如图3所示,功能辅助区包括存放文件的格式化标志的格式化标志区(FormatFlag 501)、存放要删除文件Fid号的被删文件区(FidToDelete 502)和功能辅助预留区503。功能辅助预留区503作为系统升级或者修改的预留使用区。如图4所示,目录区6包括若干个目录数据単元,每个目录数据単元包括
文件名区601,存放文件名称;
文件类型区(FileType 602),存放文件类型,并说明文件所存储的信息类型、信息単元的长度和数据区的一个页面能存储的数据条数;
起始页面区(StartPage 603),存放文件的起始页面号,可用于查找文件的起始位置;页面总数区(PageCount 604),存放文件占用的页面数量,可用于指示文件占用存储空间的大小;
末页信息区(LstCount 605),存放文件在最后ー个页面具有的信息条数,联合PageCount能计算出文件总的信息条数。如图5所示,页面管理区7包括若干个页面管理単元,页面管理単元的数量与数据区8的页面的数量相同,并且页面管理単元与数据区的页面按顺序一一对应,每个页面管理单元包括
下ー页位置区(NextPage 701),存放下一个属于文件的页面的位置或者文件尾;
从属状态区(Fid 702),存放本页面管理単元所对应的页面的状态。从属状态包括此页为空和不为空两种状态。页面管理单元具有三种情况
1、NextPage数据为0,Fid数据不为0,则表示该页面管理单元所对应的页面为文件
尾;
2、NextPage数据为0,Fid数据为0,表示该页面管理单元所对应的页面为空闲页;
3、NextPage数据不为0,Fid数据不为0,表示该页面管理单元所对应的页面已被文件占用。页面管理区7为链表式结构,即每个页面管理単元都指明本文件的下一个页面管理单元的位置。而页面管理単元与数据区8页面按顺序一一对应,读取数据区的数据时只要找到页面管理単元就可以找到对应的页面。文件管理包括初始化、写入、读取、格式化和删除;
格式化具体操作为删除目录区的所有数据和页面管理区的所有数据,同时将格式化标志FormatFlag501设置为已格式化的状态(设为I);
删除具体操作为=SlOl将要删除文件的Fid号存入FidToDelete 502 ;
S102通过遍历目录区查找到要删除的文件对应的目录数据单元;
S103根据目录数据单元的起始页面区查找第一个页面管理单元;
S104根据各页面管理单元的链式结构删除所有本文件的页面管理单元的数据直至最后一页;
S105从FidToDelete 502中删除要删除文件的Fid号。删除和格式化所有操作不涉及到对Flash存储器进行读、写或删除。初始化操作如图7所示,具体为
S201主控MCU上电,读取格式化标志,如果格式化标志表明文件已经格式化(格式化标志为I),则跳转到步骤S203,如果格式化标志表明文件未被格式化(格式化标志为0,只有出厂时会将格式化标志设定为0),则跳转到步骤S202 ;
S202删除目录区的所有数据和页面管理区的所有数据,同时将格式化标志设置为已格式化的状态,然后跳转到步骤S203 ;
S203读取要删除的文件信息,如果要删除的文件信息为有文件要删除的状态,则跳转到步骤S204,否则结束初始化;
S204遍历目录区和页面管理区,删除目录区的所有数据和页面管理区的所有数据,减少文件碎片占用存储空间的可能,结束初始化。初始化操作也不涉及到对Flash存储器进行读、写或删除。此初始化在系统复位后都需执行一次,其中提出的格式化文件系统的服务可根据用户的需求直接调用。写入如图8所示,具体操作为
S301判断要写入的文件是否存在,如果存在则跳转到步骤S302,否则跳转到步骤S304 ;
S302判断是否还有页面空间用于存储数据,如果没有页面空间则写入失败,告知用户空间不足,同时结束写入;如果还有页面空间,则跳转到步骤S303 ;
S303根据文件的目录数据单元中的信息计算本条数据在Flash存储器中的位置,将数据写入相应的位置,修改页面总数区和末页信息区的相应信息,告知用户写入成功,结束写入;
S304新建文件,然后判断文件建立是否成功,如果成功则跳转到步骤S303,如果建立不成功则告知用户空间不足,结束写入。写入的时候不需要对整个页面进行读出操作,通过目录区信息找到数据区的空位,直接在空位写入即可。读取包括读单条传感数据和读整个文件;
读单条传感数据具体为判断所要读取的传感数据是否文件内;如果不在文件内,则直接退出并告知用户读取失败;如果在文件内,则根据页面管理区的信息和单个页面存储的数据条数计算该条传感数据的位置并读取数据;
读整个文件具体为根据页面管理区链表和总的数据条数将文件读取存入指定的内存位置。
两种读取方法都需要读总数据条数,总数据条数=单个页面数据条数容量X (文件占用页面数量-I) +最后ー个页面具有的信息条数。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。尽管本文较多地使用了页面管理区、数据区、读取等术语,但并不排除使用其它术 语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
权利要求
1.一种分离式文件系统,其特征在于,包括主控MCU、第一存储器和第二存储器,所述第一存储器和第二存储器分别与所述主控MCU连接,所述第一存储器为E2PR0M存储器,所述第二存储器为Flash存储器。
2.一种如权利要求I所述的分离式文件系统管理方法,其特征在于,建立目录区、页面管理区和数据区三个逻辑区域,目录区和页面管理区位于E2PR0M存储器,数据区位于Flash存储器,目录区存放文件目录信息,页面管理区放置文件各部分在数据区的具体位置信息,数据区存放文件内容信息,文件内容信息为传感数据,文件内容信息写入和读取的基本单位为一条传感数据,数据区包括若干个页面,每ー个页面可以存储若干条传感数据。
3.根据权利要求2所述的分离式文件系统管理方法,其特征在干,还建立有功能辅助区,功能辅助区都位于E2PR0M存储器,功能辅助区包括存放文件的格式化标志的格式化标志区和存放要删除文件Fid号的被删文件区。
4.根据权利要求3所述的分离式文件系统管理方法,其特征在干,所述目录区包括若干个目录数据単元,每个目录数据単元包括 文件名区,存放文件名称; 文件类型区,存放文件类型; 起始页面区,存放文件的起始页面号; 页面总数区,存放文件占用的页面数量; 末页信息区,存放文件在最后ー个页面具有的传感数据条数。
5.根据权利要求4所述的分离式文件系统管理方法,其特征在于,所述页面管理区包括若干个页面管理単元,页面管理単元的数量与数据区的页面的数量相同,并且页面管理単元与数据区的页面按顺序一一对应,每个页面管理単元包括 下ー页位置区,存放下一个属于文件的页面的位置或者文件尾; 从属状态区,存放本页面管理単元所对应的页面的状态。
6.根据权利要求5所述的分离式文件系统管理方法,其特征在干,文件管理包括初始化、写入、读取、格式化和删除; 格式化具体操作为删除目录区的所有数据和页面管理区的所有数据,同时将格式化标志设置为已格式化的状态; 删除具体操作为=SlOl将要删除文件的Fid号存入被删文件区; S102通过遍历目录区查找到要删除的文件对应的目录数据単元; S103根据目录数据单元的起始页面区查找第一个页面管理単元; S104根据各页面管理単元的链式结构删除所有本文件的页面管理単元的数据直至最后ー页; S105将被删文件区中存放的要删除文件的Fid号删除。
7.根据权利要求6所述的分离式文件系统管理方法,其特征在于,初始化操作具体为 S201主控MCU上电,读取格式化标志,如果格式化标志表明文件已经格式化,则跳转到步骤S203,如果格式化标志表明文件未被格式化,则跳转到步骤S202 ; S202删除目录区的所有数据和页面管理区的所有数据,同时将格式化标志设置为已格式化的状态,然后跳转到步骤S203 ; S203读取要删除的文件信息,如果要删除的文件信息为有文件要删除的状态,则跳转到步骤S204,否则结束初始化; S204遍历目录区和页面管理区,删除目录区的所有数据和页面管理区的所有数据,结束初始化。
8.根据权利要求6或7所述的分离式文件系统管理方法,其特征在于,写入的具体操作为 S301判断要写入的文件是否存在,如果存在则跳转到步骤S302,否则跳转到步骤S304 ; S302判断是否还有页面空间用于存储数据,如果没有页面空间则写入失败,告知用户空间不足,同时结束写入;如果还有页面空间,则跳转到步骤S303 ; S303根据文件的目录数据单元中的信息计算本条数据在Flash存储器中的位置,将数据写入相应的位置,修改页面总数区和末页信息区的相应信息,告知用户写入成功,结束写入; S304新建文件,然后判断文件建立是否成功,如果成功则跳转到步骤S303,如果建立不成功则告知用户空间不足,结束写入。
9.根据权利要求6或7或8所述的分离式文件系统管理方法,其特征在于,读取包括读单条传感数据和读整个文件; 读单条传感数据具体为判断所要读取的传感数据是否文件内;如果不在文件内,则直接退出并告知用户读取失败;如果在文件内,则根据页面管理区的信息和单个页面存储的数据条数计算该条传感数据的位置并读取数据; 读整个文件具体为根据页面管理区链表和总的数据条数将文件读取存入指定的内存位置。
全文摘要
本发明公开了一种分离式文件系统及其管理方法,旨在提供一种用于无线传感网络节点的分离式文件系统及其管理方法。文件系统的物理结构包括主控MCU以及分别与主控MCU连接的E2PROM存储器和Flash存储器。文件系统的逻辑结构包括位于E2PROM存储器的功能辅助区、目录区、页面管理区和位于Flash存储器的数据区。目录区存放文件目录信息,页面管理区放置文件各部分在数据区的具体位置信息,数据区存放文件内容信息,文件内容信息写入和读取的基本单位为一条传感数据。数据区包括若干个页面,每一个页面可以存储若干条传感数据。本发明减少了内存占用、减少Flash存储器的擦写次数,适用于无线传感网络节点。
文档编号G06F17/30GK102867019SQ20121026569
公开日2013年1月9日 申请日期2012年7月30日 优先权日2012年7月30日
发明者卢勇, 刘家春 申请人:利尔达科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1