数据记录回灌系统和方法

文档序号:1270917 发布日期:2020-08-25 浏览:38次 >En<

阅读说明:本技术 数据记录回灌系统和方法 (Data record recharge system and method ) 是由 张智斌 邓郡 于 2020-05-21 设计创作,主要内容包括:本发明实施例提供数据记录回灌系统和方法。包括:上位机中的数据回灌单元和下位机中的实时激励引擎单元;其中:数据回灌单元用于:获取目标数据记录文件;对目标数据记录文件中的工程参数进行分组;对各工程参数组进行预处理,得到预处理后的各工程参数组;对预处理后的各工程参数组进行封装,得到二进制数据包;生成包括按绝对时间戳进行排序后的二进制数据包的数据文件;将数据文件发送给实时激励引擎单元;实时激励引擎单元用于执行调度线程和发送线程;调度线程用于:在第N调度周期从数据文件中获取与调度起始时刻的间隔位于Nt至(N+1)t之间的二进制数据包;发送线程用于:将调度线程获取的二进制数据包逐个发送至被测设备。(The embodiment of the invention provides a data record recharging system and a data record recharging method. The method comprises the following steps: a data recharging unit in the upper computer and a real-time excitation engine unit in the lower computer; wherein: the data recharging unit is used for: acquiring a target data recording file; grouping the engineering parameters in the target data record file; preprocessing each engineering parameter group to obtain each preprocessed engineering parameter group; packaging the preprocessed engineering parameter groups to obtain a binary data packet; generating a data file comprising binary data packets sequenced according to absolute timestamps; sending the data file to a real-time excitation engine unit; the real-time excitation engine unit is used for executing a scheduling thread and a sending thread; the dispatch thread is to: acquiring a binary data packet which is positioned between Nt and (N &#43;1) t from the data file at the interval of the scheduling starting time in the Nth scheduling period; the send thread is to: and sending the binary data packets acquired by the scheduling thread to the tested device one by one.)

数据记录回灌系统和方法

技术领域

本发明涉及电子系统集成验证技术领域,特别涉及数据记录回灌系统和方法。

背景技术

在电子系统集成验证领域,例如飞机系统地面研发试验、机上地面试验、试飞试验等场景中,均会采集和存储试验过程中飞机系统(例如航电系统、飞控系统)间的通信数据。试验结束后,可在地面试验环境中通过回灌数据记录的方式对被测设备进行数据激励,还原出现问题时的试验过程和工况,从而支持在地面试验环境中有针对性的复现和定位问题。

在试验过程中,以总线通信为例,各飞机系统的传感器会产生传感器数据,将传感器数据打包成数据包发送至总线上,接收方会解析数据包,将数据包中的数据记录至数据记录文件。一个数据记录文件中会记录多个工程参数(物理参数,例如高度、速度、电压、姿态)的信息,包括参数名、参数值、时间戳信息。

所谓的数据回灌,基本思想是将数据记录文件重新打包成数据包,放在总线上传输。

常见的数据回灌方案由基于Windows操作系统的桌面回灌软件完成,其操作包括:

桌面回灌软件加载并解析数据记录文件,启动不同的线程,这些线程并行调度执行如下步骤:

基于数据包的定义,对数据记录文件中的属于不同数据包的参数分开,将属于同一数据包的参数重组,重新再打包成数据包(同一数据包中的参数,时间戳是相一致的)。根据数据包的时间戳,确定数据包间的时间间隔,根据发送时间间隔对数据包的发送时序进行控制。例如,数据包1与数据包2时间间隔为49ms,则在发送数据包1后,等待49ms发送数据包2。

发明人发现:

回灌软件需要根据每一总线消息的数据包各自的更新间隔进行并行调度,在需回灌消息数量较多的复杂试验场景,假定其有几百条总线消息,那可能需要启动上百条线程,软件开销会过大;

此外,Windows操作系统是非实时操作系统,基于非实时操作系统的回灌软件的定时分辨率只能达到1ms。而电子系统采集数据的时间戳分辨率可达到1us。对于小于1ms的发送间隔(例如500us),当前的回灌软件可能无法进行精准的时序控制,造成数据回灌时数据包的发送间隔与数据记录文件中真实的发送间隔相比存在较大的偏差。

发明内容

有鉴于此,本发明实施例提供数据记录回灌系统和方法,以降低软件开销,并减少数据包间发送间隔与真实发送间隔间的偏差。

为实现上述目的,本发明实施例提供如下技术方案:

一种数据记录回灌系统,包括:数据回灌单元和实时激励引擎单元,所述数据回灌单元部署于上位机中,所述实时激励引擎单元部署于运行实时操作系统的下位机中;其中:

所述数据回灌单元用于:

获取目标数据记录文件;所述目标数据记录文件用于数据回灌;

按照各总线消息的数据定义对所述目标数据记录文件中的工程参数进行分组,得到工程参数组;其中,同一工程参数组中的工程参数的绝对时间戳相同且对应同一数据包;

对各工程参数组进行预处理,得到预处理后的各工程参数组;

对预处理后的各工程参数组进行封装,得到相应的二进制数据包;

生成数据文件;所述数据文件包括:按绝对时间戳进行排序后的二进制数据包;

将所述数据文件发送给所述实时激励引擎单元;

所述实时激励引擎单元用于执行独立的调度线程和发送线程;

其中,

所述调度线程用于:

在第N调度周期从所述数据文件中获取与调度起始时刻的间隔位于Nt至(N+1)t之间的二进制数据包;其中,t表示调度周期的时长;N为整数;所述调度起始时刻为零时刻,所述数据文件中最早的绝对时间戳与所述零时刻相对应;

所述发送线程用于:

将所述调度线程获取的二进制数据包逐个发送至被测设备。

可选的,所述数据文件还包括:各二进制数据包的相对时刻,其中,所述数据文件中绝对时间戳相同的二进制数据包对应同一相对时刻;在第N调度周期从所述数据文件中获取与调度起始时刻的间隔位于Nt至(N+1)t之间的二进制数据包,包括:在第N调度周期从所述数据文件中获取相对时刻位于Nt至(N+1)t之间的二进制数据包,所述数据文件中最早的绝对时间戳的相对时刻为所述零时刻。

可选的,所述对各工程参数组进行预处理包括:时间规整、缺点补偿和时间对齐中的至少一种。

可选的,所述时间规整包括:计算同一总线消息中时间相邻的两工程参数组间的时间间隔;将同一总线消息中时间相邻且满足预设条件的工程参数组间的时间间隔,调整为标准时间间隔;每一总线消息对应一个预设发送周期,所述预设发送周期的时长等于所述标准时间间隔;其中,所述预设条件包括:相邻两工程参数组的时间间隔与标准时间间隔的差值不等于0且小于预设阈值,或者,所述差值与所述标准时间间隔的比值不等于0且小于预设比值。

可选的,所述缺点补偿包括:从多条总线消息中选择发送开始时间最早的总线消息作为第一基准总线消息;按照目标总线消息的发送周期添加至少一个工程参数组;所述目标总线消息包括:产生丢包的总线消息,以及,发送开始时间晚于所述第一基准总线消息的发送开始时间的总线消息;添加完成后,所述目标总线消息的最早绝对时间戳等于所述第一基准总线消息的最早绝对时间戳,并且,所述目标总线消息的每一发送周期都对应一个工程参数组。

可选的,所述时间对齐包括:从多条总线消息中选择一条总线消息作为第二基准总线消息;所述第二基准总线消息的时间轴为基准时间轴;所述基准时间轴上的时刻点包括所述第二基准总线消息所对应的各工程参数组的绝对时间戳;将其他总线消息中各工程参数组的绝对时间戳与所述基准时间轴的时刻点进行时间对齐。

可选的,所述获取目标数据记录文件包括:获取不同数据采集系统产生的原始数据记录;将各数据采集系统产生的原始数据记录的格式转化为统一的数据格式,得到目标数据记录文件。

可选的,所述数据回灌单元还用于:向所述实时激励引擎单元发送控制指令,以控制所述实时激励引擎单元执行与所述控制指令相对应的操作。

可选的,所述控制指令包括:开始回灌指令、停止回灌指令、暂停指令、设置回灌进度指令以及汇报回灌进度指令中的至少一种。

一种数据记录回灌方法,基于数据记录回灌系统,所述数据记录回灌系统包括:数据回灌单元和实时激励引擎单元,所述数据回灌单元部署于上位机中,所述实时激励引擎单元部署于运行实时操作系统的下位机中;所述方法包括:

所述数据回灌单元获取目标数据记录文件;所述目标数据记录文件用于数据回灌;

所述数据回灌单元按照各总线消息的数据定义对所述目标数据记录文件中的工程参数进行分组,得到工程参数组;其中,同一工程参数组中的工程参数的绝对时间戳相同且对应同一数据包;

所述数据回灌单元对各工程参数组进行预处理,得到预处理后的各工程参数组;

所述数据回灌单元对预处理后的各工程参数组进行封装,得到相应的二进制数据包;

所述数据回灌单元生成数据文件;所述数据文件包括:按绝对时间戳进行排序后的二进制数据包;

所述数据回灌单元将所述数据文件发送给所述实时激励引擎单元;

所述实时激励引擎单元执行独立的调度线程和发送线程;

其中,

所述调度线程用于:

在第N调度周期从所述数据文件中获取与调度起始时刻的间隔位于Nt至(N+1)t之间的二进制数据包;其中,t表示调度周期的时长;N为整数;所述调度起始时刻为零时刻,所述数据文件中最早的绝对时间戳与所述零时刻相对应;

所述发送线程用于:

将所述调度线程获取的二进制数据包逐个发送至被测设备。

可见,在本实施例中,将回灌过程分为上位机准备处理和实时激励两个环节,实时激励引擎单元只负责调度和数据发送,其他工作(分组、预处理、封装、排序等)都前置到上位机的准备阶段。

通过统一的数据排序,以及实时激励引擎单元所提供的独立调度线程,可实现对调度时序(发送时序)的统一处理,避免了传统回灌方案中几百个线程并发调度所带来的软件开销过大等性能瓶颈;

同时,实时激励引擎单元运行在实时操作系统上,实时操作系统定时分辨率小于1us,与Windows操作系统相比,更能满足数据回灌的时序控制的精度要求。

附图说明

图1为本发明实施例提供的数据记录回灌系统的示例性结构;

图2为本发明实施例提供的数据记录回灌系统的示例性硬件架构;

图3为本发明实施例提供的数据记录回灌方法一种示例性流程;

图4为本发明实施例提供的数据回灌单元的UI界面示意图。

具体实施方式

数据记录回灌用于将试验过程中存储的数据记录,在地面试验环境中重新发送给被测设备,从而复现出试验过程中的工作场景和系统状态。

数据记录回灌的核心需求是将不同总线类型的多条消息同步进行发送,并保持消息中数据包的相对时序,从而精确的复现出数据记录的工作场景。

以飞机系统地面研发试验、机上地面试验、试飞试验等场景为例,一个复杂的功能可能涉及到上百条消息,按一次试飞4个小时、数采周期50ms计算,每条消息的数据量可以达到20万条以上量级,常规的数据回灌方式无法满足性能需求。

前已述及,常见的数据回灌方案由基于Windows操作系统的桌面回灌软件完成,其特点是:

回灌软件需要根据每一总线消息的数据包各自的更新间隔进行并行调度,在需回灌消息数量较多的复杂试验场景,假定其有几百条总线消息,那可能需要启动上百条线程,软件开销会过大;

同时,Windows操作系统是非实时操作系统,基于非实时操作系统的回灌软件的定时分辨率只能达到1ms。而电子系统数据采集数据的时间戳分辨率可达到1us。对于小于1ms的发送间隔(例如500us),当前的回灌软件可能无法进行精准的时序控制,造成数据回灌时数据包的发送间隔与数据记录文件中真实的发送间隔相比存在较大的偏差。

此外,一条总线消息包括多个工程参数,对于高速总线,参数数量可以达到上千个,即使数据记录中只涉及其中一个参数,数据回灌时也需要对完整的总线消息进行数据封装,这些开销会加重多线程问题,造成最终回灌时的性能进一步下降。

有鉴于此,本发明提供数据记录回灌系统和方法,以降低软件开销,并减少数据包间发送间隔与真实发送间隔间的偏差。

数据记录回灌系统示例性的结构请参见图1,其可包括:数据回灌单元1和实时激励引擎单元2。

请参见图2,在硬件架构方面,数据回灌单元1(可作为桌面软件)部署于上位机中,实时激励引擎单元2(可作为进程)部署于运行实时操作系统的下位机中。

上述下位机具体可为HIL(hardware-in-the-loop,硬件在环)下位机。

在一个示例中,HIL下位机中可安装实时处理器和I/O板卡。实时处理器与I/O板卡间可通过PXI(PCI extensions for Instrumentation,面向仪器系统的PCI扩展)接口通信。

实时处理器可运行实时处理系统(例如;实时Linux操作系统、VxWorks、QNX等操作系统)。

上位机可通过有线或无线的方式与实时处理器(实时处理系统)通讯,例如可通过以太网通讯。

被测设备与I/O板卡或实时处理器间也具有通信连接。I/O板卡可用于模拟模拟传感器的电气层,产生具体的物理信号(例如电压),本文后续还会介绍。

请参见图3,其示出了数据记录回灌系统所执行的数据记录回灌方法一种示例性流程,包括:

S1:数据回灌单元获取用于数据回灌的目标数据记录文件。

在一个示例中,获取目标数据记录可包括如下步骤:

步骤A:获取不同数据采集系统产生的原始数据记录(例如,试飞原始数据记录)。

原始数据记录可以是地面试验环境中存储的数据记录,也可以是第三方数据采集系统存储的数据记录。

考虑下述情况:

不同供应商提供的数据采集系统输出的原始数据记录格式也存在多种形式,例如:参数文件、二进制文件、数据库、txt、csv、db等。

因此,在获取原始数据记录后,还可执行步骤B:将原始数据记录的格式转化为统一的数据格式,从而得到目标数据记录文件。

这里的统一的数据格式可为自定义数据格式(模板),如:按列定义模板,序号、时间戳、变量1、变量2…。

步骤A和步骤B可由数据回灌单元执行,在本发明其他实施例中,也可由独立的数据格式转换模块进行格式转化,格式转化完成后,再将目标数据记录文件提供给数据回灌单元。

当然,若获取的各数据采集系统的各原始数据记录本身就格式统一,则不进行格式转化。

数据回灌单元的UI(User Interface)界面如图4所示,图4中以原数据文件表示原始数据记录,图4中的“上传”指将数据文件传输至下位机,数据记录1-6表征目标数据记录文件。

上述UI界面对人机交互的支持要好于实时操作系统,可通过UI界面进行数据管理,包括对原始数据记录和目标数据记录文件的统一管理,使用者可以通过查看、删除、编辑操作等对原始数据记录和目标数据记录进行维护,也可以选择要回灌的原始数据记录进行重新处理(例如,再选择不同的原始数据记录预处理,以再重新回灌)和后续操作;

S2:数据回灌单元按照各总线消息的数据定义对目标数据记录文件中的工程参数进行分组,得到工程参数组。

现说明总线消息与数据包之间的关系。消息是一种静态描述,数据包则相当于静态描述的实例,携带有具体的工程参数值。

举例来讲,一条总线消息A被定义为发送高度和速度,发送周期是50ms,数据采集系统a每隔50ms发送总线消息A的数据包:第0ms时发送的数据包0(高度为0m,速度为100km/h),第50ms发送数据包1(高度为100m,速度为150km/h),第100ms发送数据包2(高度为500m,速度为200km/h),……。从数据采集系统a开始工作,到停止工作为止,所发送的数据包都属于同一条总线消息A。

介绍完总线消息和数据包,再转回来看目标数据记录文件。

目标数据记录文件中可能包括多个工程参数,例如高度、速度、姿态等。

假定总线消息A用于发送高度和速度,总线消息B用于发送姿态,那么,可按照各总线消息的数据定义将目标数据记录文件中的工程参数进行分组。

每一工程参数组对应一个数据包,同一工程参数组中的工程参数的绝对时间戳相同。

在一个示例中,可以ICD(Interface Contro Document,接口控制文档)中定义的总线消息为单位,对目标数据记录文件中的工程参数进行分组。

S3:数据回灌单元对各工程参数组进行封装,得到相应的二进制数据包。

具体的,可根据ICD定义的数据格式对工程参数组中的参数值进行封装(打包),得到相应的二进制数据包。

举例来讲,工程参数组A1-A100都属于同一总线消息A,可根据总线消息A的ICD所定义的数据格式,将工程参数组A1-A100分别封装,得到100个数据包。

S4:数据回灌单元生成数据文件。

其中,在一个示例中,上述数据文件可包括:按绝对时间戳进行排序后的二进制数据包。

在另一个示例中,数据文件除包括:按绝对时间戳进行排序后的二进制数据包外,还可包括各二进制数据包的相对时刻。其中,绝对时间戳相同的二进制数据包对应同一相对时刻。其中,零时刻与数据文件中最早的绝对时间戳相对应。

在回灌时,零时刻即调度起始时刻(回灌开始时刻)。

数据文件后续会发送给实时激励引擎单元,由实时激励引擎单元对数据文件中的二进制数据包进行发送。

绝对时间戳记录了试验过程中数据包的发送/接收时刻。举例来讲,数据包1-4的绝对时间戳分别为:12:24:34.000000s、12:24:34.000000s、12:24:34.002000s、12:24:34.005000s,这表明了在试验过程中,数据包1-4的发送/接收时刻分别为12:24:34.000000s、12:24:34.000000s、12:24:34.002000s、12:24:34.005000s。

数据回灌是为了复现试验过程和工况,但数据回灌的开始时间则不必从12:24:34.000000s开始。

这就需要根据绝对时间戳来计算得到相对时刻。仍以上述数据包1-4为例(这四个数据包并不一定属于同一总线消息),数据包1和2的相对时刻可为0时刻(回灌开始时刻),数据包3与数据包1的时间间隔为2ms,其相对时刻即为2ms(意味着数据包3将在距回灌开始时刻2ms的时间点发送),数据包4与数据包1的时间间隔为5ms,则相对时刻为5ms(意味着数据包4将在距回灌开始时刻5ms的时间点发送)。

S5:数据回灌单元将数据文件发送给实时激励引擎单元。

实时激励引擎单元用于执行独立的调度线程和发送线程。

S6:调度线程在第N调度周期从数据文件中获取与调度起始时刻的间隔位于Nt至(N+1)t之间的二进制数据包。

其中,t表示调度周期的时长;第零调度周期与零相对时刻相对应;N为整数。

假定t=1ms,则调度线程每隔1ms从数据文件中获取一次二进制数据包。

具体的,若上述数据文件中包含相对时刻,则调度线程可在第N调度周期从数据文件中获取相对时刻位于Nt至(N+1)t之间的二进制数据包。

假定N=0,调度线程在第0ms(第0调度周期),获取相对时刻位于[0,1)ms之间的所有二进制数据包;

假定N=1,调度线程在第1ms(第1调度周期),获取相对时刻位于[1,2)ms之间的所有二进制数据包;

……

以此类推,不作赘述。

而若数据文件中不包含相对时刻,则可由调度线程根据绝对时间戳来计算相对时刻,然后,在第N调度周期从数据文件中获取相对时刻位于Nt至(N+1)t之间的二进制数据包。

S7:发送线程将调度线程获取的二进制数据包逐个发送至被测设备。

在一个示例中,调度线程可将二进制数据包写入先进先出(FIFO)队列,而发送线程从FIFO队列中取数,通过板卡发送。

此外,发送线程也可根据获取的二进制数据包的绝对时间戳来按顺序逐个发送二进制数据包。

板卡可用于模拟总线数据发送或模拟传感器。

以模拟传感器为例,发送线程可将二进制数据包逐个发至相应的板卡,由板卡根据数据包中的数据模拟传感器的电气层,产生传感器数据,产生的传感器数据会发送至被测设备。

在现有回灌方式中,所有的处理都是桌面回灌软件执行的。与之相比,在本实施例中,将回灌过程分为上位机准备处理和实时激励两个环节,实时激励引擎单元只负责调度和数据发送,其他工作(分组、预处理、封装、排序等)都前置到上位机的准备阶段。

通过统一的数据排序,以及实时激励引擎单元所提供的独立调度线程,可实现对调度时序(发送时序)的统一处理,避免了传统回灌方案中几百个线程并发调度所带来的软件开销过大等性能瓶颈;

另外,前已述及,一条总线消息包括多个工程参数,对于高速总线,参数数量可以达到上千个,即使数据记录中只涉及其中一个参数,数据回灌时也需要对完整的总线消息进行数据封装。但由于总线消息数据包的封装由上位机执行,不由实时激励引擎单元所提供的线程执行,因此,不会对实时激励引擎单元带来开销问题,从而不会影响回灌的性能。实时激励引擎提供调度、发送两个独立线程,合理利用实时操作系统的计算资源,使调度和发送性能达到最优。

并且,实时激励引擎单元运行在实时操作系统上,实时操作系统定时分辨率小于1us,与Windows操作系统相比,更能满足数据回灌的时序控制的精度要求。

在本发明其他实施例中,上述数据回灌单元还用于执行:

向实时激励引擎单元发送控制指令,以控制实时激励引擎单元执行与所述控制指令相对应的操作。

在一个示例中,控制指令可包括:开始回灌指令、停止回灌指令、暂停指令、设置回灌进度指令以及汇报回灌进度指令中的至少一种。

上述设置回灌进度指令具体可用于回灌的起止时刻,例如,下位机获取到的数据文件的时长为1分钟,可设置回灌开始时刻(相对时刻)是30秒,回灌结束时刻为50秒。

通过控制指令,上位机中的数据回灌单元能够对实时激励引擎单元进行启停控制、暂定/开始等,能够监控引擎的状态、控制引擎回灌进度。

具体的,可通过为数据回灌单元和实时激励引擎单元之间定义一套控制和状态汇报的接口实现上述功能,接口功能包括:startReplay(开始回灌)、stopReplay(停止回灌)、pauseReplay(暂停回放)、setReplayProgess(设置回灌进度)、reportReplayProgess(汇报回灌进度)。

进一步的,上述接口可包括控制接口,用于实现“开始回灌”、“停止回灌”、“暂停”、“设置回灌进度”等。

此外,上述接口还可包括状态汇报接口,实时激励引擎单元可周期汇报回灌运行状态、回灌停止状态、暂停状态和数据回灌进度中的至少一种。

具体的,可使用标志位表征回灌运行状态,标志位取“1”表示“运行”,取“0”表示“未运行”,以此类推,不作赘述。

数据回灌进度可根据数据包个数、绝对时间戳(相对时刻)等来计算。

举例来讲,已知需要回灌的数据包总个数,将已回灌的数据包的总数除以数据包总个数,得到的百分比可作为数据回灌进度。假定总个数是1000个,已回灌500个,则数据回灌进度为50%。

再举例,已知绝对时间戳之间的最大时间间隔(最早的与最晚的绝对时间戳的差值),将当前发送的绝对时间戳与最早的绝对时间戳之间的时间间隔,除以最大时间间隔,得到的百分比可作为数据回灌进度。假定最大时间间隔是120分钟,当前发送的绝对时间戳与最早的绝对时间戳之间的时间间隔为60分钟,则数据回灌进度为50%。

采用相对时刻计算与此类似,在此不作赘述。

前述提及了对各工程参数组进行预处理,下面将介绍更详细的预处理操作。

在一个示例中,上述预处理可包括:时间规整、缺点补偿和时间对齐中的至少一种。下面分别进行介绍:

一,时间规整:

时间规整用于对应于同一总线消息中的工程参数组进行时间规整。其操作包括:

步骤a:计算同一总线消息中时间相邻的两工程参数组间的时间间隔;

步骤b:将同一总线消息中时间相邻且满足预设条件的工程参数组间的时间间隔,调整为标准时间间隔。

每一总线消息对应一个预设发送周期,预设发送周期的时长等于所述标准时间间隔(例如50ms)。

上述预设条件包括:相邻两工程参数组的时间间隔与标准时间间隔的差值不等于0且小于预设阈值,或者,该差值与标准时间间隔的比值不等于0且小于预设比值(例如1%)。

当然,若大于预设阈值或预设比值,或者,等于0,则不进行规整。

以飞机系统为例,飞机系统数据通信一般为周期特性,实际采集的时间间隔会在一个小偏差范围内抖动。例如:一条总线消息的发送周期为50ms(标准时间间隔),采集到连续若干数据包的时间间隔依次为50.013ms、49.992ms、50.021ms,则相邻工程参数组间的时间间隔依次为:50.013ms、49.992ms、50.021ms,这些时间间隔与标准时间间隔(50ms)之间的差值不等于0,但小于预设阈值(例如1ms),则可采用修改相邻两工程参数组中绝对时间戳较晚的工程参数组的时间戳,来令时间间隔均等于50ms。通过时间规整,可使回灌发送的时序更便于控制。

二,缺点补偿包括:

缺点补偿用于不同总线消息中的比较和缺点补偿,其操作包括:

步骤c:从多条总线消

息中选择发送开始时间最早的总线消息作为第一基准总线消息;

举例来讲,假定3条总线消息,其发送开始时间分别为:12:24:34.000000s、12:24:44.000000s、12:24:34.002000s,则第1条总线消息的发送开始时间最早,为第一基准总线消息。

步骤d:按照目标总线消息的发送周期添加至少一个工程参数组。

其中,目标总线消息包括:产生丢包的总线消息,以及,发送开始时间晚于第一基准总线消息的发送开始时间的总线消息。

例如,一条总线消息的发送周期为50ms,其对应的工程参数组的时间间隔经过时间规整后依次为50ms、50ms、100ms、50ms,间隔100ms表明有丢包,该条消息为目标总线消息。

需要在“间隔=100ms”的工程参数组之前补一个工程参数组。其数值与“间隔=100ms”的工程参数组取相同值即可,处理后的数据时间间隔为50ms、50mms、50ms、50ms、50ms。

再例如,消息B的发送周期为50ms,该条消息的发送开始时间是12:24:44.000000s,而第一基准总线消息的发送开始时间是12:24:34.000000s,二者发送开始时间差了10秒钟,可为消息B补足这10秒钟的工程参数组,其数值与12:24:44.000000s所对应的工程参数组取相同值即可。

这样,在添加完成后,目标总线消息的最早绝对时间戳等于第一基准总线消息的最早绝对时间戳,并且,目标总线消息的每一发送周期都对应一个工程参数组。

三,时间对齐包括:

时间对齐用于不同总线消息间的绝对时间戳调整,其操作包括:

步骤e:从多条总线消息中选择一条总线消息作为第二基准总线消息。

为方便起见,第一基准总线消息与第二基准总线消息可为同一总线消息。

第二基准总线消息的时间轴为基准时间轴,基准时间轴上的时刻点包括第二基准总线消息所对应的各工程参数组的绝对时间戳。

步骤f:将其他总线消息中各工程参数组的绝对时间戳与基准时间轴的时刻点进行时间对齐。

具体的,可将其他总线消息中,绝对时间戳与基准时间轴上任一时刻点的时间差小于预设差值的工程参数组,与该任一时刻点进行对齐。

当需要对多条消息的数据同时进行回灌时,不同消息的数据包是异步发送的,需要将时间轴对齐以便于回灌调度。

举例来讲,两条周期为50ms的总线消息,消息A时间轴上的绝对时间戳依次为12:24:34.000000s、12:24:34.050000s、12:24:34.100000s等;

另一条消息B所对应的工程参数组的绝对时间戳依次为12:24:34.00010s、12:24:34.050010s、12:24:34.100002s等。

假定消息A为第二基准总线消息,预设差值为1ms,则“12:24:34.00010s”与“12:24:34.000000s”之间的时间差小于1ms,可将“12:24:34.00010s”修改为“12:24:34.000000s”,以此类推,可将消息B中的绝对时间戳“12:24:34.050010s”修改为“12:24:34.050000s”,则回灌调度时在同一时刻进行调度,回灌发送的时序更便于控制。

综上,在本发明实施例中,数据回灌单元运行在上位机(Windows环境),用于对数据记录的加载和预处理,再将处理后的数据文件下发给实时激励引擎单元,并对实时激励引擎单元进行控制(例如数据回灌的开始和停止)。实时激励引擎单元工作在下位机(实时操作系统环境),基于数据回灌单元下发的数据文件进行并行(指每条消息都按绝对时间戳进行调度)实时激励,实现将每条总线消息都按照数据文件中的时序发送给被测设备,并汇报数据回灌的进度和状态。

其主要优点如下:

1,将回灌过程分为上位机准备处理和实时激励两个环节,实时激励引擎单元只负责调度和数据发送,其他工作(分组、预处理、封装、排序等)都前置到上位机的准备阶段,从而使调度性能达到最优;

2,对不同格式的原始数据记录先统一格式,则通过定制数据格式转换模块即可适配不同数据采集系统生成的原始数据记录;

3,实时激励引擎单元运行在实时操作系统,实时操作系统定时分辨率小于1us,与Windows操作系统相比,更能满足数据回灌的时序控制的精度要求。

4,通过统一的数据排序,以及实时激励引擎单元提供的独立调度线程,实现对调度时序的统一处理,避免了传统回灌方案中几百个线程并发调度的性能瓶颈。

本发明还要求保护一种数据记录回灌方法,基于上述的数据记录回灌系统。

请参见图3,上述方法包括:

S1:数据回灌单元获取用于数据回灌的目标数据记录文件;

具体的,可获取不同数据采集系统产生的原始数据记录;将各数据采集系统产生的原始数据记录的格式转化为统一的数据格式,得到目标数据记录文件。

具体细节请参见前述记载,在此不作赘述。

S2:数据回灌单元按照各总线消息的数据定义对目标数据记录文件中的工程参数进行分组,得到工程参数组;

S3:数据回灌单元对各工程参数组进行封装,得到相应的二进制数据包;

S4:数据回灌单元生成数据文件;

在一个示例中,数据文件包括:按绝对时间戳进行排序后的二进制数据包。

在另一个示例中,数据文件还可包括相对时刻。

相关介绍请参见本文前述记载,在此不作赘述。

S5:数据回灌单元将数据文件发送给实时激励引擎单元。

实时激励引擎单元用于执行独立的调度线程和发送线程。

S6:调度线程在第N调度周期从数据文件中获取与调度起始时刻的间隔位于Nt至(N+1)t之间的二进制数据包。

其中,t表示调度周期的时长;第零调度周期与零相对时刻相对应;N为整数。

假定t=1ms,则调度线程每隔1ms从数据文件中获取一次二进制数据包。

具体的,若上述数据文件中包含相对时刻,则调度线程可在第N调度周期从数据文件中获取相对时刻位于Nt至(N+1)t之间的二进制数据包。

假定N=0,调度线程在第0ms(第0调度周期),获取相对时刻位于[0,1)ms之间的所有二进制数据包;

假定N=1,调度线程在第1ms(第1调度周期),获取相对时刻位于[1,2)ms之间的所有二进制数据包;

……

以此类推,不作赘述。

而若数据文件中不包含相对时刻,则可由调度线程根据绝对时间戳来计算相对时刻,然后,在第N调度周期从数据文件中获取相对时刻位于Nt至(N+1)t之间的二进制数据包。

S7:发送线程将调度线程获取的二进制数据包逐个发送至被测设备。

具体细节请参见前述记载,在此不作赘述。

在本发明其他实施例中,上述方法还包括:

数据回灌单元向实时激励引擎单元发送控制指令,以控制实时激励引擎单元执行与控制指令相对应的操作。

在一个示例中,控制指令可包括:开始回灌指令、停止回灌指令、暂停指令、设置回灌进度指令以及汇报回灌进度指令中的至少一种。

在本发明其他实施例中,上述“对各工程参数组进行预处理”可具体包括:时间规整、缺点补偿和时间对齐中的至少一种。

其中,所述时间规整包括:

计算同一总线消息中时间相邻的两工程参数组间的时间间隔;将同一总线消息中时间相邻且满足预设条件的工程参数组间的时间间隔,调整为标准时间间隔;每一总线消息对应一个预设发送周期,所述预设发送周期的时长等于所述标准时间间隔;

其中,所述预设条件包括:相邻两工程参数组的时间间隔与标准时间间隔的差值不等于0且小于预设阈值,或者,所述差值与所述标准时间间隔的比值不等于0且小于预设比值。

所述缺点补偿可包括:

从多条总线消息中选择发送开始时间最早的总线消息作为第一基准总线消息;

按照所述目标总线消息的发送周期添加至少一个工程参数组;所述目标总线消息包括:产生丢包的总线消息,以及,发送开始时间晚于所述第一基准总线消息的发送开始时间的总线消息;添加完成后,所述目标总线消息的最早绝对时间戳等于所述第一基准总线消息的最早绝对时间戳,并且,所述目标总线消息的每一发送周期都对应一个工程参数组。

所述时间对齐可包括:

从多条总线消息中选择一条总线消息作为第二基准总线消息;所述第二基准总线消息的时间轴为基准时间轴;所述基准时间轴上的时刻点包括所述第二基准总线消息所对应的各工程参数组的绝对时间戳;

将其他总线消息中各工程参数组的绝对时间戳与所述基准时间轴的时刻点进行时间对齐。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及模型步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或模型的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、WD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于航天器多器间总线数据传输的通路结构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!