一种大容量采集终端的数据位置存储及检索方法技术

技术编号:15200410 阅读:181 留言:0更新日期:2017-04-22 02:01
一种大容量采集终端的数据位置存储及检索方法,在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,以尾号建立检索链表,转换后编号的高位部分组成检索号;检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置。本发明专利技术解决了大容量采集终端的编号检索速度问题,减少了检索工作对MCU时间的占用;采用不存尾号的编号长度分组方式,减少存贮数量和提升检索效率。

Method for storing and retrieving data position of large capacity acquisition terminal

A large capacity data acquisition terminal location storage and retrieval method, before the increase, delete, number of acquisition equipment for retrieval, first for grouping by the acquisition equipment number, get the tail number and the number of retrieval, to set up the tail number search list, the high number of part of the conversion after retrieval No. each node list is retrieved; a Flash block, each block can be stored by several Flash acquisition equipment number, and corresponds to the number of data storage location; when you want to retrieve a collection of equipment, the number of the first group, retrieved number and tail number, then according to the tail number select the appropriate search list, in the search list in the search number, and get the corresponding data storage location. The invention solves the problem of large capacity data acquisition terminal number retrieval speed, reduces the retrieval time of MCU is occupied by grouping length; number without tail number, reduce storage quantity and improve the efficiency of retrieval.

【技术实现步骤摘要】

本专利技术涉及一种大容量采集终端的数据位置存储及检索方法
技术介绍
随着物联网技术的快速发展,一个采集终端往往需要记录大量的被采集设备的数据,而要读取某个被采集设备的数据时,就需要根据其编号查找到具体的数据存贮位置,然后再读取数据。当需要检索的编号只有几百个时,顺序检索即可,花费的时间不是很长,是可以被接受的。但是,当存贮的编号达到成千上万个时,就必须采取快速检索方法,比如多表集抄应用,一个物业小区的集中器,同时存贮了水、电、气、热四表的数据,用户数能达到2000以上,一个表号有6~8个字节,顺序检索一个表号花费的时间要几秒钟,无法接受。若采用建立索引的方式来进行检索,被采集设备的增减会对索引表进行较大的变更,而采集终端一般采用串行接口的FLASH存贮器,是以数据块方式存贮器,访问时需要先读到SRAM中,而且写Flash花费的时间较长,会影响其它数据的存贮,不是很方便。另外,考虑到采集终端的成本,一般会尽量压缩FLASH的容量,不能用太多的冗余空间来存贮,而且,采集终端要用大量的时间做数据采集和存贮工作,检索的时间要求占用的MCU资源少,因此,需要一个既能快速检索,又不占用太多存贮空间且符合FLASH存贮器特点的检索方式。
技术实现思路
为了克服现有大容量采集终端的数据位置存储及检索方法的上述不足,本专利技术提供一种可实现快速检索的大容量采集终端的数据位置存储及检索方法。本专利技术解决其技术问题的技术方案是:一种大容量采集终端的数据位置存储及检索方法,在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号,因为每个尾号有一个对应的链表,尾号可以不存贮,也就是说原来的6个数字只需要2个字节来存贮了,减少了一个字节的贮存;2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号,因为前面的部分是偶数个,两个数字组成一个BCD码,因为尾号可以不存贮,因此比原来少用一个字节贮存;检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检索号及分配的采集数据贮存位置信息插入,如果Last节点满了,则分配一个未用的Flash块插入到该检索链表末尾,并标记该Flash块为已用;当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置;当要删除某个被采集设备时,先按上面的方法进行检索,获取采集数据贮存位置,清除该贮存位置的相应数据记录,然后将该检索链表中的最后一个检索号与采集数据存贮位置信息复制到正删除的检索号位置,检索链表的最后一个检索号与地址清空,若该检索链表的最后节点没有任何检索号,则标记该节点为未用,并从该链表中删除。优选的,在检索链表中查找检索号时,先将检索号的低位部分进行比对。本专利技术的有益效果在于:1.它解决了大容量采集终端的编号检索速度问题,减少了检索工作对MCU时间的占用;2.采用不存尾号的编号长度分组方式,减少存贮数量和提升检索效率;3.减少了编号检索时从Flash转到SRAM的读取次数;4.没有按编号建立索引,被采集设备的编号增减需要写Flash的次数很少,不影响终端的其它工作。下面结合具体实施方式对本专利技术作进一步详细说明。一种大容量采集终端的数据位置存储及检索方法,在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号;2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号;检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检索号及分配的采集数据贮存位置信息插入,如果Last节点满了,则分配一个未用的Flash块插入到该检索链表末尾,并标记该Flash块为已用;当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置;当要删除某个被采集设备时,先按上面的方法进行检索,获取采集数据贮存位置,清除该贮存位置的相应数据记录,然后将该检索链表中的最后一个检索号与采集数据存贮位置信息复制到正删除的检索号位置,检索链表的最后一个检索号与地址清空,若该检索链表的最后节点没有任何检索号,则标记该节点为未用,并从该链表中删除。例如:如果一个被采集设备的编号为14位数字,用7字节BCD码表示,将数字分成高8位和低6位两组,前面的8位为4字节,后面的6位转换成HEX码后,去掉尾号,用2字节存贮,则最后存贮空间为6字节,比原来的7字节少1个字节。如果Flash存贮器的每个数据块是1024字节,每个采集数据位置用2字节表示,总共有30000台被采集设备,则按普通的顺序存贮方式,每个Flash块存贮113台,共需要266个Flash块。而采用本专利技术的方法,每个Flash块可以存贮128台,加上最多可能出现的16个检索链表Head节点的冗余块,工需要251个Flash块,节约了5.6%的检索用Flash块资源,另外,因为分组后的检索数据量只有原来的1/16,这样检索速度提高了16倍;本实施中,在检索链表中查找检索号时,先将检索号的低位部分进行比对。在实际应用中,一般一个区域内使用到的被采集设备是由少数几家供应商提供,对于同一供应商的每批次供货,其设备编号呈现出高位部分基本相同,变化的是低位部分,6位数字达到了一百万台,绝大多数情况下,一台采集终端所采集的设备编号的低6位数重复概率非常低,比如采集终端采集3万台设备时,有1个编号低6位数重复的概率仅0.09%,所以基本上比较了低6位数后就基本可以确认了。因为采集终端下的被采集设备的编号有此特点,因此,本专利技术利用倒序比对的方法进行检索,这样就可以大幅提升检索速度,以前面的例子来分析,如果按从高到低的顺序比对,几乎等于每个被采集设备的编号比对要比对7个字节,而采用本本文档来自技高网...

