目录

1. (0x10)DiagnosticSessionControl

1.1 服务描述

1.2 诊断会话控制请求消息

1.3 诊断会话控制正响应消息

1.4 支持的错误反馈码

1.5 示例

2. (0x11)ECUReset

2.1 服务描述

2.2 请求消息帧

2.3 正响应消息帧

2.4 支持的负反馈信号

2.5 示例

3. (0x27)SecurityAccess

3.1 服务描述

3.2 requestSeed请求消息

3.3 sendKey请求消息

3.4 积极正响应消息

3.5 支持的负反馈码

4. (0x28)CommunicationControl

4.1 服务描述

4.2 请求消息

4.3 积极正响应消息

4.4 支持的负响应码

4.5 示例

5. (0x3E)TesterPresent

5.1 服务描述

5.2 请求消息

5.3 积极正响应消息

5.4 支持的负响应码

5.5 示例

6. (0x85)ControlDTCSetting

6.1 服务描述

6.2 请求消息

6.2 积极正响应消息

6.3 支持的负响应码


1. (0x10)DiagnosticSessionControl

1.1 服务描述

诊断会话控制服务用于在服务器中启用不同的诊断会话。诊断会话支持服务器中的一组特定的诊断服务和(/或)功能。该服务可使服务器能够报告已启用的诊断会话中特定的参数值(例如,定时参数值)。

服务器中应始终有一个活动的诊断会话。当启动时,服务器应始终启动默认的诊断会话如果没有启动其他诊断会话,则只要服务器打开电源,默认诊断会话就会运行

服务器应能够在正常运行条件下和在车辆制造商定义的其他运行条件下提供诊断功能。

如果客户端请求一个已经运行的诊断会话,则服务器应发送积极正响应消息。每当客户端请求一个新的诊断会话时,服务器应在新会话的时间激活之前发送诊断会话控制积极响应消息。如果服务器无法启动客户端所请求的新诊断会话,则服务器应使用诊断会话控制负响应消息进行响应,并且当前会话将继续运行。

非默认诊断会话(不包括编程模式)中的诊断服务和诊断功能集是默认会话中提供的功能的超集,这意味着当切换到任何非默认诊断会话时,默认会话的诊断功能也可用。

要启动一个新的诊断会话,服务器可能会请求满足某些条件,而这些条件是由用户自定义,比如:

  • 服务器可能只允许具有特定客户端标识符(客户端诊断地址,一般是物理寻址方式)的客户端启动特定的新诊断会话;
  • 可能需要满足某些安全条件;

1. 默认会话:当服务器处于默认会话中,客户端请求启动默认会话时,服务器应完全重新初始化默认会话。在激活的时段期间, 服务器应重置所有激活/启动/更改的设置/控制。但这并不包括被编程进入非易失性存储器的长期变化.

2. 其他会话:当服务器从默认会话过渡到除默认会话以外的任何其他会话时,服务器只能停止在默认会话期间通过事件响应服务(0x86)在服务器中配置的事件(类似于停止响应事件)。

3. 相同会话或其他会话:当服务器从默认会话以外的任何诊断会话转换到默认会话以外的其他会话(包括当前活动的诊断会话)时,服务器应(重新)初始化诊断会话,这意味着:

  • 应停止通过响应事件(0x86)服务在服务器中配置的每个事件。
  • Security安全应重新锁定。安全访问的锁定应重置任何依赖于安全访问而要解锁的活动诊断功能(例如,DID的输入输出控制)。
  • 应维护新会话中支持的且不依赖于安全访问的所有其他活动诊断功能。例如,任何配置的定期调度器在从一个非默认会话转换到另一个或同一非默认会话时,都应保持活动状态。通信控制和DTC控制服务(CommunicationControl and ControlDTCSetting)的状态不会受到影响,这意味着当会话切换时间点被禁用时,正常通信应保持禁用状态。

