【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
在这里插入图片描述

UDS(Unified Diagnostic Services)是一种用于汽车电子控制单元(ECU)的诊断通信协议。UDS协议定义了一系列服务,每个服务都有一个唯一的标识符,称为SID(Service Identifier)。NRC(Negative Response Code)是UDS协议中用于表示服务请求失败或拒绝的代码。 UDS 31服务是“请求下载”(Request Download)服务,用于请求从ECU下载数据。NRC 0x10表示“General Reject”(通用拒绝),这是UDS协议中的一种NRC,表示请求的服务被通用拒绝。 以下是UDS 31服务的详细说明: ### UDS 31服务:请求下载(Request Download) 请求下载服务用于请求从ECU下载数据。请求下载服务的请求报文格式如下: - **地址长度(Address Length)**: 1字节 - **内存地址(Memory Address)**: 根据地址长度决定 - **内存大小(Memory Size)**: 根据地址长度决定 ### NRC 0x10:通用拒绝(General Reject) 通用拒绝NRC 0x10用于表示请求的服务被通用拒绝。这种拒绝通常是由于以下原因之一: 1. **无效的服务标识符**:请求的服务标识符不被支持或无效。 2. **服务当前不可用**:请求的服务在当前状态下不可用。 3. **安全访问**:请求的服务需要安全访问,但安全访问未通过。 4. **其他原因**:其他未明确列出的原因。 ### 示例 假设我们向ECU发送一个请求下载服务的请求报文: ``` 34 00 00 00 10 00 01 00 02 ``` - **34**: 请求下载服务的SID - **00**: 数据格式标识符 - **00 00 10**: 内存地址 - **00 01 00 02**: 内存大小 如果ECU返回以下响应: ``` 7F 34 10 ``` - **7F**: NRC响应标识符 - **34**: 请求的服务ID - **10**: NRC 0x10,表示通用拒绝
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值