【技术保护点】
一种大容量采集终端的数据位置存储及检索方法,其特征在于:在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号; 2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号;检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检索号及分配的采集数据贮存位置信息插入,如果Last节点满了,则分配一个未用的Flash块插入到该检索链表末尾,并标记该Flash块为已用;当要检索一个被采集设备时,先对编号进行上述分组处理,得到检索号和尾号,然后根据尾号选择相应的检索链表,在检索链表中查找检索号,并得到相应的采集数据贮存位置;当要删除某个被采集设备时,先按上面的方法进行检索,获取采集数据贮存位置,清除该贮存位置的相应数据记录,然后将该检索链表中的最后一个检索号与采集数据存贮位置信息复制到正删除的检索号位置,检索链表的最后一个检索号与地址清空,若该检索链表的最后节点没有任何检索号,则标记该节点为未用,并从该链表中删除。...

【技术特征摘要】
1.一种大容量采集终端的数据位置存储及检索方法,其特征在于:在对被采集设备进行编号的增加、删除、检索之前,先对被采集设备的编号进行分组处理,得到尾号和检索号,分组处理包括两种方式:1).当编号的长度为偶数个数字时,将低位的6个数字作为一组,高位的数字作为一组,高位的数字做二进制转换成BCD码,低位的6个数字做16进制转换成HEX码,以十六进制的方式分配16个尾号检索链表,转换后编号的高位部分、转换后编号的低位部分去掉尾号的部分组成检索号;2).当编号的长度为奇数个数字时,将最后一个数字作为一组,去除最后一个数字的高位数字作为一组,高位数字及最后一个数字均做二进制转换成BCD码,以十进制的方式分配10个尾号检索链表,转换后编号的高位部分组成检索号;检索链表的每个节点是一个Flash块,每个Flash块可贮存若干被采集设备的编号、以及与该编号对应的数据贮存位置;当增加被采集设备时,先找到对应编号尾号的检索链表的Last节点,Last节点中将检...

【专利技术属性】
技术研发人员:龙翔林马益平章恩友刘秀峰蒋卫平章川
申请(专利权)人:宁波迦南电子有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1