4. 默认会话:当服务器从除默认会话以外的任何诊断会话转换到默认会话时,服务器应通过事件响应服务(0x86)停止已在服务器中配置的每个事件,并应启用安全性。默认会话不支持的任何其他活动诊断功能应终止。例如,任何配置的定期调度器或输出控制应被禁用,通信控制和控制服务的状态应被重置,这意味着在会话切换到默认会话的时间点被禁用时,正常通信应重新启用。在激活的时段期间,服务器应重置所有激活/启动/更改的设置/控制。这并不包括被编程进入非易失性存储器的长期变化。

下表定义在默认会话和非默认会话(定时服务)期间允许的服务。任何非默认会话都被绑定到一个诊断会话计时器上,该计时器必须由客户端保持活动状态。

1.2 诊断会话控制请求消息

1.3 诊断会话控制正响应消息

1.4 支持的错误反馈码

1.5 示例

2. (0x11)ECUReset

2.1 服务描述

客户端使用ECUReset(0x11)服务来请求服务器重置。该服务请求服务器根据ECUReset请求消息中嵌入的Type参数值的内容,有效地执行服务器重置。

在服务器上执行ECUReset之前,应发送ECUReset正响应消息(如果需要)。在服务器重置成功后,服务器应激活默认会话。

2.2 请求消息帧

2.3 正响应消息帧

2.4 支持的负反馈信号

2.5 示例

3. (0x27)SecurityAccess

3.1 服务描述

该服务的目的是提供一种访问数据和(或)诊断服务的手段,这些服务出于安全原因限制了默认会话的访问。比如:下载或上传的例程、从服务器读取特定内存位置的诊断服务等。

安全访问概念使用了:种子(Seed)和密钥(Key)的概念。

使用此服务的一个典型例子如下:

“requestSeed”子函数参数值应始终为奇数,同一安全级别对应的“sendKey”子函数参数值应等于“requestSeed”子函数参数值加1。 ---> 都是从客户端发起

在任何时候,只有一个安全级别应该被激活。例如,如果与requestSeed 0x03相关联的安全级别处于活动状态,并且诊断仪请求成功解锁与requestSeed 0x01相关联的安全级别,那么此时只能解锁与requestSeed 0x01相关联的安全级别支持的安全功能。以前由与requestSeed 0x03关联的安全级别解锁的任何附加安全功能都将不再处于活动状态。安全级别的编号是任意的,不意味着这些级别之间有任何关系(即没有优先级的概念)

客户端应通过发送服务安全访问的“requestSeed”消息来请求服务器“解锁”。服务器应通过使用服务安全访问“requestSeed”的积极响应消息发送“种子”来进行响应。然后,客户端应通过使用适当的服务安全访问的“sendKey”请求消息向服务器返回一个“密钥”号来进行响应。服务器应将此“密钥”与一个内部存储/计算的"密钥"进行比较。如果两个数字匹配,则服务器应启用(“解锁”)客户端对特定服务/数据的访问,并指示使用服务安全访问“sendKey”积极响应消息。如果这两个数字不匹配,则应被视为错误访问尝试。一个无效的密钥要求客户端使用安全访问的“requestSeed”消息重新开始请求信息。

如果服务器支持安全访问,但当收到客户端安全访问““requestSeed”消息时,客户端请求的安全性级别已经解锁,则该服务器应使用安全访问““requestSeed”正响应消息服务进行响应,其种子值等于零(0)服务器不得为当前锁定的给定安全级别发送零种子客户端应使用此方法,通过检查非零种子,来确定服务器特定的安全级别是否被锁定

3.2 requestSeed请求消息

3.3 sendKey请求消息

子函数参数“securityAccessType”向服务器指示此服务正在进行的步骤、客户端想要访问的安全级别以及种子和密钥的格式。如果服务器支持不同级别的安全级别,则每个级别都应由请求者种子值来标识,该值与sendKey值有固定的关系:

