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

CAN信号处理方法、装置、系统、车辆及存储介质

文献发布时间:2023-06-19 16:09:34



技术领域

本申请实施例涉及汽车技术领域,特别地,涉及一种CAN信号处理方法、装置、系统、车辆及存储介质。

背景技术

目前汽车是通过C语言来实现微控制单元(Micro Control Unit,MCU)的逻辑功能。采用C语言来实现MCU的逻辑功能需要提前对MCU的逻辑功能进行编写并烧写编译至MCU中,只能通过空中下载技术(Over-the-Air Technology,OTA)或者其他升级方式刷新程序来对MCU的逻辑功能进行升级。

随着汽车技术的发展,MCU的逻辑功能升级的次数越来越频繁,升级的时间间隔越来越短,用于升级MCU的逻辑功能的程序越来越复杂,导致目前汽车MCU的升级效率低下。

发明内容

本申请实施例提供一种CAN信号处理方法、装置、系统、车辆及存储介质,以改善上述问题。

第一方面,本申请实施例提供一种CAN信号处理方法。该方法包括:通过LUA引擎,对LUA脚本和所述LUA脚本中的预设接口进行加载,其中,所述预设接口由CAN信号读写模块提供;调用所述预设接口,对CAN信号执行与所述预设接口对应的预设操作。

第二方面,本申请实施例提供一种CAN信号处理装置。该装置包括脚本加载模块和接口调用模块。其中,脚本加载模块用于通过LUA引擎,对LUA脚本和所述LUA脚本中的预设接口进行加载,其中,所述预设接口由CAN信号读写模块提供。接口调用模块用于调用所述预设接口,对CAN信号执行与所述预设接口对应的预设操作。

第三方面,本申请实施例提供一种CAN信号处理系统。该系统包括LUA引擎、CAN信号读写模块和脚本执行模块。LUA引擎用于对LUA脚本和所述LUA脚本中的预设接口进行加载。CAN信号读写模块用于为所述LUA脚本提供所述预设接口。脚本执行模块用于调用所述预设接口,对CAN信号执行与所述预设接口对应的预设操作。

第四方面,本申请实施例提供一种车辆。该车辆包括车身本体和微控制单元。微控制单元包括本申请实施例提供的CAN信号处理系统。

第五方面,本申请实施例提供一种计算机可读取存储介质。计算机可读取存储介质中存储有程序代码,所述程序代码被配置为由处理器调用时,使得所述处理器执行本申请实施例提供的CAN信号处理方法。

本申请实施例提供一种CAN信号处理方法、装置、系统、车辆及存储介质,通过引入LUA引擎来加载LUA脚本和LUA脚本中的由CAN信号读写模块提供的预设接口,并通过调用该预设接口来实现对应的预设操作,从而可以远程动态触发MCU的运行来动态改变MCU中的功能逻辑。相比于目前提前编写、提前烧写MCU功能逻辑且只能通过刷写程序进行升级的形式,本申请实施例提供的CAN信号处理方法可以动态改变MCU功能逻辑,从而能够有效提高MCU的升级效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本申请实施例提供的CAN信号处理方法的应用场景的示意图;

图2是本申请一示例性实施例提供的图1所示的应用场景中的模块进行交互的示意图;

图3是本申请一实施例提供的CAN信号处理方法的流程示意图;

图4是本申请一示例性实施例提供的EMMC内的LUA脚本的示意图;

图5是本申请另一实施例提供的CAN信号处理方法的流程示意图;

图6是本申请又一实施例提供的CAN信号处理方法的流程示意图;

图7是本申请一示例性实施例提供的CAN信号处理方法的流程示意图;

图8是本申请实施例提供的CAN信号处理装置的结构框图;

图9是本申请实施例提供的CAN信号处理系统的结构框图;

图10是本申请实施例提供的车辆的结构框图;

图11是本申请实施例提供的计算机可读取存储介质的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

请参阅图1,图1是本申请实施例提供的CAN信号处理方法的应用场景的示意图。数据交互系统10包括MCU11、嵌入式多媒体卡(Embedded Multi Media Card,EMMC)12、电子控制单元(Electronic Control Unit,ECU)13。MCU11可以调用并执行EMMC12中的代码。MCU11可以与ECU13通信,以实现数据交互。MCU11、EMMC12以及ECU13位于同一车辆中。

