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

基于虚拟仿真平台实现汽车的虚拟标定方法和装置

文献发布时间:2023-06-19 19:30:30


基于虚拟仿真平台实现汽车的虚拟标定方法和装置

技术领域

本发明涉及计算机仿真技术,尤其涉及汽车电子控制单元的标定技术。

背景技术

在汽车电子控制单元(ECU,Electronic Control Unit)开发过程中,为了适应不同的车型和工况,常常需要通过上位机软件与ECU进行通信,然后根据ECU中类似驱动电机参数,发动机控制曲线以及空调温度控制曲线等若干参数地址标定对应参数值,以实现控制算法与控制目标的匹配从而达到最佳效果。

现有技术中需要依赖真实环境中才可以进行标定工作。这样,一方面对于汽车ECU标定依赖真实物理环境进行标定导致标定周期较长成本较高。另一方面,这样增加了标定过程中的时间成本。

发明内容

本发明之目的在于提供一种基于虚拟仿真平台实现汽车的虚拟标定方法和装置,基于虚拟仿真平台实现虚拟标定,整个标定过程不需要依赖真实ECU和物理环境,降低标定工程师对于硬件环境的依赖,大幅降低了标定过程中的时间成本。

为实现上述目的,本发明提供了一种基于虚拟仿真平台实现汽车的虚拟标定方法,方法包括:设置相互独立的标定上位机和虚拟ECU,虚拟ECU包括通用测量和校正标定驱动(XCP驱动)和虚拟控制器局域网控制器(CAN,Controller Area Network)设备。标定上位机包括XCP驱动。标定上位机的XCP驱动与虚拟CAN设备通过虚拟CAN总线进行通信。虚拟ECU中的XCP驱动通过CAN驱动函数接口的调用来与虚拟CAN设备进行通信。虚拟CAN设备与虚拟CAN总线之间通过虚拟CAN总线函数接口的调用来进行通信。通过标定上位机的XCP驱动调用虚拟CAN总线向虚拟ECU发送符合XCP协议的报文。虚拟ECU通过调用虚拟CAN总线的接收报文函数接口,将标定上位机软件下发的数据存置虚拟CAN设备接收缓冲区。虚拟ECU中的XCP驱动处理完虚拟CAN设备接收缓冲区的报文数据后,将要发送至标定上位机软件的报文数据发送至虚拟CAN设备的发送缓冲区。XCP驱动调用虚拟CAN总线的发送报文函数接口,将发送帧发送返回给标定上位机。

作为优选方式,虚拟CAN设备包括寄存器读写接口、寄存器实现模块、发送数据处理模块、接收数据处理模块和虚拟CAN总线接口调用模块。其中,标定数据经由虚拟CAN总线在标定上位机和虚拟ECU之间双向传输。其中,虚拟CAN设备通过数据处理模块调用虚拟CAN总线接口来接收标定上位机发送的标定数据。然后,通过寄存器实现模块调用寄存器读写接口将标定数据按相应类别将相关参数存入或取出寄存器及存储空间。当需要返回标定数据结果时,将结果通过发送数据处理模块调用虚拟CAN总线接口来将标定数据结果经由虚拟CAN总线发送至标定上位机。

作为优选方式,虚拟CAN总线函数接口的调用包括:调用打开驱动函数接口控制虚拟CAN总线驱动。调用选择通道函数接口选择虚拟CAN总线通道,调用打开端口函数打开对应虚拟CAN总线通道接口。调用设置通道模式函数接口设置通道模式为控制发送和接收通知模式。调用通道滤波设置函数接口进行通道滤波设置。调用通道激活函数接口激活对应通道。调用虚拟CAN发送报文函数接口向虚拟CAN总线发送报文。周期性调用虚拟CAN接收报文函数接口接收虚拟CAN总线中的报文。

作为优选方式,接收数据处理模块接收标定上位机发送的标定数据包括:虚拟CAN总线通过虚拟CAN总线接口把数据发送给虚拟CAN设备。虚拟CAN设备接收到数据后把数据写入接收缓冲区并设置接收中断标志位。如果接收中断进给使能信号,则触发接收中断。并且,触发接收中断后,调用接收中断服务,且在接收中断服务进程中设置相应接收标志变量为1。当虚拟CAN设备读取到接收标志变量为1后,从接收缓冲区读取出数据的同时,设置接收标志变量为0。

作为优选方式,发送数据处理模块发送标定数据至标定上位机包括:程序进程调用CAN发送驱动把数据写入发送缓冲区。设置虚拟CAN设备的寄存器的使能发送位为1。虚拟CAN设备执行发送命令,从发送缓冲区读取出数据并调用虚拟CAN总线接口发送数据给虚拟CAN总线。

