UDS服务基础篇之2E

2023-11-08 12:51
文章标签 基础 服务 uds 2e

本文主要是介绍UDS服务基础篇之2E,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

UDS诊断服务基础篇之2E

前言

2E服务作为诊断服务中的基础服务,可以简单理解为就是一个用于写入ECU数据的外部接口,可实时获取软件内部的相关的状态信息。

鉴于本文是基础入门介绍,小T还是会问下大家有关2E诊断服务的相关问题?

  • 2E服务的实际用途是什么?
  • 2E服务的应用场景有哪些呢?
  • 2E服务的诊断服务格式如何?

这篇,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:

image-20220626163505648


正文

服务功能
功能描述

根据ISO14119-1标准中所述,诊断服务2E主要用于Client向Server(ECU)通过DID的方式写入相关的数据。

应用场景

一般而言,对于2E诊断服务,主要应用场景为以下场合:

  • 在整车下线的过程中写入相关配置信息,如常见的VIN码;
  • 清除NVM;
  • 重置已写入到Flash中的数据;
  • 其他需要写入内部相关参数的场合;

上述这些应用场景较为常见,除此以外,当然还有很多面向ECU内部测试的应用场合,这里就不一一列举。

服务请求

服务请求是Client发送给到Server的诊断服务指令。其中Client可以理解为Tester,Server可以理解为ECU节点。

请求格式

按照ISO14229-1标准所述,如下图1所示:

image-20220626180527606

图1 2E诊断服务请求格式

下图2中各参数解释如下:

2E诊断请求格式

图2 2E请求格式说明

常见DID总结

根据ISO14229-1规范,定义了诸多只能用于特定场合的DID,也就意味着大家都不能随意乱用DID,在使用DID Number应充分考虑到14229的要求,防止出现跟客户扯皮的现象。

如下图3所示简要列举了较为常见的DID种类及其含义:

3-常见DID

图3 常见DID总结
请求实例

以写入DID F1 90 (VIN码)为例,其对应的诊断请求实例如下图4所示:

image-20220626181431035

图4 2E诊断服务请求实例
服务响应

服务响应是针对Client对Server诊断请求的响应。

正响应格式

如下图所示,为2E诊断服务的正响应格式:

image-20220626181901725

图5 2E诊断服务正响应格式

从上图中可以看出,2E诊断服务的正响应由以下两个部分组成:

  • Response ID:该参数固定为SID+0x40 = 0x6E;
  • DID:该参数表示某个数据的标识符,回复的DID应与诊断请求的DID保持一致;
正响应实例

如下图7所示,为上述DID(F1 90)请求示例所对应的正响应:

image-20220626182139280

图6 2E诊断服务DID正响应示例

注意:对应2E服务回复正响应时一般应确保此时数据已经被成功写入到NVM中,当然如果是KL30供电也可采取下电保存机制,但是前提需走正常下电休眠流程或者执行1101复位动作。

负响应NRC

NRC Code

绝大多数情况下,Server针对Client的请求都会给到正响应,比如发生重启前需确保整车处于安全状态,如引擎熄火,车速不能超过3km/h等,或者为了防止不按照诊断请求格式进行请求,那么Server需要通过某种方式来告诉Client执行不成功的原因在哪里以便于调查问题直至得到正响应。

因此ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的诊断格式:7F +SID + NRC

其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于2E服务而言支持的NRC如下图8所示:

image-20220626182735880

图7 2E服务NRC Code
  • 例如当尝试写入F190的DID值且当前车速条件不满足,此时Client发送诊断指令"2E F1 90"请求Server读取数据,Server将会回复“7F 2E 22”来告诉请求者当前读取数据的条件不满足,请再次检查读取该DID的条件。
  • 当发送报文长度或者格式不对时,则Server会回复"7F 2E 13";
  • 当诊断请求DID不存在或者在当前Session中不支持时,则Server就会回复“7F 2E 31”;
  • 当Server在发生复位前处于security lock状态,那么此时Server则会回复"7F 2E 33";
  • 当2E服务写入的内存地址错误时,那么此时Server则会回复"**7F 2E 72 **";

NRC优先级

当诊断请求存在多种条件不满足的情况下,那么哪个NRC应当回复呢?毫无疑问此时就需要引入NRC优先级的概念,以下就是诊断服务2E的NRC优先级,供诸君参考:

image-20220626183148891

图8 2E服务NRC优先级

更多精彩内容,敬请关注公众号“ADAS与ECU之吾见!”
在这里插入图片描述

这篇关于UDS服务基础篇之2E的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369980

相关文章

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python基础语法中defaultdict的使用小结

《Python基础语法中defaultdict的使用小结》Python的defaultdict是collections模块中提供的一种特殊的字典类型,它与普通的字典(dict)有着相似的功能,本文主要... 目录示例1示例2python的defaultdict是collections模块中提供的一种特殊的字

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在