掌桥专利:专业的专利平台
掌桥专利
首页

一种测试系统

文献发布时间:2024-04-18 19:58:26


一种测试系统

技术领域

本发明涉及测试技术领域,具体涉及一种测试系统。

背景技术

在汽车、新能源车等车辆中,整车的电子电气架构越来越复杂,从电子控制单元(Electronic Control Unit,ECU)的数量、数据带宽、CPU和GPU的处理能力,相比于之前都有一个数量级的变化。

硬件在环测试(Hardware-in-the-Loop,HIL)能够提前对车辆中的各种域控、ECU、CPU等控制器的功能提前进行验证,以缩短控制器的开发周期。

在现有的HIL测试系统中,会利用HIL测试系统中具有数据存储、处理能力的设备(例如实时机,或称工控机,Real-time Parameter Controls,RTPC)与I/O卡执行测试任务完成对被测件的测试,通常来说,HIL系统中,不论集成了什么设备,设备间通常通过以太网实现数据共享,但以太网方式会导致数据传输高延迟、低效率等问题。基于上述技术问题,申请人提出了本申请的技术方案。

发明内容

本发明的目的是提供了一种测试系统,在HIL系统中集成了多个装置,包括实时计算装置与I/O处理装置,其中的I/O处理装置通信连接I/O单元,形成了实时计算装置与I/O单元间传递目标数据的可靠媒介,即,本发明的HIL系统中,除了集成了实时计算装置,还集成了I/O处理装置这一装置。

在此基础上,若采用现有技术中HIL测试系统的常规方案,则装置间仅能通过以太网共享数据,而本发明的系统中的多个装置间采用星型连接,即均连接至共享内存单元,各装置可以将需要共享的目标数据同步到共享内存单元的共享存储器中,各装置也可以从共享存储器中读取所需的目标数据,由此实现了多个装置被对同一个物理存储器数据的读写操作,可见,装置间通过对共享存储器的读写操作实现数据共享,基于本发明的硬件架构,可以为装置间(例如实时计算装置与I/O处理装置之间,再例如实时计算装置之间,甚至其他装置与实时计算装置、I/O处理装置之间)的目标数据共享提供区别于以太网的可靠途径,且该过程摒弃了以太网方式下的种种缺陷,其中,与以太网方式下装置间低效、高延迟的数据共享方式相比,本发明中读写存储器的方式相对比较高效,可保障HIL测试过程中装置间目标数据共享的低延迟、高效性。

为实现上述目的,本发明提供了一种测试系统为HIL系统,包括:至少一个I/O单元、多个装置与共享内存单元,所述共享内存单元包括:通信连接的共享存储器与内存操作单元,各所述装置直接或间接连接到所述内存操作单元;所述多个装置包括至少一个实时计算装置与至少一个I/O处理装置,所述I/O处理装置连接到至少一个所述I/O单元;各所述装置之间通过所述内存操作单元对所述共享存储器的操作而传输目标数据,所述目标数据包括HIL测试过程中需在所述实时计算装置与所述I/O处理装置之间传递的数据,所述I/O单元直接或间接连接到被测件;所述装置用于获取用于对所述共享存储器进行操作的操作指令,并将所述操作指令发送到所述内存操作单元;所述内存操作单元用于从所述装置接收所述操作指令,并执行所述操作指令与所述共享存储器交互所述操作指令对应的所述目标数据。

在一个实施例中,所述装置用于按照获取到所述操作指令的顺序,将所述操作指令依次发送到所述内存操作单元。

在一个实施例中,所述内存操作单元用于按照接收到所述操作指令的顺序,依次执行接收到的所述操作指令。

在一个实施例中,所述装置用于根据获取的各所述操作指令的时间戳,按照时间顺序将各所述操作指令依次发送到所述内存操作单元;或者,所述装置用于将获取的每个所述操作指令依次加入第一队列中,并按照各所述操作指令在所述第一队列中的顺序各将所述操作指令依次发送到所述内存操作单元。

在一个实施例中,所述内存操作单元用于根据接收到的各所述操作指令的时间戳,按照时间顺序依次执行各所述操作指令;或者,所述内存操作单元用于将接收到的每个所述操作指令依次加入第二队列中,并按照各所述操作指令在所述第二队列中的顺序依次执行各所述操作指令。

在一个实施例中,所述多个装置中任意第一装置用于在获取到需要共享到所述多个装置中至少一个第二装置的指定目标数据时,生成用于写入所述指定目标数据的目标操作指令,并将所述目标操作指令发送到所述内存操作单元;所述内存操作单元用于在接收所述目标操作指令后,执行所述目标操作指令以将所述指定目标数据写入到所述共享存储器;所述第二装置用于通过所述内存操作单元从所述共享存储器中读取所述指定目标数据。

在一个实施例中,所述第二装置用于按照设定的周期,定期通过所述内存操作单元从所述共享存储器中读取所需的至少部分所述目标数据,以在所述指定目标数据已被写入所述共享存储器后读取出所述指定目标数据。

在一个实施例中,所述第二装置用于在需要所述指定目标数据用于进行HIL测试时,通过所述内存操作单元从所述共享存储器中读取所述指定目标数据。

在一个实施例中,所述第一装置还用于通过所述内存操作单元从所述共享存储器中读取所述指定目标数据,以确定所述目标操作指令是否执行成功,并在确定所述目标操作指令执行失败时,再次将所述目标操作指令发送到所述内存操作单元。

