【车载开发系列】AutoSar当中的诊断会话控制

news2024/11/24 17:00:31

【车载开发系列】AutoSar当中的诊断会话控制

【车载开发系列】AutoSar当中的诊断会话控制

  • 【车载开发系列】AutoSar当中的诊断会话控制
    • 一. 什么是诊断会话控制服务
    • 二. 会话模式分类
    • 三. 会话的接口
      • 1)获取当前会话状态
      • 2)设置会话状态
      • 3)返回默认会话
      • 4)会话的变更
    • 四. 配置会话层时间参数
    • 五. 会话的配置
      • 1)DcmDsdService
      • 2)DcmDspSession
      • 3)DcmDspSessionCallback

一. 什么是诊断会话控制服务

DiagnosticSessionControl,SID是0X10,主要功能是控制服务端的会话模式切换。一般默认上电后是在默认会话模式下,当某一个服务端正在运行时,只会出现一个会话模式,不会同时存在两个会话模式。

二. 会话模式分类

常用的会话模式有如下几种:
1)默认会话
01 Default Session,仅支持信息的读取和查询操作,权限最小。DCM模块初始化完成后,诊断会话进入缺省会话。
当服务端在默认会话模式下收到默认会话的请求时,服务端应当重新初始化默认会话,即之前被临时激活或者改变的数据都应该恢复到刚上电初始化的状态,写入到非易失存储器(断电数据不会消失的存储器)的数据不会重新初始化。
2)编程会话
02 Programming Session 顾名思义这个是用来烧录程序的。一般来说诊断(UDS)刷写功能需要在编程会话下进行。
3)扩展会话
03 Extended Session,主要是用来读写数据,如写入VIN,序列号,读写诊断码等。
涉及到NVM关键存储数据的写功能需要在扩展会话下进行。
4)其他会话
根据实际需求可以自己定义会话,比如定义0x60(EOL session)专门用于EOL工厂下线处理(关于EOL下线)。

三. 会话的接口

DSL子模块应该保存当前激活的会话状态。
为了访问这个变量,DSL 子模块提供了以下接口来获取/设置会话状态:

1)获取当前会话状态

Std_ReturnType Dcm_GetSesCtrlType(Dcm_SesCtrlType* SesCtrlType)
参数:SesCtrlType:获取的会话状态值存放到SesCtrlType指针指向的内存。
返回值:总是返回E_OK
功能描述:获取会话状态值。

2)设置会话状态

DslInternal_SetSesCtrlType()

3)返回默认会话

函数原型:
Std_ReturnType Dcm_ResetToDefaultSession(void)
返回值:总是返回E_OK
功能描述:将当前会话状态切换到default默认状态。
允许应用程序将当前会话重置为默认会话,并通过调用SchM_Switch__DcmDiagnosticSessionControl(RTE_MODE_DcmDiagnostic SessionControl_DCM_DEFAULT_SESSION) (invokes)调用 ModeDeclarationGroupPrototype DcmDiagnosticSessionControl 的模式切换。
比如超出速度限制时自动终止扩展诊断会话时,就调用这个函数。

4)会话的变更

那什么时候会发生会话更改呢?

  1. 发送诊断请求DiagnosticSessionControl ($10) 服务的时候
  2. S3定时器发生超时的时候,S3定时器是配置会话层的时间参数,将在下面介绍其定义。

四. 配置会话层时间参数

从缺省会话进入非缺省会话后,S3Server定时器就会开始计时(只要收到诊断请求报文就会清零),如果定时器超时(S3Server),DSL模块就会将会话状态切换到缺省会话状态。
P2ServerMin, P2ServerMax, P2ServerMin, P2ServerMax, S3Server这些参数值将会影响DCM模块的诊断响应时序。P2ServerMin=0, P2*ServerMin=0, S3Server = 5为固定值。协议参数影响诊断会话层的时序,不会影响到传输层时序

Parameters 参数Description 描述Min. 最小值Max. 最大值
P2CAN_Server服务器从接收到请求报文到开始发送应答报文之间的间隔时间。050 ms
P2*CAN_Server服务器从发送应答代码为0x78的否定应答报文到开始发送下一个应答报文之间的间隔时间(增强型应答时序)05000ms

对于增强型应答时序,连续的应答代码为0x78 的否定应答报文之间的传输最小时间间隔应为1/2 P2* CAN_Server_max,最大误差为±20 %。
在这里插入图片描述

