一种通过压缩时标查询采样数据的方法与流程

文档序号:22577719发布日期:2020-10-20 16:49阅读:133来源:国知局
一种通过压缩时标查询采样数据的方法与流程

本发明数据采集系统技术领域,更为具体地讲,涉及一种通过压缩时标查询采样数据的方法。



背景技术:

为了实现多设备各通道采集数据同步并记录数据的时间顺序,在数据采集传送时需要为每个采集到的数据打上了相应的时间戳,即数据时标。数据时标是依据采集顺序到依次递增,并标明在每组采集数据上的唯一对应时间标志。时标对应的时间范围需要大于在线采集记录所需要的时间范围,这样才能够依据时标来判断采集到的数据的内容及时间顺序。生成时标和解码时标的系统成为时标系统。时标系统是数据采集的重要系统,它对于采集数据的同步,数据传输的可靠性、实时性都有重要意义。

带时标的数据采集系统,每采集到一组数据就要记录一次时标,时标系统需要包含整个采集记录时间,所以一般数据量较大,会造成存储空间的存储效率降低。即使在较低的采样率和较少的记录时间,数据量也会非常大。例如,数据采集器每秒采样1000次,一天记录时间,时标的最大数为86400000,时标需要27位,大约需要380m存储空间(按32位时标计算)。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种通过压缩时标查询采样数据的方法,依据时标序列的特点,采用分组压缩循环解码法实现对时标数据的大幅度压缩和解码,进而完成采集数据的实时查询。

为实现上述发明目的,本发明一种通过压缩时标查询采样数据的方法,其特征在于,包括以下步骤:

(1)、外部信号输入至信号传感器,通过信号传感器将外部信号转换成电信号,并作为采样脉冲传送给信号数据采集系统;

(2)、信号数据采集系统将内部的驱动时钟作为采样时钟,然后对采样脉冲进行采样,在每一次采样时钟到来时,信号数据采集系统产生一个与采样数据一一对应的序列时标;

(3)、压缩时标的生成

(3.1)、将序列时标拆分为高16位的块时标和低16位的块内时标;

(3.2)、设置属性标志位“0”作为当前读写操作的块内时标,设置属性标志位“1”作为当前读写操作的块时标;属性标志位的初始化状态为“0”;

(3.3)、信号数据采集系统每次采样并产生新压缩时标前,先检测属性标志位,若检测到属性标志位为“0”,则将块内时标计数器的计数值加1,同时对采样脉冲进行一次采样,然后选择器选择属性标志位“0”+块内时标至锁存器锁存,作为当前存储的压缩时标;

检测当前存储的压缩时标和上一次存储的压缩时标,若两次压缩时标的属性标志位相同都为“0”,则比较两个压缩时标的大小,若当前存储的压缩时标比上一次存储的压缩时标的值正好大1,则无漏帧,继续执行下一次采样;若当前存储的压缩时标的值小于上一次存储的压缩时标的值,判断为块时标漏帧,则查询到上一次存储的块时标并加一,然后作为新补充的压缩时标至锁存器锁存,再继续执行下一次采样;若当前存储的压缩时标的属性标志位为“0”,而上一次存储的压缩时标属性标志位为“1”,则比较当前存储的压缩时标是否为零,若为零,则无漏帧,继续执行下一次采样;若不为零,则存在块内时标漏帧,依据当前块内时标序列顺序补齐缺失的压缩时标至锁存器锁存;

(3.4)、当块内时标计数器的计数值计满时,信号数据采集系统产生进位信号,并将属性标志位改变为“1”;然后将进位信号输入至块时标计数器,并将块时标计数器的计数值加1,同时对采样脉冲进行一次采样,然后选择器选择属性标志位“1”+块时标至锁存器锁存,作为当前存储的压缩时标;最后又将属性标志位恢复为“0”;

检测当前存储的压缩时标和上一次存储的压缩时标,若两次压缩时标的属性标志位相同都为“1”,则视为系统出错,则关闭系统且报错等待处理;

若当前存储的压缩时标的属性标志位为“1”,而上一次存储的压缩时标属性标志位为“0”,则比较当前存储的压缩时标是否为16位最大值,若为16位最大值,则无漏帧,继续执行下一次采样;若不为16位最大值,则存在块内时标漏帧,依据当前块内时标序列顺序补齐缺失的压缩时标至锁存器锁存;

(4)、利用压缩时标对采样数据进行查询

(4.1)、信号数据采集系统接收查询指令与待查询编码;其中,待查询编码由32位的序列时标码组成;

(4.2)、先将待查询编码按照高、低位分解为高十六位查询编码和低十六位查询编码;再将高十六位查询编码的属性标志位设置为“1”,低十六位的查询编码的属性标志位设置为“0”;最后将高十六位查询编码及对应的属性标志位组成块查询编码,将低十六位查询编码及对应的属性标志位组成块内查询编码;