在一个实施例中,所述测试系统还包括集群服务器,或者:所述多个装置中至少一个装置用于作为所述集群服务器,所述集群服务器用于确定目标测试任务下的数据传输关系,所述数据传输关系用于确定出:执行所述目标测试任务时,互相直接或间接共享所述目标数据的所述实时计算装置与I/O单元;在所述HIL系统执行所述目标测试任务时,所述目标数据是基于所述数据传输关系而在所述实时计算装置、所述I/O处理装置、所述I/O单元之间传输的。

附图说明

图1是根据本发明第一实施例中的测试系统的示意图;

图2是根据本发明第一实施例中的测试系统为HIL系统的示意图;

图3是根据本发明第一实施例中的测试系统为HIL系统的示意图,控制模块的数量为多个,每个控制模块与对应的I/O单元采用级联的方式连接;

图4是根据本发明第一实施例中的测试系统为HIL系统的示意图,控制模块的数量为多个,每个控制模块分别与对应的各I/O单元直接连接;;

图5是根据本发明第二实施例的两个工控机与两个控制模块需要向共享存储器中写入目标数据的过程中进行二级仲裁的过程示意图;

图6是根据本发明第二实施例中的控制模块需要向一个工控机共享目标数据A的过程示意图;

图7是根据本发明第二实施例中的工控机需要向一个控制模块所连接的I/O单元共享目标数据B的过程示意图。

具体实施方式

以下将结合附图对本发明的各实施例进行详细说明,以便更清楚理解本发明的目的、特点和优点。应理解的是,附图所示的实施例并不是对本发明范围的限制,而只是为了说明本发明技术方案的实质精神。

在下文的描述中,出于说明各种公开的实施例的目的阐述了某些具体细节以提供对各种公开实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。

除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。

在整个说明书中对“一个实施例”或“一实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一实施例”中的出现无需全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。

如该说明书和所附权利要求中所用的单数形式“一”和“所述”包括复数指代物,除非文中清楚地另外规定。应当指出的是术语“或”通常以其包括“或/和”的含义使用,除非文中清楚地另外规定。

在以下描述中,为了清楚展示本发明的结构及工作方式,将借助诸多方向性词语进行描述,但是应当将“前”、“后”、“左”、“右”、“外”、“内”、“向外”、“向内”、“上”、“下”等词语理解为方便用语,而不应当理解为限定性词语。

本发明第一实施方式涉及一种测试系统,请参考图1,该系统包括:多个装置1与共享内存单元2,共享内存单元2包括:相互连接的共享存储器21与内存操作单元22,各装置1直接或间接连接到内存操作单元22,图1中以各装置1直接连接到内存操作单元22为例;其中共享存储器21可以为单个DDR存储器或者包括多个DDR存储器的存储池,部分或全部DDR存储器可设于一个机柜中,DDR存储器也可以是跨机柜的,例如分布于不同机柜。

所述多个装置1包括至少一个实时计算装置与至少一个I/O处理装置,所述I/O处理装置连接到一个或多个I/O单元,I/O单元直接或间接连接到被测件;各所述装置1之间通过所述内存操作单元22对所述共享存储器21的操作而传输目标数据,所述目标数据包括HIL测试过程中需在所述实时计算装置与所述I/O处理装置之间传递的数据。其中的装置可以是电路,也可以是包含该电路的电路板,还可以是包含该电路板及用于装载电路板的壳体(或支架)的构造。

本实施例中,多个装置1均连接到共享内存单元2,由此通过共享内存单元2将多个装置1之间进行星型连接,即将实时计算装置与I/O处理装置之间进行星型连接。

装置1用于获取用于对共享存储器21进行操作的操作指令,并将操作指令发送到内存操作单元22。其中,装置1在需要向指定装置共享目标数据或者需要读取来源于指定装置的目标数据时,生成操作指令,并发送到内存操作单元22;即操作指令可以包含需要向多个装置1中的一个或多个指定装置共享的目标数据的操作指令,或者从共享存储器21中读取来源于指定装置的目标数据的操作指令。

内存操作单元22用于从装置1接收操作指令。

内存操作单元22还用于执行操作指令与共享存储器21交互操作指令对应的目标数据。

内存操作单元22用于在从多个装置1中的目标装置接收到用于对共享存储器21进行操作的操作指令时,执行接收到的操作指令,用于与共享存储器21交互操作指令对应的目标数据;即内存操作单元22用于在自所述多个装置1中任一装置1接收到用于对共享存储器21进行操作的操作指令,执行接收到的操作指令,以将至少部分目标数据写入共享存储器21;或者,自共享存储器21读取出至少部分目标数据,并将读取出的目标数据反馈至发送该操作指令的装置1。

具体的,内存操作单元22接收来源于多个装置1中任意一个装置(记作目标装置)的操作指令,操作指令用于向共享存储器21写入目标数据或者读取共享存储器21中至少部分已有的目标数据,内存操作单元22执行目标装置发送的操作指令,若该操作指令用于向共享存储器21写入目标数据,则该操作指令中包含所需写入的目标数据,内存操作单元22执行该操作指令,将操作指令中包含的目标数据写入到共享存储器21中;若该操作指令用于读取共享存储器21中的至少部分已有的目标数据,则该操作指令中包含了所需读取的目标数据的标识信息,标识信息表征了该目标数据所源自的装置1,内存操作单元22执行该操作指令,读取与操作指令中的标识信息对应的目标数据,并将读取的目标数据反馈到发送该操作指令的目标装置;或者,该操作指令中包含了所需读取的目标数据位于共享存储器21中的位置信息(例如为地址范围),内存操作单元22执行该操作指令,读取共享存储器21中该操作指令的位置信息指示的目标数据,并将读取的目标数据反馈到发送该操作指令的目标装置。