五. 会话的配置

在这里插入图片描述

1)DcmDsdService

/Dcm/DcmConfigSet/DcmDsd/DcmDsdServiceTable/DcmDsdService
的配置项,增加响应的服务,此处是DiagnosticSessionControl ($10)服务。

DcmDsdServiceTables可以包含多个服务表,常用的UDS和OBD服务表,此处新建的是UDS服务表DcmDsdUdsServiceTable。
1、勾选DcmDsdSidTabSubfuncAvail,它表示此服务是否包含子功能
2、通过DcmDsdSubServices可以增加相应的会话层子功能

2)DcmDspSession

容器DcmDspSession: 父容器保存单行来配置特定的会话。
DiagnosticSessionControl ($10)服务的每一个子功能对应一个会话Level。024/

3)DcmDspSessionCallback

为了获得更好的 DCM 集成灵活性,还可以通过简单的函数调用通知位于 CDD 中的应用程序。
通过配置
/Dcm/DcmConfigSet/DcmDsp/DcmDspSession/DcmDspSessionCallback

/Dcm/DcmConfigSet/DcmDsp/DcmDspSession/DcmDspSessionCallback/DcmDspSessionCallbackFnc,它们将指定当DcmDiagnosticSessionControl 切换时由 DCM 调用的回调函数。
函数原型:
void 「DcmDspSessionCallbackFnc」 (Dcm_SesCtrlType previousSesCtrlId, Dcm_SesCtrlType newSesCtrlId)
previousSesCtrlId
指定以前的诊断会话 ID(转换的源状态)newSesCtrlId
指定新的诊断会话 ID(转换的目标状态)
返回值:void
功能说明:将在诊断会话状态转换时调用
在这里插入图片描述

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

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

相关文章

linux文件系统 - 初始化(一)

linux文件系统 - 初始化(一) 术语表: struct task:进程 struct mnt_namespace:命名空间 struct mount:挂载点 struct vfsmount:挂载项 struct file:文件 struct super_block:超级块 stru…

Linux/Blunder

Enumeration nmap 扫描21,80端口,详细信息如下 80端口运行着 Apache,页面如下 在页面最下方可以看到 powered by egotisticalsw,在互联网搜索没发现什么与 渗透测试相关的东西 使用dirsearch对服务进行目录扫描,看看站点还有没有…

RPC和HTTP,它们之间到底啥关系

