UDS - 10.2 DiagnosticSessionControl (10) service

10.3 诊断会话控制(10)服务

来自:ISO 14229-1-2020.pdf

10.2.1 服务说明

DiagnosticsSessionControl服务用于在服务器中启用不同的诊断会话。

诊断会话启用服务器中的一组特定诊断服务和/或功能。该服务提供了服务器可以报告对启用的诊断会话有效的数据链路层特定参数值(例如定时参数值)的能力。本文件的用户应定义每个诊断会话中启用的服务和/或功能的确切集合。

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

服务器应能够在正常操作条件下和车辆制造商规定的其他操作条件下(如跛行回家操作条件)提供诊断功能。

如果客户端请求了一个已经在运行的诊断会话,则服务器应发送一条肯定响应消息,并如图7所示,该消息描述了在会话之间转换时服务器的内部行为。

每当客户端请求新的诊断会话时,服务器应在新会话的计时在服务器中激活之前发送 DiagnosticSessionControl 肯定响应消息。某些情况下可能要求在发送肯定响应之前进入新会话,同时保持旧协议的响应计时。如果服务器无法启动请求的新诊断会话,则它应以 DiagnosticSessionControl 否定响应消息进行响应,并且当前会话将继续(有关服务器和客户端应如何表现的更多信息,请参阅诊断会话参数定义)。非默认诊断会话(不包括编程会话)中的诊断服务和诊断功能集是默认会话中提供的功能的超集,这意味着在切换到任何非默认诊断会话时,默认会话的诊断功能也可用。会话可以启用车辆制造商特定的服务和功能,这些服务和功能不属于本文档的一部分。

要启动新的诊断会话,服务器可能会要求满足某些条件。所有这些条件都是用户定义的。这些条件的示例包括:

  • 服务器可能只允许具有特定客户端标识符(客户端诊断地址)的客户端启动特定的新诊断会话(例如,服务器可能要求只有具有客户端标识符 F416 的客户端才能启动扩展诊断会话)。
  • 可能需要满足某些安全条件(例如,车辆不得移动或发动机不得运转)。例如,转换到编程会话可能会导致正常功能的丧失,因此某些 ECU 可能要求车辆处于安全状态。

在某些系统中,当启动新的诊断会话时,需要更改通信计时参数。诊断会话控制服务实体可以使用适当的服务原语来更改底层指定的计时参数,以更改本地节点中的通信计时,并可能更改客户端想要与之通信的节点中的通信计时。

图 7 概述了诊断会话转换以及服务器在转换到另一个会话时应执行的操作。

在这里插入图片描述
图 7 — 服务器诊断会话状态图

关键

  1. defaultSession:当服务器处于 defaultSession 中并且客户端请求启动 defaultSession 时,服务器应完全重新初始化 defaultSession。服务器应重置激活会话期间所有激活/启动/更改的设置/控件。这不包括编入非易失性存储器的长期更改
  2. 其他转换到任何默认会话:当服务器从默认会话转换到除默认会话之外的任何其他会话时,服务器应仅暂停在默认会话期间通过 ResponseOnEvent (86) 服务在服务器中配置的事件(类似于非默认会话处于活动状态后的时间段内的 stopResponseOnEvent)。
  3. 相同或其他会话:当服务器从默认会话以外的任何诊断会话转换到默认会话以外的另一个会话(包括当前活动的诊断会话)时,服务器应(重新)初始化诊断会话,这意味着:
    1. 通过 ResponseOnEvent (86) 服务在服务器中配置的每个事件都应停止
    2. 安全访问应重新锁定。安全访问的锁定应重置任何依赖于安全访问的活动诊断功能以将其解锁(例如,DID 的活动输入输出控制)
    3. 新会话中支持的、不依赖于安全访问的所有其他活动诊断功能均应保留。例如,任何配置的定期调度程序在从一个非默认会话转换到另一个或同一个非默认会话时都应保持活动状态,并且通信控制和控制 DTC 设置服务的状态不应受到影响,这意味着在会话切换时禁用正常通信时,正常通信应保持禁用状态
  4. 转换到默认会话:当服务器从默认会话以外的任何诊断会话转换到默认会话时,服务器应恢复通过 ResponseOnEvent (86) 服务在服务器中配置的每个事件,并且事件窗口仍然有效。此外,应在服务器中激活锁定的安全级别。应终止默认会话中不支持的任何其他活动诊断功能。例如,应禁用任何配置的定期调度程序或输出控制,并应重置 CommunicationControl 和 ControlDTCSetting 服务的状态,这意味着在会话切换到默认会话时,应重新启用被禁用的正常通信。服务器应重置激活会话期间所有激活/启动/更改的设置/控件。这不包括编入非易失性存储器的长期更改