在一个例子中,各装置1通过PCIe总线连接到共享内存单元2,即共享内存单元2通过PCIe连接器连接到各装置1上,由此各装置1可以将需要共享的目标数据映射为共享存储器21中的一段地址,各装置1可以通过访问本地内存数据的方式从共享存储器21中读取数据,由此实现了各装置1对同一个存储器数据的读写访问,实现了多个装置1之间的目标数据的共享。

其中,共享内存单元2用作标准PCIe设备,其能够将来多个装置中的目标装置的操作指令转换为高速串行信号,并通过高速串行总线将表征该操作指令的高速串行信号传输至内存操作单元22,由内存操作单元22执行该操作指令对共享存储器21进行目标数据的读写操作。

一种实施例中,内存操作单元22可采用FPGA实现。

一种实施例中,内存操作单元22也可以采用内存扩展控制器MXC来实现,内存扩展控制器MXC为一种支持Compute Express Link(CXL)协议的内存控制器,内存扩展控制器MXC支持且符合DDR4和DDR5的JEDEC标准,其符合CXL2.0、CXL3.0的规范,且支持PCIE5.0的传输速度。内存扩展控制器MXC能够实现各装置1与CXL设备之间高带宽、低延迟的通信互联,允许各装置1通过共享内存实现更高的数据共享性能。其中,在使用内存扩展控制器MXC来实现内存操作单元22时,可以基于本实施例中的多个装置1之间星型连接的数据共享方式对内存扩展控制器MXC进行定制化的功能与参数调整,以更好进行数据共享。

具体的,内存操作单元22包括CXL子模块与内存连接子模块,CXL子模块中设置了相互连接的MXC控制器与CXL控制器;内存连接子模块中设置了内存DDR4/5内存控制器、DDR4/5插槽;CXL控制器通过PCIE接口连接到工控机31与控制模块4;CXL控制器还通过内存连接子模块连接到共享存储器21;需要说明的是,内存操作单元22还包括:GPIO接口、JTAG接口、时钟/复位接口、SPI接口等外围电路,在此不再一一赘述。

在一个例子中,上述的系统为HIL系统,请参考图2,HIL系统包括:上述的共享内存单元2、工控机池3、至少一个控制模块4以及I/O池5。

工控机池3可以包括至少一个工控机31,I/O池5可以包括至少一个I/O单元51,各工控机31、I/O单元51可以设置在不同的机柜中,也可以设置在同一机柜中。具体的,工控机池3中工控机31的数量可以是固定的,也可以是可扩展的,工控机池3中的工控机31可设于同一机柜,也可设于不同机柜,I/O池5中I/O单元51的数量可以是固定的,也可以是可扩展的,I/O池5中的I/O单元51可设于同一机柜,也可以设置在不同的机柜中。

其中,工控机即为一种形式的实时计算装置,可以为板卡设于工控机柜,或者是一个单独的设备;控制模块即为一种形式的I/O处理装置。

一种举例中,工控机池3中包括可配置数量的至少一个工控机31(图中以工控机池3中设置了4个工控机31为例),即工控机池3中的工控机31的数量是可扩展的,其数量可以根据需求来配置的。其中,工控机池3中的工控机31之间相互通信连接,例如,除了利用共享内存单元实现数据共享之外,还可通过以太网通信连接在一起,以传递目标数据之外的其他数据。

一种举例中,I/O池5中包括可配置数量的至少一个I/O单元51(图中以I/O池5中设置了3个I/O单元51为例),即I/O池5中的I/O单元51的数量是可扩展的,其数量可以根据需求来配置的。其中,I/O池5中的I/O单元51之间相互通信连接。

控制模块4与工控机池3中的工控机31之间通信连接,控制模块4还分别与I/O池5中的各I/O单元51通信连接。其中,控制模块4可以为包括I/O控制器的计算机。

控制模块4与各I/O单元51连接为同一EtherCAT网络,其中,I/O单元51与控制模块4以级联的方式连接,并基于EtherCAT进行通信,采用EtherCAT基本能满足低延时的需求。此外,I/O单元也可插接到控制模块,例如通过控制模块的数据总线(例如PCIe总线)等连接至控制模块。

其中的工控机31,可理解为HIL系统中的实时仿真机RTPC的部分或全部。工控机31与控制模块4可以分别是不同的计算机,也可以是不同的电路板、电路等。

其中的I/O单元51,可理解为输入/输出单元。

具体的可理解为:I/O单元51满足以下至少之一:

能够相对于被测件6实现数据的输入;

能够相对于被测件6实现数据的输出;

能够相对于工控机31实现数据的输入;

能够相对于工控机31实现数据的输出;

其中,I/O单元51相对于被测件6所输入和/或输出的数据A,与I/O单元51相对于工控机所输入和/或输出的数据B,可以是相关的,也可以是无关的。

具体的,数据A与数据B可以是相同内容的不同形式的数据,例如自工控机31接收某内容的数字信号,发给被测件6的是同一内容的模拟信号,或者反过来,再例如,自工控机31接收注入故障前的信号,发给被测件6的是I/O单元51注入故障后的信号;