“requestSeed = 0x01”表示“requestSeed = 0x01” 和 “sendKey = 0x02”的固定关系,

“requestSeed = 0x03”表示“requestSeed = 0x03” 和 “sendKey = 0x04”的固定关系。

3.4 积极正响应消息

3.5 支持的负反馈码

4. (0x28)CommunicationControl

4.1 服务描述

该服务的目的是打开(或关闭)服务器的某些消息的发送与(或)接收,例如:应用通信消息。

4.2 请求消息

4.3 积极正响应消息

4.4 支持的负响应码

4.5 示例

5. (0x3E)TesterPresent

5.1 服务描述

此服务用于向服务器指明客户端仍然在线,并且之前已经激活的诊断服务(或通信)将保持活动状态。

此服务用于在诊断会话不是默认会话中,保留一个或多个服务。客户端可以通过定期发送TesterPresent服务请求消息,或在没有其他诊断服务的情况下防止服务器(s)自动返回到默认会话来实现

5.2 请求消息

5.3 积极正响应消息

5.4 支持的负响应码

5.5 示例

6. (0x85)ControlDTCSetting

6.1 服务描述

客户端使用ControlDTCSetting服务来停止或恢复服务器中DTC状态位的更新。DTC状态位体现于ReadDTCInformation的某些子函数的正响应的DTC状态参数中。

ControlDTCSetting请求消息可用于停止对单个(一组)服务器中的DTC状态位的更新。如果被寻址(功能或物理寻址)的服务器无法停止DTC状态位的更新,它应该响应一个控制的负响应消息,指示拒绝。

当服务器接受ControlDTCSetting子函数值为DTCSettingType = off请求时,服务器应暂停对DTC状态位的任何更新(比如:冻结当前值),直到再次启用该功能。一旦子功能DTCSettingType设置为“开启”或转换到不支持此服务的诊断会话时(例如:会话层超时到默认会话超时、ECU重置等),DTC状态位信息的更新将继续进行。如果此时的诊断会话服务支持ControlDTCSetting服务,并且请求的子功能设置为“开”或“关闭”,服务器仍然应该向客户端发送一个积极的响应,即使请求的DTC设置状态已经处于活动状态

如果客户端发送清晰诊断信息(0x14)服务,ControlDTCSetting设置不应禁止重置服务器的DTC状态位。

DTC状态位记录了与表示特定故障条件的DTC相关的某些信息。ControlDTCSetting 服务只关闭DTC状态位更新,但不会导致故障监控系统关闭,也不会导致故障软件策略失效。

6.2 请求消息

6.2 积极正响应消息

6.3 支持的负响应码

TODO: .....