在一些实施方式中,EMMC12包括LUA脚本,LUA脚本可以使用CAN信号读写模块113中的CAN库中的预设接口。其中,预设接口可以根据实际业务需求进行设置,本申请实施例在此不作具体限制。例如,预设接口可以是CAN信号接收接口和CAN信号发送接口。EMMC12可以指一个EMMC,也可以包括多个EMMC,本申请实施例在此不作具体限制。

在一些实施方式中,ECU13可以通过CAN通道与MCU进行数据交换。如图1所示,MCU11外接两路CAN通道,共包括四个CAN节点“CAN Node 1”、“CAN Node 2”、“CAN Node 3”以及“CAN Node 4”。其中,CAN节点“CAN Node 1”和“CAN Node 2”为发送CAN信号的通道上的CAN节点,CAN节点“CAN Node 3”和“CAN Node 4”为接收CAN信号的通道的CAN节点。本申请实施例对CAN通道的数量不做具体限制。本申请实施例中的ECU13可以指一个ECU,也可以包括多个ECU,本申请实施例在此不作具体限制。

在一些实施方式中,MCU11包括脚本执行模块111(例如,图1所示的ScriptM模块111)、LUA引擎112、控制器局域网络(Controller Area Network,CAN)信号读写模块113(例如,图1所示的LUA_Lib_CAN113)。其中,LUA(logical unit application)是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放。

LUA引擎112为动态加载软件的基础引擎,其可以提供脚本化的基础接口,例如,基础接口可以包括CAN信号接收接口和CAN信号发送接口。

CAN信号读写模块113中存储有基于CAN信号的读写库(后续描述将“CAN信号的读写库”简称为“CAN库”),在MCU11内部提供一套完整的读写接口与CAN信号映射关系表。例如,读写接口可以包括CAN信号接收接口和CAN信号发送接口。例如,CAN信号映射关系表可以包括如表1所示的CAN信号发送映射关系表和如表2所示的CAN信号接收映射关系表。

表1

表2

上述表1为CAN信号发送映射关系表,上述表2为CAN信号接收映射关系表。表1和表2中的LUA_Lib_CAN(ID)均表征在LUA_Lib_CAN中预先设置的CAN信号的身份标识(Identitydocument,ID)(后续将“CAN信号的身份标识”简称为“预设标识”或“预设ID”),该预设ID与CAN信号对应,可以由MCU开发者自定义,本申请实施例在此不作具体限制。

作为一种示例,请参阅上述表1,预设ID“0”对应CAN节点“CAN Node 1”的CAN信号“CAN1_Speed”;预设ID“1”对应CAN节点“CAN Node 2”的CAN信号“CAN2_Time”。

作为另一种实例,请参阅上述表2,预设ID“0”对应CAN节点“CAN Node 3”的CAN信号“CAN3_Doorlock”;预设ID“1”对应CAN节点“CAN Node 4”的CAN信号“CAN_CtrlWindows”。

在一些实施方式中,MCU11通过LUA引擎112、并通过MCU11内部的EMMC接口来动态加载EMMC12中的LUA脚本。ECU11通过脚本执行模块111来执行由LUA引擎112加载的EMMC12中的LUA脚本。当ECU11调用LUA脚本中的上述预设接口时,可以执行与该预设接口对应的预设操作。作为一种示例,预设接口为CAN信号接收接口,则预设操作为接收CAN信号。作为另一种示例,预设接口为CAN信号发送接口,则预设操作为向CAN信号发送CAN信号发送接口中所包含的预设信息,该预设信息可以由开发者自定义,本申请实施例在此不作具体限制。

请参阅图2,本申请一示例性实施例提供的图1所示的应用场景中的模块进行交互的示意图。LUA_Lib_CAN113中的CAN库需要通过LUA引擎112的接口进行CAN库的注册,注册之后的CAN库可以为LUA脚本提供上述读写接口。作为一种示例,读写接口可以包括图2所示的CAN_Receive(Signal ID)和CAN_Send(Signal ID)。

此外,CAN库基于汽车开放系统架构(Automotive Open System Architecture,AUTOSAR),可以利用实时环境(Run-Time Environment,RTE),从AUTOSAR中的COM(Communication)模块中抽象出底层CAN信号,以便LUA脚本通过调用上述预设接口,并根据上述CAN信号映射表来收发该CAN信号。