表 23 指定了默认会话和非默认会话(定时服务)期间允许的服务。任何非默认会话都与诊断会话计时器绑定,该计时器应由客户端保持活动状态。

表 23 — 默认和非默认诊断会话期间允许的服务

服务默认会话非默认会话
DiagnosticSessionControl-0x10XX
ECUReset-0x11XX
SecurityAccess-0x27不适用X
CommunicationControl-0x28不适用X
TesterPresent-0x3EXX
Authentication-0x29XX
SecuredDataTransmission-0x84不适用X
ControlDTCSetting-0x85不适用X
ResponseOnEvent-0x86 X a X^{a} X

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

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

相关文章

ZAP安全扫描工具

下载地址: 去官网下载:https://www.zaproxy.org/download/ 1.主动扫描 需要登录的网站建议使用主动扫描 也可以绕过登录进行手动扫描 再选择手动扫描后 获取到对应的token 2.自动扫描 3.查看报告 4.扫描策略的使用

.gitignore git添加忽略文件

在项目的根目录下创建一个名为 .gitignore 的文件。在这个文件中,列出您希望Git忽略的文件和文件夹的名称或模式。 下面是一些基本的步骤和规则: 创建 .gitignore 文件:在项目根目录下创建一个名为 .gitignore 的文件。如果没有这个文件&…

如何设计一门编程语言?

一、设计流程 步骤说明 确定语言目标和用途: 目标受众:确定是面向初学者、专业开发者还是特定领域专家。 主要用途:明确语言的主要用途,如系统编程、Web 开发、数据分析、科学计算等。 独特卖点:确定语言的独特优势…

如何使用 Python 交互式解释器?

1. 什么是Python交互式解释器? Python交互式解释器是一种REPL(Read-Eval-Print Loop)环境。它会读取用户输入的代码,执行代码,并输出结果,随后等待下一个用户输入。这种交互方式使得Python非常适合快速原型…

【Day03】0基础微信小程序入门-学习笔记

文章目录 视图与逻辑学习目标页面导航1. 声明式导航2. 编程式导航3. 导航传参 页面事件1. 下拉刷新2. 上拉触底3.扩展-自定义编译模式 生命周期1. 简介2. 生命周期函数3. 应用的生命周期函数4. 页面生命周期函数 WXS脚本1. 概述2. 基础语法3. WXS的特点4. 使用WXS处理手机号 总…

Multisim详细安装过程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Multisim是什么?二、下载安装步骤1.下载安装包2.安装 总结 前言 对于很多学习电路,数电,模电的朋友,我们在…

富格林:可信经验曝光有效出金

富格林认为,在现货黄金当中,曝光可信的交易技巧可以帮助投资者有效地盈利出金。现货黄金市场就像一把双刃剑,投资者利用得好就能成为赢家,利用得不好便是损失钱财。事实上,要想成为赢家还是要掌握必须的可信经验。以下…

volcengine 库装不上 #25

https://github.com/volcengine/volc-sdk-python/issues/25 解决了, 就是解决方案比较蠢 在 Docker python3.10-slim 中 volcengine 安装时报错, 其依赖 pycryptodome 显示 gcc 相关错误 调研发现 pycryptodome3.19.0 不会报错, volcengine 依赖的 pycryptodome3.9.9 会报错 …

php中strict_types使用详解

在PHP中,strict_types是一个声明性的指令,用于在文件级别控制类型声明的严格性。当你在脚本的最顶部使用declare语句启用strict_types时,PHP将在该文件中对类型声明执行严格的类型检查。这意味着函数参数、返回值等必须精确匹配指定的类型&am…