数据A与数据B也可以是相同内容相同形式的数据;

数据A与数据B还可以是不同内容的数据,例如数据A与与数据B分别为触发I/O单元51产生某Sign1信号的触发信号与该Sign1信号,再例如,I/O单元51需要自工控机31获取某条件信号才能仿真出需要发送给被测件6的Sing2信号,此时条件信号与Sign2信号分别为数据A与数据B;

I/O单元51可以指电路,也可以指电路板,还可以指含电路板及其他装配件的装置。

一种举例中,其中的I/O单元51既可经控制模块与工控机交互,也可直接或经交换矩阵与被测件(例如车辆的控制器)交互。

I/O单元51可以仅实现输入和/或输出功能,部分示例中,也可在输入和/或输出过程中对所传输的信号进行处理,例如做信号转换、故障模拟、信息仿真、信号生成、通断控制等。可见,不论是否还集成了其他功能,均可作为I/O单元51的一种实现方式。

其中的I/O单元51可以是I/O板卡,例如可以是支持以下至少之一功能的板卡:数字信号输入,模拟信号输入,数字信号输出,模拟信号输出,PWM信号输入,PWM信号输出,高边功率输出和低边功率输出。其中可进一步实现高速信号的采集和输出,此外,可根据需求实现板卡资源的灵活配置,该技术带来的板卡精度和采样频率指标都达到了行业领先水平。

其中的I/O板卡例如以下至少之一所示:AD PWM-IN板卡、DAC板卡、FIU板卡、PWM-OUT板卡、RELAY-IO板卡、RC板卡、PSI5&DSI3&SENT板卡、多总线板卡(Flexray/CANFD/LIN)、Eth(车载以大网)板卡等;

其中的I/O板卡还可例如以下至少之一专用板卡:电流输出板卡、热电偶板卡、电池模拟器、温度模拟器、电机板卡、IO_HUB板卡。

在一个例子中,HIL系统还可包括集群服务器,或者:所述多个装置中至少一个装置(例如其中的一个实时计算装置)用于作为所述集群服务器,所述集群服务器用于确定各测试任务下的数据传输关系,例如目标测试任务下的数据传输关系,所述数据传输关系用于确定出:执行相应测试任务时,互相直接或间接共享所述目标数据的所述实时计算装置与I/O单元。

在所述HIL系统执行所述目标测试任务时,所述目标数据是基于所述数据传输关系而在所述实时计算装置、所述I/O处理装置、所述I/O单元之间传输的。

在HIL系统中,由HIL系统中的集群服务器针对当前测试任务,确定至少部分I/O单元51与至少部分工控机31之间的数据传输关系。其中,集群服务器可以连接到各工控机31的一个计算机,或者任一工控机31被配置为集群服务器。

其中的数据传输关系可理解为:用于确定出在执行相应测试任务时,需要直接或间接互相共享数据的工控机31与I/O单元51,进一步的,至少可表示出:一个或多个工控机31(即至少部分工控机31)与一个或多个I/O单元51(即至少部分I/O单元51)之间允许传输数据的一种关系,即用于划定出允许传输数据的工控机31、I/O单元51。

一种举例中,数据传输关系可进一步确定其中工控机31传输而来的数据该同步至哪个工控机31,工控机31传输而来的数据该同步至哪个I/O单元51,即详细定义出工控机31与I/O单元51间的映射关系,再进一步的,数据传输关系可细致定义出工控机31中端口与I/O单元51的端口、通道间的映射关系;其中的端口可以指硬件端口,也可以指软件端口、地址等(例如工控机中运行的某模型的某个输出端口、输入端口);进而,在描述出映射关系的情况下,也即能够表示出允许传输数据的工控机31、I/O单元51。

另一举例中,数据传输关系主要用于划定允许传输数据的工控机31、I/O单元51的范围,至于每次传输数据时其中的工控机要传输至哪个I/O单元51、被测件或端口(I/O单元51或被测件6的端口),I/O单元51传输而来的数据要传输至哪个工控机31或工控机31的哪个端口,可由其他手段决定。

此外,若控制模块4为多个,不同控制模块4连接不同I/O单元51,则一种举例中,数据传输关系可理解为:至少用于在工控机31及控制模块4所连接的I/O单元51中,划定出允许传输数据的工控机31、I/O单元51的范围。

针对不同任务,可确定出不同的数据传输关系,不同任务可同时执行,也可先后执行。

集群服务器在确定至少部分I/O单元51与至少部分工控机31之间的数据传输关系后,基于该数据传输关系有多种方式完成I/O单元51与工控机31之间的数据传输,以集群服务器确定出了K个工控机31与L个I/O单元51之间的数据传输关系为例。

在一个例子中,集群服务器将该数据传输关系分别发送到K个工控机31,由此工控机31基于该数据传输关系,在需要获取目标数据时,可以知道去哪个I/O单元51的哪个I/O通道获取目标数据;在需要向被测件发送目标数据时,可以知道将目标数据发送到哪个I/O单元51的哪个I/O通道;而控制模块4与I/O单元51之间的连接关系是固定的,由此工控机31可以知道从哪个控制模块4获取所需的目标数据,也可以知道将目标数据发送到哪个控制模块4。具体的:各工控机31在需要向被测件发送下发信息时,基于该数据传输关系,指定用于接收各下发信息的I/O单元51,然后由控制模块4将各下发信息经过指定的I/O单元51发送到被测件。另外,被测件在需要向工控机31发送上报信息时,控制模块4通过L个I/O单元51接收上报信息,I/O单元51可以标记发送各上报信息的I/O单元51,由此各工控机31基于上述的数据传输关系接收来源于指定的I/O单元51的上报信息。

