热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

目录1.(0x10)DiagnosticSessionControl1.1服务描述1.2诊断会话控制请求消息1.3诊断会话控制正响应消息1.4支持的错误反馈码1.5示例

目    录

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 示例




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 示例

TODO: .....


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
author-avatar
亚S哥_271
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有