本申请实施例提供的数据交互系统10中的MCU11通过LUA引擎112加载外部EMMC12中的LUA脚本,并通过CAN库为LUA脚本提供预设接口和CAN信号映射关系来执行预设操作,从而可以动态改变MCU11的逻辑功能,可以缓解现有技术中的COM模块的压力,因为目前车辆ECU之间采用局域互联网络(Local Interconnect Network,LIN)/CAN/以太网(Ethernet,ETH)等网络通信,基于AUTOSAR,所有交互的信号均通过AUTOSAR中的COM模块处理,从而可以提升数据处理效率。此外,通过CAN库为LUA脚本提供预设接口和CAN信号映射关系,可以为用户二次开发MCU11的逻辑功能提供便捷性。

请参阅图3,图3是本申请一实施例提供的CAN信号处理方法的流程示意图。该CAN信号处理方法可以应用于图1所示的MCU11,下面将提到的图10所示的MCU620,下面将提到的图8所示的CAN信号处理装置400,以及下面将提到的图9所示的CAN信号处理系统500。该CAN信号处理方法可以包括以下步骤S110-步骤S120。

步骤S110,通过LUA引擎,对LUA脚本和LUA脚本中的预设接口进行加载,其中,预设接口由CAN信号读写模块提供。

如前所述,预设接口可以根据实际业务需求进行设置。例如,预设接口可以是CAN信号获取接口和CAN信号接收接口。预设接口携带预设标识,该预设标识与CAN信号唯一对应,用于识别CAN信号,预设标识可以由MCU开发者自定义,本申请实施例在此不作具体限制。一个预设接口仅携带一个预设标识。作为一种示例,请参阅表1,预设接口可以是预设ID“0”。

其中,CAN信号读写模块(LUA_Lib_CAN)中存储有多组预设标识与CAN信号的映射关系。其中,预设标识与CAN信号的映射关系可以由MCU开发者自定义,可以通过建立CAN信号映射关系表进行存储,本申请实施例在此不作具体限制。

作为一种示例,请参阅表1,在CAN信号发送映射关系表中,预设标识为预设ID“0”,则对应CAN节点“CAN node 1”的CAN信号“CAN1_Speed”;预设标识为预设ID“1”,则对应CAN节点“CAN node 2”的CAN信号“CAN2_Time”。

作为另一种示例,请参阅表2,在CAN信号接收映射关系表中,预设标识为预设ID“0”,则对应CAN节点“CAN node 3”的CAN信号“CAN3_Doorlock”;预设标识为预设ID“1”,则对应CAN节点“CAN node 4”的CAN信号“CAN_CtrlWindows”。

如前所述,CAN信号读写模块基于AUTOSAR,利用RTE通过COM模块来收发CAN信号。

如前所述,LUA脚本存储于EMMC中。EMMC包括多个LUA脚本,每个LUA脚本可以由开发者自定义,LUA脚本使用何种接口也可以由开发者根据CAN库中的接口自定义,本申请实施例在此不作具体限制。作为一种示例,请参阅图4,图4是本申请一示例性实施例提供的EMMC内的LUA脚本的示意图,如图4所示,EMMC内的LUA脚本包括“LUAScript0”、“LUAScript1”、“LUAScript2”,其中,“LUAScript0”、“LUAScript1”、“LUAScript2”可以分别实现不同的逻辑功能。

在一些实施方式中,程序运行时,MCU中的脚本执行模块(例如,ScriptM模块)可以通过LUA引擎动态打开和运行外部EMMC中的LUA脚本。具体地,LUA引擎可以通过MCU内部的EMMC接口,对EMMC中的LUA脚本和LUA脚本中的预设接口进行加载。

作为一种实施方式,LUA引擎可以在加载LUA脚本时,同时对LUA脚本中的所有接口进行加载。

作为另一种实施方式,LUA引擎可以先加载LUA脚本,然后在运行LUA脚本的过程中需要使用某个接口时,再对LUA脚本中的该接口进行加载。例如,LUA脚本中包括接口A、接口B、接口C,当运行LUA脚本时需要使用接口A,则对接口A进行加载,此时不对接口B和接口C进行加载。通过在需要使用某个接口时再对该接口进行加载,可以节省MCU的算力。

