本文作者:kaifamei

一种车辆的数据处理方法、ECU、车辆、及存储介质与流程

更新时间:2024-12-23 04:17:21 0条评论

一种车辆的数据处理方法、ECU、车辆、及存储介质与流程


一种车辆的数据处理方法、ecu、车辆、及存储介质
技术领域
1.本技术涉及车辆技术领域,尤其涉及一种车辆的数据处理方法、ecu、车辆、及存储介质。


背景技术:

2.汽车的电子控制器单元(electronic control unit,ecu)又称汽车的“行车电脑”,它利用各种传感器和总线的数据来判断车辆状态和获取司机的意图,并通过执行器来控制汽车行驶以及实现其它各种行车功能。ecu通常包括处理器与内存,在相关技术中,受限于处理器的性能与内存的容量,ecu往往难以实现复杂的行车功能,难以满足对车辆日益增长的功能需求。


技术实现要素:

3.本技术提供了一种车辆的数据处理方法、ecu、车辆、及存储介质。
4.根据本技术的第一方面,提供一种车辆的数据处理方法,所述方法应用于搭载在所述车辆的ecu中,所述ecu用于执行行车功能,所述行车功能包括至少一个第一行车功能和至少一个第二行车功能;所述第一行车功能在所述车辆中的运行需求高于所述第二行车功能的运行需求;所述ecu包括内存和外置存储器;所述内存存储有可实现所述第一行车功能的至少一个第一程序;所述外置存储器存储有可实现所述第二行车功能的至少一个第二程序,所述方法包括:
5.接收来自所述车辆中其他ecu和/或外部设备的触发请求,所述触发请求指示所述ecu待执行的目标行车功能;
6.若所述目标行车功能为所述第一行车功能,运行存储在所述内存中的所述目标行车功能对应的第一程序;
7.若所述目标行车功能为所述第二行车功能,从所述外置存储器中将所述目标行车功能对应的第二程序加载到内存,并运行所述第二程序。
8.在一些例子中,所述第一程序使用第一编程语言编写,所述第二程序使用第二编程语言编写;所述ecu能够识别使用所述第一编程语言编写的程序中的指令,且无法识别使用所述第二编程语言编写的程序中的指令;
9.在所述运行所述第二程序之前,还包括:
10.利用预存的所述第二编程语言与所述第一编程语言之间的指令转换关系,将所述第二程序中的指令转换为使用所述第一编程语言编写的指令。
11.在一些例子中,所述外置存储器存储有多个第二程序,所述多个第二程序中的至少部分使用第一编程语言编写,另一部分使用第二编程语言编写;所述ecu能够识别使用所述第一编程语言编写的程序中的指令,且无法识别使用所述第二编程语言编写的程序中的指令;
12.在所述运行所述目标行车功能对应的第二程序之前,还包括:
13.如果基于所述第二程序中预设的标志位和/或程序文件的拓展名,确定所述第二程序使用第二编程语言编写,利用预存的所述第二编程语言与所述第一编程语言之间的指令转换关系,将所述第二程序中的指令转换为使用所述第一编程语言编写的指令。
14.在一些例子中,所述ecu安装有解析组件,所述解析组件用于利用预存的所述第二编程语言与所述第一编程语言之间的指令转换关系,转换所述第二程序中的指令;
15.其中,所述解析组件能够解析的第二程序的指令复杂度与所述ecu的运行资源呈正相关关系。
16.在一些例子中,所述行车功能的运行需求与所述行车功能相应的程序的运行频率、所述行车功能的实时性需求、和/或所述行车功能与驾驶行为的相关度正相关。
17.在一些例子中,所述ecu记录有所述第一程序的运行次数和所述第二程序的运行次数;
18.所述方法还包括:
19.在到达预设的更新周期后,根据所述第一程序的运行次数获取各个所述第一程序在预设时间段内的运行频率,以及根据所述第二程序的运行次数获取各个第二程序在预设时间段内的运行频率;
20.基于所述运行频率更新各个所述第一程序与各个所述第二程序的存储位置,以使存储在所述内存中的第一程序的运行频率,高于存储在所述外置存储器的第二程序的运行频率。
21.在一些例子中,在满足预设条件后,将所述第二程序从所述内存中删除;所述预设条件包括:所述内存的剩余可用容量小于或等于预设容量、在预设时段内未接收到针对所述目标行车功能的触发请求、所述内存的利用率大于或等于预设比值、所述目标行车功能对应的第二程序已运行预设时长、或者所述目标行车功能对应的第二程序已运行结束。
22.在一些例子中,所述ecu搭载有服务端;所述其他ecu搭载有客户端;其中,搭载有服务端的ecu可靠程度高于搭载有客户端的ecu的可靠程度、且搭载有服务端的ecu的性能低于搭载有客户端的ecu的性能;
23.所述服务端与所述客户端基于some/ip协议通信,所述方法还包括:
24.所述服务端基于所述some/ip协议,向客户端广播所述行车功能,以使所述客户端向所述服务端发送用于订阅行车功能的所述触发请求。
25.在一些例子中,所述ecu包括有mcu和外置存储器,所述内存为所述mcu的内置存储器;所述mcu和所述外置存储器为独立的芯片,所述mcu和所述外置存储器集成在同一电路板上。
26.根据本技术的第二方面,提供一种ecu,搭载在车辆中,所述ecu用于执行行车功能,所述行车功能包括至少一个第一行车功能和至少一个第二行车功能;所述第一行车功能在所述车辆中的运行需求高于所述第二行车功能的运行需求;所述ecu包括:
27.外置存储器,存储有可实现所述第二行车功能的至少一个第二程序;
28.mcu,包括处理器与内存;所述内存存储有可实现第一行车功能的至少一个第一程序;所述处理器被配置为:
29.接收来自其他ecu和/或外部设备的触发请求,所述触发请求指示所述ecu待执行的目标行车功能;
30.若所述目标行车功能为所述第一行车功能,运行存储在所述内存中的所述目标行车功能对应的第一程序;
31.若所述目标行车功能为所述第二行车功能,从所述外置存储器中将所述目标行车功能对应的第二程序加载到内存,并运行所述第二程序。
32.根据本技术的第三方面,提供一种车辆,所述车辆包括:
33.车身;
34.动力组件,用于驱动所述车辆运动;
35.以及如上述第二方面所述的ecu。
36.根据本技术的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有若干计算机指令,所述计算机指令被执行时执行上述第一方面任一所述的方法。
37.本技术的实施例提供的技术方案可以包括以下有益效果:
38.本技术提供了一种车辆的数据处理方法、ecu、车辆、及存储介质,设计了用于执行行车功能的ecu包括内存与外置存储器。并将不同运行需求的行车功能对应的程序存储到不同存储设备中。将可实现运行需求高的第一行车功能的第一程序存储在内存中,将可实现运行需求低的第二行车功能的第二程序存储在外置存储器中。此外,来自其他ecu和/或外部设备的触发请求指示有ecu待执行的目标行车功能。若目标行车功能为第一行车功能时,可以直接从内存中读取第一程序来运行,避免反复从外置存储器中加载第一程序。若目标行车功能为第二行车功能时,从外置存储器中加载第二程序至内存,避免了对内存存储空间的占用。一方面,通过新增外置存储器来存储行车功能对应的程序,ecu所实现的行车功能不再受限于内存性能,丰富了ecu所能实现的行车功能。另一方面,根据不同行车功能的运行需求,将不同的行车功能对应的程序存储到不同存储设备中,能合理安排存储空间。
39.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
40.此处的附图被并入说明书中并构成本技术的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
41.图1是本技术根据一实施例示出的一种车辆的数据处理方法的流程图。
42.图2是本技术根据一实施例示出的一种ecu的示意图。
43.图3a是本技术根据另一实施例示出的一种车辆的数据处理方法的流程图。
44.图3b是本技术根据另一实施例示出的一种车辆的数据处理方法的流程图。
45.图3c是本技术根据另一实施例示出的一种车辆的数据处理方法的流程图。
46.图4是本技术根据另一实施例示出的一种车辆的数据处理方法的流程图。
47.图5是本技术根据一实施例示出的一种车辆的结构示意图。
具体实施方式
48.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
49.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
50.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
51.汽车的电子控制器单元(electronic control unit,ecu)又称汽车的“行车电脑”,它利用各种传感器和总线的数据来判断车辆状态和获取司机的意图,并通过执行器来控制汽车行驶以及实现其它各种行车功能。ecu通常包括处理器与内存,运行有嵌入式软件。在相关技术中,受限于处理器的性能与内存的容量,ecu往往难以实现复杂的行车功能,难以满足对车辆日益增长的功能需求。
52.为此,本技术提出了一种车辆的数据处理方法,应用于搭载在车辆的ecu中。该ecu用于执行行车功能,而行车功能则包括至少一个第一行车功能与至少一个第二行车功能。其中,第一行车功能在车辆中的运行需求高于第二行车功能的运行需求。本技术设计了ecu包括内存与外置存储器。可实现第一行车功能的至少一个第一程序存储在内存中;可实现第二行车功能的至少一个第二程序存储在外置存储器中。此外,ecu还包括处理器,处理器可以分别与内存以及外置存储器连接。如此上述方法可以由ecu中的处理器执行,具体包括如图1所示的步骤:
53.步骤110:接收来自其他ecu和/或外部设备的触发请求,所述触发请求指示所述ecu待执行的目标行车功能;
54.步骤120:若所述目标行车功能为所述第一行车功能,运行存储在所述内存中的所述目标行车功能对应的第一程序;
55.步骤130:若所述目标行车功能为所述第二行车功能,从所述外置存储器中将所述目标行车功能对应的第二程序加载到内存,并运行所述第二程序。
56.ecu可以实现多种行车功能,包括但不限于行车数据转发功能、雷达控制功能、ecu诊断功能、ota(over-the-air technology,空中下载技术)升级功能、车速检测功能、电量查询功能、续航里程查询功能等。根据行车功能对车辆的运行需求,可以将行车功能划分为运行需求高的第一行车功能与运行需求低的第二行车功能。其中,第一行车功能可以包括一个或一个以上,同样第二行车功能可以包括一个或一个以上。一个行车功能可以对应一个程序,也即通过运行一个程序可以实现行车功能。一个行车功能也可以对应于多个程序,也即通过运行多个程序后才能实现行车功能。
57.行车功能的运行需求可以与以下一种或多种参数正相关:
58.(1)行车功能相应的程序的运行频率。行车功能相应的程序的运行频率越高,该行车功能的运行需求越高。作为例子,周期性运行的行车功能的运行需求,高于偶尔运行的行
车功能的运行需求。例如,车辆通常搭载有诸如激光雷达等外部传感器来探测车辆周围环境是否存在障碍物。ecu需要周期性地对环境障碍物进行感知。又例如,当接收到ota升级指令时,ecu会运行升级程序以完成汽车系统和/或部分软件的升级,这样的升级程序是偶尔运行的。因此,升级功能的运行需求低于对环境障碍物感知功能的运行需求。
59.(2)行车功能的实时性需求。行车功能的实时性需求越高,其运行需求越高。例如,车内温度调节功能的实时性需求低于对环境障碍物感知功能的实时性需求,因此,车内温度调节功能的运行需求低于对环境障碍物感知功能的运行需求。
60.(3)行车功能与驾驶行为的相关度。行车功能与驾驶行为的相关度越高,该行车功能的运行需求越高。例如音乐播放功能与驾驶行为的相关度较低,而获取当前行驶速度功能与驾驶行为的相关度较高。因此音乐播放功能的运行需求低于行驶速度获取功能的运行需求。
61.为了丰富ecu所能实现的行车功能,本技术设计了ecu包括处理器、内存与外置存储器。其中,处理器分别与内存以及外置存储器连接。外置存储器可以包括一个或以上。在一些实施例中,如图2所示,ecu 200包括mcu 210和外置存储器220。其中,mcu(microcontroller unit,微控制单元)又称单片微型计算机(single chip microcomputer)或者单片机,是把中央处理器(central process unit;cpu)的频率与规格做适当缩减,并将内存(memory)等组件整合在单一芯片上,形成芯片级的计算机。如图2所示,mcu 210包括cpu 211与内存212。作为例子,上述一种车辆的数据处理方法,可以由cpu 211执行。内存212是mcu 210的内置存储器。mcu 210和外置存储器220是独立的芯片,且集成在同一电路板上。
62.不同运行需求的行车功能对应的程序存储在不同的存储设备中。可实现运行需求高的第一行车功能的第一程序存储在内存中,可实现运行需求低的第二行车功能的第二程序存储在外置存储器中。当接收到触发请求时,触发请求指示有ecu待执行的目标行车功能。根据触发请求可以确定从内存还是存储设备中获取相应的程序。
63.在一些实施例中,ecu可以预存有行车功能与对应程序的存储位置的映射关系。映射关系可以存储在内存和/或外置存储器中。ecu可以根据触发请求所指示的目标行车功能,从映射关系中确定目标行车功能对应的程序的目标存储位置,并从目标存储位置中获取以及运行相应的程序,以执行目标行车功能。
64.在另一些实施例中,触发请求还可以携带有目标行车功能对应的程序的存储位置信息。ecu基于存储位置信息,可以从目标存储位置中获取以及运行程序,以执行目标行车功能。
65.作为例子,存储位置信息可以指示目标行车功能对应的程序所在的存储器。同时,触发请求还携带有目标行车功能对应的程序名字,如此,ecu可以遍历存储位置信息所指示的存储器,根据触发请求携带的程序名字查询目标行车功能对应的程序。
66.作为另一个例子,存储位置信息可以指示目标行车功能对应的程序在内存或外置存储器中的存储地址。如此,ecu可以直接根据存储位置信息所指示的存储地址获取相应的程序。
67.若目标行车功能为第一行车功能时,可以直接从内存中读取第一程序来运行,避免反复从外置存储器中加载第一程序。若目标行车功能为第二行车功能时,从外置存储器
中加载第二程序至内存,并从内存中读取第二程序来运行,避免了对内存存储空间的占用。
68.如此,基于上述的设计,一方面,通过新增外置存储器来存储行车功能对应的程序,ecu所实现的行车功能不再受限于内存性能,丰富并扩展了ecu所能实现的行车功能。另一方面,根据不同行车功能的运行需求,将不同的行车功能对应的程序存储到不同存储设备中,能合理安排存储空间。同时,从软件升级的角度来说,技术人员可以根据实际需要随时在外置存储器中更换或追加新的行车功能对应的第二程序,而无需改写ecu的内存中已写入的嵌入式软件。使得在有限的硬件资源中实现无限的行车功能。
69.在第二程序运行结束后,为了节约内存的存储空间,在一些实施例中,可以将第二程序从内存中删除。在另一些实施例中,可以在满足以下一种或多种预设条件后,再将第二程序从内存中删除:
70.(1)内存的剩余可用容量小于或等于预设容量。
71.(2)内存的利用率大于或等于预设比值。
72.为了保证程序的运行,内存需要留有足够的容量以存放程序运行时产生的中间数据。因此当内存的剩余可用容量小于或等于预设容量,或者内存的利用率大于或等于预设比值时,为了不对程序运行造成影响,可以将第二程序从内存中删除。
73.(3)在预设时段内未接收到针对目标行车功能的触发请求。为了避免反复从外置存储器中加载第二程序,当第二程序完成运行后,可以等待一段预设时段。若预设时段内都未接收到针对该目标行车功能的触发请求,则出于节约内存存储空间的考虑,可以将第二程序从内存中删除。其中,预设时段可以由本领域技术人员根据实际需要确定。
74.(4)第二程序已运行预设时长。例如,第二程序可以是用于进行数据采集的程序。若车辆只需要一定数量的采集数据以进行后续计算处理,则可以设定第二程序的运行时长。当第二程序已经运行预设时长时,则将第二程序从内存中删除,以终止第二程序的运行。
75.程序可以使用不同的编程语言编写。不同编程语言对程序开发人员有不同的编写能力要求。然而,cpu往往只能识别某种特定编程语言(如c语言)所编写的程序中的指令,若程序使用其他编程语言编写,则在运行该程序前,需要先对程序进行转换处理。又或者说,cpu内部存储有cpu指令集,是对cpu运算进行优化、指导的硬程序。系统或程序的每一个指令,都需要cpu根据cpu指令集来完成。若程序编写时并未使用cpu指令集,则需要先对程序进行转换处理。
76.在一些实施例中,第一程序与第二程序均使用第一编程语言编写。其中,ecu能够识别使用第一编程语言编写的程序中的指令。也即ecu能够识别第一程序与第二程序中的指令,因此ecu可以直接运行第一程序与第二程序。作为例子,第一编程语言可以是c语言,利用c语言编写的程序中的指令为cpu指令集中的指令,因此ecu中的cpu可以直接执行。其中,第二程序可以是程序开发人员直接使用第一编程语言编写的,也可以是程序开发人员使用其他编程语言,如脚本语言编写后,再通过脚本解析器解析为由第一编程语言编写的第二程序。
77.如此,上述步骤130可以包括如图3a所示的步骤:
78.步骤310:若所述目标行车功能为所述第二行车功能,根据触发请求携带的第二程序的程序名字,遍历外置存储器,以检查第二程序是否存在;
79.若是,则执行步骤321;若否,则执行步骤322。
80.步骤321:分配内存,并从外置存储器中将第二程序加载到分配的内存;
81.步骤322:输出错误提示信息。
82.步骤340:运行内存中的第二程序;
83.步骤350:在第二程序运行结束后,将第二程序从内存中删除,以释放内存。
84.在一些实施例中,第一程序使用第一编程语言编写;第二程序使用第二编程语言编写。其中,ecu能够识别使用第一编程语言编写的程序中的指令,且无法识别使用第二编程语言编写的程序中的指令。也即ecu能够识别第一程序中的指令,且无法识别第二程序中的指令。因此ecu可以直接运行第一程序。其中,第二编程语言可以是脚本语言。如此,在运行第二程序之前,可以利用预存的第二编程语言与第一编程语言之间的指令转换关系,将第二程序中的指令转换为使用第一编程语言编写的指令。也即,将第二程序中的指令转换为cpu指令集中的指令,使得ecu中的cpu可以识别转换后的第二程序中的指令。
85.如此,上述步骤130可以包括如图3b所示的步骤:
86.步骤310:若所述目标行车功能为所述第二行车功能,根据触发请求携带的第二程序的程序名字,遍历外置存储器,以检查第二程序是否存在;
87.若是,则执行步骤321;若否,则执行步骤322。
88.步骤321:分配内存,并从外置存储器中将第二程序加载到分配的内存;
89.步骤322:输出错误提示信息。
90.步骤330:利用预存的第二编程语言与第一编程语言之间的指令转换关系,将第二程序中的指令转换为使用第一编程语言编写的指令;
91.步骤340:运行内存中的第二程序;
92.步骤350:在第二程序运行结束后,将第二程序从内存中删除,以释放内存。
93.在另一些实施例中,外置存储器存储有多个第二程序,且多个第二程序中的至少部分使用第一编程语言编写,另一部分使用第二语言编写。其中,ecu能够识别使用第一编程语言编写的程序中的指令,且无法识别使用第二编程语言编写的程序中的指令。如此,ecu在运行第二程序之前,还需要判断第二程序是否能够被识别。
94.在一些实施例中,可以通过第二程序中预设的标志位和/或程序文件的拓展名来判断。作为例子,第二程序中可以设有标志位用于标识第二程序是否使用第二编程语言编写。例如,若标志位为1,代表第二程序使用第一编程语言编写,因此能够被识别;若标志位为0,代表第二程序不是使用第一编程语言编写,而是使用第二编程语言编写,不能够被识别。作为例子,使用第一编程语言编写的第二程序,对应的程序文件为某一设定格式。根据程序文件的拓展名,可以确定程序文件的格式,从而判断相应的第二程序是否使用第一编程语言编写。因此,可以通过第二程序的程序文件的拓展名来判断第二程序是否使用第二编程语言编写。若第二程序的程序文件的拓展名为预设的拓展名,则判断第二程序使用第一编程语言编写,否则不是使用第一编程语言编写,而是使用第二编程语言编写。
95.当基于第二程序中预设的标志位和/或程序文件的拓展名,确定所述第二程序使用第二编程语言编写时,在运行第二程序之前,可以利用预存的第二编程语言与第一编程语言之间的指令转换关系,将第二程序中的指令转换为使用第一编程语言编写的指令。也即,将第二程序中的指令转换为cpu指令集中的指令,使得ecu中的cpu可以识别转换后的第
二程序中的指令。
96.如此,上述步骤130可以包括如图3c所示的步骤:
97.步骤310:若所述目标行车功能为所述第二行车功能,根据触发请求携带的第二程序的程序名字,遍历外置存储器,以检查第二程序是否存在;
98.若是,则执行步骤321;若否,则执行步骤322。
99.步骤321:分配内存,并从外置存储器中将第二程序加载到分配的内存;
100.步骤322:输出错误提示信息。
101.步骤331:基于第二程序中预设的标志位和/或程序文件的拓展名,确定所述第二程序是否使用第二编程语言编写;
102.若是,则执行步骤332;若否,则执行步骤340。
103.步骤332:利用预存的第二编程语言与第一编程语言之间的指令转换关系,将第二程序中的指令转换为使用第一编程语言编写的指令;
104.步骤340:运行内存中的第二程序;
105.步骤350:在第二程序运行结束后,将第二程序从内存中删除,以释放内存。
106.基于图3b与图3c记载的任一实施例,ecu中还安装有解析组件。例如,ecu的内存中还存储有解析组件。解析组件用于利用预存的第二编程语言与第一编程语言之间的指令转换关系,转换第二程序中的指令。其中,解析组件能够解析第二程序的指令复杂度与ecu的运行资源呈正相关关系。作为例子,解析组件可以是lua解析器、java虚拟机等。解析组件存储在内存中,内存存储空间的大小决定了所使用的解析组件的大小。因此,需要根据内存存储空间的大小选择相应的解析组件。若解析组件过小,其解析功能可能会较差,使得部分第二程序的指令无法通过解析组件进行转换。若解析组件过大,则占用较大的存储空间,影响第二程序的加载以及程序的运行。本领域技术人员可以根据内存存储空间的大小选择相应的脚本解析器作为解析组件,本技术在此不做限制。
107.上文提供了第二程序使用第一编程语言和/或第二编程语言编写时的不同实施例。以第一编程语言为c语言,第二编程语言为其他脚本语言为例,c语言比较复杂,对技术人员要求较高。相应地,其他脚本语言相对简单,比较容易掌握。因此,存储在外置存储器中的第二程序若使用其他脚本语言编写,且在加载到内存后再将第二程序中的指令转换为使用c语言编写的指令,能够有效降低程序开发与维护的成本,同时也降低了对编写第二程序的技术人员的要求。
108.在一些实施例中,本技术提供的一种车辆的数据处理方法,还包括如图4所示的步骤:
109.步骤410:在到达预设的更新周期后,根据所述第一程序的运行次数获取各个所述第一程序在预设时间段内的运行频率,以及根据所述第二程序的运行次数获取各个第二程序在预设时间段内的运行频率;
110.步骤420:基于所述运行频率更新各个所述第一程序与各个所述第二程序的存储位置,以使存储在所述内存中的第一程序的运行频率,高于存储在所述外置存储器的第二程序的运行频率。
111.其中,更新周期可以由本领域技术人员根据实际需要进行设置,例如一周、一个月等。各个第一程序与各个第二程序的运行次数可以存储在内存中,也可以存储在外置存储
器中。根据每个程序的运行次数,可以分别确定各个程序的运行频率。
112.随后,基于各个程序在更新周期中的运行频率,可以更新各个程序的存储位置。作为例子,可以根据内存存储空间的大小,按照运行频率从高至低选取若干程序作为第一程序存储在内存中。存储有第一程序后的内存的剩余可用空间大于预设阈值,使得内存有足够的剩余可用空间用于加载第二程序以及用于运行程序。其余的程序则作为第二程序存储在外置存储器中。
113.作为另一个例子,在分别确定各个第一程序与各个第二程序的运行频率后,判断是否存在第二程序的运行频率大于第一程序的运行频率。若是,则将运行频率小于第二程序运行频率的目标第一程序作为第二程序存储至外置存储器,并将运行频率大于目标第一程序运行频率的目标第二程序作为第一程序存储至内存中。
114.其中,若目标第二程序使用第二编程语言编写,则可以将目标第二程序通过上述实施例提供的指令转换方法进行转换后再存储到内存中。在本实施例中,通过定期更新各程序的存储位置,可以保证存储空间的合理安排。避免对运行频率高的程序反复从外置存储器中加载,以及避免运行频率低的程序对内存的占用。
115.关于触发请求的发送方,在一些实施例中,触发请求可以由外部设备向ecu发送。例如外部设备可以是ecu检测仪。当ecu检测仪与车辆连接后,可以向ecu发送检测请求,检测请求中携带ecu待执行的检测程序,使ecu从外置存储器中加载检测程序到内存并运行。
116.在一些实施例中,车辆搭载的多个ecu用于执行不同的行车功能。其中,部分ecu的cpu主频较高,cpu所包括的核心(core)较多,相应地ecu的内存容量也较大,这样的ecu性能较高。但相应地,一方面由于高性能cpu和大容量内存使用了比较新的芯片制程和封装工艺,芯片的安全等级较低,达不到车规高安全等级的要求,另一方面相比于高安全等级的芯片更容易发生故障,导致相应的行车功能失效,导致高性能ecu反而可靠程度较低。为了保证车辆正常行驶,一些关键的行车功能往往由安全等级较高的ecu执行。但对于安全等级较高的ecu,为了保证其可靠程度,不容易发生故障,使用的芯片往往会采用更成熟的芯片制程和封装工艺,但这样的ecu性能相对较低。因此,安全等级高的ecu,可靠程度较高,但ecu性能较差,只能实现较少的关键的行车功能。
117.而在本技术中,通过在ecu增添外置存储器,使得安全等级高的ecu能实现更多的行车功能。改进后的ecu安全等级高,稳定程度较好,同时还能实现更多的行车功能。如此,利用高安全等级ecu稳定程度高的特点,安全等级高、稳定程度高、但性能较低的ecu可以搭载有服务端,其他安全等级低、稳定程度低、但性能较高的ecu可以搭载有客户端。服务端与客户端基于some/ip协议通信。some/ip全称为scalable service-oriented middleware over ip,some/ip协议在osi七层网络结构中位于应用层,是一种面向服务的可伸缩的中间件。又或者,服务端与客户端基于some/ip协议与服务发现协议(service discovery,sd)通信。some/ip协议与服务发现协议简称some/ip-sd协议。
118.服务端用于提供服务,客户端用于调用服务。利用车载以太网提供的soa机制(service-oriented architecture,面向服务的结构),服务端可以将自身所能实现的行车功能通过some/ip协议或some/ip-sd协议在车身网络中广播。处于车身网络中的客户端在收到到发布的消息后,可以根据自身需求向服务端发送用于订阅行车功能的触发请求,使得服务端向订阅方提供相应的行车功能。
119.本技术提供了一种车辆的数据处理方法、ecu、车辆、及存储介质,设计了用于执行行车功能的ecu包括内存与外置存储器。并将不同运行需求的行车功能对应的程序存储到不同存储设备中。将可实现运行需求高的第一行车功能的第一程序存储在内存中,将可实现运行需求低的第二行车功能的第二程序存储在外置存储器中。此外,来自其他ecu和/或外部设备的触发请求指示有ecu待执行的目标行车功能。若目标行车功能为第一行车功能时,可以直接从内存中读取第一程序来运行,避免反复从外置存储器中加载第一程序。若目标行车功能为第二行车功能时,从外置存储器中加载第二程序至内存,避免了对内存存储空间的占用。一方面,通过新增外置存储器来存储行车功能对应的程序,ecu所实现的行车功能不再受限于内存性能,丰富了ecu所能实现的行车功能。另一方面,根据不同行车功能的运行需求,将不同的行车功能对应的程序存储到不同存储设备中,能合理安排存储空间。
120.基于上述任意实施例所述的一种车辆的数据处理方法,本技术还提供了如图2所示的一种ecu 200。该ecu 200搭载在车辆中,用于执行行车功能。行车功能包括至少一个第一行车功能和至少一个第二行车功能,且第一行车功能在所述车辆中的运行需求高于所述第二行车功能的运行需求。如图2所示,ecu200包括mcu 210和外置存储器220。其中,外置存储器220存储有可实现第二行车功能的至少一个第二程序;mcu 210包括处理器(如cpu 211)与内存212。内存212存储有可实现第一行车功能的至少一个第一程序,所述处理器被配置为执行上述任意一项所述的数据处理方法。
121.示例性的,所述处理器包括cpu11,所述cpu 211被配置为:
122.接收来自其他ecu和/或外部设备的触发请求,所述触发请求指示所述ecu待执行的目标行车功能;
123.若所述目标行车功能为所述第一行车功能,运行存储在所述内存中的所述目标行车功能对应的第一程序;
124.若所述目标行车功能为所述第二行车功能,从所述外置存储器中将所述目标行车功能对应的第二程序加载到内存,并运行所述第二程序。
125.当然,所述处理器也可以是其他类型的处理器,如数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)或者现成可编程门阵列(field-programmable gate array,fpga)等。
126.基于上述任意实施例所述的一种车辆的数据处理方法,本技术还提供了如图5所示的一种车辆的结构示意图。如图5,在硬件层面,该车辆包括车身;动力组件,用于驱动车辆运动;以及如图2所示的ecu。如图2所示,ecu 200包括mcu 210和外置存储器220。其中,外置存储器220存储有可实现所述第二行车功能的至少一个第二程序;mcu 210包括cpu(处理器)211与内存212。内存212存储有可实现第一行车功能的至少一个第一程序,cpu 211被配置为:
127.接收来自其他ecu和/或外部设备的触发请求,所述触发请求指示所述ecu待执行的目标行车功能;
128.若所述目标行车功能为所述第一行车功能,运行存储在所述内存中的所述目标行车功能对应的第一程序;
129.若所述目标行车功能为所述第二行车功能,从所述外置存储器中将所述目标行车功能对应的第二程序加载到内存,并运行所述第二程序。
130.基于上述任意实施例所述的一种车辆的数据处理方法,本技术还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的方法。
131.基于上述任意实施例所述的一种车辆的数据处理方法,本技术还提供了一种计算机存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时可用于执行上述任意实施例所述的方法。
132.上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
133.本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求指出。


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-10-1098-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2022-11-27 21:27:21

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论