既然有 HTTP 请求,为什么还要用 RPC 调用? gPRC 为什么使用 HTTP/2 Spring Cloud 默认是微服务通过Restful API来进行互相调用各自微服务的方法,同时也支持集成第三方RPC框架(这里的说的RPC是特指在一个应用中调用另一个应用的接…

[前 10 名] 最佳 Android 数据恢复软件免费下载

您的职业生涯不可或缺的一部分是您的手机数据、文件和文档。如果您丢失数据,不仅会给您带来巨大损失,还会给您的公司带来巨大损失。然而,由于屏幕损坏、恢复出厂设置、软件更新等多种原因,您的 Android 设备上可能会发生数据丢失。…

首批!鸿蒙千帆起,生态全面启动

在近日举办的鸿蒙生态千帆启航仪式上,华为常务董事、终端BG CEO余承东表示,鸿蒙生态设备已经增至8亿 ,将打开万亿产业新蓝海。 在本次论坛上,华为宣布HarmonyOS NEXT鸿蒙星河版(开发者预览版)已面向开发者…

opencv#30 线性滤波

均值滤波原理 均值滤波步骤 Step1:求和。 Step2:计算平均值。 所谓均值滤波,就是求平均值的意思。我们假设在一个3*3的范围内有一个图像,其中这个图像每一个像素可能含有噪声,也可能不含噪声,我们是不知道的,因此通…

【CentOS】Linux 在线帮助文档命令:help、man 命令与文档汉化

目录 1、Linux 的命令行模式 2、help 命令 3、man 命令 4、man 命令输出文档汉化 注:本文档使用 Linux 版本为 CentOS 7.9 [swadianlocalhost ~]$ cat /etc/centos-release CentOS Linux release 7.9.2009 (Core) 1、Linux 的命令行模式 一般情况下&#xff0…

VUE中获取数据方式(axios)详细介绍

众所周知,我们现在大多采用前后端分离的模式来开发项目,前端项目个人采用vue做的比较多一点,既然是前端,那肯定只是负责渲染展示数据,那么问题来了,数据从哪里来?开发阶段大多数据采用mock做一些…

k8s-kubectl常用命令

一、基础命令 1.1 get 查询集群所有资源的详细信息,resource包括集群节点、运行的Pod、Deployment、Service等。 1.1.1 查询Pod kubectl get po -o wid 1.1.2 查询所有NameSpace kubectl get namespace 1.1.3 查询NameSpace下Pod kubectl get po --all-namespaces…

Qt顶部圆角窗体

Qt:实现顶层窗体圆角_qt 圆角窗口弹窗-CSDN博客 setWindowFlags(Qt::FramelessWindowHint);QBitmap bmp(this->size());bmp.fill();QPainter p(&bmp);p.setPen(Qt::NoPen);p.setBrush(Qt::black);p.setRenderHint(QPainter::Antialiasing);p.drawRoundedRec…

HEGERLS智能物流机器人|场景为王 以存取为技术核心布局的仓储集群

随着物流需求的多样化、复杂化,四向穿梭车技术经过几年的蓬勃发展,正在各领域迎来愈加广泛的应用。河北沃克作为该领域的代表,凭借庞大的产品群、功能强大的软件系统以及资源丰富的生态合作伙伴体系实现了快速的发展。其中,海格里…

【江科大】STM32:TIM输入捕获(理论部分)

文章目录 IC(Input Capture)输入捕获PWM频率 知识点补充1. 滤波器的工作原理:2. 边沿检测器:自动化清零CNT输入捕获的基本结构PWMI基本结构滤波器和分频器的区别误差分析pwm.cmain.cIC.c PWM模式测频率和占空比 IC(Inp…

Leetcode—40.组合总和II【中等】

2023每日刷题&#xff08;七十七&#xff09; Leetcode—40.组合总和II 算法思想 实现代码 class Solution { public:vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {vector<vector<int>> ans;vector<int…

i18n多国语言Internationalization的动态实现

一、数据动态的更新 在上一篇i18n多国语言Internationalization的实现-CSDN博客&#xff0c;可能会遇到一个问题&#xff0c;我们在进行英文或中文切换时&#xff0c;并没有办法对当前的数据进行动态的更新。指的是什么意思呢&#xff1f;当前app.js当中一个组件内容&#xff…

shell脚本概述

将命令写到脚本里面&#xff0c;利用路径或者解释器去执行。简要来说脚本其实就是命令的集合。 例如&#xff1a;echo $&#xff1f; 自定义变量&#xff0c;查看上次命令执行是否正确 linux常用的shell 脚本的构成&#xff1a; 1.解释器 &#xff08;脚本是用什么语言写的…

Linux如何将文件或目录打成rpm包? -- fpm打包详解

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

C++面试宝典第23题:乌托邦树

题目 乌托邦树每年经历2个生长周期。每年春天,它的高度都会翻倍。每年夏天,他的高度都会增加1米。对于一颗在春天开始时种下的高为1米的树,问经过指定周期后,树的高度为多少? 输入描述:输入一个数字N(0 <= N <= 1000),表示指定周期。 比如:样例输入为3。 输出描…

怎么提升数据分析能力?——功法篇(下)

先来复习一下上篇提到的3个疑问&#xff1a; 为什么我做出来的分析总觉得没有别人的那么高级&#xff1f; 老板为什么总说我的分析“太浅了”&#xff1f; 数据分析师每天的工作就是取数做需求&#xff1f; 看完上篇讲的金字塔原理&#xff0c;如果你还有疑问&#xff0c;不妨再…

react 实现页面状态缓存(keep-alive)

前言&#xff1a; 因为 react、vue都是单页面应用&#xff0c;路由跳转时&#xff0c;就会销毁上一个页面的组件。但是有些项目不想被销毁&#xff0c;想保存状态。 比如&#xff1a;h5项目跳转其他页面返回时&#xff0c;页面状态不丢失。设想一个 页面我滑倒了中间&#xf…

Modbus网关BL101 既实现Modbus转MQTT,还能当串口服务器使用

随着工业4.0的迅猛发展&#xff0c;人们深刻认识到在工业生产和生活中&#xff0c;实时、可靠、安全的数据传输至关重要。在此背景下&#xff0c;高性能的工业电力数据传输解决方案——协议转换网关应运而生&#xff0c;广泛应用于工业自动化系统、远程监控和物联网应用应用环境…