电控单元原型机的软件测试方法及系统与流程

文档序号:31095061发布日期:2022-08-10 00:43阅读:216来源:国知局
电控单元原型机的软件测试方法及系统与流程

1.本发明涉及电子测控的技术领域,具体涉及一种电控单元原型机的软件测试方法及系统。


背景技术:

2.当代车辆上都有很多电控单元ecu,每个ecu负责一个专门的功能,这些ecu通过总线(如can总线)组成一个网络,每个ecu与其它ecu存在或多或少的联系,它们通过总线向其它ecu发送报文,并接收其它ecu发送的报文。电控单元ecu的开发先从其原型机开始。为表述方便,将总线网络中被测的ecu命名为vcu,其它ecu仍称为ecu,如ecu1~ecun,这些ecu构成vcu的运行和测试环境。
3.当用户开发出了电控单元原型机相关的控制算法后,即便已经通过电脑仿真的方式对算法进行了初步的测试(此测试中,控制算法是simulink模型,被控对象也是simulink模型,仿真测试纯粹在电脑中运行)。在这个初步的仿真测试之后,为后续在实车中应用,还需要对电控单元原型机的软件进一步验证。此时一个比较合理的方式是让该控制算法去控制真实的被控对象,在更加真实的环境中对算法加以测试。
4.目前电控单元原型机开发软件的测试主要利用快速控制原型rcp实现,其包括:
5.1、先开发出电控单元原型机的软件;
6.2、将该开发出的电控单元原型机软件写入通用的快速控制原型rcp(rapid control prototype,简称rcp)中,即可模拟电控单元原型机的功能。将该写入电控单元原型机软件的rcp置入仿真运行环境或实车环境,进行电控单元原型机软件的相关功能测试,主要包括测试软件是否正确、能否正确向其它ecu发送报文、以及能否正确接收和解析其它ecu发来的报文;
7.3、测试通过后,再将电控单元原型机软件在整车上进行验证、固化。
8.其中,rcp置入仿真运行环境进行测试时,该仿真运行环境是独立于rcp的另一套仿真装置,它仿真了与电控单元原型机有关联的整车网络中其它ecu节点及其功能。其缺点是,需要另外投资建立仿真运行环境。
9.其中,rcp置入实车环境进行测试,是将rcp置于一个真实的整车环境中进行测试,使rcp直接与其它真实的ecu进行通讯。这种测试方法需要的资源多,除了需要整车资源外,还需要各类支持人员和动力能源,测试人员需要多次出差。此外,在软件测试和迭代过程中,需要多次使用这些资源导致开发成本高、开发周期长。


技术实现要素:

10.本发明的目的就是针对现有技术的缺陷,提供一种电控单元原型机的软件测试方法及系统,。
11.本发明的一种电控单元原型机的软件测试方法,包括
12.搭建vcu的软件模型和vcu仿真运行环境中各仿真ecu的软件模型;
13.将所述软件模型编译为机器代码;
14.将所述机器代码写入快速控制原型rcp中;
15.设定vcu和仿真ecu的控制变量的值,快速控制原型rcp中的vcu和仿真ecu根据当前时刻的控制变量值、上一时刻状态变量的值以及参数值,按控制程序进行运算,并将运算结果赋值给当前控制变量和状态变量;
16.根据vcu和仿真ecu的状态变量的值和波形,判断vcu的软件是否达到设计要求,若未达到设计要求,则对vcu的软件模型进行修改,并重复以上步骤,直至测试结果达到设计要求。
17.较为优选的,所述快速控制原型rcp中的vcu内集成有参数集、控制变量集、状态变量集和控制程序,所述参数集用于存储若干参数,所述控制变量集用于存储若干控制变量,所述状态变量集用于存储若干状态变量,所述参数和变量均由vcu的软件进行处理;
18.所述控制程序对vcu和仿真ecu的参数、控制变量和状态变量进行数学运算和逻辑运算,再将运算结果赋值给控制变量和状态变量,并分别存储至控制变量集和状态变量集。
19.较为优选的,所述快速控制原型rcp中的vcu内还集成有报文发送程序和报文接收程序;
20.所述报文发送程序通过can总线将控制变量和状态变量的值发送给仿真ecu,用于仿真ecu的控制和运算;
21.所述报文接收程序通过can总线接收仿真ecu的控制变量和状态变量,用于vcu的控制和运算,所述vcu的控制变量来自仿真ecu发送的can报文。
22.较为优选的,还包括读取vcu的状态变量,并将状态变量的值显示在状态变量输出区。
23.较为优选的,所述快速控制原型rcp中的仿真ecu内集成有参数集、控制变量集、状态变量集、报文发送程序、报文接收程序和控制程序,所述参数集用于存储若干参数,所述控制变量集用于存储若干控制变量,所述状态变量集用于存储若干状态变量,所述参数和变量均由仿真ecu的软件进行处理;
24.所述仿真ecu的控制变量一部分来自vcu发送的can报文,另一部分来自上位机输入。
25.较为优选的,所述仿真ecu的报文接收程序收到vcu发来的报文后,对其进行解析,用于仿真ecu的控制和运算。
26.较为优选的,所述仿真ecu的状态变量的值,一部分通过can总线发送给vcu,vcu将其解析并赋值给vcu的状态变量,同时人机交互面板hmi读取仿真ecu的状态变量的值,并显示在状态变量输出区。
27.较为优选的,测试结果达到设计要求后,还包括:
28.在搭建的软件模型中删除仿真ecu的软件模型,仅保留vcu的软件模型,并将vcu的软件模型编译为机器代码后写入快速控制原型rcp中;
29.将快速控制原型rcp安装于整车中,使其与整车上真实的ecu组成一个can网络;
30.如果快速控制原型rcp在整车测试正常,则对电控单元原型机的软件进行固化。
31.本发明还提供一种电控单元原型机的软件测试系统,包括快速控制原型rcp和上位机,所述快速控制原型rcp包括vcu模块和vcu的仿真运行环境模块,所述仿真运行环境模
块包括若干个仿真ecu;
32.所述vcu模块和仿真运行环境模块内均集成有参数集、控制变量集、状态变量集、报文发送程序、报文接收程序和控制程序,所述参数集用于存储若干参数,所述控制变量集用于存储若干控制变量,所述状态变量集用于存储若干状态变量;
33.所述vcu模块的控制程序对参数、控制变量和状态变量进行数学运算和逻辑运算,再将运算结果赋值给控制变量和状态变量,并分别存储至控制变量集和状态变量集,所述vcu模块的报文发送程序用于通过can总线将控制变量和状态变更的值发送给仿真ecu,用于仿真ecu的控制和运算,所述vcu模块的报文接收程序通过can总线接收仿真ecu的控制变更和状态变量,用于vcu的控制和运算;
34.所述仿真ecu的控制变量一部分来自vcu发送的can报文,另一部分来自上位机输入,所述仿真ecu的报文接收程序用于在收到vcu发来的报文后,对其进行解析,用于仿真ecu的控制和运算,所述仿真ecu的状态变量的值,一部分通过can总线发送给vcu,vcu将其解析并赋值给vcu的状态变量,同时人机交互面板hmi读取仿真ecu的状态变量的值,并显示在状态变量输出区。
35.较为优选的,所述上位机集成有快速控制原型rcp的调试模块,所述调试模块包括编译下载模块和人机交互模块,所述编译下载模块用于将c代码形式的软件编译成目标机器码并下载到rcp中,所述人机交互模块用于实现仿真过程中的人机交互,所述人机交互模块包括控制变量输入区和状态变量输出区,所述控制变量输入区用于实现仿真ecu的控制变量数值输入,所述状态变量输出区用于显示输出vcu或仿真ecu的状态变量数值或波形。
36.本发明的有益效果为:将电控单元原型机及其仿真运行环境集成在一个快速控制原型rcp中,可以充分利用rcp的硬件资源,而不必另外购置仿真测试设备。由于在试验室已使用本发明的方法和系统对电控单元原型机进行了充分的测试,所以只需要在整车上进行很少次数甚至低至一次的验证即可,对整车及其附加资源的需求量少,从而降低了电控单元原型机的开发成本和开发周期。
附图说明
37.图1为本发明电控单元原型机的软件测试系统的原理示意图;
38.图2为本发明电控单元原型机的软件测试系统的软件架构示意图;
39.图3为本发明电控单元原型机的软件测试方法的流程示意图。
具体实施方式
40.为了使本技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
41.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
42.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描
述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
43.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
44.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0045]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0046]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。“多个”表示“两个或两个以上”。
[0047]
本发明还提供一种电控单元原型机的软件测试系统,用于测试电控单元原型机的软件是否正确、能否正确向其它ecu发送报文、以及能否正确接收和解析其它ecu发来的报文。本发明将电控单元原型机及其仿真运行环境集成在一个快速控制原型rcp中,可以充分利用快速控制原型rcp的硬件资源、降低电控单元原型机开发成本和开发周期。本系统包括快速控制原型rcp和上位机。快速控制原型rcp是市售的通用电控单元,具有强大的微处理单元mcu、充足的内存、can端口、数字输入输出端口dio和模拟输入输出端口aio。rcp常用于专用ecu的开发,将专用ecu的软件刷写到rcp中,利用rcp丰富的可重定义的端口和配套的调试工具,可以快速方便地对专用ecu软件进行测试和迭代。
[0048]
本系统中,快速控制原型rcp包括vcu模块(即被测试的电控单元原型机)和vcu的仿真运行环境模块,所述仿真运行环境模块包括若干个仿真ecu。若干个仿真ecu与vcu共用rcp的mcu。
[0049]
电控单元原型机vcu与若干仿真ecu各被分配一个can端口,电控单元原型机与各仿真ecu通过can总线组成一个can网络。仿真ecu仿真了整车上与电控单元原型机关联的其它ecu,电控单元原型机通过can总线向仿真ecu发送报文,仿真ecu通过can总线向被测电控单元原型机发送报文。
[0050]
上位机pc集成有快速控制原型rcp的调试模块,所述调试模块包括编译下载模块和人机交互模块,所述编译下载模块用于将c代码形式的软件编译成目标机器码并下载到rcp中。人机交互模块是电控单元原型机开发者自定义的人机交互面板,人机交互模块用于实现仿真过程中的人机交互。所述人机交互模块包括控制变量输入区和状态变量输出区,所述控制变量输入区用于实现仿真ecu的控制变量数值输入,所述状态变量输出区用于显示输出vcu或仿真ecu的状态变量数值或波形。
[0051]
vcu模块和仿真运行环境模块内均集成有参数集、控制变量集、状态变量集、报文
发送程序、报文接收程序和控制程序,所述参数集用于存储若干参数,所述控制变量集用于存储若干控制变量,所述状态变量集用于存储若干状态变量;
[0052]
vcu模块的控制程序用于对参数、控制变量和状态变量进行数学运算和逻辑运算,再将运算结果赋值给控制变量和状态变量,并分别存储至控制变量集和状态变量集,所述vcu模块的报文发送程序用于通过can总线将控制变量和状态变量的值发送给仿真ecu,用于仿真ecu的控制和运算,所述vcu模块的报文接收程序通过can总线接收仿真ecu的控制变量和状态变量,用于vcu的控制和运算。
[0053]
仿真ecu的控制变量一部分来自vcu发送的can报文,另一部分来自上位机输入,所述仿真ecu的报文接收程序用于在收到vcu发来的报文后,对其进行解析,用于仿真ecu的控制和运算,所述仿真ecu的状态变量的值,一部分通过can总线发送给vcu,vcu将其解析并赋值给vcu的状态变量,同时人机交互面板hmi读取仿真ecu的状态变量的值,并显示在状态变量输出区。
[0054]
实施例一
[0055]
图1、图2示出了本技术较佳实施例提供的电控单元原型机的软件测试系统的结构示意图,为了便于说明,仅示出了与本实施例相关的部分,详述如下:
[0056]
vcu软件是本发明的被测对象,它被载入rcp中进行测试,它包含参数集、控制变量集、状态变量集、报文发送程序、报文接收程序和控制程序这几部分。参数集包含若干参数,变量集包含若干变量,它们都由vcu的软件进行处理。控制程序对参数、控制变量和状态变量进行数学运算和逻辑运算,再将运算结果赋值给控制变量和状态变量。报文发送程序通过can总线将控制变量和状态变量的值发送给仿真运行环境的仿真ecu,用于仿真ecu的控制和运算;报文接收程序通过can总线接收仿真ecu的控制变量和状态变量,用于vcu的控制和运算。上位机pc的人机交互面板hmi读取vcu的状态变量,并将其值显示在状态变量输出区。vcu的控制变量的值来自仿真ecu的报文。
[0057]
与vcu软件类似,仿真ecu软件也载入至rcp内,它也包含参数集、控制变量集、状态变量集、报文发送程序、报文接收程序和控制程序这几部分。仿真ecu的控制变量的值一部分来自vcu发来的can报文,一部分来自上位机pc的人机交互面板。仿真ecu的报文接收程序收到vcu发来的报文后,对其进行解析,用于仿真ecu的控制和运算。上位机pc的人机交互面板hmi可以直接对vcu和仿真ecu的控制变量进行赋值,例如在hmi上对某仿真ecu的油门踏板开度变量进行赋值,则该仿真ecu控制的发动机将按该油门踏板开度的值运行。
[0058]
仿真ecu的状态变量的值,一部分通过can总线发给vcu,vcu将其解析出来,再赋值给vcu的状态变量。人机交互面板hmi直接读到仿真ecu的状态变量的值,并显示在状态变量输出区。
[0059]
主程序模块统一调度vcu和仿真ecu的各个程序模块,使它们按指定的序列执行,避免因无序执行而导致逻辑混乱。
[0060]
上位机pc中的人机交互面板hmi分为控制变量输入区和状态变量输出区两个区域,控制变量输入区放置vcu和仿真ecu的控制变量的输入框控件,在进行vcu软件测试时,人工输入控制变量的值。状态变量输出区放置vcu和仿真ecu的状态变量的输出框控件和示波器控件,用于显示状态变量的数值和波形。
[0061]
在一个实施例中,仿真ecu的报文接收程序收到vcu发来的报文后,对其进行解析,
将解析结果赋值给仿真ecu的控制变量包括:
[0062]
vcu向某个仿真ecu发送一条包含发动机转速命令值的报文,该仿真ecu将发动机转速命令值解析出来,并将其赋值给该仿真ecu的发动机转速控制变量,该仿真ecu的控制程序对该控制变量和其它参数、状态变量进行运算,根据运算结果控制发动机的运行。
[0063]
本发明还提供一种电控单元原型机的软件测试方法,包括
[0064]
搭建vcu的软件模型和vcu仿真运行环境中各仿真ecu的软件模型;
[0065]
将所述软件模型编译为机器代码;
[0066]
将所述机器代码写入快速控制原型rcp中;
[0067]
设定vcu和仿真ecu的控制变量的值,快速控制原型rcp中的vcu和仿真ecu根据当前时刻的控制变量值、上一时刻状态变量的值以及参数值,按控制程序进行运算,并将运算结果赋值给当前控制变量和状态变量;
[0068]
根据vcu和仿真ecu的状态变量的值和波形,判断vcu的软件是否达到设计要求,若未达到设计要求,则对vcu的软件模型进行修改,并重复以上步骤,直至测试结果达到设计要求。
[0069]
实施例二
[0070]
如图3所示,本实施例提供电控单元原型机的软件测试方法的最佳实施例,其过程如下:
[0071]
s100:用可视化编程工具,例如simulink,按设计要求,搭建被测对象vcu的软件模型,按整车上真实ecu的功能搭建vcu仿真运行环境中各仿真ecu的软件模型,并将模型编译为c语言代码。
[0072]
s200:用上位机pc中的编译下载工具将c语言代码编译成机器代码。
[0073]
s300:用上位机pc中的编译下载工具把机器代码下载到快速控制原型rcp中。
[0074]
s400:用上位机pc中的人机交互面板hmi人工设定vcu和仿真ecu的控制变量的值,vcu和仿真ecu根据当前时刻的控制变量值、上一时刻状态变量的值以及参数值,按控制程序进行运算,并将运算结果赋值给当前控制变量和状态变量。
[0075]
s500:根据人机交互面板hmi实时显示vcu和仿真ecu的状态变量的值和波形,判断vcu的软件是否达到设计要求。如果执行结果与设计要求不符,则修改模型,重新执行s100~s500,进行多轮的迭代和测试,直到测试结果全部达到设计要求。
[0076]
s600:删除s100搭建的软件模型中的仿真ecu的软件模型,仅保留vcu的软件模型,编译下载到rcp中。
[0077]
s700:将rcp安装于整车中,与整车上的其它真实的ecu组成一个can网络,s400中的hmi被整车操纵台上真实的油门踏板、按钮、指示灯、仪表盘等人机交互器件所代替,vcu的软件在真实的运行环境中测试下如果没有问题,则说明软件测试通过,可以进行固化。在本步骤中,如果用产品级vcu进行测试,则固化下来的vcu软件可靠性更高。
[0078]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0079]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各
实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1