作为优选方式,设置相互独立的标定上位机和虚拟ECU包括:初始化标定上位机及初始化虚拟ECU。搭建标定上位机和虚拟ECU之间用于双向通信的虚拟CAN总线。其中,初始化虚拟ECU包括:按照芯片类型分类来初始化虚拟CAN设备的寄存器和寄存器读写接口,通过寄存器实现模块加载结构体定义的虚拟CAN设备寄存器和寄存器读写接口的相关参数来实现初始化。

作为优选方式,按照芯片类型分类来初始化虚拟CAN设备的寄存器和寄存器读写接口包括:根据CAN设备芯片的数据来获取模块基地址、各个寄存器相对基地址的地址偏移值、寄存器的大小,根据以上三项数据来构建一个寄存器结构体变量。通过寄存器实现模块加载结构体定义的虚拟CAN设备寄存器和寄存器读写接口的相关参数包括:构建一个参数为对象指针,偏移值,数据指针,访问内存字节数的函数。根据参数偏移值,找到结构体变量中寄存器变量的位置,对该寄存器变量进行读写操作。通过对象指针来读写寄存器中的参数,且通过参数偏移值来读写存储空间的参数。

作为优选方式,本发明提供的一种基于虚拟仿真平台实现汽车的虚拟标定方法还包括标定测试。其中,标定测试包括:在标定上位机界面的参数控件界面中修改参数值。打开虚拟ECU的内存界面,比对参数地址对应的内存值是否已被修改。在标定上位机界面显示与参数相关的信号量变化。

本发明提供了一种虚拟仿真平台实现汽车的虚拟标定装置包括:相互独立的标定上位机和虚拟ECU,虚拟ECU包括XCP驱动和虚拟CAN设备。标定上位机包括XCP驱动。标定上位机的XCP驱动与虚拟CAN设备通过虚拟CAN总线进行通信。虚拟ECU中的XCP驱动通过CAN驱动函数接口的调用来与虚拟CAN设备进行通信。虚拟CAN设备与虚拟CAN总线之间通过虚拟CAN总线函数接口的调用来进行通信。通过标定上位机的XCP驱动调用虚拟CAN总线向虚拟ECU发送符合XCP协议的报文。虚拟ECU通过调用虚拟CAN总线的接收报文函数接口,将标定上位机软件下发的数据存置虚拟CAN设备接收缓冲区。虚拟ECU中的XCP驱动处理完虚拟CAN设备接收缓冲区的报文数据后,将要发送至标定上位机软件的报文数据发送至虚拟CAN设备的发送缓冲区。XCP驱动调用虚拟CAN总线的发送报文函数接口,将发送帧发送返回给标定上位机。

作为优选方式,虚拟CAN设备包括寄存器读写接口、寄存器实现模块、发送数据处理模块、接收数据处理模块和虚拟CAN总线接口调用模块。其中,标定数据经由虚拟CAN总线在标定上位机和虚拟ECU之间双向传输。其中,虚拟CAN设备通过数据处理模块调用虚拟CAN总线接口来接收标定上位机发送的标定数据。然后,通过寄存器实现模块调用寄存器读写接口将标定数据按相应类别将相关参数存入或取出寄存器及存储空间。当需要返回标定数据结果时,将结果通过发送数据处理模块调用虚拟CAN总线接口来将标定数据结果经由虚拟CAN总线发送至标定上位机。

本发明针对现有技术中对于汽车ECU标定依赖真实物理环境进行标定导致标定周期较长成本较高的这一问题,提供一种基于虚拟平台的虚拟标定方法和装置,能够提供一个脱离真实ECU和真实的物理环境及真实总线的虚拟的仿真平台、虚拟总线和仿真物理模型,在智能设备上即可完成ECU标定的大部分工作量,整个标定过程不需要依赖真实ECU和物理环境,能够降低标定工程师对于硬件环境的依赖,从而有效解决现有技术的需要依赖于真实物理环境标定造成的周期较长的问题,节省标定过程中的时间成本。

附图说明

图1为本发明的虚拟标定的第一示意框图。

图2为本发明的虚拟标定的第二示意框图。

图3为本发明的虚拟总线建立XCP连接的连接安装示意图。

图4为本发明的修改参考值的第一示意图。

图5为本发明的修改参考值的第二示意图。

图6为本发明的修改参考值的第四示意图。

图7为本发明的修改参考值的第三示意图。

图8为本发明的信号量显示示意图。

