基于ASAM标准的软件更新技术服务化应用浅析

2024-09-25 00:00王彬陈姿霖张龙岗王远波
汽车电器 2024年9期

【摘 要】软件定义顾名思义即通过软件的不断更新迭代使产品呈现出不同的功能状态,在OTA更新的方式中,ECU软件更新功能也需要服务化,文章重点介绍软件更新的服务化设计方法,可供后续技术实施参考。

【关键词】软件更新;服务接口;车辆诊断

中图分类号:U463.6 文献标识码:A 文章编号:1003-8639( 2024 )09-0044-03

Analysis of Service Application of Software Update Technology Based on ASAM Standards

WANG Bin1,CHEN Zilin2,ZHANG Longgang2,WANG Yuanbo2

(1.Dechuang Weilai Automotive Technology Co.,Ltd.,Xi′an 713700,China;2.Shaanxi Heavy-duty Automobile Co.,Ltd.,Xi′an 710200,China)

【Abstract】Software definition,as the name implies,that is,through the continuous updating of the software iteration so that the product presents a different functionality of the state,in the way of OTA update,ECU software update function also needs to be serviced,this paper focuses on the servicing design method of software update,which can be used as a reference for subsequent technology implementation.

【Key words】software update;service interface

1 技术介绍

SOVD全称为Service-Oriented Vehicle Diagnostics,即以服务为导向的车辆诊断系统。在传统更新中,本地诊断仪控制更新过程,车辆只需执行既定的步骤便可完成软件更新;而SOVD系统中采用调取API接口将控制权交给车辆,结合联网车辆的OTA功能来实现软件更新。

SOVD API接口支持两类程序更新方法及相关步骤,以支持不同的软件更新场景。

1.1 逐步更新软件

通过该方法诊断仪可以控制安装哪些更新,以及何时准备和执行更新,步骤如下。

1)获取适用的更新。车辆向本地诊断仪提供适用的更新;诊断仪选择安全的更新;在执行命令时,可从OTA后端查询适用的更新,或由车辆提供OTA后端之前推送给车辆的更新列表。

2)准备更新。诊断仪选择的更新将通过从OTA后台下载、验证其对车辆的适用性、将其安装到B存储器等方式准备安装;完成这一步骤后,更新即可安装。

3)执行更新。准备好的更新包被安装和激活。

1.2 自动更新软件

通过该方法ECU控制诊断仪选择更新包的整个更新过程。在该更新方式中,ECU负责完成下载更新包、安装和激活更新软件包。SOVD API接口中定义了特殊的自主更新包标识符,自主更新包用于不需要诊断仪选择更新包的情况。

2 软件更新接口

2.1 检索所有更新列表

该API接口包含以下几方面。

1)方法:GET/updates。

2)方法说明:该方法返回实体的可用更新。

3)路径参数:该方法不支持该项参数。

4)查询参数:读取实体提供的所有更新列表,见表1。

5)请求标头:该方法不使用该项参数。

6)响应状态代码:读取响应状态代码200,请求成功。

7)响应数据结构:属性为项目,类型为字符串[],为更新软件包标识符。

2.2 获取更新详情

该API接口包含以下几方面。

1)方法:GET/updates/{update-package-id}。

2)方法说明:该方法为返回特定更新包的详细信息。

3)路径参数:参数名称update-package-id,类型为字符串,为更新包的标识符。

4)查询参数:获取更新的详细信息(表2)。

5)请求标头:该方法不使用该项参数。

6)响应状态代码:获取更新详情,状态代码200,请求成功。

7)响应结构:获取更新详情的信息,见表3。

2.3 自动安全更新

该API接口包含以下几方面。

1)方法:PUT/updates/{update-package-id}/automated。

2)方法说明:该方法可启动更新包的自动安装。在这种情况下,ECU和OTA平台可完全控制更新过程,并决定何时采取哪些行动。

3)路径参数:参数名称update-package-id,类型为字符串,为更新包的标识符。

4)查询参数:该方法不支持该项参数。

5)请求标头:该方法不使用该项参数。

6)响应标头:响应包括以下标头,用于重定向诊断仪的请求状态。

位置:{base_uri}/updates/{update-package-id}/status。

7)响应状态代码:自动安装更新响应状态代码见表4。

2.4 准备安装更新

该API接口包含以下几方面。

1)方法:PUT/updates/{update-package-id}/prepare。

2)方法说明:该方法为准备安装更新包。

作为该步骤的一部分,将执行以下任务:验证更新包是否仍可安装;从OTA后台下载更新包;验证更新包的完整性;应用增量;在B内存中安装更新。

安装成tPefiZC6ORIALGFNk87MDiOgODONKzEwYVZoHMldhBg=功后,ECU会自动删除更新包。

3)路径参数:参数名称update-package-id,类型为字符串,为更新包的标识符。

4)查询参数:该方法不支持该项参数。

5)请求标头:该方法不使用该项参数。

6)响应标头:响应包括位置标头,用于重定向诊断仪的请求状态。

位置:{base_uri}/updates/{update-package-id}/status。

7)响应状态代码:准备安装更新响应状态代码见表5。

2.5 执行更新安装

该API接口包含以下几方面。

1)方法:PUT/updates/{update-package-id}/execute

2)方法说明:该方法启动更新包的安装和激活。

作为该步骤的一部分,将执行以下任务:验证更新包是否仍可安装;在所有ECU上安装更新;执行特定的更新后操作;激活更新;出现错误时回滚更新。

3)路径参数:参数名称update-package-id,类型为字符串,为更新包的标识符。

4)查询参数:该方法不支持该项参数。

5)请求标头:该方法不使用该项参数。

6)响应标头:响应包括位置标头,用于重定向诊断仪的请求状态。

位置:{base_uri}/updates/{update-package-id}/status。

7)响应状态代码:执行更新安装响应状态代码见表6。

2.6 获取更新状态

该API接口包含以下几方面。

1)方法:GET/updates/{update-package-id}/status。

2)方法说明:该方法返回更新的准备或执行状态。

3)路径参数:参数名称update-package-id,类型为字符串,是用于跟踪更新准备或执行情况的标识符。

4)查询参数:该方法不支持该项参数。

5)请求标头:该方法不使用该项参数。

6)响应状态代码:执行更新状态,状态代码为200,请求成功。

7)响应结构:获取更新状态的详细信息见表7~表10。

3 结束语

软件更新功能服务化设计主要应用于软件定义汽车的设计框架中,本文围绕软件更新展开了常用指令的服务接口介绍,对于软件更新等场景的服务化接口还需要结合实际功能设计要求进一步深入研究和丰富,共同推动先进技术的快速落地。

(编辑 杨凯麟)

作者简介王彬(1987—),男,博士,工程师,主要主导公司各车型的整体开发,以及电器系统、整车系统的开发、设计、管理工作。