数据采集方法、设备及存储介质与流程

文档序号:23499484发布日期:2021-01-01 18:03阅读:114来源:国知局
数据采集方法、设备及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种数据采集方法、设备及存储介质。



背景技术:

ccp协议(英文全称cancalibrationprotocol,can标定协议)是一种基于can总线的ecu标定协议,广泛的应用于汽车行业,它的功能之一就是可以通过主从的通信的daq模式将数据按照一定的通信周期发送给上位机,上位机根据变量地址映射表将数据解析出来,从而达到在线捕捉变量以作离线分析的调试目的。这种实现方式需要定义好几组通信周期,以便在建立通信时将变量规划到不同的传输周期列表,而且各个周期有变量个数的上限。

但是受到了can通信速率的限制还有cpu负荷的限制,daq模式能够规划的通信周期是有下限的,通常都是大于等于1ms,也就是说能够实现的变量采样精度小于等于1khz。这对于某些变化更加快速的变量是不适用的,比如旋变的sin、cos采样值,电流传感器的采样值,它们的周期可能小于1ms,如果使用1ms的传输速率观察变量,这样无法准确还原信号。

上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本申请实施例通过提供一种数据采集方法、设备及存储介质,本申请旨在解决现有ccp协议因为通信周期的限制,无法对一些变化频率高于ccp协议的通信频率的信号进行采集的问题。

本申请实施例提供了一种数据采集方法,包括:

s1、按照第一频率采集数据并将该数据存入目标存储器;

s2、判断触发事件是否发生,若发生,当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,保存此时所述触发前数据与所述触发后数据,并组成目标数据;若不发生,则结束;

s3、将所述目标数据发送至上位机,其中,所述目标数据的发送时长大于所述目标数据的采集时长;

s4、当发送所述目标数据进行至所述发送时长的预设时间点时,则转至步骤s1。

在一些实施例中,所述按照第一频率采集数据并将该数据存入目标存储器,包括:

按照第一频率采集数据并将该数据存储至环形存储器,所述环形存储器的尾部存储地址和头部存储地址相连。

在一些实施例中,在步骤s1和步骤s2中,在数据存储至所述环形存储器的尾部存储地址后,新写入的数据跳回到所述环形存储器的头部存储地址开始存储。

在一些实施例中,所述触发事件包括主动触发事件或被动触发事件。

在一些实施例中,所述主动触发事件包括设置变量触发事件、输入输出端口触发事件、定时触发事件中的任意一种。

在一些实施例中,所述被动触发事件包括故障触发事件。

在一些实施例中,当发送所述目标数据进行至所述预设时间点时,新写入的数据不会覆盖未发送的所述目标数据。

在一些实施例中,所述目标数据发送至所述上位机的通信协议基于can总线的标定协议。

本申请还提出一种数据采集设备,所述数据采集设备包括处理器、与所述处理器电连接的存储器及存储在所述存储器上并可在所述处理器上运行的数据采集程序;所述数据采集程序被所述处理器执行时实现所述的数据采集方法的步骤。

本申请还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的数据采集方法中的步骤。

本实施例通过按照第一频率采集数据并将该数据存入目标存储器;判断触发事件是否发生,若发生,当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,保存此时所述触发前数据与所述触发后数据,并组成目标数据;若不发生,则结束;以此实现对变化频率高于ccp协议的通信频率的信号暂存于目标存储器,符合一定条件后目标存储器缓存时再以传统daq模式的低速发送给上位机。再通过所述目标数据的发送时长大于所述目标数据的采集时长,当发送所述目标数据进行至所述发送时长的预设时间点时,则转至按照第一频率采集数据并将该数据存入目标存储器,从而建立高速采样、低速发送的轮转机制,以离散的方式采集与传输数据。本实施例在传统ccp协议的基础上增加了高于通信速率的采样,并且将采集到的数据用通信速率发出来,通信协议不变,这使得信号的采样速率不受限于通信速率,实现对变化频率高于通信协议的通信频率的信号的采集,当需要对某些快速变化的信号细节进行的研究时候,给工程师的分析和观察带来便利。

附图说明

图1为本申请的数据采集设备的一实施例的硬件架构图;

图2为本申请的数据采集方法的一实施例的流程框图;

图3为本申请的数据采集方法的另一实施例的流程框图;

图4本申请中环形存储器的一实施例的流程框图;

图5表示本申请对目标数据采集时长和发送时长的时间分配关系;

图6表示本申请通过spy捕捉的1khz正弦信号波形图;

图7表示本申请通过传统daq模式捕捉的1khz正弦信号波形图。

具体实施方式