具体实施方式

在下文中,将参照附图描述本发明的基于虚拟仿真平台实现汽车的虚拟标定方法和装置的实施方式。

在此记载的实施方式为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施方式外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括采用对在此记载的实施方式的做出任何显而易见的替换和修改的技术方案。

本说明书的附图为示意图,辅助说明本发明的构思,示意性地表示各部分的形状及其相互关系。

图1示出了基于虚拟ECU标定的示意框图。如图1所示,本发明提供了一种基于虚拟仿真平台实现汽车的虚拟标定方法,方法包括:

设置相互独立的标定上位机和虚拟ECU,虚拟ECU包括XCP驱动和虚拟CAN设备。标定上位机包括XCP驱动。CAN设备为控制器局域网控制器设备。虚拟ECU为虚拟电子控制单元。XCP驱动为通用测量和校正标定驱动。

标定上位机的XCP驱动与虚拟CAN设备通过虚拟CAN总线进行通信。虚拟ECU中的XCP驱动通过CAN驱动函数接口的调用来与虚拟CAN设备进行通信。虚拟CAN设备与虚拟CAN总线之间通过虚拟CAN总线函数接口的调用来进行通信。

通过标定上位机的XCP驱动调用虚拟CAN总线向虚拟ECU发送符合XCP协议的报文。虚拟ECU通过调用虚拟CAN总线的接收报文函数接口,将标定上位机软件下发的数据存置虚拟CAN设备接收缓冲区。虚拟ECU中的XCP驱动处理完虚拟CAN设备接收缓冲区的报文数据后,将要发送至标定上位机软件的报文数据发送至虚拟CAN设备的发送缓冲区。XCP驱动调用虚拟CAN总线的发送报文函数接口,将发送帧发送返回给标定上位机。

具体而言,标定上位机软件可以通过自带的XCP Driver调用虚拟总线向虚拟ECU发送符合XCP协议的报文,虚拟ECU通过调用虚拟总线的接收报文函数接口,将标定上位机软件下发的数据存置虚拟CAN设备接收缓冲区,虚拟ECU中的XCP驱动处理完虚拟CAN设备接收缓冲区的报文数据后,将要发送至标定上位机软件的报文数据发送至虚拟CAN设备的发送缓冲区,调用虚拟总线的发送报文函数接口,将发送帧发回给标定软件上位机。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

本实施例进一步优选地,以下是根据本发明的一个可选实施例的基于虚拟仿真平台实现汽车的虚拟标定方法,该方法包括如下的步骤:

步骤a:创建实现虚拟CAN设备,用于虚拟总线通信动作的发起,对总线系统进行控制和管理。定义CAN设备和中断计数标志全局变量,实现CAN设备寄存器读写访问接口和存储器读写访问接口。

步骤b:实现CAN设备对虚拟总线接口函数的调用。

步骤c:标定上位机与虚拟ECU通过虚拟总线建立XCP连接,进行标定测试。

本发明主要利用包含有虚拟总线的计算机平台,基于虚拟仿真平台实现虚拟标定,整个标定过程不需要依赖真实ECU和物理环境,降低标定工程师对于硬件环境的依赖,在一台智能终端上完成标定的大部分工作。

CAN设备的设备结构如下:CAN设备由寄存器读写接口,寄存器实现,CAN控制器发送数据处理和CAN控制器接收数据处理,CAN设备与虚拟CAN总线数据交互这几部分组成。

图3示出了虚拟ECU的安装图。如图3所示,虚拟ECU与Vector标定上位机进行连接,依次通信连接虚拟ECU的内存、CAN和虚拟ECU的XCP。CAN和虚拟ECU的XCP之间通过虚拟CAN总线相互连接。虚拟ECU的XCP能够通过有线或无线通信手段与PAR和数据库进行数据交互。

实现的虚拟CAN设备的方法步骤如下:

a.在SkyEye下使用设备创建命令创建CAN控制器设备模型。

b.使用一个结构体定义CAN设备寄存器。

c.构建寄存器读写接口。

d.根据芯片手册实现CAN控制器所有的寄存器。

e.构建数据收发处理模块。

本图2为本发明的虚拟标定的又一示意框图。

本实施例进一步优选地,如图2所示,虚拟CAN设备包括寄存器读写接口、寄存器实现模块、发送数据处理模块、接收数据处理模块和虚拟CAN总线接口调用模块。其中,标定数据经由虚拟CAN总线在标定上位机和虚拟ECU之间双向传输。其中,虚拟CAN设备通过数据处理模块调用虚拟CAN总线接口来接收标定上位机发送的标定数据。然后,通过寄存器实现模块调用寄存器读写接口将标定数据按相应类别将相关参数存入或取出寄存器及存储空间。当需要返回标定数据结果时,将结果通过发送数据处理模块调用虚拟CAN总线接口来将标定数据结果经由虚拟CAN总线发送至标定上位机。

