一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于汽车控制器的应用软件OTA升级处理方法与流程

2023-08-18 09:13:38 来源:中国专利 TAG:

一种用于汽车控制器的应用软件ota升级处理方法
技术领域
1.本发明涉及汽车电子的技术领域,尤其涉及一种用于汽车控制器的应用软件ota升级处理方法。


背景技术:

2.ota(over-the-air technology,空间下载技术)升级是android系统提供的标准软件升级方式,是通过移动通信网络进行远程管理的技术。现有汽车电子设备的快速发展,对汽车各种控制器的软件进行ota远程升级的应用越来越广泛,可以高效解决因软件带来的功能、安全相关方面问题,实现功能迭代、提升客户体验和满意度。在升级汽车动力系统、汽车底盘系统等与车辆行驶强相关的控制部件时,如何保证升级的成功率,降低升级时长,是ota升级的关键。当前对动力及驾驶相关控制部件进行升级,可能会出现升级失败,一旦升级失败则整个任务下关联控制部件都需要进行回退处理,增加升级时长,影响设备使用的安全性。因此,如何安全地对汽车控制部件的应用软件进行ota升级处理,具有重要的意义。


技术实现要素:

3.本发明提供一种用于汽车控制器的应用软件ota升级处理方法,解决现有汽车控制器应用软件进行远程升级存在升级时长长和失败风险的问题,增加汽车电子系统的安全性,提高汽车电子系统升级的成功率。
4.为实现以上目的,本发明提供以下技术方案:
5.一种用于汽车控制器的应用软件ota升级处理方法,包括:
6.在控制器中设置启动分区、第一运行分区和第二运行分区,所述第一运行分区和所述第二运行分区为控制器的文件下载区域,并互为备份,使运行分区呈双备份状态;
7.所述第一运行分区和所述第二运行分区均设有相同的应用软件,在ota升级时,对所述第一运行分区和所述第二运行分区进行应用软件的更新刷写;
8.所述启动分区中设有允许运行分区切换和触发分区切换的控制程序,以限制运行分区切换动作的自动激活,防止发生非预期的自动切区动作,并在多关联控制器的软件升级失败时不进行再次回退升级,以缩短ota升级时长。
9.优选的,还包括:
10.在第一运行分区处于运行状态,且第二运行分区处于刷写状态时,如果启动分区中的控制程序没有下发阻止自动切区指令;
11.则刷写完成进行编程依赖性检查后,重启进入启动分区中的bootloader程序,以引导系统进入第二运行分区启动,使第二运行分区处于运行状态;
12.如果bootloader程序引导系统进入第二运行分区失败,则bootloader程序引导系统进入第一运行分区启动。
13.优选的,还包括:
14.在第一运行分区处于运行状态,且第二运行分区处于刷写状态时,如果启动分区中的控制程序在数据传输完成后下发阻止自动切区指令;
15.则刷写完成进行编程依赖性检查后,重启进入启动分区中的bootloader程序,以引导系统进入第一运行分区启动,使第一运行分区处于运行状态;
16.在接收到切区指令时,bootloader程序引导系统进入所述第二运行分区启动,使所述第二运行分区处于运行状态;
17.如果bootloader程序引导系统进入第二运行分区失败,则bootloader程序引导系统进入第一运行分区启动。
18.优选的,还包括:
19.在编程依赖性检查成功后,更新启动分区标志位,如果启动分区标志位指向所述第一运行分区,则bootloader程序引导系统进入所述第一运行分区启动;
20.如果启动分区标志位指向所述第二运行分区,则bootloader程序引导系统进入所述第二运行分区启动。
21.优选的,还包括:
22.在接收到编程依赖性检查并能够成功响应,依赖禁止切区状态位判定是否需要执行自动更新启动标识位的动作;
23.当状态位=true时,须保持启动分区标识位当前的值,并重置状态位=false;
24.当状态位=false时,须将启动分区标识位值置为刷新区。
25.优选的,还包括:
26.设置一个禁止自动切区的状态位,当状态位=false时,表示未开启阻止自动切区;
27.当状态位=true时,表示开启阻止自动切区,状态位的默认值为false且允许掉电丢失;
28.当接收到禁止切区指令并能够成功响应后,状态位须置为true,否则保持为false。
29.优选的,还包括:
30.通过上位机读取待升级控制器的硬件识别信息与上位机中设置车型的目标硬件信息是否相一致;如果一致,则进入刷写程序;
31.读取控制器当前运行分区信息及应用软件的版本信息,并选择对应的版本文件进行刷写。
32.优选的,还包括:
33.在接收到分区切换指令后,切换当前激活的分区,并在复位后生效;
34.查询分区切换结果,如果超过设定时间阈值内未完成切换,则本次切换流程;
35.如果在复位后读取到的程序分区信息以及软件版本信息和复位前一样,则切换失败。
36.优选的,还包括:
37.通过ota对车辆各网段并行升级,由ota系统统一管理各网段升级情况;
38.判断各关联控制器升级是否都成功,如果是,则切换到已完成刷新的分区,并确定完成切区,否则切换到原分区。
39.优选的,还包括:
40.在刷写文件或刷写程序完成下载后,需发送阻止切区请求避免意外的运行分区自动切换动作,以保证当前运行分区应用程序仍然有效和可靠,仅当再次接收到切区命令后才允许运行分区倒换。
41.本发明提供一种用于汽车控制器的应用软件ota升级处理方法,在控制器中设置双备份运行分区,在启动分区中设有允许运行分区切换和触发分区切换的控制程序,并在多关联控制器的软件升级失败时不进行再次回退升级,以缩短ota升级时长。解决现有汽车控制器应用软件进行远程升级存在升级时长长和失败风险的问题,增加汽车电子系统的安全性,提高汽车电子系统升级的成功率。
附图说明
42.为了更清楚地说明本发明的具体实施例,下面将对实施例中所需要使用的附图作简单地介绍。
43.图1:是本发明提供的一种用于汽车控制器的应用软件ota升级处理方法示意图。
44.图2是本发明实施例提供的未发禁止自动切区的分区切换示意图。
45.图3是本发明实施例提供的下发禁止自动切区的分区切换示意图。
46.图4是本发明实施例提供的ota系统管理流程示意图。
具体实施方式
47.为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
48.针对当前汽车电子的平台化和模块化的发展,出现采用的电子器件的硬件配制和软件配置不断更新升级,常出现远程升级时长长和失败风险的问题。本发明提供一种用于汽车控制器的应用软件ota升级处理方法,解决现有汽车控制器应用软件进行远程升级存在升级时长长和失败风险的问题,增加汽车电子系统的安全性,提高汽车电子系统升级的成功率。
49.如图1所示,一种用于汽车控制器的应用软件ota升级处理方法,包括:
50.s1:在控制器中设置启动分区、第一运行分区和第二运行分区,所述第一运行分区和所述第二运行分区为控制器的文件下载区域,并互为备份,使运行分区呈双备份状态。
51.s2:所述第一运行分区和所述第二运行分区均设有相同的应用软件,在ota升级时,对所述第一运行分区和所述第二运行分区进行应用软件的更新刷写。
52.s3:所述启动分区中设有允许运行分区切换和触发分区切换的控制程序,以限制运行分区切换动作的自动激活,防止发生非预期的自动切区动作,并在多关联控制器的软件升级失败时不进行再次回退升级,以缩短ota升级时长。
53.具体地,在一实施例中,由ota系统上位机处理零部件的分区切换,包括双备份ecu运行分区阻止切换例程;双备份ecu运行分区切换和激活流程。限制ecu做自动切区激活的动作,防止发生非预期的自动切区动作。通过以上处理,在app运行时对备份分区进行刷写,a/b区零部件永久在线,同时确保了ota升级的安全和稳定;在ota系统多关联ecu升级失败时,可避免再次回退升级,缩短ota升级时长。
54.双备份的ecu存在两个文件下载区域,分为

