UDS之浅谈31服务

文章目录

  • 一、服务概述
  • 二、报文
    • 1.请求报文定义
    • 2.肯定响应
    • 3.否定码
    • 4.举例

一、服务概述

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

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

二、报文

1.请求报文定义

UDS之浅谈31服务_第1张图片
第二个字节定义如下:
UDS之浅谈31服务_第2张图片
第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.肯定响应

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

3.否定码

UDS之浅谈31服务_第4张图片

4.举例

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

你可能感兴趣的:(UDS,14229,嵌入式)