本实施例进一步优选地,虚拟CAN总线函数接口的调用包括:调用打开驱动函数接口控制虚拟CAN总线驱动。调用选择通道函数接口选择虚拟CAN总线通道,调用打开端口函数打开对应虚拟CAN总线通道接口。调用设置通道模式函数接口设置通道模式为控制发送和接收通知模式。调用通道滤波设置函数接口进行通道滤波设置。调用通道激活函数接口激活对应通道。调用虚拟CAN发送报文函数接口向虚拟CAN总线发送报文。周期性调用虚拟CAN接收报文函数接口接收虚拟CAN总线中的报文。

本实施例进一步优选地,接收数据处理模块接收标定上位机发送的标定数据包括:虚拟CAN总线通过虚拟CAN总线接口把数据发送给虚拟CAN设备。虚拟CAN设备接收到数据后把数据写入接收缓冲区并设置接收中断标志位。如果接收中断进给使能信号,则触发接收中断。并且,触发接收中断后,调用接收中断服务,且在接收中断服务进程中设置相应接收标志变量为1。当虚拟CAN设备读取到接收标志变量为1后,从接收缓冲区读取出数据的同时,设置接收标志变量为0。

本实施例进一步优选地,发送数据处理模块发送标定数据至标定上位机包括:程序进程调用CAN发送驱动把数据写入发送缓冲区。设置虚拟CAN设备的寄存器的使能发送位为1。虚拟CAN设备执行发送命令,从发送缓冲区读取出数据并调用虚拟CAN总线接口发送数据给虚拟CAN总线。

本实施例进一步优选地,设置相互独立的标定上位机和虚拟ECU包括:初始化标定上位机及初始化虚拟ECU。搭建标定上位机和虚拟ECU之间用于双向通信的虚拟CAN总线。其中,初始化虚拟ECU包括:按照芯片类型分类来初始化虚拟CAN设备的寄存器和寄存器读写接口,通过寄存器实现模块加载结构体定义的虚拟CAN设备寄存器和寄存器读写接口的相关参数来实现初始化。

本实施例进一步优选地,按照芯片类型分类来初始化虚拟CAN设备的寄存器和寄存器读写接口包括:根据CAN设备芯片的数据来获取模块基地址、各个寄存器相对基地址的地址偏移值、寄存器的大小,根据以上三项数据来构建一个寄存器结构体变量。通过寄存器实现模块加载结构体定义的虚拟CAN设备寄存器和寄存器读写接口的相关参数包括:构建一个参数为对象指针,偏移值,数据指针,访问内存字节数的函数。根据参数偏移值,找到结构体变量中寄存器变量的位置,对该寄存器变量进行读写操作。通过对象指针来读写寄存器中的参数,且通过参数偏移值来读写存储空间的参数。

本实施例进一步优选地,本发明提供的一种基于虚拟仿真平台实现汽车的虚拟标定方法还包括标定测试。其中,标定测试包括:在标定上位机界面的参数控件界面中修改参数值。打开虚拟ECU的内存界面,比对参数地址对应的内存值是否已被修改。在标定上位机界面显示与参数相关的信号量变化。

本实施例进一步优选地,标定数据的参数的地址由编译生成的地图文件来获取,参数的值由相关信号量的曲线变化来确定。

用户根据相关信号量曲线变化,在上位机界面中修改参数的值,参数的值依次经由XCP Driver、虚拟总线、虚拟CAN设备最终传输至虚拟ECU的内存中;虚拟ECU中的参数的值被修改后,信号量曲线会随着变化,再次修改参数的值,直至获得最优曲线。

例如,假如程序中有A=k*10表达式;k就是参数,A就是信号值,横轴为时间纵轴为A值的曲线就是信号值曲线(这里是一条水平线)。

更进一步地,参数初始值为虚拟ECU中预设的参数初值,标定哪些参数是根据用户实际需要决定。用户可以手动输入标定参数。

修改参考值的具体步骤及观察参数地址内存值修改的示例如图4-7所示。信号量显示示例如图8所示。如图4-5所示,示例XcpDemo用例中修改adc_task_timeout(ADC任务超时)参数值示例:

1.如图4所示,将adc_task_timeout添加至上位机CANape软件Parameter窗口,adc_task_timeout初始值为3500。