假设需要在一个工控机31和一个控制模块4所连接的I/O单元51之间进行数据传输,将工控机31记作A装置、控制模块4记作B装置。

例如,每个装置(包括上述的工控机31与控制模块4)的存储器中预设好每个装置的地址空间,A装置要把需要共享的目标数据传输给B装置时,可以将目标数据写到B装置的存储器中对应的地址空间,B装置可以定期从存储器中自己对应的地址空间获取数据,此时,若B装置要将获取的数据分发给I/O单元51,一种方案下,A装置可以在共享的目标数据中写入I/O单元51(或其I/O通道)的标识,B装置根据这个获取(或其I/O通道)的数据中所包含的标识进行分配;另一种方案下,B装置的不同I/O单元51可对应分配不同的地址子空间,A装置可以在共享目标数据时指示将目标数据写到相应的地址子空间,B装置只需从地址子空间读取出来就给到相应的I/O单元51。

A装置从B装置获取目标数据时,也可以基于数据传输关系,直接从B装置的相应地址空间或地址子空间拿数据,然后根据数据传输关系给到相应模型的相应端口;其中所说的模型可以指运行在A装置中的测试仿真模型。或者,

A装置从B装置获取目标数据时,还可以由B装置将目标数据写到A装置的相应地址空间,A装置可以定期从存储器中自己对应的地址空间拿到目标数据,此时,如果要将目标数据给到相应的模型及其端口;一种方案下,B装置可以在共享的目标数据中写入I/O单元51(或其I/O通道)的标识,A装置根据这个标识,以及数据传输关系知道I/O单元51(或其I/O通道)来的数据该给到哪个模型的哪个端口。

在另一个例子中,集群服务器将该数据传输关系分别发送到L个I/O单元51所连接的一个或多个控制模块4,各工控机31在需要向被测件发送下发信息时,直接将下发信息发送到控制模块4,由控制模块4基于该数据传输关系,将各下发信息经过指定的工控机31发送到被测件。同理,被测件在需要向工控机31发送上报信息时,控制模块4通过L个I/O单元51接收上报信息,控制模块4基于上述的数据传输关系,将来源于各I/O单元51的上报信息发送到指定的工控机31。

例如在执行某个测试任务的过程中,K个工控机31与L个I/O单元51用于对被测件6进行测试,L个I/O单元51连接到被测件6;数据传输关系限定了工控机31与I/O单元51之间的目标数据的流向,即源自被测件6或I/O单元51的需发送至工控机31的上报信息传输到I/O单元51后,各I/O单元51将上报信息发送到控制模块4,该数据传输关系决定了控制模块将源自各I/O单元的上报信息所需发送到的工控机31(或其端口);以及目标工控机产生的需发送至被测件6或I/O单元51的下发信息传输到控制模块后,该数据传输关系决定了控制模块将源自于各工控机31的下发信息发送到被测件6或I/O单元51,其中,被测件6可以通过不同的引脚接收不同信息。其中,工控机31在向控制模块4传输下发信息时,可以在下发信息中加入自身的身份标识或者接收该数据的I/O单元51的身份标识;I/O单元51在向控制模块4传输上报信息时,可以在上报信息中加入自身的身份标识或者接收该上报信息的工控机31的身份标识;由此控制模块4基于信息中所携带的标识与数据传输关系在工控机31与I/O单元51之间进行数据转发。

可见,利用控制模块4可实现工控机31与I/O单元51之间交互路径的可选择。

其中所涉及的端口可以指硬件端口,也可以指软件端口、端口地址等(例如工控机中运行的某模型的某个输出端口、输入端口)。

控制模块4可自集群服务器获取部分或全部数据传输关系,亦或用于确定数据传输关系的其他信息,该过程例如可经以太网获取。其中的集群服务器连接到各工控机31,用于向各工控机31传输测试相关的数据,以及配置控制模块4的数据传输关系。

此外,在同一时间,单个控制模块4所连接的I/O单元51,可能都用于同一测试任务,也可能部分用于一个测试任务,另部分用于其他测试任务,控制模块4可以分别或一并获取所需的数据传输关系。

此外,被测件与I/O单元之间也可设有其他转接电路、接口等等,例如DB9接口、EDAC接口、BOB模块等等。

需要说明的是,图2中以控制模块4的数量为一个举例,然不限于此,控制模块4的数量也可以为多个,每个控制模块4对应一个或多个I/O单元51,每个I/O单元51仅对应一个控制模块4,各控制模块4连接于对应的I/O单元51;针对当前测试任务,每个控制模块4可确定出与自身所对应的数据传输关系,以任意一个控制模块4为例,该控制模块4所确定的数据传输关系限定了至少部分工控机31与所有的目标I/O单元之间的数据传输关系,目标I/O单元为与该控制模块4所对应的I/O单元,即控制模块4确定了各目标I/O单元传输而来的数据该同步至哪个工控机31,工控机31传输而来的数据该同步至哪个目标I/O单元。其中,每个控制模块4与对应的I/O单元51可以采用级联的方式连接,如图3所示,以控制模块4的数量为2个、每个控制模块4对应于3个I/O单元51为例;或者每个控制模块4分别与对应的各I/O单元51直接连接,如图4所示,以控制模块4的数量为2个、每个控制模块4对应于多个I/O单元51为例。

