车辆远程升级方法、装置及服务器
文献发布时间:2023-06-19 11:45:49
技术领域
本申请涉及车辆技术领域,特别涉及一种车辆远程升级方法、装置及服务器。
背景技术
随着车辆技术的不断升级,现有汽车电子电器的架构升级,相关域控制器、ECU应用软件的升级更新更加频繁,各软件之间的依赖关系更加紧密。
相关技术中,远程升级方案为:以升级任务的方式管理单个和多个ECU(Electronic Control Unit,电子控制单元)软件的升级操作。
然而,相关技术中的远程升级方案无法准确确定所有软件版本及软件之间的依赖关系,易出现升级时配置错误的问题,导致无法完成升级,降低远程升级的可靠性及效率,用户体验较差,亟待解决。
申请内容
本申请提供一种车辆远程升级方法方法、装置及服务器,以解决相关技术中的远程升级方案无法准确确定所有软件版本及软件之间的依赖关系,容易出现升级配置错误无法升级的问题,升级的可靠性及效率降低,用户体验较差等问题。
本申请第一方面实施例提供一种车辆远程升级方法,包括以下步骤:根据基于车型整车划分的多个控制域软件定义确定待升级车辆的一个或多个控制域所属应用软件定义;根据所述所属应用软件定义的发布版本标识确定安装包、差分包和/或回退包;根据所述安装包、差分包和/或回退包对升级指令对应的软件进行升级。
进一步地,所述根据所述安装包、差分包和/或回退包对升级指令对应的软件进行升级,包括:根据所述升级指令生成所述待升级车辆的整车软件升级策略;根据所述整车软件升级策略配置至少一个待升级软件,并配置每个待升级软件的版本标识、升级操作、所述安装包;根据所述差分包和所述回退包配置所述每个待升级软件的升级顺序和回退顺序,并计算所有软件升级包所占用存储大小,且生成升级指令报文与回退指令报文,组成升级数据;发送所述升级数据至所述待升级车辆,以基于所述升级数据执行升级操作。
进一步地,本申请实施例的方法还包括:根据所述升级顺序和所述回退顺序生成有向无环图,并将所述有向无环图转换为树形结构,以可视化所述升级顺序和所述回退顺序。
进一步地,本申请实施例的方法还包括:接收所述待升级车辆反馈的当前升级流程和升级结果;根据所述当前升级流程和所述升级结果确定所述待升级车辆的最终升级结果。
进一步地,本申请实施例的方法还包括:检测所述待升级车辆是否在出现异常时根据所述退回报文执行所述回退软件包的安装操作;若未执行所述安装操作,则进行升级失败提醒的同时进行故障提醒。
本申请第二方面实施例提供一种车辆远程升级装置,包括:划分模块,用于根据基于车型整车划分的多个控制域软件定义确定待升级车辆的一个或多个控制域所属应用软件定义;确定模块,用于根据所述所属应用软件定义的发布版本标识确定安装包、差分包和/或回退包;升级模块,用于根据所述安装包、差分包和/或回退包对升级指令对应的软件进行升级。
进一步地,所述升级模块包括:生成单元,用于根据所述升级指令生成所述待升级车辆的整车软件升级策略;第一配置单元,用于根据所述整车软件升级策略配置至少一个待升级软件,并配置每个待升级软件的版本标识、升级操作、所述安装包;第二配置单元,用于根据所述差分包和所述回退包配置所述每个待升级软件的升级顺序和回退顺序,并计算所有软件升级包所占用存储大小,且生成升级指令报文与回退指令报文,组成升级数据;升级单元,用于发送所述升级数据至所述待升级车辆,以基于所述升级数据执行升级操作。
进一步地,本申请实施例的装置还包括:可视化模块,用于根据所述升级顺序和所述回退顺序生成有向无环图,并将所述有向无环图转换为树形结构,以可视化所述升级顺序和所述回退顺序。
进一步地,本申请实施例的装置还包括:接收模块,用于接收所述待升级车辆反馈的当前升级流程和升级结果,并根据所述当前升级流程和所述升级结果确定所述待升级车辆的最终升级结果;提醒模块,用于检测所述待升级车辆是否在出现异常时根据所述退回报文执行所述回退软件包的安装操作,若未执行所述安装操作,则进行升级失败提醒的同时进行故障提醒。
本申请第三方面实施例提供一种服务器,其包括上述的车辆远程升级装置。
通过软件定义的方式实现整车软件的统一升级管理,可以准确确定车辆所有软件版本以及软件直接的依赖关系,避免同时升级多个软件时依关系不清楚导致配置错误的问题,可以同时可靠的远程升级多个软件,有效提高远程升级的可靠性及效率,提升用户的使用体验。由此,解决了相关技术中的远程升级方案无法准确确定所有软件版本及软件之间的依赖关系,容易出现升级配置错误无法升级的问题,升级的可靠性及效率降低,用户体验较差等问题。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请实施例提供的车辆远程升级系统的结构示意图;
图2为根据本申请实施例提供的一种车辆远程升级方法的流程图;
图3为根据本申请实施例提供的DAG图转换为升级顺序示例图;
图4为根据本申请一个实施例提供的车辆远程升级方法的流程图;
图5为根据本申请一个实施例提供的车端下载升级包策略的流程图;
图6为根据本申请一个实施例提供的车端执行升级策略的流程图;
图7为根据本申请实施例提供的车辆远程升级装置的方框示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
在介绍本申请实施例的车辆远程升级方法、装置及服务器之前,先对本申请实施例的升级系统进行阐述,如图1所示,包括服务器端和车端升级管理客户端,服务器端由应用服务器、数据库、服务网关、文件服务器组成;车端由软件包下载代理、包还原单元、升级管理单元、升级指令执行单元和数据埋点单元组成。
其中,服务网关为对外直接提供服务接口的服务器;应用服务器提供服务接口的实际程序与逻辑实现,提供定时执行程序实现;数据库存储车型、车辆信息、升级应用版本信息,车辆版本信息、升级策略配置信息、应用升级实车测试记录、车辆升级会话日志流水信息、各种数据报表等;文件服务器存储各应用原子软件包、差分包、回退包等软件包文件。软件包下载代理负责下载升级指令中所有需要下载的原子软件包或差分包;包还原单元负责将差分包和旧原子包按差分算法合并为新原子包。
下面参考附图描述本申请实施例的车辆远程升级方法、装置及服务器。针对上述背景技术中心提到的相关技术中的远程升级方案无法准确确定所有软件版本及软件之间的依赖关系,容易出现升级配置错误无法升级的问题,升级的可靠性及效率降低,用户体验较差的问题,本申请提供了一种车辆远程升级方法,在该方法中,通过软件定义的方式实现整车软件的统一升级管理,可以准确确定车辆所有软件版本以及软件直接的依赖关系,避免同时升级多个软件时依关系不清楚导致配置错误的问题,可以同时可靠的远程升级多个软件,有效提高远程升级的可靠性及效率,提升用户的使用体验。由此,解决了相关技术中的远程升级方案无法准确确定所有软件版本及软件之间的依赖关系,容易出现升级配置错误无法升级的问题,升级的可靠性及效率降低,用户体验较差等问题。
具体而言,图2为本申请实施例所提供的一种车辆远程升级方法的流程示意图。
如图2所示,该车辆远程升级方法包括以下步骤:
在步骤S101中,根据基于车型整车划分的多个控制域软件定义确定待升级车辆的一个或多个控制域所属应用软件定义。
其中,待升级车辆可以理解为本申请实施例中需要升级的指定车型。
在本实施例中,在软件升级应用服务平台中将待升级车辆整车划分为多个控制域软件定义,将各控制域所属应用软件做应用定义。具体地:定义软件应用,通过软件应用标识信息定义一个整车软件或局部的域控制器软件;并配置软件应用与车型的关联关系,明确车型可升级软件应用包的范围。
在步骤S102中,根据所属应用软件定义的发布版本标识确定安装包、差分包和/或回退包。
其中,发版本标识可以为发布版本号,本申请在定义之后维护各应用定义的发布版本号,每个应用版本对应一组软件原子安装包、软件差分包、软件回退包。
在本实施例中,在升级指定车型整车软件时,首先生成一个整车软件升级策略号,并根据此策略号配置此次升级包含的ECU应用软件列表清单;然后配置各应用软件的版本号、是否强制升级、软件包文件,并生成版本差分包和回退包。
在步骤S103中,根据安装包、差分包和/或回退包对升级指令对应的软件进行升级。
在本实施例中,根据安装包、差分包和/或回退包对升级指令对应的软件进行升级,包括:根据升级指令生成待升级车辆的整车软件升级策略;根据整车软件升级策略配置至少一个待升级软件,并配置每个待升级软件的版本标识、升级操作、安装包;根据差分包和回退包配置每个待升级软件的升级顺序和回退顺序,并计算所有软件升级包所占用存储大小,且生成升级指令报文与回退指令报文,组成升级数据;发送升级数据至待升级车辆,以基于升级数据执行升级操作。
其中,配置升级策略为:根据升级顺序和回退顺序生成有向无环图,并将有向无环图转换为树形结构,以可视化升级顺序和回退顺序。例如,本申请实施例将图形化配置好的DAG图转换为可执行的升级策略的顺序可以如图3所示,通过深度遍利算法将S4-1 DAG图通过转换为S4-2树状数据结构,并通过层序遍利算法将S4-2树状数据结构得到执行升级任务策略列表S4-3。
可以理解的是,本申请实施例配置软件升级顺序和回退顺序的DAG图(有向无环图),计算所有软件升级包所占用存储大小、生成升级指令报文、生成回退指令报文,设定升级车辆清单,通过MQTT协议服务的推送管道推送消息给待升级车辆的OTA升级代理服务。
具体而言,(1)配置升级策略,通过图形化方式管理多个软件包的升级执行顺序,系统自动将DAG图转换为树形结构,通过层序遍利树节点的方式转换为软件包升级顺序,使用队列便利的方式得到回退顺序;
(2)配置待升级车辆,通过向待升级车辆推送升级通知的方式触发待升级车辆验证升级策略;
(3)配置灰度发布策略,通过指定升级车辆和升级区域等方式,在一定范围内发布新软件版本;
(4)配置升级定时任务,定时推动升级通知消息给待升级车辆,以触发并启动车辆端的升级会话。
在一些实施例中,本申请实施例的方法还包括:接收待升级车辆反馈的当前升级流程和升级结果;根据当前升级流程和升级结果确定待升级车辆的最终升级结果。
车辆端下载升级指令报文、回退指令报文,并根据升级指令报文判定是否能够执行执行指令,升级指令报文执行软件包下载、软件包合并、软件包安装等指令,以确定最终升级结果。
具体地,车端收到升级通知后,首先,通过升级管理单元请求服务器端网关服务获取车辆应用需要升级的目标版本,根据本地版本、目标版本请求服务器端网关获取升级策略文件和回退策略文件,通过数据埋点单元将当前车辆的升级会话记录和执行状态发送到服务网关;然后,车端软件包下载代理根据升级策略文件循环下载差分包,包还原单元根据差分包和本地旧原子包合并成新原子包,校验差分包的合法性,校验新原子包的合法性;最后,车端在完成所有升级任务所需要的软件包准备后,根据升级策略文件的定义,顺序执行升级安装指令,并且车辆端安装升级指令时顺序显示软件安装流程和结果。
在一些实施例中,本申请实施例的方法还包括:检测待升级车辆是否在出现异常时根据退回报文执行回退软件包的安装操作;若未执行安装操作,则进行升级失败提醒的同时进行故障提醒。
车辆端在执行升级指令报文中出现异常后,根据回退指令按顺序执行回退软件包安装操作,且车端在执行升级指令步骤的进入和退出步骤通过数据埋点单元将升级任务的执行日志发送到服务网关。
综上,本申请实施例可以将整车软件或者局部的域控制器软件作为一个分布式系统来做统一的应用软件管理,以可视化图形的方式来配置、跟踪车辆软件升级策略以及相关策略执行状态,方便运维人员、技术人员、测试人员实现整车软件的远程升级操作。
下面将通过具体实施例对车辆远程升级方法进行阐述,如图4所示,包括以下步骤:
S1-1,配置软件应用,定义可供远程升级的软件零部件号,应用编码,应用名称,描述等信息。
S1-2,配置车型,配置车型代码,车型名称,车型年款,所属品牌等信息。
S1-3,配置车型与软件应用的关联关系,根据车型配置可以允许远程升级的软件应用清单。
S1-4,定义车型应用版本/升级策略,根据车型增加车型整车软件版本号,根据整车版本号配置需要升级的零部件号以及应用配置升级条件,如车辆挡位、点火状态等升级程序启动信息。
S1-5,根据车型应用版本上传各需要升级的零部件应用软件的升级原子包、差分包、回退包,以及升级说明信息等。
S1-6,根据已配置的车型应用版本号配置需要升级的零部件应用软件的升级顺序,使用DAG可视图的方式通过箭头标注升级顺序。
S1-7,服务器自动根据已配置完成的DAG图生成升级指令列表,将升级指令按格式规范写入升级策略配置文件中。
S1-8,服务器自动根据升级指令列表排序升级降级指令列表,将降级指令列表按格式写入降级车辆配置文件中。
S1-9,推送升级消息给测试车辆,让指定测试车辆获取下载指定整车应用版本的升级策略文件。
S1-10,通过人工验证测试车辆升级策略的执行是否达到预期,如果已达到预期,执行S1-11;如果未达到预期,执行S1-5。
S1-11,针对指定整车应用版本上传测试报告。
S1-12,审核人员审核整车应用版本的测试报告。
S1-13,如果审核人员通过,执行S1-14,如果未通过,执行S1-5。
S1-14,针对已通过审核的整车应用版本生成升级任务,定义允许升级的车辆范围。
S1-15,审核人员审核待发布的升级任务,可以执行通过和不通过。
S1-16,如果审核人员选择通过执行S1-17,选择不通过,整车升级任务状态修改为初始状态,回退到S1-14进行修改。
S1-17,系统判断是否是指定时间执行的升级任务,如果是定时任务,执行S1-18,如果不是,执行S1-20。
S1-18,任务执行系统记录新的定时任务记录。
S1-19,任务执行系统定时检查是否有需要执行的定时任务,满足执行时间,执行S1-20,不满足执行时间,休眠等待唤醒。
S1-20,按照升级任务指定的升级范围获取需要升级的车辆列表,根据车辆列表调用消息推送接口推送升级任务给执行车辆。
S1-21,车端下载升级包子流程。
S1-22,车端执行升级策略子流程。
在本实施例中,车端下载升级包子流程如图5所示,包括以下步骤:
S2-1,车辆端请求服务器端升级检查接口,检查是否存在车辆需要更新的整车应用包,并获取需要更新的整车应用包升级策略信息。
S2-2,如果存在需要更新的整车应用包,执行S-3,否则结束本流程。
S2-3,检查本地可用容量是否满足需要下载的升级包大小。
S2-4,如果存储足够下载任务执行,执行S2-5,否则执行S2-7。
S2-5,本地生成升级任务记录ID,用于记录并标识本次升级任务执行行为。
S2-6,根据升级策略清单循环检查下载软件包
S2-7,生成告警提示信息,通过可视屏幕显示,并将告警信息发送至服务器端。
S2-8,如果本次循环对应的软件包存在差分包,执行S2-9,否则执行S2-11。
S2-9,根据升级策略清单中定义的差分包下载链接,下载指定软件差分包。
S2-10,使用包还原单元,通过本地原子包合并差分包生成升级目标包。
S2-11,根据升级策略清单中定义的原始软件包下载链接,下载指定软件原子包。
S2-12,根据升级任务ID,记录升级执行日志。
S2-13,判断是否还有需要执行的下载任务,如果存在,执行S2-6,如果不存在,结束本流程。
在本实施例中,车端执行升级策略子流程如图6所示,包括以下步骤:
S3-1,根据升级策略清单循环执行软件包安装指令。
S3-2,判断是否满足升级条件,如果满足,执行S3-3,如果不满足,执行S3-9。
S3-3,根据升级任务ID,记录升级执行日志,更新整车升级状态。
S3-4,根据软件包安装要求执行软件包安装指令,启动守护进程。
S3-5,通过守护进程监控软件安装是否出现异常情况,如果守护进程判断出现异常,中断安装指令,执行S3-11,如果安装完成,执行S3-6。
S3-6,根据升级任务ID,记录升级任务执行日志,更新整车升级状态。
S3-7,判断升级策略清单是否全部完成执行,如果未完成,执行S3-1,如果已全部完成,。
S3-8,通过定时或其它特定事件唤醒升级主执行任务。
S3-9,将升级主任务进程挂起等待。
S3-10,判断是否满足整车软件回退条件,如果满足条件,执行S3-14,如果不满足,执行S3-9。
S3-11,根据升级任务ID,记录升级任务异常日志。
S3-12,通过车辆屏幕显示升级成功提示。
S3-13,系统判断是否超过最大重试次数,如果未超过最大重试次数,执行S3-8,如果超过最大重试次数,执行S3-21。
S3-14,请求服务器端接口服务,获取回滚执行策略列表,根据回滚执行策略列表循环执行回滚操作。
S3-15,根据升级任务ID,记录升级任务回滚日志。
S3-16,根据回滚策略列表执行软件回退安装指令。
S3-17,根据升级任务ID,记录升级任务回滚日志。
S3-18,判断是否还有下一个回滚操作任务,如果存在,执行S3-14,如果不存在,执行S3-19。
S3-19,根据升级任务策略列表,删除本次升级任务新软件原子包,删除本次升级任务已下载的差分包。
S3-20,根据升级任务策略列表,删除旧软件原子包,删除本次升级任务已下载的差分包。
S3-21,根据升级任务ID,更新本次升级任务状态为升级成功。
根据本申请实施例提出的车辆远程升级方法,通过软件定义的方式实现整车软件的统一升级管理,可以准确确定车辆所有软件版本以及软件直接的依赖关系,避免同时升级多个软件时依关系不清楚导致配置错误的问题,可以同时可靠的远程升级多个软件,有效提高远程升级的可靠性及效率,提升用户的使用体验。
其次参照附图描述根据本申请实施例提出的车辆远程升级装置。
图7是本申请实施例的车辆远程升级装置的方框示意图。
如图7所示,该车辆远程升级装置10包括:划分模块100、确定模块200和升级模块300。
其中,划分模块100用于根据基于车型整车划分的多个控制域软件定义确定待升级车辆的一个或多个控制域所属应用软件定义;确定模块200用于根据所属应用软件定义的发布版本标识确定安装包、差分包和/或回退包;升级模块300用于根据安装包、差分包和/或回退包对升级指令对应的软件进行升级。
进一步地,升级模块300包括:生成单元、第一配置单元、第二配置单元和升级单元。其中,生成单元,用于根据升级指令生成待升级车辆的整车软件升级策略;第一配置单元,用于根据整车软件升级策略配置至少一个待升级软件,并配置每个待升级软件的版本标识、升级操作、安装包;第二配置单元,用于根据差分包和回退包配置每个待升级软件的升级顺序和回退顺序,并计算所有软件升级包所占用存储大小,且生成升级指令报文与回退指令报文,组成升级数据;升级单元,用于发送升级数据至待升级车辆,以基于升级数据执行升级操作。
进一步地,本申请实施例的装置10还包括:可视化模块。其中,可视化模块用于根据升级顺序和回退顺序生成有向无环图,并将有向无环图转换为树形结构,以可视化升级顺序和回退顺序。
进一步地,本申请实施例的装置10还包括:接收模块和提醒模块。其中,接收模块用于接收待升级车辆反馈的当前升级流程和升级结果,并根据当前升级流程和升级结果确定待升级车辆的最终升级结果;提醒模块,用于检测待升级车辆是否在出现异常时根据退回报文执行回退软件包的安装操作,若未执行安装操作,则进行升级失败提醒的同时进行故障提醒。
需要说明的是,前述对车辆远程升级方法实施例的解释说明也适用于该实施例的车辆远程升级装置,此处不再赘述。
根据本申请实施例提出的车辆远程升级装置,通过软件定义的方式实现整车软件的统一升级管理,可以准确确定车辆所有软件版本以及软件直接的依赖关系,避免同时升级多个软件时依关系不清楚导致配置错误的问题,可以同时可靠的远程升级多个软件,有效提高远程升级的可靠性及效率,提升用户的使用体验。
此外,本申请实施例还提出了一种服务器,该服务器包括上述的车辆远程升级装置。该服务器可以通过软件定义的方式实现整车软件的统一升级管理,可以准确确定车辆所有软件版本以及软件直接的依赖关系,避免同时升级多个软件时依关系不清楚导致配置错误的问题,可以同时可靠的远程升级多个软件,有效提高远程升级的可靠性及效率,提升用户的使用体验。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
- 服务器、车辆及其远程升级方法和远程升级系统
- 车辆电子设备的远程升级方法、服务器及存储介质