1.DiagnosticSessionControl (0x10)service

  DiagnosticSessionControl服务在服务器中用于切换至不同的诊断会话,对应的SID为0x10。不同诊断会话下对其SID服务权限如下图所示:


1.1请求格式:SID + sub function

  请求格式固定两个字节,第一个字节SID:0x10,第二个字节低7bit为sub function,决定ECU服务器切换至指定Diagnostic Session。

所有的 Diagnostic Session如下:

 0x00 :ISOSAEReserved(保留)0x01 : defaultSession(默认会话)0x02 :ProgrammingSession(编程会话)0x03 :extendedDiagnosticSession(扩展会话)0x04 :safetySystemDiagnosticSession0x05 – 0x3F : ISOSAEReserved(保留)0x40 – 0x5F :vehicleManufacturerSpecific(由整车厂自定义使用)0x60 – 0x7E :systemSupplierSpecific(由ECU供应商自定义使用)0x7F :ISOSAEReserved(保留)

  注意:不同的Diagnostic Session相应的权限不用。默认会话权限最小,可操作的服务少;扩展模式通常用于解锁高权限诊断服务,例如写入数据/参数、读写诊断码;编程模式用于解锁bootloader相关的诊断服务,即程序烧录。常用的Diagnostic Session:01 Default默认会话,02 Programming编程会话,03 Extended扩展会话,ECU上电时,进入的是默认会话(Default)。

  如果您进入了一个非默认会话的状态,一个定时器会运转,如果一段时间内没有请求,那么到时间后,诊断退回到默认会话01(最低权限)。当然,我们有一个3E的服务,可以使诊断保持在非默认的状态。

1.2响应格式:response SID + sub function + parameter

积极响应如下图所示:

这个诊断服务的response分为三部分,第一部分是0x50,作为SID的正响应;第二部分是进入的session,作为sub-function的响应;第三部分是4个字节,前两个字节代表P2Server_max(对于服务器接收到请求消息后发出响应消息时间的性能要求),后两个字节代表P2*Server_max(当服务器在发送否定响应码为0x78 的否定响应后,到服务器发出响应消息最长时间的性能要求)。

消极响应返回的response negative code(RNC)如下图所示:

1.3举例:

2.TesterPresent (0x3E) service

  3E服务是告知ECU服务器与诊断仪tester正连接着,用于保持ECU当前Diagnostic Session(诊断仪一般在ECU处于非default session模式下发送至ECU)。如果ECU超过一定的时间没有发送或接收诊断命令,ECU会退出非default session模式,使用3E服务可保持当前Diagnostic Session。

2.1 请求格式:SID + sub function


  sub function 只有两个参数:一个是0x00(需要ECU response),一个是0x80(不需要ECU response);

  一般来说主机厂会为这个服务定义两个时间参数,一个参数用于规定自己的诊断仪发送0x3E服务的间隔,另一个参数用于定义ECU收不到0x3E服务的timeout时间

2.2 响应格式:response SID + sub function

  只有当sub function 为 0x00 时,ECU才会响应诊断仪。响应格式如下图所示:

2.3举例

UDS协议栈系列文章:

UDS(一)入门概述

UDS(二)网络层

UDS(三)网络层时间参数

UDS(四)应用层

UDS(五)应用层10/3E

UDS(六)应用层11/27

UDS(七)应用层28/85

UDS(八)应用层22/2E

UDS(九)应用层14/19

UDS(十)应用层34/36/37

UDS(五)应用层10/3E相关推荐

  1. UDS在应用层和会话层对Enhanced diag接口的实现

    UDS在应用层和会话层对Enhanced diag接口的实现 UDS在应用层和会话层对Enhanced diag接口的实现 default session下应用层时序参数 non-default se ...

  2. 计算机网络实验五——应用层和传输层协议分析

    计算机网络实验五--应用层和传输层协议分析 一.实验目的 二.实验内容 三.实验步骤 (一)任务1: 从 PC 使用 URL 捕获 Web 请求 1.配置Packet Tracer文件 2.使用URL ...

  3. C语言递归函数例子有5个小孩,第一个比第二个大2岁 第二个比第三个大2岁 以此类推 第五个10岁求第一个年纪

    代码 //有5个小孩,第一个比第二个大2岁 第二个比第三个大2岁 以此类推 第五个10岁 求第一个年纪 #include <stdio.h>int ageFunc(int th) {if( ...

  4. 未来五年10大关键IT趋势

    在涉及IT问题时试图保持领先,心脏不强的人可不能胜任.这一观点来自于Gartner的IT年度研讨会上由分析师David Cappuccio提出的他所谓的"不容易被IT界控制的新势力正把它们推 ...

  5. UDS(七)应用层 28/85

    1. CommunicationControl (0x28) service 该服务是控制某类通讯关闭/开启接收或者发送.当uds需要下载升级或者传输大量数据时需要将can总线资源让出来,提高传输效率 ...

  6. UDS(十)应用层 34/36/37

    Upload Download functional unit 从成本等角度考虑,汽车ECU中用于缓存诊断服务数据的buffer大小有限,所以当我们需要读取或写入超过buffer大小的数据时,就无法简 ...

  7. UDS(三)网络层时间参数

    网络层定义了N_Ar.N_As.N_Br.N_Bs.N_Cr.N_Cs六个时间参数. 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息 ...

  8. UDS诊断看这篇就够了,吐血整理

    传送门 ==>> AutoSAR入门和实战系列总目录 1 简介与概述 不同诊断通信协议的开发,调整,实施和维护会给车辆制造商,系统供应商和ECU供应商带来不必要的成本.为了解决此问题,将不 ...

  9. 记:从零开始讲解UDS(一)——协议概述

    0x00 UDS概述 UDS(University Diagnostics System通用诊断系统)是一个在整车系统上经常使用的设备维护协议.其主要遵循的法规为:ISO-15765.ISO-1422 ...

最新文章

  1. Redlock——Redis集群分布式锁
  2. JS自动插入分号机制ASI
  3. AI初创公司都去哪了?2019年科技公司“五巨头”收购盘点
  4. Web API--自定义异常结果的处理
  5. 网站如何从http升级成https
  6. 有幸见到一朵花的绽放
  7. 【简洁代码】1053 住房空置率 (20分)_22行代码AC
  8. 对话系统答非所问?快试试这篇ACL'21的连贯性评估大法
  9. View绘制详解(三),扒一扒View的测量过程
  10. 给自己看的squid服务器配置笔记
  11. mysql的order by,group by和distinct优化
  12. 【4】CCNA理论第三天
  13. 幅度谱、相位谱、能量谱等语音信号处理中的基础知识
  14. VSCode沙绿色主题设置
  15. 奇异网盘点全球10大最荒诞的“时髦”事件
  16. 思维导图软件Mindmanager2018下载
  17. php touppercase strtoupper,php大小写转换函数(strtolower、strtoupper)用法介绍
  18. 飞行棋java 30kb,飞行棋棋盘
  19. JSP+ssm计算机毕业设计快递代取系统的设计与实现94wcw【源码、数据库、LW、部署】
  20. 苹果刷机有好处和坏处_苹果更新要通电源吗

热门文章

  1. 完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五...
  2. 温暖明亮色调调色效果Lr预设
  3. 项目经理面试经验宝典
  4. 如何成为一名黑客?(转)
  5. 教你使用python搭建QQ机器人
  6. cocos2dx plist中各个属性含义
  7. 0 pandas概述--1文件读取与写入--2 基本操作
  8. vue项目中 处理身份证号**
  9. iOS 获取手机IP地址
  10. 20170609Rudy黄金时代