一种ota升级失败回退版本方法
技术领域
本发明涉及汽车软件升级
技术领域
,更具体的说是涉及一种OTA升级失败回退版本方法。背景技术
随着人工智能的快速发展,汽车领域迎来了智能时代,智能驾驶的技术逐渐被开发应用,在进行智能控制的过程中避免不了会使用芯片进行控制,目前单芯片已经不足以满足汽车智能方案的处理,特别是在自动驾驶中会采用多个人工智能芯片搭配主控芯片进行处理,在进行智能控制时整体的控制系统也是需要升级处理,从而能够更好的进行智能控制处理,目前进行升级的办法中常用到空中下载技术(OTA)下载固件包并传输至主控芯片中,主控芯片根据固件包内的配置文件控制人工智能芯片和其它芯片的升级。
目前整体OTA升级不仅涉及主控芯片还涉及到人工智能芯片及其它芯片,由于系统的复杂性以及环境的干扰,升级过程中可能出现芯片升级成功,有的芯片升级失败的情况,导致版本存在不一致的情况,由于版本不一致,可能导致系统无法正常工作,影响整体系统的正常使用。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种OTA升级失败回退版本方法,具有在版本升级时,保持系统版本一致,实现系统保持正常运行的效果。
为实现上述目的,本发明提供了如下技术方案:
一种OTA升级失败回退版本方法,提供SOC主控器、AI芯片以及MCU微处理器,所述SOC主控器与AI芯片以及MCU微处理器通讯连接;该方法具体步骤包括:
S1:所述SOC主控器通过网络传输通道下载OTA固件包至本地并进行缓存;
S2:所述SOC主控器进对OTA固件包进行解压,解压后的OTA固件包包括AI固件、MCU固件以及本地固件,所述SOC主控器创建固件分发任务;
S3:所述SOC主控器根据固件分发任务分别传输AI固件和MCU固件至AI芯片和MCU微处理器中,所述本地固件存储与SOC主控器中,所述AI芯片和MCU微处理器分别接收到AI固件和MCU固件,所述AI芯片和MCU微处理器开始接收AI固件和MCU固件时生成分区指令,并发送分区指令至SOC主控器中;
S4:所述SOC主控器接收到分区指令时生成切换分区命令,所述AI芯片和MCU微处理器生成切换分区标识;
S5:若所述AI芯片和MCU微处理器完成AI固件和MCU固件的接收,所述AI芯片和MCU微处理器分别生成完成接收指令并发送完成接收指令至SOC主控器中,所述SOC主控器发送切换分区命令至AI芯片和MCU微处理器中,所述AI芯片和MCU微处理器发送切换分区标识至SOC主控器中,并根据切换分区标识建立新的固件分区;
S6:若所述AI芯片未完成AI固件的接收和/或MCU微处理器未完成MCU固件的接收,所述SOC主控器生成取消升级指令,所述SOC主控器不发送切换分区命令,并分别发送取消升级指令至AI芯片和MCU微处理器中,所述AI芯片和MCU微处理器接收到取消升级指令时撤销切换分区标识,并保持旧的固件分区;
S7:所述SOC主控器接收到切换分区标识或生成取消升级命令时,所述SOC主控器后均生成重启命令并发送至AI芯片和MCU微处理器中;
S8:若所述SOC主控器接收到切换分区标识后发送重启命令至AI芯片和MCU微处理器中时,所述AI芯片和MCU微处理器从建立的新的固件分区启动并进行版本同步升级处理,同时所述SOC主控器根据本地固件进行同步升级处理;
S9:若所述SOC主控器生成取消升级命令后发送重启命令至AI芯片和MCU微处理器中时,所述AI芯片和MCU微处理器从旧的固件分区中进行重启进行版本同步回退启动,同时SOC主控器进行同步回退启动。
作为本发明的进一步改进,所述SOC主控器中包括固件校验模块,所述步骤S1包括:
S101:所述固件校验模块对OTA固件进行分析校验;
S102:若所述固件校验模块对OTA固件校验后,所述OTA固件不符合升级要求,所述固件校验模块删除OTA固件;
S103:所述SOC主控器重新建立下载通道重新下载OTA固件;
S104:若所述固件校验模块对OTA固件校验后,所述OTA固件满足升级要求,将OTA固件缓存至SOC主控器中。
作为本发明的进一步改进,所述步骤S2中创建固件分发任务包括:
S201:所述SOC主控器生成发送固件指令并发送至AI芯片和MCU微处理器中;
S202:所述AI芯片和MCU微处理器在接收到发送固件指令后生成确认固件指令,并回发至SOC主控器中;
S203:所述SOC主控器接收到确认固件指令后建立传输链接,所述AI固件和MCU固件通过传输链接分别传输至AI芯片和MCU微处理器中。
作为本发明的进一步改进,所述SOC主控器中还设置有定时模块,所述定时模块包括计时单元和延时单元,所述定时模块内设置有定时策略、接收阈值以及延时阈值,所述定时策略具体为:
所述SOC主控器传输AI固件和MCU固件时所述计时单元开始计时,在所述接收阈值时间内若AI芯片和MCU微处理器没有发送完成接收指令时,所述计时单元生成延时信号并发送至延时单元,所述延时单元接收到延时信号进行计时,在所述延时阈值时间内若AI芯片和MCU处理器没有发送完成接收指令时,所述SOC主控器生成取消升级指令;
若在所述接收阈值和/或延时阈值内SOC主控器接收到完成接收指令时,所述SOC主控器发送切换分区命令至AI芯片和MCU微处理器中。
作为本发明的进一步改进,所述计时单元内设置有用于计算接收阈值的接收算法,所述接收算法具体为:
其中:T表示接收阈值的时间值;M表示OTA固件大小;G表示下载速度;A表示接收阈值的权重值;B表示下载速度的权重值。
作为本发明的进一步改进,所述延时单元内设置有用于计算延时阈值的延时算法,所述延时算法具体为:
H=CT
其中:H表示延时阈值的时间值,C表示延时阈值的权重值。
作为本发明的进一步改进,所述步骤S8具体包括:
S801:所述SOC主控器生成版本同步命令并发送至AI芯片和MCU微处理器,所述AI芯片和MCU微处理器接收到版本同步命令后发送确认同步指令至SOC主控器中;
S802:若AI芯片或MCU微处理器出现从旧的固件分区中重启时,所述SOC主控器生成版本回退命令并发送至AI芯片和MCU微处理器,所述AI芯片和MCU微处理器接收到版本回退命令时进行版本回退处理并在回退完成是生成确认回退指令并发送确认回退指令至SOC主控器中;
S803:所述SOC主控器收到确认回退指令时,所述SOC主控器生成升级重启指令,并发送至AI芯片和MCU微处理器中,所述AI芯片和MCU微处理器接收到升级重启指令后进行重启并从新的固件分区中进行同步升级处理。
作为本发明的进一步改进,所述SOC主控器中还设置有计次模块,所述计次模块内预设有重启阈值,所述重启阈值用于判断S803中AI芯片和MCU微处理器接收到升级重启指令的次数;
若AI芯片和MCU微处理器接收到升级重启指令的次数大于重启阈值时,所述AI芯片和MCU微处理器从旧的固件分区中进行重启进行版本同步回退启动,同时SOC主控器进行同步回退启动;
若AI芯片和MCU微处理器接收到升级重启指令的次数小于等于重启阈值时,所述AI芯片和MCU微处理器从建立的新的固件分区启动并进行版本同步升级处理,同时所述SOC主控器根据本地固件进行同步升级处理。
本发明的有益效果:通过SOC主控器下载OTA固件,并将OTA固件中的固件内容分别分配至AI芯片、MCU微处理器和SOC主控器中,当AI芯片和MCU微处理器完成对AI固件和MCU固件的接收时,SOC主控器建立新的固件分区,AI芯片和MCU微处理器均从新的固件分区中进行同步升级处理,当AI芯片和/或MCU微处理器未完成对AI固件和MCU固件的接收时,AI芯片和MCU微处理器从旧的固件分区中进行同步回退启动,实现了在版本升级时,保持系统版本一致,实现系统保持正常运行的效果。
附图说明
图1为体现本发明的流程示意图;
图2为体现版本同步升级的流程示意图。
具体实施方式
下面结合附图和实施例,对本发明进一步详细说明。其中相同的零部件用相同的附图标记表示。需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向,词语“底面”和“顶面”、“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。
参考图1和图2所示,为本发明一种OTA升级失败回退版本方法的具体实施方式,提供SOC主控器、AI芯片以及MCU微处理器,SOC主控器与AI芯片以及MCU微处理器通讯连接;SOC主控器中包括固件校验模块,固件校验模块用于对OTA固件进行校验,SOC主控器内还设置有定时模块,定时模块包括计时单元和延时单元,定时模块内设置有定时策略、接收阈值以及延时阈值,该方法具体步骤包括:
S1:SOC主控器通过网络传输通道下载OTA固件包至本地并进行缓存;
S2:SOC主控器进对OTA固件包进行解压,解压后的OTA固件包包括AI固件、MCU固件以及本地固件,所述SOC主控器创建固件分发任务;
S3:SOC主控器根据固件分发任务分别传输AI固件和MCU固件至AI芯片和MCU微处理器中,本地固件存储与SOC主控器中,AI芯片和MCU微处理器分别接收到AI固件和MCU固件,AI芯片和MCU微处理器开始接收AI固件和MCU固件时生成分区指令,并发送分区指令至SOC主控器中;
S4:SOC主控器接收到分区指令时生成切换分区命令,AI芯片和MCU微处理器生成切换分区标识;
S5:若AI芯片和MCU微处理器完成AI固件和MCU固件的接收,AI芯片和MCU微处理器分别生成完成接收指令并发送完成接收指令至SOC主控器中,SOC主控器发送切换分区命令至AI芯片和MCU微处理器中,AI芯片和MCU微处理器发送切换分区标识至SOC主控器中,并根据切换分区标识建立新的固件分区;
S6:若AI芯片未完成AI固件的接收和/或MCU微处理器未完成MCU固件的接收,SOC主控器生成取消升级指令,SOC主控器不发送切换分区命令,并分别发送取消升级指令至AI芯片和MCU微处理器中,AI芯片和MCU微处理器接收到取消升级指令时撤销切换分区标识,并保持旧的固件分区;
S7:SOC主控器接收到切换分区标识或生成取消升级命令时,SOC主控器后均生成重启命令并发送至AI芯片和MCU微处理器中;
S8:若SOC主控器接收到切换分区标识后发送重启命令至AI芯片和MCU微处理器中时,AI芯片和MCU微处理器从建立的新的固件分区启动并进行版本同步升级处理,同时SOC主控器根据本地固件进行同步升级处理,实现SOC主控器、AI芯片和MCU微处理器中的系统均同步升级,保持版本升级后的一致;
S9:若SOC主控器生成取消升级命令后发送重启命令至AI芯片和MCU微处理器中时,AI芯片和MCU微处理器从旧的固件分区中进行重启进行版本同步回退启动,同时SOC主控器进行同步回退启动,实现SOC主控器、AI芯片和MCU微处理器均升级失败,回退至旧版本,并保持版本一致。
其中在S1步骤中还包括:
S101:固件校验模块对OTA固件进行分析校验;
S102:若固件校验模块对OTA固件校验后,OTA固件不符合升级要求,固件校验模块删除OTA固件;
S103:SOC主控器重新建立下载通道重新下载OTA固件,下载通道的网络使用4G或5G网络进行下载;
S104:若固件校验模块对OTA固件校验后,OTA固件满足升级要求,将OTA固件缓存至SOC主控器中。
步骤S2中创建固件分发任务包括:
S201:SOC主控器生成发送固件指令并发送至AI芯片和MCU微处理器中;
S202:AI芯片和MCU微处理器在接收到发送固件指令后生成确认固件指令,并回发至SOC主控器中;
S203:SOC主控器接收到确认固件指令后建立传输链接,AI固件和MCU固件通过传输链接分别传输至AI芯片和MCU微处理器中,传输链接建立为TCP传输控制协议通道,从而提高AI固件和MCU固件的传输速率和确保传输时文件不易出现丢失。
定时策略具体为:
SOC主控器传输AI固件和MCU固件时所述计时单元开始计时,在接收阈值时间内若AI芯片和MCU微处理器没有发送完成接收指令时,计时单元生成延时信号并发送至延时单元,延时单元接收到延时信号进行计时,在延时阈值时间内若AI芯片和MCU处理器没有发送完成接收指令时,SOC主控器生成取消升级指令;
若在接收阈值和/或延时阈值内SOC主控器接收到完成接收指令时,SOC主控器发送切换分区命令至AI芯片和MCU微处理器中;
计时单元内设置有用于计算接收阈值的接收算法,接收算法具体为:
其中:T表示接收阈值的时间值;M表示OTA固件大小;G表示下载速度;A表示接收阈值的权重值,A的取值范围为1~2;B表示下载速度的权重值,B的取值范围为0.5~1;例如:当OTA固件大小为1000M时,下载速度为3M/s,A取1.5,B取0.5,此时接收阈值时间T为1000s。
延时单元内设置有用于计算延时阈值的延时算法,延时算法具体为:
H=CT
其中:H表示延时阈值的时间值,C表示延时阈值的权重值,C的取值范围为0.1~0.5,取C为0.2,即当T为1000s时,延时阈值H为200S。
步骤S8具体包括:
S801:SOC主控器生成版本同步命令并发送至AI芯片和MCU微处理器,AI芯片和MCU微处理器接收到版本同步命令后发送确认同步指令至SOC主控器中;
S802:若AI芯片或MCU微处理器出现从旧的固件分区中重启时,SOC主控器生成版本回退命令并发送至AI芯片和MCU微处理器,AI芯片和MCU微处理器接收到版本回退命令时进行版本回退处理并在回退完成是生成确认回退指令并发送确认回退指令至SOC主控器中;
S803:SOC主控器收到确认回退指令时,SOC主控器生成升级重启指令,并发送至AI芯片和MCU微处理器中,AI芯片和MCU微处理器接收到升级重启指令后进行重启并从新的固件分区中进行同步升级处理;
SOC主控器中还设置有计次模块,计次模块内预设有重启阈值,重启阈值用于判断S803中AI芯片和MCU微处理器接收到升级重启指令的次数,本实施例中重启阈值次数选用为3次;
若AI芯片和MCU微处理器接收到升级重启指令的次数大于重启阈值时,AI芯片和MCU微处理器从旧的固件分区中进行重启进行版本同步回退启动,同时SOC主控器进行同步回退启动;
若AI芯片和MCU微处理器接收到升级重启指令的次数小于等于重启阈值时,AI芯片和MCU微处理器从建立的新的固件分区启动并进行版本同步升级处理,同时所述SOC主控器根据本地固件进行同步升级处理;
从而实现在当同步升级处理时,若出现AI芯片或MCU微处理器没有同步通过新的固件分区中同步升级时进行回退后重启再次升级,在预设的重启阈值内升级成功后则保持升级后的版本,若超出预设的重启阈值后没有同步升级成功时,进行同步回退保持版本一致。
工作原理及其效果:
通过SOC主控器下载OTA固件,并将OTA固件中的固件内容分别分配至AI芯片、MCU微处理器和SOC主控器中,当AI芯片和MCU微处理器完成对AI固件和MCU固件的接收时,SOC主控器建立新的固件分区,AI芯片和MCU微处理器均从新的固件分区中进行同步升级处理,当AI芯片和/或MCU微处理器未完成对AI固件和MCU固件的接收时,AI芯片和MCU微处理器从旧的固件分区中进行同步回退启动,实现了在版本升级时,保持系统版本一致,实现系统保持正常运行的效果。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种分布式数据库的分片信息备份方法及装置