步骤S120,调用预设接口,对CAN信号执行与预设接口对应的预设操作。

如前所述,预设接口对应的预设操作可以由MCU开发者自定义,本申请实施例在此不作具体限制。例如,预设接口为CAN信号接收接口,则预设操作为接收CAN信号。又例如,预设接口为CAN信号发送接口,则预设操作为向CAN信号发送CAN信号发送接口中所包含的预设信息,该预设信息可以由开发者自定义,本申请实施例在此不作具体限制。

在一些实施方式中,MCU中的脚本执行模块通过调用预设接口,可以实现与预设接口对应的预设操作。具体地,可以通过预设接口中的预设标识,根据预设标识与CAN信号的映射关系,对CAN信号进行识别,得到目标CAN信号,对目标CAN信号执行预设操作。

本申请实施例提供的CAN信号处理方法,通过引入LUA引擎来加载LUA脚本和LUA脚本中的由CAN信号读写模块提供的预设接口,并通过调用该预设接口来实现对应的预设操作,从而可以远程动态触发MCU的运行来动态改变MCU中的功能逻辑。相比于目前提前编写、提前烧写MCU功能逻辑且只能通过刷写程序进行升级的形式,本申请实施例提供的CAN信号处理方法可以动态改变MCU功能逻辑,从而能够有效提高MCU的升级效率。

请参阅图5,图5是本申请另一实施例提供的CAN信号处理方法的流程示意图。该CAN信号处理方法可以图1所示的MCU11,下面将提到的图10所示的MCU620,下面将提到的图8所示的CAN信号处理装置400,以及下面将提到的图9所示的CAN信号处理系统500。该CAN信号处理方法可以包括以下步骤S210-步骤S220。

步骤S110,通过LUA引擎,对LUA脚本和LUA脚本中的信号发送接口进行加载,其中,信号发送接口包括第一预设标识和目标值,信号发送接口由CAN信号读写模块提供,CAN信号读写模块包括第一预设标识和CAN信号的映射关系。

其中,信号发送接口携带第一预设标识,该第一预设标识与CAN信号唯一对应,用于识别CAN信号,第一预设标识可以由MCU开发者自定义,本申请实施例在此不作具体限制。一个信号发送接口仅携带一个第一预设标识。作为一种示例,信号发送接口为“LIB_CAN_Send(0,1)”,其中,“0”为第一预设标识,“1”为目标值。

其中,CAN信号读写模块(LUA_Lib_CAN)中存储有多组第一预设标识与CAN信号的映射关系。其中,第一预设标识与CAN信号的映射关系可以由MCU开发者自定义,可以通过建立CAN信号发送映射关系表进行存储,本申请实施例在此不作具体限制。

作为一种示例,请参阅上述表1,在CAN信号发送映射关系表中,第一预设标识为预设ID“0”,则对应CAN节点“CAN node 1”的CAN信号“CAN1_Speed”;第一预设标识为预设ID“1”,则对应CAN节点“CAN node 2”的CAN信号“CAN2_Time”。

步骤S210的未详细描述的部分请参阅上述步骤S110,本申请实施例在此不作具体限制。

步骤S220,调用信号发送接口,根据第一预设标识与CAN信号的映射关系,将目标值作为所述CAN信号的值。

在一些实施方式中,可以通过信号发送接口中的第一预设标识,根据第一预设标识与CAN信号的映射关系,对CAN信号进行识别,得到目标CAN信号,将目标值作为所述CAN信号的值,以便其他ECU根据重新赋值后的CAN信号执行对应的操作。

作为一种示例,信号发送接口为“LIB_CAN_Send(0,1)”,请参阅上述表1,第一预设标识为“0”,根据第一预设标识与CAN信号的映射关系,可以识别到CAN信号“CAN1_Speed”,然后将CAN信号“CAN1_Speed”的值设置为目标值“1”,以便其他ECU根据重新赋值后的CAN信号执行对应的操作。

本申请实施例提供的CAN信号处理方法,通过引入LUA引擎来加载LUA脚本和LUA脚本中的由CAN信号读写模块提供的信号发送接口,并通过调用该信号发送接口来为CAN信号赋值,以便其他ECU根据重新赋值后的CAN信号执行对应的操作,从而可以动态改变CAN信号的值。