为了更好的理解上述技术方案,下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

ccp协议是一种基于can总线的ecu标定协议,广泛的应用于汽车行业,它可以通过主从的通信的daq模式(英文全称dataacquisitionmode,中文译为数据采集模式)将数据按照一定的通信周期发送给上位机。上位机根据变量地址映射表将数据解析出来,从而达到在线捕捉变量以作离线分析的调试目的。

但由于受到了can通信速率的限制还有cpu负荷的限制,daq模式能够规划的通信周期是有下限的,通常都是大于等于1ms,也就是说能够实现的变量采样精度小于等于1khz。这对于某些变化更加快速的变量是不适用的,比如旋变的sin、cos采样值,电流传感器的采样值,它们的周期可能小于1ms,如果使用1ms的传输速率观察变量,这样无法准确还原信号。

换句话说,daq模式对于高速变化的信号无法提供高于通信速率的采样。传统的daq模式的数据采集和数据发送都处于同一个周期性调度任务里,该任务的调度周期决定了数据的采样周期,也决定了数据的发送周期。

因此,需要解决现有ccp协议因为通信周期的限制,无法对一些变化频率高于ccp协议的通信频率的信号进行采集的问题。鉴于此,本申请提出一种数据采集方法、设备及存储介质。

请参照图1,下面介绍一种数据采集设备,所述数据采集设备包括处理器101、与所述处理器101电连接的存储器102以及通信总线103。其中,通信总线103用于实现这些组件之间的连接通信。

所述处理器101可以是中央处理单元(cpu),该处理器101还可以是其他通用处理器,如数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器101。

存储器102可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。作为一种计算机存储介质的存储器中可以包括数据采集程序;而处理器101可以用于调用存储器102中存储的数据采集程序,并执行以下操作:

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

s1、按照第一频率采集数据并将该数据存入目标存储器;

s2、判断触发事件是否发生,若发生,当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,保存此时所述触发前数据与所述触发后数据,并组成目标数据;若不发生,则结束;

s3、将所述目标数据发送至上位机,其中,所述目标数据的发送时长大于所述目标数据的采集时长;

s4、当发送所述目标数据进行至所述发送时长的预设时间点时,则转至步骤s1。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

所述按照第一频率采集数据并将该数据存入目标存储器,包括:

按照第一频率采集数据并将该数据存储至环形存储器,所述环形存储器的尾部存储地址和头部存储地址相连。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

在步骤s1和步骤s2中,在数据存储至所述环形存储器的尾部存储地址后,新写入的数据跳回到所述环形存储器的头部存储地址开始存储。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

所述触发事件包括主动触发事件或被动触发事件。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

所述主动触发事件包括设置变量触发事件、输入输出端口触发事件、定时触发事件中的任意一种。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

所述被动触发事件包括故障触发事件。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

当发送所述目标数据进行至所述预设时间点时,新写入的数据不会覆盖未发送的所述目标数据。

在一实施例中,处理器101可以用于调用存储器102中存储的数据采集程序,并执行以所述方法包括:

所述目标数据发送至所述上位机的通信协议基于can总线的标定协议。

请参照图2,基于上述数据采集设备的硬件架构,下面提出本申请的数据采集方法,所述数据采集方法包括以下步骤:

s1、按照第一频率采集数据并将该数据存入目标存储器;

需要说明的是,由于变化频率高于can通信速率的信号不需要实时进行采集,而往往只在特定条件之下才需要采集。本实施例依然要与低速的通信方式相兼容,在特定条件未到来时,即触发事件未发生时,本申请应该处于低速采集和低速发送的状态,其功能和普通daq任务周期一样,数据采集一组则立刻发送一组,从采集到数据到向上位机传输出数据的延迟是小于任务周期的,比如daq的任务周期是1ms,则变量a从被采集到被发送出去的时间间隔小于1ms。

为了突出对触发事件变化前后数据的对比,便于工程师对某些信号细节进行分析和观察,尤其是对某故障触发前后的现场进行离线分析。在上述思想的引导之下,在本实施例中,即使未触发事件时,仍然以第一频率采集数据并将该数据进行存储。不过不将上述数据以第一频率采集的数据进行发送。向上位机发送的数据仍然以普通daq任务采集的低速数据为准。

可以理解的,上述“第一频率”指的是采样频率大于普通daq任务的采样频率。即通过第一频率能采样到普通daq任务更精确的数据。例如普通daq任务的采样频率为1秒采集100个样本数据,那么通过第一频率在1秒内可采集1000个样本数据。应该理解的是,上述具体的数值是为了帮助本领域技术人员理解本申请的技术方案而列举的数值,不应该理解为对本申请的限制。