05-Mysql备份与恢复

物理备份:对数据库操作系统的物理文件(如数据库文件,日志文件等)的备份 物理备份方法: 冷备份(防脱备份):是在关闭数据库的时候进行的 热备份(联机备份)&am…

入门JavaWeb之 Session 篇

Session: 服务器会给每个用户(浏览器)创建一个 Session 对象 一个 Session 独占一个浏览器,只要浏览器没有关闭,这个 Session 就存在 代码如下: package com.demo.cookie;import javax.servlet.Servlet…

WPF/C#:如何实现拖拉元素

前言 在Canvas中放置了一些元素&#xff0c;需要能够拖拉这些元素&#xff0c;在WPF Samples中的DragDropObjects项目中告诉了我们如何实现这种效果。 效果如下所示&#xff1a; 拖拉过程中的效果如下所示&#xff1a; 具体实现 xaml页面 我们先来看看xaml&#xff1a; <…

软件工程练习题1

一、选择 1. &#xff08; D &#xff09;不可以作为模块 A.子程序 B.函数 C.过程 D.循环 2. 下列哪个阶段不属于软件生命周期三大阶段&#xff08; C &#xff09; A.定义阶段 B.开发阶段 C.编码阶段 D.维护阶段 3. 需求分析最终结果是产生&#xff08;B&#…

python之静态函数装饰器staticmethod介绍

Python 中的 staticmethod 装饰器是用于定义一个静态方法的修饰器。静态方法是一种特殊的方法,它不需要 self 参数,也不需要 class 参数,它只是一个普通的函数,只是被定义在类的内部。 1.示例 下面是一个使用 staticmethod 的例子: class MyClass:def __init__(self, x, y):…

基于稀疏矩阵方法的剪枝压缩模型方案总结

1.简介 1.1目的 在过去的一段时间里&#xff0c;对基于剪枝的模型压缩的算法进行了一系列的实现和实验&#xff0c;特别有引入的稀疏矩阵的方法实现了对模型大小的压缩&#xff0c;以及在部分环节中实现了模型前向算法的加速效果&#xff0c;但是总体上模型加速效果不理想。所…

动手学深度学习(Pytorch版)代码实践 -计算机视觉-39实战Kaggle比赛:狗的品种识别(ImageNet Dogs)

39实战Kaggle比赛&#xff1a;狗的品种识别&#xff08;ImageNet Dogs&#xff09; 比赛链接&#xff1a;Dog Breed Identification | Kaggle 1.导入包 import torch from torch import nn import collections import math import os import shutil import torchvision from…

IaaS,PaaS,SaaS理解

目前主流的IaaS&#xff0c;PaaS&#xff0c;SaaS产品 一、简述应用方案 这里借用汽车的例子对IaaS、PaaS、SaaS的解释进一步阐述三者的区别。 假设你需要出去外出使用交通工具&#xff0c;我们有四种的方案&#xff1a; On-premise&#xff08;本地部署服务&#xff09; 自己…

【AI绘画】关于AI绘画做副业,你需要知道的事

前言 AI绘画是一种新兴的艺术形式&#xff0c;它利用人工智能技术来创造出各种各样的艺术作品。随着人工智能技术的不断发展&#xff0c;AI绘画已经成为了一种非常有前途的副业&#xff0c;可以帮助人们赚取额外的收入。下面是一些利用AI绘画副业方法。 1、利用AI绘画技术创作…

Java基础知识-线程

Java基础知识-线程 1、在 Java 中要想实现多线程代码有几种手段&#xff1f; 1. 一种是继承 Thread 类 2. 另一种就是实现 Runnable 接口 3. 最后一种就是实现 Callable 接口 4. 第四种也是实现 callable 接口&#xff0c;只不过有返回值而已 2、Thread 类中的 start() 和 …

vue使用Props实现组件数据交互

在Vue中&#xff0c;组件的props属性用于定义组件可以接收的外部数据&#xff0c;这些数据来自父组件并传递给子组件。 props可以是一个数组或对象&#xff0c;用于指定子组件接受的属性名称。通过在父组件中使用子组件时&#xff0c;通过属性的方式将数据传递给子组件&#x…