诊断仪在线服务是一个功能最简单的服务了,它的功能只有一个,就是告诉服务端,也就是ECU,诊断仪仍然还在连接着,服务端不要走神(切换状态)。

一、服务介绍

想象一个场景,我要用诊断仪给ECU发送一些数据,而填写数据的时候,我是没有操作诊断仪给ECU发送任何诊断请求的。而一般遵照ISO14229-2的要求,超过S3时间,ECU就会从非默认会话切换到默认会话。而我不希望发生这种情况,该怎么办呢?
方法就是在填写数据的时候,在S3时间之内发送诊断请求给ECU,那么每个服务都有对应的功能,如果随便选一个,就会执行其功能了。为了保持一个状态而执行一些不必要的服务,这是不太合理的,所以就有了诊断仪在线服务,它唯一的功能就是保持当前状态,不执行任何功能。

二、应用数据格式

1.请求报文

诊断仪在线的请求格式很简单,只有两个字节,第一个字节是它的服务ID,第二个字节是子功能00,是的,它有子功能。一个没有任何功能的服务为什么会有子功能呢?先卖个关子☺

2.响应报文

响应报文和请求报文一样简单,响应的服务ID和子功能,一共两个字节。

3.子功能

诊断仪在线服务只有一个子功能,就是00,没有特定的含义,它存在的意义只是为了发送请求的时候可以将抑制肯定响应位置1,也就是子功能字节从00变成80。这一位有什么用,在这儿再复习一下,将名字断句为“抑制”和“肯定响应”,含义就很明显了,抑制就是压抑、控制,抑制的内容就是肯定响应,也就是说这一位表示控制肯定响应不要回了(但除部分特殊情况,否定响应是需要回的,具体参照系列之二)。
控制肯定响应的回复有什么用呢,主要就是为了减少不必要的带宽占用,因为有些服务大部分时候都是由功能寻址发出来的请求,如果要求所有节点都进行响应,就会出现很多响应报文发出来占用总线带宽,而这些响应是没必要的。所以,ECU在接收到抑制肯定响应位是1的请求报文时,如果处理结果是肯定响应,就不需要回复了,这个位适合所有带子功能的服务。
回到诊断仪在线服务,它的使用场景就是告诉ECU不要改变状态,在子功能的抑制肯定响应位设置成1之后,如果ECU的服务执行没有问题,就不需要给出肯定响应,也就是没有消息就是最好的消息。
这里还有个事情需要注意的就是,功能寻址的诊断仪在线服务,如果抑制肯定响应位设置为1,那么要求ECU使用旁路来处理这个请求,而不应该影响其他正在执行的服务。最常用的场景就是执行刷写发送大量数据的过程中,需要保持其他ECU的状态,这时候就会周期发送诊断仪在线请求,如果ECU能够旁路处理,那么就不会影响正在刷写的ECU。