(4.3)、信号数据采集系统先按照块查询编码在锁存器中进行块查询,查询到待查询编码所在的块地址,然后按照块内查询编码在锁存器中进行块内查询,查询到待查询编码所在的块内地址;提取查询到的块地址和块内地址中的压缩时标;

(4.4)、压缩时标的解码

(4.4.1)、设置用于压缩时标解码后的储存块,其中,块地址中的压缩时标解码后储存在块储存块,块内地址中的压缩时标解码后储存在块内储存块;

(4.4.2)、解压过程中,先判断压缩时标最高位的位属性标志位,如果属性标志位为“1”,则将当前压缩时标的低16位时标码储存在块储存块中;如果属性标志位为“0”,则将当前压缩时标的低16位时标码储存在块内储存块中;

(4.5)、提取待查询编码的查询结果

将块储存块和块内储存块中16位时标码结合形成32位的块时标+块内时标,并作为待查询编码查询得到的序列时标。

本发明的发明目的是这样实现的:

本发明一种通过压缩时标查询采样数据的方法,利用信号数据采集系统在每一次采样时钟到来时,产生一个与采样数据一一对应的序列时标;再将利用序列时标生产压缩时标并锁存至锁存器,其中,在每个压缩时标生产的同时进行漏帧检测,并对漏帧进行有效纠错,提高系统的容错性;当信号数据采集系统接收查询指令与待查询编码,通过待查询编码在锁存器中查询到对应的压缩时标,然后对其解码,从而找到待查询编码需要查询的序列时标。

同时,本发明一种通过压缩时标查询采样数据的方法还具有以下有益效果:

(1)、本发明对时标信息依据其特有的特点进行分组压缩,能有效减小时标信息的存储空间,提高存储效率;

(2)、可以对漏帧进行有效纠错,有效提高系统的容错性;

(3)、本发明主要应用于高速数据采集时,减小采集数据时标占用空间,提高采集数据存储效率,解决时标的存储空间问题。

附图说明

图1是本发明一种通过压缩时标查询采样数据的方法流程图;

图2是时标的数采系统时序图;

图3是传统的时标依次记录了32个数据的采集顺序示意图;

图4是压缩时标产生电路原理图;

图5是漏帧检测电路原理图;

图6是传统的时标等效计数示意图;

图7是压缩时标等效计数示意图;

图8是压缩时标最终的数据存储示意图;

图9是压缩时标查询电路原理图;

图10是压缩时标解码电路原理图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明一种通过压缩时标查询采样数据的方法流程图。

在本实施例中,如图1所示,一种通过压缩时标查询采样数据的方法,主要包括四个大的步骤,每个大的步骤具体为:

s1、外部信号输入至信号传感器,通过信号传感器将外部信号转换成电信号,并作为采样脉冲传送给信号数据采集系统;

s2、信号数据采集系统(简称数采系统)将内部的驱动时钟作为采样时钟,然后对采样脉冲进行采样,在每一次采样时钟到来时,信号数据采集系统产生一个与采样数据一一对应的序列时标;

在本实施例中,如图2所示,图2为时标的数采系统时序图,时标系统同步于数采系统采集,每采样一次,时标模块会自动生成一个时标,并附加在数据上,俗称时间戳。

传统的时标采用固定长度时标,每采样一次,时标计数增加一次。由于采样是定速率的,采样的起始点已知,所以每次采样的时间点都是固定可以计算的,即使出现漏采或误传,都可以纠正。这种方法实现简单、可靠,但是高位数据重复较大,存储空间浪费较大。如图3,当使用一个8位的时标时,图3中用依次递增的时标依次记录了32个数据的采集顺序,可以发现钱16个时标和后16个时标信息中,高四位的数据始终重复记录,造成了资源浪费。

s3、压缩时标的生成

s3.1、将序列时标拆分为高16位的块时标和低16位的块内时标;

s3.2、设置属性标志位“0”作为当前读写操作的块内时标,设置属性标志位“1”作为当前读写操作的块时标;属性标志位的初始化状态为“0”;

s3.3、信号数据采集系统每次采样并产生新压缩时标前,先检测属性标志位,若检测到属性标志位为“0”,如图4所示,则将块内时标计数器的计数值加1,同时对采样脉冲进行一次采样,然后选择器选择属性标志位“0”+块内时标至锁存器锁存,作为当前存储的压缩时标;

由于传输的原因,带时标数据有可能出现漏帧错误,也就是漏传1~2次采样数据帧,漏帧如果出现在块内时标,可以不用处理,时标的不连续会标明漏帧的位置和长度。如果漏帧错误包含块时标,则需要进行漏帧检测,检测原理如图5所示,具体检测为:

