1. 基本概念
Service ID (SID)、Data ID (DID) 和Routine Control ID (RID)。
SID用于标识不同的服务,DID涉及产品系统信息和配置,而RID则与标定和烧录操作相关。
2.常见的诊断请求格式
- 发请求时的格式1:SID+DID;
- 发请求时的格式2:SID(特指例程控制服务:31)+子类型(01/02/03)+RID;
3. 31服务介绍
3.1 31服务概述
31服务,即例程服务,其全称为RoutineControl service,可以通过诊断仪/上位机通过相关诊断命令发起对例程的启动、停止或获取例程执行的结果,其常用的使用场景为擦除内存、重置定义的数据或在ECU刷新时进行刷新条件的检测等,一般由主机厂对相关Routine ID进行定义。
3.2 31请求服务
客户端请求启动/停止服务器中的例程或请求例程结果。客户端使用 RoutineControl 服务来控制 RID,RID 由两字节的例程标识符标识。具体的控制类型有以下三种:
第一种: 启动 RID;举例:31 01
第二种: 停止 RID;举例:31 02
第三种: 查询 RID 执行结果。举例:31 03
这里对 RID 的三种控制类型做一个详细的介绍:
1. 启动 RID
如果对诊断请求的响应是肯定或否定,则表明该请求已被执行或正在进行中,例程将从 StartRoutine 请求消息完成到第一响应消息完成之间的某个时间在服务器的内存中启动。例程可以是运行,也可以是在正常操作代码运行的情况下启用和执行的例程。特别是在第一