本实施例中,各I/O单元51直接或间接连接到被测件6,被测件6的数量可以为一个或多个。在图2至图4中,以I/O单元51与被测件6直接连接为例,即被测件6通过连接器直接连接到各I/O单元51的端口上,实现信号的传输;不同I/O单元51可以连接到被测件6不同的引脚上,以传输不同的信息。在另一个例子中,还可以在HIL系统中设置交换矩阵,交换矩阵连接在I/O单元51与被测件6之间,即各I/O单元51通过交换矩阵间接连接到对应的被测件6。

从中可见,为了实现工控机、I/O单元、被测件间相对应的通信,实现目标数据的传输,在设有交换矩阵的情况下,既要对交换矩阵进行配置,也要对控制模块的数据传输关系进行配置。进而在工控机与被测件间实现测试所需的数据传输,例如工控机中仿真模型的端口与被测件的端口之间的数据传输。该方式下,被测件接入时的连接方式更灵活自由,只需要根据实际接入情况配置交换矩阵,例如在配置好控制模块4后,若未设置交换矩阵,则需要根据配置结果找到被测件该接入到哪些I/O单元,如何连接,在设置交换矩阵的情况下,则可更自由地将被测件接入到交换矩阵,然后只需对交换矩阵进行配置即可达成测试所需的数据传输。

多个装置1包括:HIL系统中的工控机31与控制模块4,即各工控机31与控制模块4均连接到共享内存单元2的内存操作单元22,由此通过共享内存单元2将各工控机31与控制模块4之间进行星型连接。

在HIL系统的测试过程中,内存操作单元22接收来源于工控机31与控制模块4中任一目标装置的操作指令,操作指令用于向共享存储器21写入至少部分目标数据或者读取共享存储器21中的至少部分目标数据,内存操作单元22执行目标装置发送的操作指令,若该操作指令用于向共享存储器21写入至少部分目标数据,则该操作指令中包含所需写入的目标数据,内存操作单元22执行该操作指令,将操作指令中包含的目标数据写入到共享存储器21;若该操作指令用于读取共享存储器21中的至少部分目标数据,则该操作指令中包含所需读取的目标数据的标识信息,标识信息表征了该目标数据所源自的工控机31或I/O单元51,内存操作单元22执行该操作指令,读取与操作指令中的标识信息对应的目标数据,并将该目标数据反馈到发送该操作指令的目标装置。

基于上述过程,能够将各工控机31产生的目标数据同步到控制模块4,以及将控制模块4接收到的来源于被测件4的目标数据同步到各工控机31。

其中,目标数据包括工控机31产生的需发送至被测件6的下发信息,和/或:需经控制模块发送至工控机31的上报信息。(例如可以是源自被测件的,其中的源自表示上报信息的内容关联于或决定于被测件发出的信号)。

目标数据进一步还可包括需在工控机之间共享或在控制模块之间共享的数据。

I/O单元51与工控机31之间所传输的目标数据是基于内存操作单元22对共享存储器21的操作结果实现的,即工控机31在产生需发送至被测件6的下发信息后,向内存操作单元22发送用于写入该下发信息的操作指令,内存操作单元22执行该操作指令,将下发信息写入到共享存储器21,后续控制模块4通过向内存操作单元22发送用于读取该下发信息的操作指令,从目标存储器21中读取该下发信息,并通过I/O单元51发送到被测件6。类似的,控制模块4通过I/O单元51接收到被测件6发送的上报信息后,向内存操作单元22发送用于写入该上报信息的操作指令,内存操作单元22执行该操作指令,将上报信息写入到共享存储器21,后续工控机31通过向内存操作单元22发送用于读取该上报信息的操作指令,从目标存储器21中读取该上报信息。

本实施例中,系统中的多个装置之间采用星型连接,各装置可以将需要共享的目标数据同步到共享内存单元的共享存储器中,各装置也可以从共享存储器中读取所需的目标数据,由此实现了多个装置被对同一个物理存储器数据的读写操作,能够保证多个装置之间数据一致性,具有共享效率高、准确性好以及延迟低的优点。

本发明的第二实施例涉及一种测试系统,本实施例相对于第一实施例来说,主要区别之处在于:本实施例中增加了操作指令的两级仲裁。

一级仲裁:装置1用于按照获取到操作指令的顺序,将操作指令依次发送到内存操作单元22。即每个装置1在需要向内存操作单元22发送操作指令时,在当前所有待发送的操作指令中选择最先获取到的操作指令发送到内存操作单元22。其中,每个装置1可以在接收到当前被发送到内存操作单元22的操作指令被执行的执行结果后再向内存操作单元22发出下一个操作指令。

在一个例子中,装置1可以根据获取的各操作指令的时间戳,按照时间顺序将各操作指令依次发送到内存操作单元22。即每个装置1在生成操作指令时,在操作指令中加入该操作指令被生成时的时间戳,由此各装置1可以通过对比当前所有待发送的操作指令的时间戳,选取时间戳最小的操作指令发送到内存操作单元22。