检测当前存储的压缩时标和上一次存储的压缩时标,若两次压缩时标的属性标志位相同都为“0”,则比较两个压缩时标的大小,若当前存储的压缩时标比上一次存储的压缩时标的值正好大1,则无漏帧,继续执行下一次采样;若当前存储的压缩时标的值小于上一次存储的压缩时标的值,判断为块时标漏帧,则查询到上一次存储的块时标并加一,然后作为新补充的压缩时标至锁存器锁存,再继续执行下一次采样;若当前存储的压缩时标的属性标志位为“0”,而上一次存储的压缩时标属性标志位为“1”,则比较当前存储的压缩时标是否为零,若为零,则无漏帧,继续执行下一次采样;若不为零,则存在块内时标漏帧,依据当前块内时标序列顺序补齐缺失的压缩时标至锁存器锁存;

s3.4、如图4所示,当块内时标计数器的计数值计满时,信号数据采集系统产生进位信号,并将属性标志位改变为“1”;然后将进位信号输入至块时标计数器,并将块时标计数器的计数值加1,同时对采样脉冲进行一次采样,然后选择器选择属性标志位“1”+块时标至锁存器锁存,作为当前存储的压缩时标;最后又将属性标志位恢复为“0”;

如图5所示,检测当前存储的压缩时标和上一次存储的压缩时标,若两次压缩时标的属性标志位相同都为“1”,则视为系统出错,则关闭系统且报错等待处理;

若当前存储的压缩时标的属性标志位为“1”,而上一次存储的压缩时标属性标志位为“0”,则比较当前存储的压缩时标是否为16位最大值,若为16位最大值,则无漏帧,继续执行下一次采样;若不为16位最大值,则存在块内时标漏帧,依据当前块内时标序列顺序补齐缺失的压缩时标至锁存器锁存;

在本实施例中,如图6所示,采用传统的时标进行等效计数,如图7所示,采用压缩时标进行等效计数,通过对比图6、图7可以看出,当采用一个16位的寄存器来记录最多65536个数据流采集状况的时标记录,按照传统的时标记录需要(2^16)*16=1048576位存储空间。而经过压缩后,则需要(2^16)*9+(2^8)*9=589824+2304=592128。压缩比为56.47%。大大降低资源使用。最终,在锁存器中,压缩时标最终的数据存储形式如图8所示。

s4、利用压缩时标对采样数据进行查询

s4.1、信号数据采集系统接收查询指令与待查询编码;其中,待查询编码由32位的序列时标码组成;

s4.2、如图9所示,先将待查询编码按照高、低位分解为高十六位查询编码和低十六位查询编码;再将高十六位查询编码的属性标志位设置为“1”,低十六位的查询编码的属性标志位设置为“0”;最后将高十六位查询编码及对应的属性标志位组成块查询编码,将低十六位查询编码及对应的属性标志位组成块内查询编码;

s4.3、信号数据采集系统先按照块查询编码在锁存器中进行块查询,查询到待查询编码所在的块地址,然后按照块内查询编码在锁存器中进行块内查询,查询到待查询编码所在的块内地址;提取查询到的块地址和块内地址中的压缩时标;

在本实施例中,设待查询编码为十进制数1,000,000的数据,时标1,000,000对应的32位二进制数为00000000000011110100001001000000,将该时标分解为块时标和块内时标,并在首位添加其对应的标志位,即分解为:块时标:10000000000001111,块内时标:00100001001000000。分解完成后依据块时标10000000000001111查询到该时标的块位置,在从该块中依据块内时标查询到对应的时标数据。

s4.4、压缩时标的解码,如图10所示;

s4.4.1、设置用于压缩时标解码后的储存块,其中,块地址中的压缩时标解码后储存在块储存块,块内地址中的压缩时标解码后储存在块内储存块;

s4.4.2、解压过程中,先判断压缩时标最高位的位属性标志位,如果属性标志位为“1”,则将当前压缩时标的低16位时标码储存在块储存块中;如果属性标志位为“0”,则将当前压缩时标的低16位时标码储存在块内储存块中;

s4.5、提取待查询编码的查询结果

将块储存块和块内储存块中16位时标码结合形成32位的块时标+块内时标,并作为待查询编码查询得到的序列时标。

如图8所示,当我们查询到当前存储数据为000000001,需确定当前时标的实际数据与或他的十进制等效数据。由当前的数据以及标志位数据我们只能得到原始数据的低八位为00000001,因此我们需要确定该数据的高八位。由存储数据的形式我们可以从块时标寄存器内依次向上查询,检测目标为标志位,当查询到该数据上的第一个标志位为1的数据,即得到该数据高八位的计数值,若标志位为一的数据为100000001,则可得到高八位为00000001,因此可查询到原始数据,时标译码为0000000100000001,相应的十进制数时标为257。同理,若查询到当前数据的上一个标志位为1的计数值为100000011,则原始时标数据译码为0000001100000001,对应的十进制数为769。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1