车辆升级方法、装置、电子装置及存储介质与流程

文档序号:25785939发布日期:2021-07-09 10:44阅读:82来源:国知局
车辆升级方法、装置、电子装置及存储介质与流程

1.本申请涉及车辆软件升级领域,具体涉及一种车辆升级方法、装置、电子装置及存储介质。


背景技术:

2.伴随着现代汽车工业高速发展,汽车上的电子零件越来越多,软件复杂度越来越高,更新的频次也逐日增多,即使车辆量产之后,软件也存在迭代升级的需求。
3.然而,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有的fota(firmware over the air,fota)升级存在时间问题,由于车辆在行驶的时候是不允许进行升级的,所以通常只能在车辆不工作的情况下进行车辆升级,此时全车的控制器都是由蓄电池进行供电,蓄电池的电量一般只能支撑30

45分钟的升级工作,遇到数据量大的零件升级就会出现馈电的风险,影响用户体验。


技术实现要素:

4.鉴于以上问题,本申请提出一种车辆升级方法、车辆升级装置、电子装置、车辆及存储介质,以解决上述问题。
5.本申请实施例第一方面提供一种车辆升级方法,包括:
6.确定车辆控制器待升级模块;
7.获取所述待升级模块对应升级包的存储位置;
8.压缩所述升级包;
9.确认车辆处于工作模式,控制应用程序将压缩后的升级包从存储位置传输至所述车辆控制器的预留区;
10.确认车辆进入升级模式,解压缩所述升级包至待升级模块的目标区域,以升级所述待升级模块。
11.如此,通过应用程序将升级包传输至预留区,车辆升级过程的数据包传输和车辆升级分别由不同的程序执行,且数据包传输可在车辆处于工作模式时执行,以减少升级模式时车辆升级占用的时间,提升升级效率。
12.在一些实施例中,所述压缩所述升级包之前,所述车辆升级方法还包括:
13.依据所述待升级模块确定升级包的大小;
14.判断所述升级包的大小是否大于预设值;
15.若为是,则压缩所述升级包。
16.如此,升级包的大小大于预设值,可使用本申请提供的升级方法,通过限定本申请使用范围,以体现本方法的优点。
17.在一些实施例中,所述确认车辆处于工作模式,控制应用程序将压缩后的升级包从存储位置传输至控制器的预留区,具体包括:
18.判断所述车辆是否进入工作模式;
19.若为是,则检测控制器预留区的标识位以判断所述预留区的状态;
20.若预留区处于擦除状态,则控制所述应用程序将压缩后的数据传输至所述车辆控制器预留区;
21.若预留区处于数据传输状态,获取所述预留区中升级包的断点位置;
22.依据断点位置使所述应用程序向所述车辆控制器预留区续传所述升级包。
23.如此,通过检测预留区的状态,以调整应用程序传输升级包,并将断点续传应用至升级包传输中,以使升级包的传输可适用于车辆的不同行驶状态。
24.在一些实施例中,所述车辆方法还包括:
25.校验所述预留区内升级包是否完整;
26.若为是,更新所述标识位,以指示所述升级包传输完成;
27.若为否,擦除所述预留区,以使所述应用程序重传所述升级包。
28.如此,通过校验预留区的升级包,以保证预留区中升级包的完整性。
29.在一些实施例中,所述解压缩所述升级包至待升级模块的目标区域,具体包括:
30.控制所述待升级模块进入刷新会话模式;
31.基于待升级模块提取所述预留区内对应的升级包;
32.解压缩所述升级包;
33.擦除所述待升级模块;
34.将所述升级包写入所述待升级模块。
35.如此,通过bootloader程序实现升级包写入升级模块,完成控制器的升级。
36.在一些实施例中,所述确定车辆控制器待升级模块,具体包括:
37.向服务器发送查询信息;
38.接收所述服务器发送的反馈信息,所述反馈信息携带控制器的最新软件版本,所述车辆控制器包括多个模块;
39.判断所述车辆的软件版本与所述最新软件版本是否匹配;
40.确定不匹配的软件版本对应的模块,所述模块即为待升级模块。
41.如此,通过与服务器交互以确定待升级模块。
42.在一些实施例中,所述车辆升级方法还包括:
43.获取多个模块之间的关联关系;
44.依据关联关系调整所述待升级模块。
45.如此,通过多个模块之间的关联关系调整所述待升级模块,以避免漏检待升级的模块。
46.本申请实施例第二方面一种车辆升级装置,包括:
47.确定模块,用于确定车辆控制器待升级模块;
48.获取模块,用于获取所述待升级模块对应升级包的存储位置;
49.压缩模块,用于压缩所述升级包;
50.应用程序模块,确认车辆处于工作模式,用于控制应用程序将压缩后的升级包从存储位置传输至所述车辆控制器的预留区;
51.固件加载模块,确认车辆进入升级模式,用于解压缩所述升级包至待升级模块的目标区域,以升级所述待升级模块。
52.本申请实施例第三方面还提供一种电子装置,所述电子装置包括:
53.存储器、处理器和通讯总线,所述存储器通过所述通讯总线与所述处理器通信连接;以及所述存储器中存储有多个程序模块,所述多个程序模块由所述处理器加载并执行如上所述的车辆升级方法。
54.本申请实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述的车辆升级方法。
55.本申请第二方面至第四方面的所带来的技术效果可参见上述方法部分各涉及的方法相关的描述,此处不再赘述。
附图说明
56.图1是本申请一实施例所提供的车辆升级方法的流程示意图。
57.图2是本申请一实施例所提供的车辆升级的网络环境示意图。
58.图3是本申请一实施例所提供的升级包传输的流程示意图。
59.图4是本申请一实施例所提供的车辆升级装置的功能模块图。
60.图5是本申请一实施例所提供的电子装置的架构示意图。
具体实施方式
61.为了能够更清楚地理解本申请的所述目的、特征和优点,下面结合附图和具体实施例对本申请进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本申请,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
62.除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
63.请参阅图1,图1为本申请一个实施例提供的车辆升级方法的流程示意图。根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。为了便于说明,仅示出了与本申请实施例相关的部分。
64.本申请实施例的车辆升级方法应用在车辆中。对于需要进行升级的车辆,可以直接在所述车辆上集成本申请的方法所提供的车辆升级功能,或者安装用于实现本申请的车辆升级方法的客户端。再如,本申请所提供的车辆升级方法还可以以软件开发工具包(software development kit,sdk)的形式运行在所述车辆上,以sdk的形式提供车辆升级功能的接口,处理器或其他设备通过提供的接口即可实现车辆升级功能。
65.所述车辆升级方法包括以下步骤。
66.步骤s1、确定车辆控制器待升级模块。
67.具体地,车辆控制器包括多个模块,车辆升级包括整体升级和部分模块的升级,因此,升级流程进行之前需要确定车辆的那个模块需要升级。
68.其中,步骤s1具体包括:
69.向服务器发送查询信息;
70.接收所述服务器发送的反馈信息,所述反馈信息携带控制器的最新软件版本,所
述车辆控制器包括多个模块;例如显示模块、声音模块等。
71.判断所述车辆的软件版本与所述最新软件版本是否匹配;
72.确定不匹配的软件版本对应的模块,所述模块即为待升级模块。
73.本申请一实施例中,控制器中多个模块存在关联关系,例如显示模块与拍摄模块,若显示模块需要升级,则拍摄模块也需要相应升级,以便于显示模块相适配。
74.具体地,所述车辆升级方法还包括:
75.获取多个模块之间的关联关系;
76.依据关联关系调整所述待升级模块。
77.在一实施方式中,服务器向车辆发送查询消息,以获取车辆软件版本,比较最新的软件版本与车辆软件版本,若车辆软件版本不是最新版本,则服务器向车辆发送升级指令,升级指令携带车辆的待升级模块。
78.在另一实施例中,车辆向服务器发送查询信息,以获取车辆软件最新版本,对比车辆的软件版本,以确定车辆的待升级的模块。
79.步骤s2、获取待升级模块对应升级包的存储位置。
80.可选地,升级包的存储位置可为预设在车辆存储区的一个位置信息,车辆可依据该位置信息获取升级版本所在的位置;
81.可选地,服务器向车辆周期推送升级包的位置信息。
82.步骤s3、压缩所述升级包。
83.可选地,车辆控制器接收升级包的过程,同时对升级包进行压缩。
84.可选地,车辆控制器向服务器发送压缩指令,以使升级包存储的服务器依据控制器的压缩指令对数据包进行压缩。
85.如此,通过压缩升级包,即可减少升级包的传输时间,又可节省升级包的存储空间。
86.可选地,本申请一实施例中,步骤s3之前,所述定位方法还包括:
87.依据所述待升级模块确定升级包的大小;
88.判断所述升级包的大小是否大于预设值;
89.若为是,则压缩所述升级包。
90.若为否,则使所述车辆进入普通升级模式。
91.其中普通升级模式,即为车辆现有的升级模式,所有车辆升级相关的过程,包括目标数据擦除,数据的传输,数据的写入,数据的校验,物流的写入等,均在bootloader中完成。
92.本申请提供的车辆升级方法主要应用于升级模块较大,即升级包较大的升级过程。通过本申请使车辆升级过程的升级包传输和升级包写入在不同的模式进行,即升级包传输在车辆处于工作模式时进行,升级包写入在车辆处于升级模式时进行,以减少车辆处于升级模式的时间,提升升级效率。但是如果待升级的模块较小,例如,升级包小于512k,则可采用普通的升级模式进行升级。可以理解,以上仅以现有的升级模式做比较,本申请提供的升级方法也可应用于升级包较小的升级。
93.步骤s4、确认车辆处于工作模式,控制应用程序将升级包从存储位置传输至控制器的预留区。
94.通过确认车辆处于工作模式,以使升级包从存储位置传输至控制器的预留区的过程中不影响车辆蓄电池的电量。
95.具体地,当车辆的发动机处于工作状态时,通过应用程序传输升级包。如此,应用程序可在车辆处于工作模式时传输数据包,因此升级包从服务器传输至车辆控制器时,用户无感知,且不影响车辆的正常运行。而现有技术中,升级包的传输由控制器的总线执行,总线传输数据较慢且总线传输数据时车辆需处于非工作模式进行。
96.请参见图2,其中预留区为控制器中一个预留的存储空间,主要用于提供新功能的升级所需要的flash存储空间,该存储空间不参与控制器的正常使用,该存储空间的大小为控制器的存储空间的30%~40%,本申请将该存储空间作为升级包的临时存储,通过应用程序将升级包传输至该预留区,以避免升级包传输过程影响车辆的正常运营,从而可使车辆在行驶过程中进行升级包的传输,即不需要增加额外的配置,也可实现升级包的临时存储。
97.车辆控制器包括应用程序和bootloader程序,应用程序是车辆正常使用过程中执行的程序,执行车辆控制器的正常功能,bootloader程序用于正常应用程序需要更新和升级。两个程序在同一个微控制单元(microcontroller unit,mcu)中,本申请提供的车辆升级方法:将升级包的下载传输由应用程序执行,升级包的写入过程仍由bootloader程序执行,其中升级包的写入包括升级包的解压缩、升级包的写入及升级的校验。
98.步骤s5、确认车辆进入升级模式,解压缩所述升级包至待升级模块的目标区域,以升级所述待升级模块。
99.其中升级模式为车辆处于上电状态,且所述车辆处于无任务状态。
100.具体地,通过将预留区的升级包解压缩并写入待升级模块的目标区域,具体包括,目标区域的擦除、写入、校验及物流数据的写入,以实现待升级模块的升级。该升级过程与现有的bootloader程序升级流程相同,因此,这里不再赘述,不同之处在于,bootloader程序需要执行预留区内的升级包提取的解压缩。
101.如此,本申请将升级包的传输与升级包的写入分别在车辆的不同模式进行,如此,车辆处于工作模式时传输升级包,仅升级包的写入过程使用车辆的蓄电池的电量,且整个升级过程中数据包的传输占整个升级过程的70%~80%的时间,该时间均在车辆正常工作时执行,用户无感知,升级包写入过程时间较短,进而减少了升级模式所占用的时间,以防止因升级导致车辆的蓄电池馈电。
102.本申请一实施例中,请参见图3,步骤s4具体包括:
103.步骤s41:判断所述车辆是否进入工作模式。
104.其中,车辆的工作模式可通过判断发动机是否启动或车辆的档位是否处于“d”档等方法确定。
105.若为否,执行步骤s46:不执行数据传输操作,即不执行升级包的传输。
106.若为是,则执行步骤s42:检测控制器预留区的标识位以判断所述预留区的状态。
107.具体地,应用程序可采用发送请求得到响应后进入数据传输模式,接收到数据传输请求时,检测预留区的标识为位是否为全ff,若为是,则表示预留区刚执行过数据擦除,预留区处于擦除状态,则应用程序可执行第一次数据传输。若为否,且存在非全ff的数据,则预留区处于数据传输状态。
108.步骤s43:若预留区处于擦除状态,则控制所述应用程序将压缩后的数据传输至所述车辆控制器预留区。
109.具体地,预留区已实现擦除操作且没有数据包存储,可控制程序执行第一次传输数据,即将升级包传输至该预留区。
110.步骤s44:若预留区处于数据传输状态,获取所述预留区中升级包的断点位置。
111.具体地,预留区存在升级包,但是升级包未传输完成,获取升级包最新传输断点,应用程序依据该断点位置继续向预留区传输升级包,以实现断点续传。
112.步骤s45:依据断点位置使所述应用程序向所述车辆控制器预留区续传所述升级包。
113.具体地,通过判断预留区中的状态执行不同的数据传输,若为第一次数据传输,则将压缩后的数据直接传输,若为非第一次传输,则需确定上一次数据传输的断点,依据断点传输后续数据,以实现断点续传。如此,通过断点续传以使升级包的传输可适应不同的车辆行驶状态。
114.可选地,还可通过标识位判断车辆是否执行擦除操作;若为否,则擦除预留区,以使预留区处于擦除状态,以便应用程序将数据传输至预留区。
115.进一步地,所述车辆升级方法还包括:
116.校验所述预留区内升级包是否完整;
117.若为是,更新所述标识位,以指示所述升级包传输完成;
118.若为否,擦除所述预留区,以使所述应用程序重传所述升级包。
119.具体地,数据传输完成之后,执行数据校验,例如,通过crc校验数据,若校验数据正确,则设置标志位表示升级包已完成传输;若校验失败,则擦除预留区,并重新传输升级包。
120.如此,通过校验数据包,以保证预留区内数据包的完整性。
121.本申请一实施例中,步骤s5具体包括:
122.控制所述待升级模块进入刷新会话模式;
123.基于待升级模块提取所述预留区内对应的升级包;
124.解压所述升级包;
125.擦除所述待升级模块;
126.将所述升级包写入所述待升级模块。
127.具体地,控制所述待升级模块进入刷新会话模式,以bootloader负责车辆升级的后续步骤,即bootloader程序执行升级包的提取和解压缩,并擦除待升级模块,将解压缩后的升级包写入待升级模块中,以完成待升级模块的升级。
128.如此,bootloader仅执行车辆升级过程中的数据的写入,数据的校验,物流的写入等,目标数据擦除及数据的传输等过程由应用程序执行,以将升级包的传输和升级包的写入由不同的程序在不同的车辆模式执行,从而减少升级模式状态下车辆升级的时间,提升车辆升级效率。
129.图1详细介绍了本申请的车辆升级方法,通过所述方法,能够实现车辆升级。下面结合图4和图5,对实现所述车辆升级装置的功能模块以及硬件装置架构进行介绍。应上述内容可知,所述实施例仅为说明之用,在本申请范围上并不受此结构的限制。
130.图4为本申请一实施方式提供的车辆升级装置的功能模块图。
131.在一些实施方式中,所述车辆升级装置100可以包括多个由程序代码段所组成的功能模块。所述车辆升级装置100中的各个程序段的程序代码可以存储于电子装置10的存储器中,并由电子装置10中的至少一个处理器所执行,以车辆升级的功能。
132.请参考图4,本实施方式中,车辆升级装置100根据其所执行的功能,可以被划分为多个功能模块,所述各个功能模块用于执行图1对应实施方式中的各个步骤,以实现自动泊车的功能。本实施方式中,所述车辆升级装置100的功能模块包括:确定模块101、获取模块102、压缩模块103、应用程序模块104及固件加载模块105。
133.确定模块101,用于确定车辆控制器待升级模块;
134.获取模块102,用于获取所述待升级模块对应升级包的存储位置;
135.压缩模块103,用于压缩所述升级包;
136.应用程序模块104,确认车辆处于工作模式,用于控制应用程序将压缩后的升级包从存储位置传输至所述车辆控制器的预留区;
137.固件加载模块105,确认车辆进入升级模式,用于解压缩所述升级包至待升级模块的目标区域,以升级所述待升级模块。
138.在一实施例中,确定模块101还用于:
139.依据所述待升级模块确定升级包的大小;
140.判断所述升级包的大小是否大于预设值;
141.若为是,则压缩所述升级包。
142.在一实施例中,应用程序模块104进一步用于:
143.判断所述车辆是否进入工作模式;
144.若为是,则检测控制器预留区的标识位以判断所述预留区的状态;
145.若预留区处于擦除状态,则控制所述应用程序将压缩后的数据传输至所述车辆控制器预留区;
146.若预留区处于数据传输状态,获取所述预留区中升级包的断点位置;
147.依据断点位置使所述应用程序向所述车辆控制器预留区续传所述升级包。
148.在一实施例中,应用程序模块104还用于:
149.校验所述预留区内升级包是否完整;
150.若为是,更新所述标识位,以指示所述升级包传输完成;
151.若为否,擦除所述预留区,以使所述应用程序重传所述升级包。
152.在一实施例中,固件加载模块105还用于:
153.控制所述待升级模块进入刷新会话模式;
154.基于待升级模块提取所述预留区内对应的升级包;
155.解压缩所述升级包;
156.擦除所述待升级模块;
157.将所述升级包写入所述待升级模块。
158.图5为本申请一实施例所提供的电子装置的架构示意图。所述电子装置10包括存储器11、处理器12和通讯总线13,所述存储器11通过所述通讯总线13与所述处理器12通信连接。
159.所述电子装置10还包括存储在所述存储器11中并可在所述处理器12上运行的计算机程序14,例如车辆升级控制的程序。
160.所述处理器12执行所述计算机程序14时实现所述方法实施例中车辆升级方法的步骤。或者,所述处理器12执行所述计算机程序14实现所述系统实施例中各模块/单元的功能。
161.示例性的,所述计算机程序14可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器11中,并由所述处理器12执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,所述指令段用于描述所述计算机程序14在所述电子装置10中的执行过程。例如,所述计算机程序14可以被分割成图4中的模块101

105。
162.可以理解地,所述图5仅仅是电子装置10的示例,并不构成对电子装置10的限定,电子装置10可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子装置10还可以包括输入设备等。
163.处理器12可以是中央处理单元(central processing unit,cpu),还可以包括其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是任何常规的处理器等,所述处理器12是所述电子装置10的控制中心,利用各种接口和线路连接整个电子装置10的各个部分。
164.所述存储器11可用于存储所述计算机程序14和/或模块/单元,所述处理器12通过运行或执行存储在所述存储器11内的计算机程序和/或模块/单元,以及调用存储在存储器11内的数据,实现所述电子装置10的各种功能。存储器11可以包括外部存储介质,也可以包括内存。此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
165.所述电子装置10集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现所述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现所述各个方法实施例的步骤。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
166.最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1