请参阅图6,图6是本申请又一实施例提供的CAN信号处理方法的流程示意图。该CAN信号处理方法可以应用于图1所示的MCU11,下面将提到的图10所示的MCU620,下面将提到的图8所示的CAN信号处理装置400,以及下面将提到的图9所示的CAN信号处理系统500。该CAN信号处理方法可以包括以下步骤S310-步骤S320。

步骤S310,通过LUA引擎,对LUA脚本和LUA脚本中的信号接收接口进行加载,其中,信号接收接口包括第二预设标识,信号接收接口由CAN信号读写模块提供,CAN信号读写模块包括第二预设标识和CAN信号的映射关系。

其中,信号接收接口携带第二预设标识,该第二预设标识与CAN信号唯一对应,用于识别CAN信号,第二预设标识可以由MCU开发者自定义,本申请实施例在此不作具体限制。一个信号接收接口仅携带一个第二预设标识。作为一种示例,信号接收接口为LIB_CAN_Receive(1),其中,“1”为第二预设标识。

其中,CAN信号读写模块(LUA_Lib_CAN)中存储有多组第二预设标识与CAN信号的映射关系。其中,第二预设标识与CAN信号的映射关系可以由MCU开发者自定义,可以通过建立CAN信号接收映射关系表进行存储,本申请实施例在此不作具体限制。

作为一种示例,请参阅上述表2,在CAN信号接收映射关系表中,第二预设标识为预设ID“0”,则对应CAN节点“CAN node 3”的CAN信号“CAN3_Doorlock”;第二预设标识为预设ID“1”,则对应CAN节点“CAN node 4”的CAN信号“CAN_CtrlWindows”。

步骤S310的未详细描述的部分请参阅上述步骤S110,本申请实施例在此不作具体限制。

步骤S320,调用信号接收接口,根据第二预设标识和CAN信号的映射关系,获取与第二预设标识对应的CAN信号。

在一些实施方式中,可以通过信号接收接口中的第二预设标识,根据第二预设标识与CAN信号的映射关系,对CAN信号进行识别,得到目标CAN信号,获取目标CAN信号,以便MCU后续可以根据目标CAN信号执行对应的操作。

作为一种示例,信号接收接口为“LIB_CAN_Receive(1)”,请参阅上述表2,第二预设标识为“0”,根据第二预设标识与CAN信号的映射关系,可以识别到CAN信号“CAN3_Doorlock”,则可以获取CAN信号“CAN3_Doorlock”,以便MCU后续可以根据目标CAN信号“CAN3_Doorlock”执行对应的操作。

本申请实施例提供的CAN信号处理方法,通过引入LUA引擎来加载LUA脚本和LUA脚本中的由CAN信号读写模块提供的信号接收接口,并通过调用该信号接收接口来获取CAN信号,以便MCU后续可以根据目标CAN信号执行对应的操作。

请参阅图7,图7是本申请一示例性实施例提供的CAN信号处理方法的流程示意图。该CAN信号处理方法可以应用于图1所示的MCU11,下面将提到的图10所示的MCU620,下面将提到的图8所示的CAN信号处理装置400,以及下面将提到的图9所示的CAN信号处理系统500。以EMMC中的LUA脚本为“LUAScript0”为例,该CAN信号处理方法可以包括以下步骤一至步骤八。

步骤一,脚本执行模块(ScriptM模块)运行脚本,通过LUA引擎打开LUA脚本“LUAScript0”,引用LUA_lib_CAN中的CAN库。

步骤二,通过LUA引擎对CAN库进行加载,并运行LUA脚本“LUAScript0”。

其中,执行步骤一和步骤二,可以对CAN库进行加载。

步骤三,当LUA脚本“LUAScript0”需要对某个CAN信号进行赋值时,LUA引擎对信号发送接口“LIB_CAN_Send(Signal ID,Value)”进行加载。其中,“Signal ID”为上述第一预设标识,“Value”为上述目标值。

步骤四,LUA引擎通过接口“CAN_Send(Signal ID,Value)”将第一预设标识和目标值发送至LUA_lib_CAN中的CAN库,对与第一预设标识对应的CAN信号赋值。

步骤五,LUA_lib_CAN将赋值之后的CAN信号通过RTE发送至COM模块,以便其他ECU可以根据赋值之后的CAN信号执行对应的操作。