UDS诊断系列之九 诊断仪在线(3E)服务相关推荐

  1. 诊断仪在线$3E服务

    返回UDS系列讲解总目录 一.服务描述 $3E服务通过周期性地传输请求消息或者在没有其他诊断服务的时候启动,将一个或者多个ECU保持在非默认会话状态,防止服务器自动返回默认会话. 这个服务的理解需要结 ...

  2. UDS诊断系列之四 诊断请求和响应

    这一篇重点说一下诊断的请求和响应所包含的信息以及格式要求. 一.诊断数据单元 诊断数据单元一般包含地址信息和应用数据.应用数据长度,其中应用数据会包含服务ID.子功能参数(如果有)和应用数据参数: 1 ...

  3. UDS诊断系列之二 ISO14229协议介绍(上)

    ISO14229系列,涵盖了UDS的服务定义以及在各车载总线上的一些特殊应用指导,以及各总线类型所对应的下层协议要求,下面就是该系列中各协议所对应的内容清单. 协议编号 协议名称 协议内容 14229 ...

  4. UDS诊断系列之五 诊断会话控制(10)服务

    诊断会话控制服务,其服务ID是0x10,主要功能为控制服务端的会话模式的切换. 一.诊断会话模式 诊断会话模式分为默认会话模式和非默认会话模式,不同的会话模式所支持的功能.权限.时间参数等等是不一样的 ...

  5. UDS诊断系列之三 ISO14229协议介绍(下)

    上篇主要分享了一些基本概念和响应规则,里面提到了否定响应码,也提到了ISO14229-1的附录A是一张否定响应码的表格,里面详细介绍了否定响应码的具体含义.那么在什么时候给出什么样的否定响应码,这篇里 ...

  6. UDS诊断系列之十 DTC控制(85)服务

    DTC控制服务的主要作用是控制DTC的状态更新. 一.响应规则 DTC=diagnostic trouble code,DTC的状态是故障信息中的一个字节,用来表示故障当前的状态是正在发生还是仅仅发生 ...

  7. UDS诊断系列之十一 输入输出控制(2F)服务 上

    应粉丝要求,先来更新输入输出控制(2F)服务的内容. 输入输出控制(2F)服务顾名思义就是对输入和输出内容进行控制,这里的输入和输出一般指的是控制器的输入和输出引脚或者设备,例如仪表的各种灯就是仪表控 ...

  8. UDS诊断系列介绍08-19服务

    本文框架 1. 系列介绍 1.1 19服务概述 1.2 DTC故障码定义 1.3 DTC状态位 2. 19服务常用子服务 2.1 19 01服务 2.2 19 02服务 2.3 19 04服务 2.4 ...

  9. UDS诊断系列介绍13-31服务

    本文框架 1. 系列介绍 1.1 31服务概述 2. 31服务请求与应答 2.1 31服务请求 2.2 31服务正响应 2.3 31服务否定响应 3. Autosar系列文章快速链接 1. 系列介绍 ...

最新文章

  1. linux mysql 数据目录迁移后不生效_mysql 本地数据目录迁移
  2. 两台centos之间传送文件
  3. Booting ARM Linux SMP on MPCore
  4. 使用Spring Security进行简单身份验证
  5. 工作259:uni--页面--验证码添加
  6. angularjs directive scope变化为啥html,学习AngularJs:Directive指令用法(完整版)
  7. 信息学奥赛一本通(1090:含k个3的数)
  8. SpringBoot拦截器配置
  9. 数据库设计经验浅谈(3,4,5)转载
  10. 【蓝桥杯单片机组】| DS1302(官方驱动)+ 矩阵按键 + 数码管(改,解决数码管跳动的问题)
  11. python基础教程十进制_Python基础教程(四)
  12. vmaware 安装chrome OS 系统教程
  13. Android的build-tools的下载方式
  14. U-Boot中Distro_bootcmd的实现分析
  15. Flume+kafka+Spark Steaming demo2
  16. NY891 区间选点 找点
  17. 计算机专业选锐龙还是英特尔,还在纠结锐龙还是英特尔吗?送你一份CPU选购指南...
  18. canvas线条背景(抽象画布可视化,利用canvas绘制多条线条,再利用多条线条同时动态发生改变,形成一幅美妙的动态图,非常惊艳!)
  19. 下列关于java泛型的说法正确_下列关于泛型的说法不正确的一项是:( )_学小易找答案...
  20. 登录注册功能的实现详解(多用户名注册、案例补充)

热门文章

  1. Laya动画,整图动画,序列图动画,时间轴动画,龙骨动画
  2. 第 27 章 LCD—液晶显示
  3. Android多进程压缩图片库
  4. python 的numpy库中的mean()函数用法
  5. Android蓝牙打印二维码打印外卖单打印
  6. 向量空间、列空间和零空间
  7. idea设置统一编码风格
  8. mysql5.7修改账户密码
  9. C++学习之两种向下转型
  10. phpcms后台管理基本操作(头部尾部的替换)