UDS服务基础篇之14

news2024/10/5 17:27:58

前言

  • 你知道如果系统产生了DTC,应当如何清除呢?
  • 14服务具体的执行流程如何?
  • 14服务在使用过程中的常见bug又有哪些?

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


正文

根据ISO14119-1标准中所述,诊断服务14主要用于Client向Server(ECU)请求清除诊断相关信息

应用场景

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

  • ECU被刷写新的软件后,此时需通过14诊断服务清除下DTC,然后读取下DTC查看是否存在异常的DTC,保证系统监控正常;
  • 在产线EOL工位或者客户电检工位上都会执行下14服务以便清除下历史DTC,然后查看下是否存在任何当前的DTC;

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

注意事项:

14服务可以指定某个DTC Group组(如Powertrain, Body, Chassis等)进行清除或者指定DTC进行清除。同时除非有特殊说明,否则将会清除所有排放相关或者非排放相关的DTC。

14服务清除DTC原理:

在这里插入图片描述

服务请求

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

请求格式

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

在这里插入图片描述

图1 14诊断服务请求格式

下图2中各参数解释如下:
在这里插入图片描述

图2 14请求格式说明

对于参数"groupOfDTC"按照14229-1标准文档定义取值如下:

在这里插入图片描述

图3 DTC Group定义

其中Powertrain, Chassis,Body Group中的定义可以由各个主机厂自行定义,对于0xFFFF00-0xFFFFFE字段,如FFFF33表示排放相关的DTC Group,FFFFD0则表示Safety Group,其他的DTC group见如下表表格定义:

在这里插入图片描述

在这里插入图片描述

图4 DTC Group标准定义
请求实例

以清除排放相关的DTC Group FF FF 33为例,如下图5所示:

在这里插入图片描述

图5 14诊断请求实例

发送14 FF FF 33诊断指令请求清除排放相关的DTC Group。

服务响应

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

正响应格式

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

在这里插入图片描述

图6 14诊断服务正响应格式

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

  • Response ID:该参数固定为SID+0x40 = 0x54;
正响应实例

如下图7所示,为上述请求示例所对应的正响应:

在这里插入图片描述

图7 14正响应实例
负响应NRC支持

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

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

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

在这里插入图片描述

图8 14服务NRC支持
  • 例如当尝试请求清除DTC时且当前车速条件不满足,此时Client发送诊断指令"14 FF FF FF"请求Server发生清除DTC行为,Server将会回复“7F 14 22”来告诉请求者当前执行清除DTC的条件不满足,请再次检查执行清除DTC的条件。
  • 当发送报文长度或者格式不对时,则Server会回复"7F 11 13";
  • 当诊断请求的groupOfDTC不在Server支持的范围内时,则Server会回复”7F 11 31“
  • 当Server在执行写入NVM出现错误的时候,那么此时Server则会回复"7F 11 72";

NRC优先级

有时候输入的诊断指令可能会同时存在多种错误,因此为了区分这些不同种错误的重要性,14229-1标准文档规定了NRC的优先级,针对14服务的NRC优先级如下:

在这里插入图片描述

图9 14服务NRC优先级

常见bug大揭秘

对于从事过UDS开发的小伙伴可能会发现,其实针对每个服务的Bug都是有迹可循的,万变不离其宗,绝大多数问题都是由于针对需求理解不清晰或者其他人为因素导致的问题。

因此,为了方便大家能够在工作过程中能够快速找到问题症结所在,特将小T了解到的常见14服务Bug分享给到大家,当然具体问题还是要具体分析。
在这里插入图片描述

所谓14清除DTC策略就是如下AUTOSAR配置参数"DemClearDTCBehavior"来实现。

在这里插入图片描述

更多精彩内容!敬请关注公号: ADAS与ECU之吾见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64073.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

相控阵天线(十二):天线校准技术仿真介绍之旋转矢量法

目录简介旋转矢量法算法介绍旋转矢量法校准对方向图的影响旋转矢量法算法仿真移相器位数对旋转矢量法的影响多通道旋转矢量法算法仿真分区旋转矢量法算法仿真简介 由于制造公差和天线互耦的影响,天线各通道会呈现出较大的幅相误差,因此需对天线进行校准…

光阑,像差和成像光学仪器

人眼 人眼成像过程 空气-角膜 水状液-晶状体 晶状体-玻璃体 三个界面的折射成像 瞳孔 2-8mm 可变光阑,调节入射光强弱 睫状肌 改变晶状体曲率---调焦 人眼的调节 远点—眼睛完全松弛状态下看清楚的最远点,正常眼的远点在无穷远 近点—睫状肌最大收缩(焦…

【Redis】解决全局唯一 id 问题

永远要记得坚持的意义 一、全局唯一 id 场景 概念: 以订单表的 id 为例 使用自增 id 会产生的问题: id 的规律性太明显,容易让用户猜测到一些信息受表单数据量的限制 —— 分布式存储时,会产生问题 (自增长&#x…

讲理论,重实战!阿里内部SpringBoot王者晋级之路全彩小册开源

大家都知道,Spring Boot框架目前不仅是微服务框架的最佳选择之一,还是现在企业招聘人才肯定会考察的点;很多公司甚至已经将SpringBoot作为了必备技能。但,现在面试这么卷的情况下,很多人面试时还只是背背面试题&#x…

基于KDtree的电路故障检测算法的MATLAB仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 k-d树是每个节点都为k维点的二叉树。所有非叶子节点可以视作用一个超平面把空间分割成两个半空间。节点左边的子树代表在超平面左边的点,节点右边的子树代表在超平面右边的点。选择超…

企业数据安全如何落实?私有化知识文档管理系统效率部署

编者按:本文分析了数据安全性企业的重要性,特别是高保密企业单位,介绍了天翎知识文档管理群晖NA是如何保护企业数据安全的。 关键词:私有化部署,安全技术,数据备份,病毒防护,全网隔…

【zeriotier】win10安装zeriotier的辛酸泪

目录概述问题1:waiting for zeriotier system service问题2:Zerotier One 出现Node ID “unknown”问题3:一切正常,但是连不上服务器最终解决方法附录概述 背景:实验室的服务器是使用zeriotier组网的,因此…

字符串-模板编译

模板编译 编译就是一种格式转换成另一种格式的过程,这里主要讨论一下模板编译。模板字符串对比普通的字符串有很多的不同,模板字符串可以嵌套,并且模板字符串可以在内部使用${xxx}进行表达式运算以及函数调用,这些其实都是模板编…

DPDK Ring

无锁环ring是DPDK提供的一种较为基础的数据结构,其支持多生产者和多消费者同时访问。 经过我的经验,无锁结构的实现主要依靠两方面: 最终的数据交换一定要是原子级的操作,最常用到的自然就是比较后交换(Compare And S…

Java项目:SSM个人博客网站管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目包含管理员与游客两种角色; 管理员角色包含以下功能: 发表文章,查看文章,类别管理,添加类别,个人信息管理,评论…

DeepSort目标跟踪算法

DeepSort目标跟踪算法是在Sort算法基础上改进的。 首先介绍一下Sort算法 Sort算法的核心便是卡尔曼滤波与匈牙利匹配算法 卡尔曼滤波是一种通过运动特征来预测目标运动轨迹的算法 其核心为五个公式,包含两个过程: 其分为先验估计(预测&…

[附源码]计算机毕业设计人事管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

UE4中抛体物理模拟UProjectileMovementComponent

UE4中抛体物理模拟UProjectileMovementComponent1.简述2.使用方法3.绘制抛物曲线4.绘制抛物曲线1.简述 背景:实现抛体运动,反弹效果,抛物曲线等功能 通用实现可以使用spline绘制,物体按照下图接口可以根据时间更新位置 USplineC…

CN_MAC介质访问控制子层@CSMA协议

文章目录常用方法静态方法信道划分MAC特点动态方法随机访问MACCSMA协议CSMA/CD多点接入(或多点访问):载波监听Note:🎈碰撞检测碰撞:碰撞冲突过程传播时延对载波侦听的影响🎈争用期发现碰撞的最迟情况电磁波的速率是有限最短帧长🎈小结&#x…

CAD重复圆绘制机械图形

这次CAD必练图形第四个,这个图形主要用到了CAD圆、直线、修剪、旋转等多个命令,看着不简单,等绘制出来后就觉得还是挺简单的。 目标图形 操作步骤 1.使用CAD直线命令绘制一条水平的直线和四条垂直的直线,四条垂直的直线之间的距…

【网络层】DHCP协议(应用层)、ICMP、IPv6详解

注:最后有面试挑战,看看自己掌握了吗 文章目录DHCP------DHCP服务器来动态分配IP--------应用层协议----允许地址重用ICMP字段----差错报文、询问报文差错报文-----终点不可达无法交付--------源点抑制、拥塞丢数据(现在废弃)----…

JAVA小区物业管理系统(源代码+论文)

毕业设计(论文) [摘要] 物业管理系统是紧随当今时代发展的需要,目的在于实现不同的人员对物业系统的不同的需要,有利于社会的稳定和顺利发展。 关键词:小程序Applet;应用程序Application;数据库;数据库实现&#xf…

12.5 - 每日一题 - 408

每日一句:没有醒不来的早晨,弄不懂的题目,熬不过的迷茫,只有你不敢追的梦。 数据结构 1 在最后一趟排序开始之前,所有记录有可能都不在其最终位置上的是______。 A. 直接插入排序B. 冒泡排序C. 堆排序D. 快速排…

底层逻辑-理解Go语言的本质

1.Java VS Go语言 Java,从源代码到编译成可运行的代码 上图已经展示了这个过程:从Java的源代码编译成jar包或war包(字节码),最终运行在JVM中。 我们把Java源代码编译后的jar包或war包看成是工程师生产出来的产品,操作系统是一个平台,JVM就是…

【RCNN系列】RCNN论文总结

目标检测论文总结 【RCNN系列】 RCNN RCNN目标检测论文总结前言一、Pipeline二、模型设计1.warp2.SVM3.阈值设定4.box回归三、思考四、缺点前言 一些经典论文的总结。 一、Pipeline 首先传入Input image,利用Selective Search(比较古老)算法…