在又一个例子中,装置1用于将获取的每个操作指令依次加入第一队列中,并按照各操作指令在第一队列中的顺序各将操作指令依次发送到内存操作单元22。即每个装置1中均设置有用于放入操作指令的第一队列,各装置1在生成一个操作指令时,将该操作指令放入第一队列的队末,各装置1在向内存操作单元22发送操作指令时,将第一队列中第一个操作指令发送到内存操作单元22。

二级仲裁:内存操作单元22用于按照接收到操作指令的顺序,依次执行接收到的操作指令。即内存操作单元22执行操作指令时,在当前所有待执行的操作指令中选择最先获取到的操作指令进行执行。

在一个例子中,内存操作单元22用于根据接收到的各操作指令的时间戳,按照时间顺序依次执行各操作指令。即内存操作单元22需要执行操作指令时,对比对比当前所有待执行的操作指令的时间戳,选取出时间戳最小的操作指令进行执行。

在又一个例子中,内存操作单元22用于将接收到的每个操作指令依次加入第二队列中,并按照各操作指令在第二队列中的顺序依次执行各操作指令。即内存操作单元22中设置有用于放入操作指令的第二队列,内存操作单元22在接收到每个操作指令时,将该操作指令放入第二队列的队末,内存操作单元22需要执行操作指令时,选取第二队列中第一个操作指令进行执行。

另外,内存操作单元22还可以按照设定的规则(例如先读取后写入、或者先写入后读取等)来设置操作指令的执行顺序。

请参考图5,以HIL测试系统中,两个工控机与两个控制模块需要向共享存储器中写入目标数据为例,对上述二级仲裁进行说明。

两个工控机针对需要共享的目标数据,生成相应的操作指令,随后进行第一级仲裁,仲裁出最先生成的操作指令,并将仲裁出的操作指令传递到内存操作单元;类似的,两个控制模块针对需要共享的目标数据,生成相应的操作指令,随后进行第一级仲裁,仲裁出最先生成的操作指令,并将仲裁出的操作指令传递到内存操作单元。

内存操作单元接收两个工控机、两个控制模块所发送来的操作指令,针对所有待执行的操作指令进行第二级仲裁,仲裁出需要最先执行的操作指令,并执行;在当前操作指令执行完毕后,再次进行第二级仲裁,再次执行仲裁出的操作指令,重复上述过程,直至所有的操作指令均执行完毕。

本实施例中,在各装置向内存操作单元发送操作指令时加入了第一级仲裁,各装置会向内存操作单元发送最先获取到的操作指令,即各装置向内存操作单元发送的操作指令均为当前待处理的操作指令;随后在内存操作单元执行操作指令时加入了第二级仲裁,内存操作单元再按照接收到操作指令的顺序,选取出最先获取的操作指令进行执行;即避免所有的操作指令均由内存操作单元仲裁后再依次执行,通过二级仲裁减轻了内存操作单元的工作负担,有助于提升内存操作单元的工作效率,提升测试系统整体的测试效率。

本实施例中,以多个装置1中的任意一个装置1(记作第一装置)为例,第一装置在需要向多个装置1中至少一个第二装置共享指定目标数据时,即第一装置获取到需要共享到多个装置中至少一个第二装置的指定目标数据时,先生成用于写入指定目标数据的目标操作指令,并将目标操作指令发送到内存操作单元22。其中,第一装置可以为工控机31或者控制模块4,第一装置需要共享指定目标数据的第二装置也可以工控机31或控制模块4,第二装置数量也可以是一个或多个。

内存操作单元22用于在接收目标操作指令后,执行目标操作指令以将指定目标数据写入到共享存储器21。

所述第二装置用于通过所述内存操作单元22从所述共享存储器21中读取所述指定目标数据。比如,所述第二装置用于按照设定的周期,定期通过所述内存操作单元22从所述共享存储器21中读取所需的至少部分所述指定目标数据,以在所述指定目标数据已被写入所述共享存储器后读取出所述指定目标数据;例如共享存储器21中划定了每个装置1所对应的存储地址范围,各装置1周期性读取共享存储器21中所对应的存储地址范围内的数据,由此各装置1均能通过内存操作单元22从共享存储器21中读取到其他装置1所共享的目标数据。

又比如,所述第二装置用于在需要至少部分所述指定目标数据用于进行HIL测试时,通过所述内存操作单元22从所述共享存储器21中读取所述至少部分所述指定目标数据;例如,第二装置在测试过程中用于运行测试仿真模型,其在运行测试仿真模型的过程中需要用到至少部分所述指定目标数据,通过内存操作单元22从共享存储器21中读取出所需的指定目标数据。

本实施例中,所述装置1还用于通过所述内存操作单元21从所述共享存储器22中读取所述指定目标数据,以确定所述目标操作指令是否执行成功,并在确定所述目标操作指令执行失败时,再次将所述目标操作指令发送到所述内存操作单元21,具体为:将目标操作指令重新加入仲裁,以再次发送至内存操作单元21,直至该目标操作指令被执行成功。

在另一个例子中,内存操作单元22在执行目标操作指令后,向发送目标操作指令的第一装置反馈目标操作指令的执行结果。

第一装置用于在接收到目标操作指令的执行结果,且指定目标数据被写入完成时,通过内存操作单元22将指定目标数据发送至第二装置。

其中第一装置通过内存操作单元22将指定目标数据发送至第二装置包括以下两种方式:

方式一,第一装置用于生成用于向第二装置共享指定目标数据的触发事件并发送至内存操作单元22。

