CN102637197B - 实时数据采集存储系统的文件管理方法 - Google Patents
实时数据采集存储系统的文件管理方法 Download PDFInfo
- Publication number
- CN102637197B CN102637197B CN201210047512.4A CN201210047512A CN102637197B CN 102637197 B CN102637197 B CN 102637197B CN 201210047512 A CN201210047512 A CN 201210047512A CN 102637197 B CN102637197 B CN 102637197B
- Authority
- CN
- China
- Prior art keywords
- file
- index
- data
- storage
- flash
- 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.)
- Active
Links
- 238000003860 storage Methods 0.000 title claims abstract description 134
- 238000007726 management method Methods 0.000 title claims abstract description 47
- 238000003745 diagnosis Methods 0.000 claims abstract description 29
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 abstract description 8
- 238000000034 method Methods 0.000 abstract description 7
- 238000013461 design Methods 0.000 abstract description 5
- 238000012544 monitoring process Methods 0.000 abstract description 3
- 238000012356 Product development Methods 0.000 abstract description 2
- 230000007613 environmental effect Effects 0.000 abstract description 2
- 238000011897 real-time detection Methods 0.000 abstract description 2
- 238000013500 data storage Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及实时数据采集存储领域,具体是一种实时数据采集存储系统的文件管理方法,其解决了现有不存在操作系统的环境下的文件管理存在的问题,数据的存储、历史数据的获取、实时数据的获取来实现在不存在操作系统的环境下的文件的有效管理,主要是采集和长时间记录环境参数,为故障诊断系统提供数据,与故障诊断计算机共同完成参数的实时检测、预警及故障诊断等功能。本发明所述的实时数据采集存储系统的文件管理方法主要用于产品研制、使用过程中相关参数的实时监控、记录,便于查看各个参数的变化规律,为产品的设计、改进提供有力的数据支撑。
Description
技术领域
本发明涉及实时数据采集存储领域,具体是一种实时数据采集存储系统的文件管理方法,尤其涉及一种在不存在操作系统的环境下对文件进行管理的办法。
背景技术
随着现代科学技术的发展,实时数据采集存储技术已渗透到地质勘探、医疗器械、雷达、导弹的研制、测控等众多技术领域。在科学研究领域,通过查看实时采集存储的大量数据来发现新的具有重大意义的相互联系,为科学研究提供数据依据;在工业生产方面,可通过实时监测数据,及时发现存在的问题,避免危险的发生,同时也为后期解决问题提供数据依据。
科学研究中的动态信息以及工业生产中的工作现场参数的数据量越来越大,相应的存储量也越来越大,文件管理也越来越重要。目前在实时采集存储应用领域,根据系统资源环境,把文件管理主要分为两类:存在操作系统环境下的文件管理和不存在操作环境下的文件管理。
不存在操作系统的环境下的文件管理,需要从底层硬件操作到高层管理实现文件系统的所有功能,一般需要设计专用的文件系统,设计实现复杂,但是具有很好的灵活性,可以根据不同的应用,对各层功能进行增强和裁减,以达到最优的性能和最低的成本,适合于功能相对简单、资源相对较少的专用性强的应用系统,但是通用性较差。目前在实时数据采集存储领域,不存在操作系统的环境下的文件管理相对较为简单,有的文件管理办法只是对数据进行采、存、读取、擦除的循环记录,数据基本是一次性的。会造成Flash的损耗不均衡,会减少Flash的使用寿命,同时无法实现文件的随机访问,缺乏对文件的有效管理;有的文件管理办法是根据文件的个数把Flash等分成几份,灵活性差,由于文件的大小不一定相同,会造成空间的浪费。
发明内容
本发明为了解决现有不存在操作系统的环境下的文件管理存在的一系列问题,提供了一种实时数据采集存储系统的文件管理方法。
本发明是通过以下技术方案实现的:一种实时数据采集存储系统的文件管理方法,所述的实时数据采集存储系统包括控制模块、存储模块、电源模块、各种采集接口以及故障诊断计算机;所述的控制模块包括主控芯片、时钟芯片、内部总线、各种采集接口;所述的存储模块包括若干片Flash,所述的一片Flash由若干块组成,所述的块由若干页组成,一页可以存储2Kbyte数据;其文件管理方法的内容包括:一、数据的存储,二、历史数据的获取,三、实时数据的获取;所述的数据的存储包括A.建立索引、B.存储数据;所述的历史数据的获取包括A.获取索引文件、B.获取历史数据;所述的主控芯片内部建立有写FIFO和读FIFO;存储模块中的若干片Flash的其中一片为索引Flash,其余Flash为存储Flash,所述的索引Flash用于存储索引文件,所述的索引文件在索引Flash的存储格式为每一页存储一个索引文件;所述的存储Flash用于存储数据文件;
所述的A.建立索引的步骤为:
A1.查找本次索引文件存放地址
(1)系统上电;
(2)从索引Flash的第一块的第一页开始读回至少两个字节的索引文件,所述的索引文件包括头标志、索引号、文件名标识、日期和时间及数据文件存放的首地址;
(3)判断前两个字节是否是头标志;如果是头标志,则执行步骤(4);如果不是头标志,则执行步骤(5);
(4)块地址加一,并重新执行步骤(3);
(5)返回到上个块地址的第一页开始读回至少两个字节的索引文件;
(6)判断前两个字节是否是头标志;如果是头标志,则执行步骤(7);如果不是头标志,则执行步骤(8);
(7)页地址加1,并重新执行步骤(6);
(8)此时得到的块地址记为addr_b和页地址addr_p为本次索引文件存放地址;
A2.查找本次数据文件存放的首地址
(9)读取块地址为addr_b和页地址addr_p-1的索引文件,即上次索引文件;
(10)根据上次索引文件查找上次数据文件存放的首地址;
(11)根据上次数据文件的首地址开始按块读回存储Flash内至少三个字节的数据文件;
(12)判断前三字节是否为“FFFFFF”;如果不是“FFFFFF”,则执行步骤(13);如果是“FFFFFF”,则执行步骤(14);
(13)块地址加1,并重新执行步骤(12);
(14)返回上个块的第一页,读回存储Flash内的数据文件;
(15)判断前三字节是否为“FFFFFF”;如果不是“FFFFFF”,则执行步骤(16);如果是“FFFFFF”,则执行步骤(17);
(16)页地址加一,并重新执行步骤(15);
(17)将此块地址和页地址作为本次数据文件存放的首地址;
A3.将索引文件写入索引Flash
(18)向控制模块的时钟芯片读取时间信息,按索引帧格式将本次索引文件写入索引Flash;
(19)建立索引结束;
所述的B.存储数据的步骤为:
(20)从建立索引中得到本次数据文件存放的首地址;
(21)将数据文件进行顺序存储于存储Flash;
(22)数据文件的存储结束;
所述的获取索引文件的步骤为:
a.故障诊断计算机下发读索引文件指令,也可以说主控芯片收到读索引文件的指令;
b.给出所要读取的索引文件的索引号或者索引文件的日期或时间段;
c.判断写FIFO是否满2Kbyte;如果满2Kbyte,则执行步骤d;如果未满,则执行步骤e;
d.把写FIFO中的一页数据文件写入存储Flash,然后执行步骤e;
e.读取一页索引文件;
f.判断读索引文件是否完成;如果未完成,则重新执行步骤c;如果完成,则执行步骤g;
g.获取索引文件结束;
所述的获取历史数据的步骤为:
h. 故障诊断计算机下发读单个或连续历史数据文件的指令,也可以认为主控芯片收到读单个或连续历史数据文件的指令;
i.获取该历史数据文件所需要的索引文件;
j.获取该历史数据文件存放的首地址和末地址;所要获取的历史数据文件对应的索引文件有数据文件存放的首地址,末地址通过下一个索引文件中的数据文件存放的首地址减一得到;
k.判断写FIFO是否满2Kbyte;如果满2Kbyte,则执行步骤l;如果未满2Kbyte,则执行步骤m;
l.把写FIFO中的一页数据文件写入存储Flash,然后执行步骤m;
m.读取一页历史数据文件;
n.判断读历史数据文件是否完成;如果完成,则执行步骤o;如果未完成,则重新执行步骤k;
o.读历史数据结束;
所述的获取实时数据文件的步骤包括:各种采集接口采集的数据实时回传给故障诊断计算机。
为了保证采集来的数据文件写入存储模块,本发明所述的控制模块的主控芯片内部建立有写数据缓存(写FIFO)。一旦整个系统掉电,写数据缓存中的数据就会丢失。如果所述的索引文件中包括数据文件存放的末地址信息,一旦断电就会导致只能获得索引文件的首地址,而得不到索引文件的末地址,后期获取数据文件时就会出错。这种掉电丢数据的弊端可以通过添加蓄电池来解决,但是无形中又增加了硬件成本。因此,本发明所述的索引文件只有数据文件存放的首地址,末地址则通过下一个索引文件对应的数据文件的首地址减一得到。这样既保证了后期获取数据文件的可靠性,又节约了成本。
所述的索引文件在索引Flash的存储格式为每一页存储一个索引文件。由于存储模块中的Flash是按页编程,如果一页上存储多个索引文件,那么在存储本次索引文件之前,需要把该页上已存在的索引文件全部拷贝到某处,然后再一起进行页编程。这样不仅会增加实现的复杂度,同时也可能造成要拷贝的索引文件的丢失或出错。假设采用一页存储多个索引文件的方法,K9K8G08U0A型Flash一页可以存储2Kbyte数据,本发明所述的一个索引文件占17个字节,即一页Flash可存储2000÷17=117.6个索引文件,也就是说要拷贝110多次才能把该页存满,同时该页也需要擦除110多次,会缩短Flash的使用寿命、程序实现复杂、易出错并且获取索引文件也较复杂。故本发明所述的索引文件在索引Flash的存储格式为每一页存储一个索引文件。例如K9K8G08U0A型Flash共有8192×64=524288页,一片Flash就可存储50多万个索引文件。如果空间还不够,可以增加放索引文件的Flash的片数。
本发明与现有实时数据采集存储系统的文件管理技术相比,其有益的效果主要有:(1)相对于存在操作系统的文件管理方法,本发明所述的文件管理简单,需要的硬件资源少;(2)本发明所述的文件管理方法方便在各种非操作系统简易平台实现,如单片机、DSP、FPGA等平台,应用范围广泛;(3)相对于现有不存在操作系统的文件管理中的固定分区管理办法,本发明所述的文件管理方法更加灵活,同时避免存储空间的浪费;(4)相对于不存在操作系统的文件管理的顺序存取,本发明提供更加有效的文件管理方法,通过建立索引,方便了文件的快速存储和读取;(5)在实时数据采集存储领域,本发明所述的文件管理办法,不仅可以实现实时数据的获取,同时可以在存储数据的时候获取索引文件或历史数据文件。本发明所述的实时数据采集存储系统的文件管理方法主要用于产品研制、使用过程中相关参数的实时监控、记录,便于查看各个参数的变化规律,为产品的设计、改进提供有力的数据支撑。
附图说明
图1为本发明所述的实时数据采集存储系统的文件管理方法的建立索引的流程图。
图2为本发明所述的实时数据采集存储系统的文件管理方法的获取索引文件流程图。
图3为本发明所述的实时数据采集存储系统的文件管理方法的获取历史数据流程图。
图4为本发明所述的实时数据采集存储系统的文件管理方法的单个存储卡的原理结构示意图。
图5为本发明所述的实时数据采集存储系统的文件管理方法的单片Flash的原理结构示意图。
具体实施方式
下面结合附图对本发明加以详细的说明,应指出的是,所描述的实施例仅旨在便于本发明的理解。
本发明通过数据的存储、历史数据的获取、实时数据的获取来实现在不存在操作系统的环境下的文件的有效管理,主要是采集和长时间记录环境参数,为故障诊断系统提供数据,与故障诊断计算机共同完成参数的实时检测、预警及故障诊断等功能。
一种实时数据采集存储系统的文件管理方法,所述的实时数据采集存储系统包括控制模块、存储模块、电源模块、各种采集接口以及故障诊断计算机;所述的控制模块包括主控芯片、时钟芯片、内部总线、各种采集接口;所述的存储模块包括若干片Flash,所述的一片Flash由若干块组成,所述的块由若干页组成,一页可以存储2Kbyte数据;其文件管理方法的内容包括:一、数据的存储,二、历史数据的获取,三、实时数据的获取;所述的数据的存储包括A.建立索引、B.存储数据;所述的历史数据的获取包括A.获取索引文件、B.获取历史数据;所述的主控芯片内部建立有写FIFO和读FIFO;存储模块中的若干片Flash的其中一片为索引Flash,其余Flash为存储Flash,所述的索引Flash用于存储索引文件,所述的索引文件在索引Flash的存储格式为每一页存储一个索引文件;所述的存储Flash用于存储数据文件;
所述的A.建立索引的步骤为:
A1.查找本次索引文件存放地址
(1)系统上电;
(2)从索引Flash的第一块的第一页开始读回至少两个字节的索引文件,所述的索引文件包括头标志、索引号、文件名标识、日期和时间及数据文件存放的首地址;
(3)判断前两个字节是否是头标志;如果是头标志,则执行步骤(4);如果不是头标志,则执行步骤(5);
(4)块地址加一,并重新执行步骤(3);
(5)返回到上个块地址的第一页开始读回至少两个字节的索引文件;
(6)判断前两个字节是否是头标志;如果是头标志,则执行步骤(7);如果不是头标志,则执行步骤(8);
(7)页地址加1,并重新执行步骤(6);
(8)此时得到的块地址记为addr_b和页地址addr_p为本次索引文件存放地址;
A2.查找本次数据文件存放的首地址
(9)读取块地址为addr_b和页地址addr_p-1的索引文件,即上次索引文件;
(10)根据上次索引文件查找上次数据文件存放的首地址;
(11)根据上次数据文件的首地址开始按块读回存储Flash内至少三个字节的数据文件;
(12)判断前三字节是否为“FFFFFF”;如果不是“FFFFFF”,则执行步骤(13);如果是“FFFFFF”,则执行步骤(14);
(13)块地址加1,并重新执行步骤(12);
(14)返回上个块的第一页,读回存储Flash内的数据文件;
(15)判断前三字节是否为“FFFFFF”;如果不是“FFFFFF”,则执行步骤(16);如果是“FFFFFF”,则执行步骤(17);
(16)页地址加一,并重新执行步骤(15);
(17)将此块地址和页地址作为本次数据文件存放的首地址;
A3.将索引文件写入索引Flash
(18)向控制模块的时钟芯片读取时间信息,按索引帧格式将本次索引文件写入索引Flash;
(19)建立索引结束;
所述的B.存储数据的步骤为:
(20)从建立索引中得到本次数据文件存放的首地址;
(21)将数据文件进行顺序存储于存储Flash;
(22)数据文件的存储结束;
所述的获取索引文件的步骤为:
a.故障诊断计算机下发读索引文件指令,也可以主控芯片说收到读索引文件的指令;
b.给出所要读取的索引文件的索引号或者索引文件的日期或时间段;
c.判断写FIFO是否满2Kbyte;如果满2Kbyte,则执行步骤d;如果未满,则执行步骤e;
d.把写FIFO中的一页数据文件写入存储Flash,然后执行步骤e;
e.读取一页索引文件;
f.判断读索引文件是否完成;如果未完成,则重新执行步骤c;如果完成,则执行步骤g;
g.获取索引文件结束;
所述的获取历史数据的步骤为:
h. 故障诊断计算机下发读单个或连续历史数据文件的指令,也可以认为主控芯片收到读单个或连续历史数据文件的指令;
i.获取该历史数据文件所需要的索引文件;
j.获取该历史数据文件存放的首地址和末地址;所要获取的历史数据文件对应的索引文件有数据文件存放的首地址,末地址通过下一个索引文件中的数据文件存放的首地址减一得到;
k.判断写FIFO是否满2Kbyte;如果满2Kbyte,则执行步骤l;如果未满2Kbyte,则执行步骤m;
l.把写FIFO中的一页数据文件写入存储Flash,然后执行步骤m;
m.读取一页历史数据文件;
n.判断读历史数据文件是否完成;如果完成,则执行步骤o;如果未完成,则重新执行步骤k;
o.读历史数据结束;
所述的获取实时数据文件的步骤包括:各种采集接口采集的数据实时回传给故障诊断计算机。
本发明所述的实时数据采集存储系统作为故障诊断系统的一部分,主要用于实现各种采集接口参数(模拟量和数字量I/O信号)的采集以及长时间记录的功能,并通过USB接口把数据实时回传给故障诊断计算机(删除了一部分内容)。本发明所述的实时数据采集存储系统,主要由控制模块、存储模块、电源模块、各种采集接口以及故障诊断计算机组成;所述的控制模块包括主控芯片、时钟芯片、内部总线和各种采集接口,所述的控制模块主要功能为外部传感器采集来的数据文件通过各种采集接口(4个CAN通信接口、1个USB接口、1个以太网接口、2个422)传输到主控芯片FPGA,另外还包括实时时钟管理、内部总线控制等功能;所述的内部总线接口实现存储模块和主控芯片的通讯,将数据文件传输到存储模块进行存储。存储模块由5个存储卡组成,用来完成数据文件的存储。每个存储卡又由多片NAND Flash组成,并由控制模块内的FPGA进行逻辑控制,完成数据文件的存储。如图4所示的是单个存储卡的原理结构示意图,图中选取Flash(0)为索引Flash,用来存储索引文件;剩余的31片和另外四个卡上的128片Flash为存储Flash,用来存储数据文件的;如图5所示的单片Flash的原理结构示意图,所述的索引文件在索引Flash的存储格式为第一页存放产品的基本信息,从第二页开始每一页存储一个索引文件,所述的产品的基本信息是实时数据采集存储系统内各个硬件的出厂日期、生产单位、名称等信息。
所述的建立索引的步骤为:首先在索引Flash中查找本次索引文件存放地址,采用“先按块再按页”的查找办法,即先查索引Flash每块的第一页的前两个字节是否为头标志,如果是则跳到下一块继续判断,直至不是头标志,再返回上一块查找每一页的前个字节是否为头标志,直至该页的前两个字节不是头标志,即此时得到的块地址和页地址为本次索引文件存放地址;此外,本发明所述的索引文件中包含本次数据文件存放的首地址,可通过上个索引文件可以获取其对应数据文件存放的首地址,同样采用“先按块再按页”的查找办法来查找本次数据存放的首地址。所述的索引文件主要包括头标志、索引号、文件名标识、日期和时间及数据文件存放的首地址。头标志作为每个索引文件的开始标志,标志着索引文件开始存储,共占2个字节;索引号是索引文件的编号,通过索引号即可获取索引文件,共占3个字节;文件名标识是指索引文件对应的数据文件名的标识,占1个字节;日期和时间用来记录数据文件存储的时间,占用7个字节,获取数据时可以通过给出具体日期或时间段来获取索引文件或历史数据文件;数据文件存放的首地址,是索引文件所对应的数据文件的首地址,占4个字节。
建立索引完成之后,根据索引文件的帧格式就得到了本次数据文件存放的首地址,即可将获得的数据文件进行顺序存储于存储Flash。由于数据文件存储的过程中也要能够响应读索引文件及读历史数据文件的指令,FPGA内部建立有写FIFO(写数据缓存);同理所述,在读取索引文件或历史数据文件期间也要能够保证实时数据文件的存储,FPGA内部建立有读FIFO(读数据缓存)。
获取索引文件的方式主要有两种:一是根据索引号来获取索引文件;二是通过时间段或者日期来获取索引文件。故障诊断计算机下发读索引文件指令,给出所要读取的索引文件的索引号或者是某个时间段或者是某一日期。因Flash每2Kbyte(也就是一页)进行一次编程,所以采集来的数据文件每到2Kbyte往存储卡的存储Flash中写入一次。采集到的数据文件首先存储到FPGA的写FIFO中,然后判断写FIFO中的数据文件是否满2Kbyte,若未满2Kbyte,读FIFO读完一页索引文件,并判断读索引文件是否完成,如果未完成,继续判断写FIFO中的数据文件是否满2Kbyte;若满2Kbyte,先将2Kbyte的数据文件写入存储Flash,在写数据文件期间不响应任何读索引文件的指令,直至将2Kbyte数据文件全部写入存储Flash,然后读FIFO再读一页索引文件,并判断读索引文件是否完成,如果未完成,继续判断写FIFO中的数据文件是否满2Kbyte,依次循环,直到完成读索引文件任务。假如建立了十万个索引文件,要将全部索引文件读至故障诊断计算机,需要花费的时间约为3s。
读历史数据有两种方式,一种是仅读一个数据文件,另一种连续读若干数据文件。历史数据文件的获取是根据上传给故障诊断计算机的索引文件来进行选择的,故障诊断计算机获取索引文件列表后,只需选择对应的索引文件,就可将相应的历史数据文件上传给故障诊断计算机。实际操作中,故障诊断计算机下发读单个或者连续若干历史数据文件的指令,然后获得所需要的索引文件,这样即可获得历史数据文件对应的首地址和末地址,接着故障诊断计算机向控制模块发送的信息包括“数据文件存放的首地址+末地址”,数据文件的首、末地址均使用4个字节,数据文件存放的首地址在对应的索引文件中,数据文件的末地址为下个相邻数据文件的首地址减1(如果数据文件为存储Flash的最后一个数据文件,不存在下个相邻数据文件的首地址时,系统上电,实时采集存储系统先将采集来的数据进行数据的存储,才会进行历史数据的获取,所以最后一个数据文件就会成为中间数据文件)。采集到的数据文件首先存储到FPGA的写FIFO中,然后判断写FIFO中的数据文件是否满2Kbyte,若未满2Kbyte,读FIFO读完一页数据文件,并判断读数据文件是否完成,如果未完成,继续判断写FIFO中的数据文件是否满2Kbyte;若满2Kbyte,先将2Kbyte的数据文件写入存储Flash,在写数据文件期间不响应任何读数据文件的指令,直至将2Kbyte数据文件全部写入存储Flash,然后读FIFO再读一页数据文件,并判断读数据文件是否完成,如果未完成,继续判断写FIFO中的数据文件是否满2Kbyte,依次循环,直到完成读数据文件任务。
读取实时数据时,不占用内部数据总线,因此不影响数据的存储,采集的数据可实时回传给计算机。
具体实施时,所述的实时采集存储系统是以FPGA作为主控芯片。由于FPGA具有以下几方面的优点:(1)采取有多少数据转换芯片用多少控制单元模块的策略,功能控制模块与数据转换芯片是一一对应的关系,在硬件上保证了数据采集的完全并行性;(2)XC2S100E芯片内有RAM块,可以设计为数据缓冲,方便解决数据流阻塞的问题;(3)FPGA芯片读写速度较高,在采集和存储速度上都不会存在任何问题;(4)FPGA的设计采用在线编程的方式进行,修改和调试都相当快捷、方便;(5)FPGA的外围电路除了一块配置芯片外,不再需要其他任何外围器件,集成度高,可靠性强。
所述的实时采集存储系统是以NAND Flash作为存储芯片。由于NAND Flash存储器具有容量较大,改写速度快、体积小、掉电数据不丢失以及可多次擦写等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用。
Claims (5)
1.一种实时数据采集存储系统的文件管理方法,所述的实时数据采集存储系统包括控制模块、存储模块、电源模块、各种采集接口以及故障诊断计算机;所述的控制模块包括主控芯片、时钟芯片、内部总线、各种采集接口;所述的存储模块包括若干片Flash,一片Flash由若干块组成,所述的块由若干页组成,一页可以存储2Kbyte数据;其特征在于,其文件管理方法的内容包括:一、数据的存储,二、历史数据的获取,三、实时数据的获取;所述的数据的存储包括A.建立索引、B.存储数据;所述的历史数据的获取包括A.获取索引文件、B.获取历史数据;所述的主控芯片内部建立有写FIFO和读FIFO;存储模块中的若干片Flash的其中一片为索引Flash,其余Flash为存储Flash,所述的索引Flash用于存储索引文件,所述的索引文件在索引Flash的存储格式为每一页存储一个索引文件;所述的存储Flash用于存储数据文件;
所述的A.建立索引的步骤为:
A1.查找本次索引文件存放地址
(1)系统上电;
(2)从索引Flash的第一块的第一页开始读回至少两个字节的索引文件,所述的索引文件包括头标志、索引号、文件名标识、日期和时间及数据文件存放的首地址;
(3)判断前两个字节是否是头标志;如果是头标志,则执行步骤(4);如果不是头标志,则执行步骤(5);
(4)块地址加一,并重新执行步骤(3);
(5)返回到上个块地址的第一页开始读回至少两个字节的索引文件;
(6)判断前两个字节是否是头标志;如果是头标志,则执行步骤(7);如果不是头标志,则执行步骤(8);
(7)页地址加1,并重新执行步骤(6);
(8)此时得到的块地址记为addr_b和页地址addr_p为本次索引文件存放地址;
A2.查找本次数据文件存放的首地址
(9)读取块地址为addr_b和页地址addr_p-1的索引文件,即上次索引文件;
(10)根据上次索引文件查找上次数据文件存放的首地址;
(11)根据上次数据文件的首地址开始按块读回存储Flash内至少三个字节的数据文件;
(12)判断前三字节是否为“FFFFFF”;如果不是“FFFFFF”,则执行步骤(13);如果是“FFFFFF”,则执行步骤(14);
(13)块地址加1,并重新执行步骤(12);
(14)返回上个块的第一页,读回存储Flash内的数据文件;
(15)判断前三字节是否为“FFFFFF”;如果不是“FFFFFF”,则执行步骤(16);如果是“FFFFFF”,则执行步骤(17);
(16)页地址加一,并重新执行步骤(15);
(17)将此块地址和页地址作为本次数据文件存放的首地址;
A3.将索引文件写入索引Flash
(18)向控制模块的时钟芯片读取时间信息,按索引帧格式将本次索引文件写入索引Flash;
(19)建立索引结束;
所述的B.存储数据的步骤为:
(20)从建立索引中得到本次数据文件存放的首地址;
(21)将数据文件进行顺序存储于存储Flash;
(22)数据文件的存储结束;
所述的获取索引文件的步骤为:
a.故障诊断计算机下发读索引文件指令,也可以说主控芯片收到读索引文件的指令;
b.给出所要读取的索引文件的索引号或者索引文件的日期或时间段;
c.判断写FIFO是否满2Kbyte;如果满2Kbyte,则执行步骤d;如果未满,则执行步骤e;
d.把写FIFO中的一页数据文件写入存储Flash,然后执行步骤e;
e.读取一页索引文件;
f.判断读索引文件是否完成;如果未完成,则重新执行步骤c;如果完成,则执行步骤g;
g.获取索引文件结束;
所述的获取历史数据的步骤为:
h. 故障诊断计算机下发读单个或连续历史数据文件的指令,也可以认为主控芯片收到读单个或连续历史数据文件的指令;
i.获取该历史数据文件所需要的索引文件;
j.获取该历史数据文件存放的首地址和末地址;所要获取的历史数据文件对应的索引文件有数据文件存放的首地址,末地址通过下一个索引文件中的数据文件存放的首地址减一得到;
k.判断写FIFO是否满2Kbyte;如果满2Kbyte,则执行步骤l;如果未满2Kbyte,则执行步骤m;
l.把写FIFO中的一页数据文件写入存储Flash,然后执行步骤m;
m.读取一页历史数据文件;
n.判断读历史数据文件是否完成;如果完成,则执行步骤o;如果未完成,则重新执行步骤k;
o.读历史数据结束;
所述的获取实时数据文件的步骤包括:各种采集接口采集的数据实时回传给故障诊断计算机。
2.根据权利要求1所述的实时数据采集存储系统的文件管理方法,其特征在于,所述的实时采集存储系统的主控芯片是FPGA。
3.根据权利要求1或2所述的实时数据采集存储系统的文件管理方法,其特征在于,所述的实时采集存储系统的存储模块的Flash是NAND Flash。
4.根据权利要求1或2所述的实时数据采集存储系统的文件管理方法,其特征在于,所述的索引文件在索引Flash的存储格式为第一页存放产品的基本信息,从第二页开始每一页存储一个索引文件。
5.根据权利要求3所述的实时数据采集存储系统的文件管理方法,其特征在于,所述的索引文件在索引Flash的存储格式为第一页存放产品的基本信息,从第二页开始每一页存储一个索引文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210047512.4A CN102637197B (zh) | 2012-02-28 | 2012-02-28 | 实时数据采集存储系统的文件管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210047512.4A CN102637197B (zh) | 2012-02-28 | 2012-02-28 | 实时数据采集存储系统的文件管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102637197A CN102637197A (zh) | 2012-08-15 |
CN102637197B true CN102637197B (zh) | 2013-11-06 |
Family
ID=46621591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210047512.4A Active CN102637197B (zh) | 2012-02-28 | 2012-02-28 | 实时数据采集存储系统的文件管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102637197B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279402B (zh) * | 2013-05-13 | 2016-08-10 | 记忆科技(深圳)有限公司 | 基于多层单元固态硬盘的数据恢复方法及固态硬盘 |
CN107783733B (zh) * | 2013-11-07 | 2020-12-29 | 航天云网数据研究院(广东)有限公司 | 循序存取侦测系统及方法 |
CN103984278B (zh) * | 2014-05-28 | 2017-01-18 | 天津瑞能电气有限公司 | 长时间多变量监控数据的存储及快速定位读取的方法 |
CN106452807B (zh) * | 2015-08-04 | 2020-12-29 | 深圳市中兴微电子技术有限公司 | 一种网络处理器及报文处理数据的获取方法 |
CN105912491A (zh) * | 2016-07-05 | 2016-08-31 | 成都福兰特电子技术股份有限公司 | 通信数据传输处理装置 |
CN106294046A (zh) * | 2016-08-19 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种数据库实时写入数据测试存储系统丢失数据的方法 |
CN108549714B (zh) * | 2018-04-20 | 2020-12-11 | 杭州橙鹰数据技术有限公司 | 一种数据处理方法及装置 |
CN108664578B (zh) * | 2018-05-03 | 2020-10-20 | 中北大学 | 一种文件循环存储方法及系统 |
CN109579908A (zh) * | 2018-11-19 | 2019-04-05 | 中北大学 | 基于巡检机器人的实时数据采集存储系统及文件管理办法 |
CN112867036A (zh) * | 2021-02-07 | 2021-05-28 | 吉林省科学技术信息研究所 | Ad-HOC自组网系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038835A1 (en) * | 2005-08-10 | 2007-02-15 | Vimicro Corporation | Device for transmitting data and method for the same |
CN101520787A (zh) * | 2008-03-19 | 2009-09-02 | 中国科学院自动化研究所 | 一种对实时数据进行存储的方法 |
CN102147806A (zh) * | 2011-03-04 | 2011-08-10 | 哈尔滨工程大学 | 一种在Linux下实现数据快速存储的方法 |
-
2012
- 2012-02-28 CN CN201210047512.4A patent/CN102637197B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070038835A1 (en) * | 2005-08-10 | 2007-02-15 | Vimicro Corporation | Device for transmitting data and method for the same |
CN101520787A (zh) * | 2008-03-19 | 2009-09-02 | 中国科学院自动化研究所 | 一种对实时数据进行存储的方法 |
CN102147806A (zh) * | 2011-03-04 | 2011-08-10 | 哈尔滨工程大学 | 一种在Linux下实现数据快速存储的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102637197A (zh) | 2012-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102637197B (zh) | 实时数据采集存储系统的文件管理方法 | |
CN106201350B (zh) | 存储数据的方法、存储器和计算机系统 | |
CN111756575B (zh) | 存储服务器的性能分析方法及装置、电子设备 | |
CN107239382A (zh) | 一种容器应用的日志处理方法及系统 | |
CN106354615A (zh) | 固态硬盘日志生成方法及其装置 | |
CN105447059A (zh) | 一种数据处理方法及装置 | |
CN101520787B (zh) | 一种对实时数据进行存储的方法 | |
CN106448737A (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
CN103744694A (zh) | 基于Nand闪存的动态分区搜索装置及其方法 | |
CN104133780A (zh) | 一种跨页预取方法、装置及系统 | |
CN103106158A (zh) | 包括键-值存储的存储器系统 | |
CN102436420A (zh) | 使用辅助存储器的低ram空间、高吞吐量的持久键值存储 | |
CN103645731A (zh) | 一种车辆数据实时采集和存储系统 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN110431526A (zh) | 用于自动化动态字线开始电压的设备与方法 | |
KR20110086066A (ko) | 산출장치, 시스템 관리장치, 산출방법 및 프로그램 | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
CN104317770A (zh) | 用于众核处理系统的数据存储结构及数据访问方法 | |
CN105389190B (zh) | 一种操作系统启动的方法、装置及系统 | |
CN117413247A (zh) | 一种数据处理方法、设备及系统 | |
CN109101194A (zh) | 一种刷写性能优化方法和存储系统 | |
CN111124313A (zh) | 电力采集终端数据读写方法、装置和电子设备 | |
CN110008030A (zh) | 一种元数据访问的方法、系统及设备 | |
CN108628754A (zh) | 一般及垃圾回收的数据存取方法以及使用该方法的装置 | |
CN104360968B (zh) | 数据甄别与预处理物理卡及运行方法、电能数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |