【UDS诊断】——0x31服务

🙋‍♂️【UDS诊断服务介绍合集】系列💁‍♂️点击跳转

一、服务概述

Client端使用Routine Control服务来执行定义的步骤序列并获取特定序列的相关结果。该服务有极大的灵活性。Service31的典型用途可以包括擦除内存、重置定义的数据、覆盖正常服务控制策略以及控制ECU值随时间变化的功能。

通过Service31可以启动特定序列、停止运行该特定序列、请求运行结果。该服务以往常用于ECU在做Software Update时,应用于检查刷写条件是否满足、传输数据完整性以及独立性检测。

二、报文

1.请求报文定义

在这里插入图片描述
第二个字节定义如下:
在这里插入图片描述
第3、4字节routineIdentifier表示指定的程序ID;这些特定的程序信息一般由车厂规定释放;一般会在诊断调查表中体现。比如针对ECU的升级,一般需要指定以下几个特定的程序功能(具体ID由车厂规定):

程序名程序名
CheckProgrammingPreconditions(编程条件检查)该程序用于对ECU升级条件(如车速信息等)的判断,在ECU的BootLoader与APP程序中一般都要有该程序功能的定义。一般用于进入编程会话之前
CheckAppSwAppDataValidity(检查数据的有效性,如CRC校验)CheckAppSwAppDataValidity(检查数据的有效性,如CRC校验)
CheckAppSwAppDataValidity(检查数据的有效性,如CRC校验)用于对此次升级要用到的内存空间进行擦除操作。一般用于请求APP数据下载(34服务)之前
用于对此次升级要用到的内存空间进行擦除操作。一般用于请求APP数据下载(34服务)之前用于对此次升级要用到的内存空间进行擦除操作。一般用于请求APP数据下载(34服务)之前

常用系列
Service 31 01:开始执行Routine DID对应的例程;

Service 31 02:停止运行Routine DID对应的例程;

Service 31 03:请求Routine DID对应的例程运行结果

2.肯定响应

在这里插入图片描述
其中,routineStatusRecord是可选参数,用于在执行相应程序动作后,返回ECU相关的信息(如请求31 02服务请求停止时ECU可以通过该参数返回该程序总运行时间等信息);可根据实际需要进行使用;一般较少用到。

3.否定码

在这里插入图片描述

4.举例

发送:31 01 AC 05
回复:71 01 AC 05 00
在这里插入图片描述

  • 34
    点赞
  • 206
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值