a区



b区

。a、b区的刷写文件可以是不同的版本文件,也可以是相同的版本文件。双备份ecu属于硬件双分区的(也叫物理双分区),a、b区的刷写文件可以是相同的版本文件;双备份ecu属于软件双分区的(也叫逻辑双分区),a、b区的刷写文件可以是不同的版本文件。双备份ecu刷写a/b运行区过程中,需支持控制ecu是否允许运行分区倒换和触发分区倒换。
55.双备份ecu运行分区阻止切换例程:为了支持可灵活配置车辆刷写策略,双备份ecu在刷写文件或刷写程序完成下载后,需保证当前运行分区应用程序仍然有效和可靠,会发送阻止切区请求避免意外的运行分区自动切换动作,仅当再次接收到切区命令后能够允许部件的运行分区倒换。
56.双备份ecu运行分区切换流程:双备份ecu支持运行分区切换流程,用于将程序运行分区从当前运行分区切换的另外的分区,在复位后生效。比如当前是运行在a分区,经过此切换流程,ecu复位后应该运行在b分区,反之亦然。如果切换失败,ecu应该保持在切换前的可运行分区运行,即a分区切换到b分区切换失败时,最终运行分区是a分区软件版本。
57.该方法还包括:
58.在第一运行分区处于运行状态,且第二运行分区处于刷写状态时,如果启动分区中的控制程序没有下发阻止自动切区指令,则刷写完成进行编程依赖性检查后,重启进入启动分区中的bootloader程序,以引导系统进入第二运行分区启动,使第二运行分区处于运行状态。
59.如果bootloader程序引导系统进入第二运行分区失败,则bootloader程序引导系统进入第一运行分区启动。
60.在实际应用中,双备份控制器刷写过程中未下发阻止自动切区时,运行分区倒换过程应如图2所示,步骤如下:
61.1)运行区a刷写运行区b,过程没有下发阻止自动切区命令(如3101dd 0f);
62.2)刷写完成并完成编程依赖性检查;
63.3)重启进入bootloader;
64.4)bootloader引导系统启动进入运行分区b;
65.5)步骤4)失败时需回退至bootloader;
66.6)bootloader引导系统回滚至之前的运行分区a;
67.该方法还包括:
68.在第一运行分区处于运行状态,且第二运行分区处于刷写状态时,如果启动分区中的控制程序在数据传输完成后下发阻止自动切区指令,则刷写完成进行编程依赖性检查后,重启进入启动分区中的bootloader程序,以引导系统进入第一运行分区启动,使第一运行分区处于运行状态;
69.在接收到切区指令时,bootloader程序引导系统进入所述第二运行分区启动,使所述第二运行分区处于运行状态;
70.如果bootloader程序引导系统进入第二运行分区失败,则bootloader程序引导系统进入第一运行分区启动。
71.在实际应用中,双备份控制器刷写过程中下发阻止自动切区时,运行分区倒换过程应如图3所示,步骤如下:
72.1)运行区a刷写运行区b,数据传输完成后下发阻止自动切区命令(如31 01 dd 0f);
73.2)刷写完成并完成编程依赖性检查;
74.3)重启进入bootloader;
75.4)bootloader引导系统启动进入运行分区a;
76.5)切区流程(如3101dd 04命令);
77.6)bootloader引导系统启动进入运行分区b;
78.7)步骤6)失败时需回退至bootloader;
79.8)bootloader引导系统回滚至之前的运行分区a;
80.该方法还包括:在编程依赖性检查成功后,更新启动分区标志位,如果启动分区标志位指向所述第一运行分区,则bootloader程序引导系统进入所述第一运行分区启动。如果启动分区标志位指向所述第二运行分区,则bootloader程序引导系统进入所述第二运行分区启动。
81.该方法还包括:在接收到编程依赖性检查并能够成功响应,依赖禁止切区状态位判定是否需要执行自动更新启动标识位的动作;当状态位=true时,须保持启动分区标识位当前的值,并重置状态位=false;当状态位=false时,须将启动分区标识位值置为刷新区。
82.该方法还包括:设置一个禁止自动切区的状态位,当状态位=false时,表示未开启阻止自动切区;当状态位=true时,表示开启阻止自动切区,状态位的默认值为false且允许掉电丢失;当接收到禁止切区指令并能够成功响应后,状态位须置为true,否则保持为false。
83.具体地,双备份ecu禁止自动切区和恢复自动切区实现方法。
84.1)自动切区动作,为ecu在某个条件满足后自动更新启动分区标志位。如编程依赖性检查成功后,ecu即可认为刷写成功即可更新启动分区标志位,此时自动切区动作包含在编程依赖性检查步骤中。
85.当ecu接收到编程依赖性检查并能够成功响应,依赖禁止切区状态位判定是否需要执行自动更新启动标识位的动作。当状态位=true时,须保持启动分区标识位当前的值,并重置状态位=false;当状态位=false时,须将启动分区标识位值置为刷新区。
86.2)ecu应维护一个禁止自动切区的状态位。当状态位=false时,表示ecu未开启阻止自动切区;当状态位=true时,表示ecu开启阻止自动切区。状态位的默认值为false且允许掉电丢失。
87.接收禁止切区指令:当ecu接收到禁止切区指令并能够成功响应后,状态位须置为true,否则保持为false。
88.3)ecu应维护一个启动分区标识位。当标识位=a,表示下次重启ecu需要在a分区运行;当标识位=b,表示下次重启ecu需要在b分区运行。启动分区标识位应存储在非易失性存储区,其值不允许掉电丢失。
89.接收切区指令:强制切区不依赖于禁止切区状态值的判定,可以强制切换启动分区标识位为对区。如果ecu能够成功响应,则需将启动分区标识位更新至对分区,否则该标识位须保持为当前运行分区。
90.该方法还包括:
91.通过上位机读取待升级控制器的硬件识别信息与上位机中设置车型的目标硬件信息是否相一致;如果一致,则进入刷写程序。
92.读取控制器当前运行分区信息及应用软件的版本信息,并选择对应的版本文件进行刷写。
93.在实际应用中,在一实施例中,根据读取到的当前运行分区信息,选择对应的版本文件进行刷写。如果ecu返回a,tester将选择b版本文件进行刷写,如果ecu返回b,tester将选择a版本文件进行刷写。如果ecu不支持此步骤,返回否定应答,上位机取通用版本文件进行刷写。
94.该方法还包括:
95.在接收到分区切换指令后,切换当前激活的分区,并在复位后生效;
96.查询分区切换结果,如果超过设定时间阈值内未完成切换,则本次切换流程;
97.如果在复位后读取到的程序分区信息以及软件版本信息和复位前一样,则切换失败。
98.在实际应用中,ecu在分区版本切换过程中,在接收到此例程消息后,须按照当前版本切换实际进展进行响应。上位机以1s周期调用此服务,查询版本切换结果。直到获取到最终的结果状态。ecu可能由于故障原因一直无法完成版本切换,若超时时间30分钟没有完成或者结束,上位机终止本次版本切换流程。取复位后的程序软件版本信息和当前运行的分区信息用于判断此次版本切换流程的最终结果是否成功。如果在复位后读取到的程序分区信息以及软件版本信息和复位前一样,则切换失败。
99.如图4所示,该方法还包括:
100.通过ota对车辆各网段并行升级,由ota系统统一管理各网段升级情况;判断各关联控制器升级是否都成功,如果是,则切换到已完成刷新的分区,并确定完成切区,否则切换到原分区。
101.该方法还包括:在刷写文件或刷写程序完成下载后,需发送阻止切区请求避免意外的运行分区自动切换动作,以保证当前运行分区应用程序仍然有效和可靠,仅当再次接收到切区命令后才允许运行分区倒换。
102.可见,本发明提供一种用于汽车控制器的应用软件ota升级处理方法,在控制器中设置双备份运行分区,在启动分区中设有允许运行分区切换和触发分区切换的控制程序,并在多关联控制器的软件升级失败时不进行再次回退升级,以缩短ota升级时长。解决现有汽车控制器应用软件进行远程升级存在升级时长长和失败风险的问题,增加汽车电子系统的安全性,提高汽车电子系统升级的成功率。
103.以上依据图示所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表