内存操作单元22用于响应于触发事件,生成指示读取指定目标数据的中断指令,并将中断指令发送至第二装置。

第二装置用于响应于中断指令,生成用于读取指定目标数据的读取请求反馈至内存操作单元22。

内存操作单元22还用于基于读取请求,从共享存储器21中读取指定目标数据并发送至第二装置。

请参考图6,以控制模块需要向一个工控机共享目标数据A为例,结合上述二级仲裁的相关内容对控制模块与工控机之间共享目标数据A的过程进行说明。

控制模块接收由其所连接的I/O单元传递的需要共享到工控机的目标数据A,控制模块生成相应的目标操作指令A,即用于向共享存储器21写入目标数据A的目标操作指令A;随后进行第一级仲裁,仲裁出最先生成的操作指令,并将仲裁出的操作指令传递到内存操作单元,直至目标操作指令A被冲裁出后传递到内存操作单元。

内存操作单元针对所有待执行的操作指令进行第二级仲裁,仲裁出需要最先执行的操作指令,并在执行后将该操作指令的执行结果反馈给发送该操作指令的装置,直至仲裁出目标操作指令A并执行,将目标数据A写入共享存储器,随后向控制模块反馈目标操作指令A的执行结果,执行结果可以是目标操作指令A执行成功或者失败。

控制模块在接收到目标操作指令A的执行结果后,若该执行结果表征目标操作指令A执行成功,则再判断目标数据A是否被写入完成,若目标数据A未被写入完成,则说明目标数据A被写入多个目标操作指令中,控制模块继续进行第一级仲裁,并重复上述过程,直至目标数据A被写入完成;若目标数据A被写入完成,控制模块则会生成用于向工控机共享目标数据A的触发事件并发送至内存操作单元,内存操作单元在接收到该出发触发事件时,生成指示读取目标数据A的中断指令并发送至工控机,工控机响应于该中断指令,触发中断,生成一个用于读取目标数据A的读取请求并发送至内存操作单元,内存操作单元则在接收到该读取请求后,从共享存储器中读取目标数据A反馈至工控机,至此控制模块将目标数据A共享到工控机。

控制模块在执行结果表征目标操作指令A执行失败时,则将目标操作指令A重新加入仲裁,以再次发送至内存操作单元,直至该目标操作指令A被执行成功。

方式二,第一装置用于向内存操作单元22反馈表征指定目标数据写入完成的通知信息。

内存操作单元22用于在接收到通知信息后,从共享存储器21中读取指定目标数据并反馈至第二装置。

请参考图7,以工控机需要向一个控制模块所连接的I/O单元(I/O单元的数量可以为一个或多个,图中仅示意性的画出一个)共享目标数据B为例,结合上述二级仲裁的相关内容对工控机与控制模块之间共享目标数据B的过程进行说明。

工控机在产生需要共享到控制模块连接的I/O单元的目标数据B时,工控机生成用于向共享存储器21写入目标数据B的目标操作指令B;随后进行第一级仲裁,仲裁出最先生成的操作指令,并将仲裁出的操作指令传递到内存操作单元,直至目标操作指令B被冲裁出后传递到内存操作单元。

内存操作单元针对所有待执行的操作指令进行第二级仲裁,仲裁出需要最先执行的操作指令,并在执行后将该操作指令的执行结果反馈给发送该操作指令的装置,直至仲裁出目标操作指令B并执行,将目标数据B写入共享存储器,随后向工控机反馈目标操作指令B的执行结果,执行结果可以是目标操作指令B执行成功或者失败。

工控机在接收到目标操作指令B的执行结果后,若该执行结果表征目标操作指令B执行成功,则再判断目标数据B是否被写入完成,若目标数据B未被写入完成,则说明目标数据B被写入多个目标操作指令中,工控机继续进行第一级仲裁,并重复上述过程,直至目标数据B被写入完成;若目标数据B被写入完成,工控机向内存操作单元反馈表征目标数据B写入完成的通知信息,内存操作单元在接收到该通知信息后,从共享存储器中读取目标数据B反馈至控制模块,至此工控机将目标数据B共享到控制模块。

工控机在执行结果表征目标操作指令B执行失败时,则将目标操作指令B重新加入仲裁,以再次发送至内存操作单元,直至该目标操作指令B被执行成功,并重复上述过程。

以上已详细描述了本发明的较佳实施例,但应理解到,若需要,能修改实施例的方面来采用各种专利、申请和出版物的方面、特征和构思来提供另外的实施例。

考虑到上文的详细描述,能对实施例做出这些和其它变化。一般而言,在权利要求中,所用的术语不应被认为限制在说明书和权利要求中公开的具体实施例,而是应被理解为包括所有可能的实施例连同这些权利要求所享有的全部等同范围。

相关技术
  • 一种DCS系统连接故障的测试装置和一种测试方法
  • 一种电力系统卫星时间干扰测试系统及测试方法
  • 一种动力电池的综合工况测试系统、方法及电池测试系统
  • 一种主动安全制动系统的蓄能器容积的测试系统及测试方法
  • 一种工业控制系统可靠性测试系统及测试方法
  • 用于测试座椅安全带系统并且/或者用于测试座椅安全带系统的部件的测试台和测试装置以及用于操作测试台的方法
  • 测试系统、用于测试系统的测试方法以及测试载具
技术分类

06120116489075