进一步地,为了避免数据的冗余,节省存储器的空间,请参照图3,所述步骤s1进一步包括:

s11、按照第一频率采集数据并将该数据存储至环形存储器。

所述环形存储器指的是,即数据存满时,新数据应该从缓存区尾部重新覆盖旧数据。由于以第一频率采集的高速数据,采样频率快,采集的数据量大。如果不设置环形存储器进行循环存储,容易造成数据的冗余。因此,使用环形存储器一方面可以避免数据的冗余,节省存储器的空间。

s2、判断触发事件是否发生,若发生,当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,保存此时所述触发前数据与所述触发后数据,并组成目标数据;若不发生,则结束;

由步骤s1中的描述可知,本实施例的目地更侧重于对某些特定时间内的数据进行记录,比如旋变的sin、cos采样值,电流传感器的采样值,故障发生前后的物理信息和状态信息。而不是对低速数据的长时间观察。所以需要为进行高速采样设置一个触发事件。未发生触发事件时,数据通过低速数据采集函数进行采集,再通过daq发送函数进行低速发送,以第一频率采集的数据不会发送至上位机,只是暂存于目标存储器;当触发事件发生后,当触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,保存所述触发前数据和所述触发后数据,并组成目标数据。

需要说明的是,上述触发事件包括主动触发事件或被动触发事件。进一步地,主动触发事件可以是人为决定何时切换为第一频率采样的触发方式。例如,设置变量触发事件、输入输出端口触发事件、定时触发事件中的任意一种。在一个典型的实施例中,可以在程序中设置某变量变为“true”则触发。

被动触发事件可以是故障触发事件。例如当故障发生后被动启动第一频率采样的触发方式。具体地,可以设置1-10的故障等级,当故障等级大于等于3级时设置触发事件发生。

当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,组成目标数据。可以理解的是,本实施例在使用环形存储器的情况下可以实现触发时刻前后的数据回放功能,即可以让工程师看到触发时刻之前一段时间的数据和触发时刻之后一段时间的数据。而这个预设比例阈值是可调的。例如,请参照图4所示,在一个实施例中,图4中将触发前数据的数据量与触发后数据的数据量按1:1分配的缓存区。即工程师可以看到的数据前半段是触发时刻之前的,后半段是触发时刻之后的。之所以可以看到触发之前的数据是因为步骤s1中不停的将数据填充到缓存区,但无发生触发事件的时候会不断地丢弃这些数据,当发生触发事件时,环形存储器里的一部分数据不会再被丢弃了,它作为触发时刻前的一部分数据被冻结下来,存储数据的头指针指向下一个存储地址继续存储另一部分的缓存空间,完成了这一部分的存储后,冻结整个环形存储器的数据,然后开始将头指针所指的缓存数据发送出去,指针一边递增一边发送环形存储器数据,直到发完整个环形存储器的数据,完成一次高速采样与传送。如此一来,在故障发生的同时触发事件发生,并且当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,组成目标数据。将目标数据发送至上位机,有利于工作人员对某触发事件发生前后的数据进行离线分析查找原因,提高排查车辆故障原因的效率。

需要说明的是,在步骤s1和步骤s2中,在数据存储至所述环形存储器的尾部存储地址后,新写入的数据跳回到所述环形存储器的头部存储地址开始存储。

s3、将所述目标数据发送至上位机,其中,所述目标数据的发送时长大于所述目标数据的采集时长;

s4、当发送所述目标数据进行至所述发送时长的预设时间点时,则转至步骤s1。

以第一频率采集的数据不可能立即发送至daq发送函数再通过daq发送函数发送至上位机。而是存储入目标存储器,形成目标数据后再发送至daq发送函数,再通过daq发送函数发送至上位机。由于实际发送目标数据的通信协议仍然是基于ccp协议,所以在发送目标数据的时候所述目标数据的发送时长大于所述目标数据的采集时长。

需要说明的是,完成了第一个片段的数据缓存后,软件即冻结该环形存储器,发送环形存储器的数据给上位机,但这仅仅是第一个采样片段,该发送环形存储器的数据接近预设时间点时,应该转到步骤s1执行,以此再次进入第一频率采样数据。但需要注意的是在保证新写入的数据不会覆盖未发送的所述目标数据的前提下完成新一段数据采集,然后再次发送,以此循环往复轮转。从而达到持续的以第一频率高速采样,以daq模式的通信周期低速发送目的。