关于UDS诊断会话管理功能相关服务的学习笔记相关推荐

  1. 5G NGC — SMF 会话管理功能

    目录 文章目录 目录 SMF SMF 过载控制 NF Services Nsmf_PDUSession Service Create SM Context service operation Upda ...

  2. 从零写一个具有IOC-AOP-MVC功能的框架---学习笔记---11. MVC功能之http请求处理器的编写---简易框架最后一公里!

    从零写一个具有IOC-AOP-MVC功能的框架-学习笔记 专栏往期文章链接: IOC功能相关章节: 从零写一个具有IOC-AOP-MVC功能的框架-学习笔记-01.项目初始化 从零写一个具有IOC-A ...

  3. 什么是5G会话管理功能(SMF)

    5G SMF是5G基于服务架构的一个功能单元.SMF主要负责与分离的数据面交互,创建.更新和删除PDU会话,并管理与UPF的会话环境(session context). UE和gNB采用NGAP(Ne ...

  4. 20145212 罗天晨 WEB登陆发贴及会话管理功能的实现

    会话管理简介 Cookie: cookie常用于识别用户. cookie 是服务器留在用户计算机中的小文件,每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie. 通过PHP能够创建并取回 ...

  5. 管理节点连接不上sql节点_华为云IEF智能边缘平台十万边缘节点管理技术深度解读学习笔记...

    华为云智能边缘平台IEF首席架构师张琦在3月27-28日举办的华为开发者大会2020(Cloud)上,深度解读了十万边缘节点的管理技术,以及如何通过云原生技术和边缘计算结合,构建边缘计算实战场景中所需 ...

  6. 【C++内存管理侯捷】---学习笔记(下)malloc/free,loki allocator,other issue

    第三讲 malloc/free 3.1 VC6和VC10的malloc比较 malloc/free是C层面的函数 源代码是来自于VC6.0:因为比较复杂,因此以图为主,辅以部分源代码,理解其运行机制: ...

  7. 管理沟通-西南交通大学学习笔记

    管理沟通 管理沟通 第一章 有效沟通概述 管理职能有三: 什么是沟通.三种基本路经: 沟通四项基本原则: 第二章 有效沟通技巧 沟通的两个重要环节: 关键的沟通技巧中更关键的环节: 第三章 有效的肢体 ...

  8. 《不做焦头烂额的领导,实用有效的管理私房课》学习笔记

    导师:刘军,中国私人董事会资深教练,原正和岛私董会总经理,北大.清华.浙大总裁班授课讲师. 第一课,效能管理的4个建议 1.拉长时间轴,每天早八点到晚十点,每周休一天,早于这个时间就是惊喜. 2.85 ...

  9. 拉勾教育后台管理系统(SSM)(课程管理模块开发)【学习笔记】

    文章目录 1.项目架构 1.1.项目介绍 1.2.技术选型 1.2.1.前端技术选型 1.2.2.后端技术选型 1.3.项目开发环境 2.Maven进阶使用(Maven聚合工程) 2.1.maven的 ...

  10. [软件工程]软件生存周期过程与管理————(2020.6.29学习笔记)

    目录 第一节 软件生存周期过程概述 第二节 过程描述 第三节 应用说明 第四节 软件生存周期模型 第五节 过程规划与管理 第一节 软件生存周期过程概述 软件生存周期(SDLC,软件生命周期) 是软件的 ...

最新文章

  1. R语言使用trimws函数:trimws函数去除(删除、remove)字符串头尾的空格
  2. day04-html
  3. [C++STL]常用拷贝和替换算法
  4. pythonide的作用_Linux程序员宝典:2020年10款出色的Python IDE!
  5. Windows10下VB6.0开发——常用数值处理函数工具
  6. Atitit.研发管理---TOGAF架构跟 (ADM开发方法)总结
  7. Linux下登陆mysql服务器不需要输入账号密码信息
  8. 取代ClubHouse的节奏!这款开源聊天室太好用了
  9. 计量论文stata代码大全
  10. 换脸算法 X2Face 详解
  11. 二级mysql真题2019_2019年9月二级MySQL试题(汇总)
  12. 2.19 serenity
  13. Scratch软件编程等级考试四级——20201219
  14. 更名通知 || 初心未改,只为更好,好嗨游戏来了
  15. 50个直击灵魂的问题_直击心灵的48个问题
  16. 分享Android资深架构师的成长之路,建议收藏
  17. 2.1 Converting Celsius to Fahrenheit
  18. cron定时怎么设置
  19. 什么是permit-inside功能
  20. 单位办公电脑声音和摄像头被关闭,如何打开笔记本麦克风和摄像头。

热门文章

  1. 用数组统计字符串中26个大写字母的个数
  2. 哪款视频压缩软件比较好用?
  3. [音乐] 逆转裁判1~4 追求 链接
  4. 制作banner思路
  5. linux locale 编译,Linux locale 缺失和安装
  6. android 自定义locale,android – 以编程方式设置Locale
  7. JetBrain注册学生免费帐号方法
  8. php 设置post大小_php – 设置$_POST变量
  9. 〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)
  10. 什么是云服务举例说明_什么叫云服务举例说明(云服务器实例是什么)