其中,执行步骤一至步骤四,可以对与第一预设标识对应CAN信号进行赋值,以便ECU可以根据赋值之后的CAN信号执行对应的操作。

步骤六,当LUA脚本“LUAScript0”需要使用某个CAN信号时,LUA引擎对信号接收接口“LIB_CAN_Receive(Signal ID)”进行加载。其中,“Signal ID”为第二预设标识。

步骤七,LUA引擎通过接口“CAN_Receive(Signal ID)”将第二预设标识发送至LUA_lib_CAN中的CAN库。

步骤八,LUA_lib_CAN通过RTE从COM模块中获取与第二预设标识对应的CAN信号,并将与第二预设标识对应的CAN信号通过LUA引擎反馈给MCU。

其中,执行步骤一和步骤二、步骤六至步骤八,可以获取与第二预设标识对应的CAN信号,以便MCU后续可以根据获取到的CAN信号执行对应的操作。

需要说明的是,步骤三至步骤五与步骤六至步骤八可以在同一实施例中被执行,也可以分别在不同的实施例中被执行,本申请实施例在此不作具体限制。作为一种实施方式,MCU可以执行上述步骤一至步骤五。作为另一种实施方式,MCU可以执行上述步骤一和步骤二、步骤六至步骤八。作为又一种实施方式,MCU可以执行上述步骤一至步骤八,其中,执行步骤三至步骤五和执行步骤六至步骤八的执行顺序并非固定,可以根据实际需求进行调整,例如,可以先执行步骤三至步骤五,再执行步骤六至步骤八,或者也可以先执行步骤六至步骤八,再执行步骤三至步骤五,本申请实施例在此不作具体限制。

上述步骤一至步骤八未详细描述的部分请参阅前述方法实施例,本申请实施例在此不作具体限制。

本申请实施例提供的CAN信号处理方法,通过引入LUA引擎来加载LUA脚本和LUA脚本中的由CAN信号读写模块提供的预设接口,并通过调用该预设接口来实现对应的预设操作,从而可以远程动态触发MCU的运行来动态改变MCU中的功能逻辑。相比于目前提前编写、提前烧写MCU功能逻辑且只能通过刷写程序进行升级的形式,本申请实施例提供的CAN信号处理方法可以动态改变MCU功能逻辑,从而能够有效提高MCU的升级效率。

请参阅图8,图8是本申请实施例提供的CAN信号处理装置的结构框图。该CAN信号处理装置400可以应用于图1所示的MCU11和下面将提到的图10所示的MCU620。该CAN信号处理装置400包括脚本加载模块410和接口调用模块420。其中,脚本加载模块410用于通过LUA引擎,对LUA脚本和所述LUA脚本中的预设接口进行加载,其中,所述预设接口由CAN信号读写模块提供,CAN信号读写模块基于汽车开放系统架构,利用实时环境通过通信模块收发所述CAN信号。接口调用模块420用于调用所述预设接口,对CAN信号执行与所述预设接口对应的预设操作。

在一些实施方式中,所述预设接口包括信号发送接口,所述信号发送接口包括第一预设标识和目标值,所述CAN信号读写模块包括所述第一预设标识和所述CAN信号的映射关系。接口调用模块420包括第一接口调用子模块。第一接口调用子模块用于调用所述信号发送接口根据所述第一预设标识与所述CAN信号的映射关系,将所述目标值作为所述CAN信号的值。

在一些实施方式中,所述预设接口还包括信号接收接口,所述信号接收接口包括第二预设标识,所述CAN信号读写模块包括所述第二预设标识和所述CAN信号的映射关系。接口调用模块420还包括第二接口调用子模块。第二接口调用子模块用于调用所述信号接收接口,根据所述第二预设标识和所述CAN信号的映射关系,获取与所述第二预设标识对应的所述CAN信号。

请参阅图9,图9是本申请实施例提供的CAN信号处理系统的结构框图。该CAN信号处理系统500可以应用于图1所示的MCU11和下面将提到的图10所示的MCU620。该CAN信号处理系统500包括LUA引擎510、CAN信号读写模块520以及脚本执行模块530。其中,LUA引擎510用于对LUA脚本和所述LUA脚本中的预设接口进行加载。CAN信号读写模块520用于为所述LUA脚本提供所述预设接口。脚本执行模块530用于调用所述预设接口,对CAN信号执行与所述预设接口对应的预设操作。