对于所述目标数据采集时长和发送时长的计算,方法如下:设第一频率采集的任务周期为t1,daq模式发送的任务周期为t2,存储器数据量为x个字节,一个采样周期采集n个字节,则采集时长ts=(t1*x)/n,发送时长tt=(x*t2)/(t1*8);通常ts小于tt,缓存数据量越大,tt越大。由于ts和tt不相等,所以高速采集数据片段与片段之间的时间差为tt–ts+△t。其中△t可以根据实际需要设置,这里不做具体限制。

另外,为了进一步提高数据采集的效率。第一采样片段发送之后,在以第一频率进行目标数据采集时,当目标数据采集进行到一定的设定时间时,即可进行向上位机发送目标数据。可以理解的,必须要在触发事件发生后对向上位机发送以第一频率采集的目标数据。请参照图5,图5表示对目标数据采集时长ts和发送时长tt的时间分配关系。

应该理解的是,第一频率数据的采集也是周期性的。这里可以通过操作系统实现周期任务,也可以通过定时器中断实现。在这个任务里面,主要是完成数据向目标存储器(即环形存储器)的拷贝。

下面通过一个典型的实施例对本申请的技术方案进行说明:

首先进行准备工作。在程序中创建一个100us的中断,将以第一频率采集数据的任务放在里面,并命名为spy。接着创建一个能容纳400组数据的目标存储器,其中每组数据可以放84个字节的变量集。再选择一个daq通信任务作为spy的通信任务,比如5ms的daq通信任务。设计spy的缓存区拷贝机制,定义一个缓存区地址索引变量,指引数据在缓存区的存放位置,当存放到了缓存区末尾的时候,跳回到缓存区头部重新开始存,以此形成环形存储器。最后再定义一个触发事件,主动触发方式是某变量变为true则触发,被动触发方式是故障等级大于等于3级时触发。接下来开始采集数据的步骤。

s101、未发生触发事件时,daq通信任务实现的是常规的数据传送,即5ms采样和传送;

s102、发生触发事件后,则daq通信任务将数据来源切换为spy的环形存储器,并记录当前环形存储器的缓存区索引,从该索引开始继续采样一半缓存空间,采样完冻结缓存区数据,发送传送命令给spy通信任务,将数据传送至上位机;

s103、当发送步骤102中采集的数据进行至所述发送时长的预设时间点时,则转至步骤s101。

请参照图6和图7,图6是通过spy捕捉的1khz正弦信号波形,其数据采样速率为50khz,数据传输速率为200hz。作为对比,图7是使用传统daq模式捕捉的1khz正弦信号波形,其采样速率和传输速率都是200hz。可以看出通过spy捕捉的数据更完整的还原了真实信号,而通过传统daq模式捕捉的数据,正弦信号严重变形,没有分析价值。

本实施例的技术方案给技术人员的调试带来了便利,通过它,技术人员观察到了实际运行中的各种信号变化细节,比如旋变信号、电流信号的波形,或故障发生前后的物理信息和状态信息,通过分析这些细节信息,得到了更好的参数配置、换算公式和故障诊断策略。

综上,本申请通过按照第一频率采集数据并将该数据存入目标存储器;判断触发事件是否发生,若发生,当所述目标存储器内触发前数据的数据量与触发后数据的数据量达到预设比例阈值时,保存此时所述触发前数据与所述触发后数据,并组成目标数据;若不发生,则结束;以此实现对变化频率高于ccp协议的通信频率的信号暂存于目标存储器,符合一定条件后目标存储器缓存时再以传统daq模式的低速发送给上位机。再通过所述目标数据的发送时长大于所述目标数据的采集时长,当发送所述目标数据进行至所述发送时长的预设时间点时,则转至按照第一频率采集数据并将该数据存入目标存储器,从而建立高速采样、低速发送的轮转机制,以离散的方式采集与传输数据。本实施例在传统ccp协议的基础上增加了高于通信速率的采样,并且将采集到的数据用通信速率发出来,通信协议不变,这使得信号的采样速率不受限于通信速率,实现对变化频率高于通信协议的通信频率的信号的采集,当需要对某些快速变化的信号细节进行的研究时候,给工程师的分析和观察带来便利。

还需要说明的是,本申请的适应范围主要在汽车零部件软件的整机调试或整车调试。但是本申请还能应用在其他软件在线调试领域,在其他收到通信速率限制的领域中,都可以通过变化频率高于通信协议的通信频率的信号暂存于目标存储器,符合一定条件后目标存储器缓存时再以传统通信协议的通信频率的低速发送给上位机。从而实现信号的采样速率不受限于通信速率,在通信协议不变的情况下,实现对变化频率高于通信协议的通信频率的信号的采集。

这本申请还提出一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现所述的数据采集方法中的步骤。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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