2.如图5所示,选中参数adc_task_timeout的数值,双击进行修改,更改adc_task_timeout值为1024,修改完后点击Enter键进行确认,如下图(注表示数据修改值比原始值小)。

3.如图7所示,根据XcpDemo用例编译生成的map文件可以确定adc_task_timeout对应的内存地址为0xd00017d0。

4.如图6所示,打开SkyEye虚拟ECU内存显示界面,可以查看到地址为0xd00017d0的内存值为0x400(16进制值,转换为10进制为1024)。

本发明针对现有技术中对于汽车ECU标定依赖真实物理环境进行标定导致标定周期较长成本较高的这一问题,提供一种基于虚拟平台的虚拟标定方法和装置,能够提供一个脱离真实ECU和真实的物理环境及真实总线的虚拟的仿真平台、虚拟总线和仿真物理模型,在智能设备上即可完成ECU标定的大部分工作量,整个标定过程不需要依赖真实ECU和物理环境,能够降低标定工程师对于硬件环境的依赖,从而有效解决现有技术的需要依赖于真实物理环境标定造成的周期较长的问题,节省标定过程中的时间成本。

如图1所示,本发明提供了一种虚拟仿真平台实现汽车的虚拟标定装置包括:相互独立的标定上位机和虚拟ECU,虚拟ECU包括XCP驱动和虚拟CAN设备。标定上位机包括XCP驱动。标定上位机的XCP驱动与虚拟CAN设备通过虚拟CAN总线进行通信。虚拟ECU中的XCP驱动通过CAN驱动函数接口的调用来与虚拟CAN设备进行通信。虚拟CAN设备与虚拟CAN总线之间通过虚拟CAN总线函数接口的调用来进行通信。通过标定上位机的XCP驱动调用虚拟CAN总线向虚拟ECU发送符合XCP协议的报文。虚拟ECU通过调用虚拟CAN总线的接收报文函数接口,将标定上位机软件下发的数据存置虚拟CAN设备接收缓冲区。虚拟ECU中的XCP驱动处理完虚拟CAN设备接收缓冲区的报文数据后,将要发送至标定上位机软件的报文数据发送至虚拟CAN设备的发送缓冲区。XCP驱动调用虚拟CAN总线的发送报文函数接口,将发送帧发送返回给标定上位机。

本实施例进一步优选地,如图2所示,虚拟CAN设备包括寄存器读写接口、寄存器实现模块、发送数据处理模块、接收数据处理模块和虚拟CAN总线接口调用模块。其中,标定数据经由虚拟CAN总线在标定上位机和虚拟ECU之间双向传输。其中,虚拟CAN设备通过数据处理模块调用虚拟CAN总线接口来接收标定上位机发送的标定数据。然后,通过寄存器实现模块调用寄存器读写接口将标定数据按相应类别将相关参数存入或取出寄存器及存储空间。当需要返回标定数据结果时,将结果通过发送数据处理模块调用虚拟CAN总线接口来将标定数据结果经由虚拟CAN总线发送至标定上位机。

本发明针对现有技术中对于汽车ECU标定依赖真实物理环境进行标定导致标定周期较长成本较高的这一问题,提供一种基于虚拟平台的虚拟标定方法和装置,能够提供一个脱离真实ECU和真实的物理环境及真实总线的虚拟的仿真平台、虚拟总线和仿真物理模型,在智能设备上即可完成ECU标定的大部分工作量,整个标定过程不需要依赖真实ECU和物理环境,能够降低标定工程师对于硬件环境的依赖,从而有效解决现有技术的需要依赖于真实物理环境标定造成的周期较长的问题,节省标定过程中的时间成本。

以上对本发明的基于虚拟仿真平台实现汽车的虚拟标定方法和装置的实施方式进行了说明,其目的在于解释本发明之精神。请注意,本领域技术人员可以在不脱离本发明的精神的情况下对上述各实施方式的特征进行修改和组合,因此,本发明并不限于上述各实施方式。对于本发明的基于虚拟仿真平台的虚拟标定装置的具体特征如形状、尺寸和位置可以上述披露的特征的作用进行具体设计,这些设计均是本领域技术人员能够实现的。而且,上述披露的各技术特征并不限于已披露的与其它特征的组合,本领域技术人员还可根据发明之目的进行各技术特征之间的其它组合,以实现本发明之目的为准。

相关技术
  • 基于云计算及虚拟仿真技术的虚拟仿真实验共享平台架构
  • 实现高校传媒专业虚拟仿真教育的虚拟实验室平台
技术分类

06120115931361