需要说明的是,LUA引擎510与上述LUA引擎112相同,CAN信号读写模块520与上述CAN信号读写模块113相同,脚本执行模块530与上述脚本执行模块111相同。

在一些实施方式中,所述预设接口包括信号发送接口,所述信号发送接口包括第一预设标识和目标值,所述CAN信号读写模块包括所述第一预设标识和所述CAN信号的映射关系,所述与所述预设接口对应的预设操作包括:根据所述第一预设标识与所述CAN信号的映射关系,将所述目标值作为所述CAN信号的值。

在一些实施方式中,所述预设接口还包括信号接收接口,所述信号接收接口包括第二预设标识,所述CAN信号读写模块包括所述第二预设标识和所述CAN信号的映射关系,所述与所述预设接口对应的预设操作还包括:根据所述第二预设标识和所述CAN信号的映射关系,获取与所述第二预设标识对应的所述CAN信号。

本领域技术人员可以清楚地了解到,本申请实施例提供的CAN信号处理装置400和CAN信号处理系统500均可以实现本申请实施例提供的CAN信号处理方法。上述模块的具体工作过程,可以参阅本申请实施例中的CAN信号处理方法对应的过程,在此不再赘述。

本申请提供的实施例中,所显示或讨论的模块相互之间的耦合、直接耦合或者通信连接,可以是通过一些接口、装置或模块的间接耦合或通信耦合,可以是电性、机械或其他形式,本申请实施例对此不作限制。

另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件的功能模块的形式实现,本申请实施例对此不作限制。

请参阅图10,图10是本申请实施例提供的车辆的结构框图。该车辆600包括车身本体610和MCU620。其中,MCU620可以包括上述图8所示的CAN信号处理系统500和/或上述图7所示的CAN信号处理装置400。需要说明的是,MCU620与上述MCU11相同。车辆600可以是汽油车或电动车等,其中,电动汽车可以是纯电动汽车、混合动力汽车、或燃料电池汽车等,本申请实施例在此不作具体限制。

在一些实施方式中,MCU620可以包括存储器621、处理器622以及一个或多个应用程序。其中一个或多个应用程序可以被存储在存储器621中并被配置为当被一个或多个处理器622调用时,使得一个或多个处理器622执行本申请实施例提供的CAN信号处理方法。

处理器622可以包括一个或多个处理核。处理器622利用各种接口和线路连接整个MCU620内各个部分,用于运行或执行存储在存储器621内的指令、程序、代码集或指令集,以及调用运行或执行存储在存储器621内的数据,执行MCU620的各种功能和处理数据。可选地,处理器622可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编辑逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。

存储器621可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。存储器621可以用于存储指令、程序、代码、代码集或指令集。存储器621可以包括存储程序区和存储数据区。其中,存储程序区可以存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区可以存储MCU620在使用中所创建的数据等。

请参阅图11,图11是本申请实施例提供的计算机可读取存储介质的结构框图。该计算机可读取存储介质700中存储有程序代码710,该程序代码710被配置为当被处理器调用时,使得处理器执行本申请实施例提供的上述CAN信号处理方法。

计算机可读取存储介质700可以是诸如闪存、电可擦除可编辑只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编辑只读存储器(Erasable Programmable Read-Only Memory,EPROM)、硬盘或者ROM之类的电子存储器。可选地,计算机可读取存储介质700包括非易失性计算机可读介质(Non-TransitoryComputer-Readable Storage Medium,Non-TCRSM)。计算机可读取存储介质700具有执行上述方法中的任何方法步骤的程序代码710的存储空间。这些程序代码710可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码710可以以适当的形式进行压缩。

综上所述,本申请实施例提供一种CAN信号处理方法、装置、系统、车辆及存储介质,通过引入LUA引擎来加载LUA脚本和LUA脚本中的由CAN信号读写模块提供的预设接口,并通过调用该预设接口来实现对应的预设操作,从而可以远程动态触发MCU的运行来动态改变MCU中的功能逻辑。相比于目前提前编写、提前烧写MCU功能逻辑且只能通过刷写程序进行升级的形式,本申请实施例提供的CAN信号处理方法可以动态改变MCU功能逻辑,从而能够有效提高MCU的升级效率。

最后应说明的是:以上实施例仅用于说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

技术分类

06120114725463