[AutoSar]BSW_Diagnostic_002 DCM模块介绍

目录

  • 关键词
  • 平台说明
  • 背景
  • 一、DCM所处架构位置
  • 二、DCM 与其他模块的交互
  • 三、DCM 的功能
  • 四、DCM的内部子模块
    • 4.1 Diagnostic Session Layer (DSL)
      • 4.1 DSL 与其他模块的交互
    • 4.2 Diagnostic Service Dispatcher (DSD)
    • 4.3 Diagnostic Service Processing (DSP)
    • 4.4 小结

  

关键词

嵌入式、C语言、autosar、OS、BSW、UDS、diagnostic

平台说明

项目Value
OSautosar OS
autosar厂商vector , EB
芯片厂商TI 英飞凌
编程语言C,C++
编译器HighTec (GCC)
autosar版本4.3.1
参考文档TechnicalReference_Dcm.pdf AUTOSAR_SRS_DiagnosticLogAndTrace.pdf AUTOSAR_SWS_DiagnosticCommunicationManager.pdf AUTOSAR_SWS_DiagnosticEventManager.pdf AUTOSAR_SWS_FunctionInhibitionManager.pdf- 【14229-1.2.3】,【15765-1.2.3.4】. 【11898】

在这里插入图片描述
  
  
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
  

缩写描述
DEMDiagnostic Event Manager
DETDevelopment Error Tracer
DDMDiagnostic Data Modifier
DCMDiagnostic Communication Manager
DIDData Identifier
SIDServer Identifier
DDIDDynamic DID
RIDRoutine Identifier
PIDParameter Identifier
NRCNegative Response Code
OSIopen systems interconnection
DSDDiagostic Service Dispatcher (submodule of the DCM module)
DSLDiagnostic Session Layer (submodule of the DCM module)
DSPDiagnostic Service Processing (submodule of the DCM module)
DTCDiagnostic Trouble Codes

背景

  本文仅针对CAN 总线,不包含OBD相关内容。

一、DCM所处架构位置

  DCM 处于服务层。
在这里插入图片描述

二、DCM 与其他模块的交互

  
在这里插入图片描述

三、DCM 的功能

  Diagnostic Communication Manager (DCM),独立与网络层之上,作为诊断服务和车辆网络(CAN,LIN,Flex Ray)之间的中介,为诊断服务提供通用的API。如上面第二节的图所秒速的,与多个其他BSW模块和ASWC都有交互,主要有以下几大功能:

  • 1.根据请求的SID,在ASWC中进行相应的代码调用,如0x22,0x2E,0x23等。
  • 2.控制诊断会话状态,通过0x10服务。
  • 3.控制请求ComM控制通信状态例如在非默认会话时为ComM_DCM_ActiveDiagnostic,默认会话时为ComM_DCM_InactiveDiagnostic.
  • 4.控制BswM的状态。例如0x11 请求复位,0x85控制DTC设置,0x86事件响应,

四、DCM的内部子模块

  由于DCM干的活儿太杂乱了,于是将DCM的内部分为了三个子模块,分别是DSL,DSD,DSP.

Diagnostic Session Layer (DSL)
  DSL子模块确保有关诊断请求和响应的数据流,监督和保证诊断协议定时,管理诊断状态(特别是诊断会话和安全性)。
Diagnostic Service Dispatcher (DSD)
  DSD子模块处理诊断数据流:
    1.通过网络接收新的诊断请求并将其转发给数据处理器。
    2.当数据处理器(如DSP子模块)触发时,通过网络发送诊断响应。
Diagnostic Service Processing (DSP)
  DSP子模块处理实际的诊断服务(分别为子服务)请求。
三个子模块之间的关系概览如下图所示:
1.1

4.1 Diagnostic Session Layer (DSL)

  DSL 的会话处理和与应用层的请求及相应遵循ISO 14229 -1 14229 - 3 的规范。

4.1 DSL 与其他模块的交互

  如第三节图中所示:
与PduR模块交互:
  PduR向DSL传入诊断请求数据。
  DSL向PduR输出诊断响应。
与DSD子模块交互:
  DSL通知DSD 数据接入请求,DSL提供数据给DSD。
  DSD向DSL输出诊断响应。
与ComM交互:
  DSL保证ComM所需的通信行为。

4.2 Diagnostic Service Dispatcher (DSD)

  DSD子模块负责检查传入诊断请求的有效性(诊断会话/安全访问级别/应用程序权限的验证),并跟踪服务请求执行的进度。说白了就是子模块用于处理有效的请求,拒绝无效的请求:

  • 接收请求消息并发送正响应消息。
  • 接收请求消息并抑制正响应。
  • 接收请求消息并抑制负面响应.。
  • 接收请求消息并发送否定响应消息。
  • 当没有相应的请求时,发送一个正响应消息。
  • 分段响应

4.3 Diagnostic Service Processing (DSP)

  用于在接收到DSD的请求时,分析收到的请求消息,检查消息格式和是否支持该服务,与DEM ASWC或者其他BSW模块交互以完成请求的动作,组织结果并响应。

4.4 小结

  日常使用和开发中其实不需要去深究DSL DSD DSP,只需要知道如何实现 诊断服务就行,只有排查一些bug才需要深入了解。

  
  
>>>>>>>>>>>>>>>>>>>>>>>>>回到总目录<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

  
  

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

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

相关文章

linux程序分析命令(二)

linux程序分析命令(二) **ldd&#xff1a;**用于打印共享库依赖。这个命令会显示出一个可执行文件所依赖的所有共享库&#xff08;动态链接库&#xff09;&#xff0c;这对于解决运行时库依赖问题非常有用。**nm&#xff1a;**用于列出对象文件的符号表。这个命令可以显示出定…

Python元类:深入解析及其在框架开发中的应用

Python元类&#xff1a;深入解析及其在框架开发中的应用 一、引言 在Python中&#xff0c;元类&#xff08;Metaclass&#xff09;是一个高级特性&#xff0c;它允许我们控制类的创建过程。虽然在日常编程中&#xff0c;元类的使用可能并不频繁&#xff0c;但在框架开发、ORM…

莆田市C++专项选拔第二轮题4

题4&#xff1a;变换阵型 【题目描述】 盛隆同学刚学完C的二维数组和函数部分&#xff0c;于是他自己写了2个函数对二维数组进行练习。两个函数如下&#xff1a; int n, a[1005][1005]; // 注意&#xff0c;这里的n和数组a是全局变量 void f1() {for (int i 1; i < n; i)…

Python实现网页保持登录状态的技术方案及实际需求案例

文章目录 1. 使用Cookies直接管理2. 使用Web自动化工具3. 利用API Tokens4. 利用OAuth和其他认证机制5.Python实际需求案例5.1 方法一:多线程实现实现策略示例代码注意事项5.2 方法二:单例实现使用单例模式单例展示配合需求使用单例Python代码实现单例模式的优缺点5.3 方法一…

react 类组件 和 函数组件 声明周期 对比

React 的类组件和函数组件在生命周期方面存在一些差异。以下是它们之间的对比&#xff1a; 类组件的生命周期 React 类组件的生命周期可以分为三个阶段&#xff1a;挂载、更新和卸载。 1、挂载阶段&#xff1a; constructor()&#xff1a;组件实例化时调用&#xff0c;用于…

CNOCR和PaddleOCR提取pdf中文字-个人记录

目录 一、PyMuPDF 二、CNOCR 三、PaddleOCR 四、Tesseract&#xff08;没试&#xff09; 一、PyMuPDF 1.安装PyMuPDF pip install pymupdf 2.pdf转txt样例 import os import datetime import fitz # fitz就是pip install PyMuPDFdef pyMuPDF_fitz(pdfPath):startTime_p…

47岁古天乐唯一承认女友约「御用阿妈」过母亲节

日前关宝慧在IG晒出一张聚会照&#xff0c;并写道&#xff1a;「预祝各位#母亲节快乐&#x1f339;#dinner #happy #friends #好味」相中所见&#xff0c;前TVB金牌监制潘嘉德、卢宛茵、黄&#x28948;莹、黎萨达姆都有出席饭局。 当中黄&#x28948;莹身穿卡其色西装褛&…

blender 为世界环境添加纹理图像

1、打开世界环境配置项 2、点击颜色右侧的黄色小圆&#xff0c;选择环境纹理 3、打开一张天空图像 4、可以通过调整强度/力度&#xff0c;调整世界环境的亮度

《工具分享-整合功能网页》标星5.3k⭐开发人员的在线工具集:it-tools

IT Tools - 为方便开发人员提供的在线工具 部署自己的it-tools: 有两个版本&#xff0c;目前有中文支持。 直接部署使用docker指令获取出来的是英文的&#xff1a; 英文版&#xff1a; docker run -d --name it-tools --restart unless-stopped -p 8080:80 corentinth/it-…

TCP服务器实现将客服端发送的信息广播发送(使用内核链表管理客户端信息)

目录 1.服务器端实现思路 2.服务器端代码 3.客户端代码 4.内核链表代码 5.运行格式 一、服务器端 二、客户端 6.效果 1.服务器端实现思路 Tcp广播服务初始化 等待客户端连接 广播发送 2.服务器端代码 #include "list.h" #include <signal.h> #def…

基于数据挖掘与机器学习揭秘脱发主因

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 基于数据挖掘与机器学习揭秘脱发主因 目录 一、绪论背景描述数据说明内容大概 二、导入包以及数据读取三、数据预览四、探究导致脱发的因素4.1…

连续因子要点和难点具体应用和代码实例

连续因子是指在实验设计或数据分析中,表示可以在一定范围内连续变化的自变量或因素。与离散因子不同,连续因子的取值是无限的,并且可以是任意精度的实数值。在实验设计和统计分析中,连续因子通常用于探索变量之间的关系、预测结果或优化系统性能。 要点和难点: 要点: …

yh-hw

1 为什么选择各项指标的加权值 因为训练样本分布不均&#xff0c;2700的数据行中&#xff0c;1700左右的样本是neutral&#xff0c;而加权平均考虑了每个类别的样本数量&#xff0c;将每个类别的指标与其样本数量相乘&#xff0c;然后求和后除以总样本数。这种方法使得样本量大…

2.3. 连续时间鞅-平方可积的连续鞅

平方可积的连续鞅 平方可积的连续鞅1. 随机区间和简单过程2. 简单过程随机积分的平方变差3. 连续鞅的平方变差过程3.1. 连续鞅与有限变差过程3.2. 连续鞅平方的分解3.3. 连续鞅的交互变差过程平方可积的连续鞅 1. 随机区间和简单过程 数学分析及实变函数论中, 在处理一般函数…

设计模式:迭代器模式(Iterator)

设计模式&#xff1a;迭代器模式&#xff08;Iterator&#xff09; 设计模式&#xff1a;迭代器模式&#xff08;Iterator&#xff09;模式动机模式定义模式结构时序图模式实现在单线程环境下的测试在多线程环境下的测试模式分析优缺点适用场景应用场景参考 设计模式&#xff1…

python爬虫(四)之九章智算汽车文章爬虫

python爬虫&#xff08;四&#xff09;之九章智算汽车文章爬虫 闲来没事就写一条爬虫抓取网页上的数据&#xff0c;现在数据已经抓完&#xff0c;将九章智算汽车文章的爬虫代码分享出来。当前代码采用python编写&#xff0c;可抓取所有文章&#xff0c;攻大家参考。 import r…

STL中的优先级队列

目录 1.引言 2.简介 3.基本操作 4.实现原理 5.自定义优先级比较 6.相关题目 7.能特点 8.总结 1.引言 在C标准库中&#xff0c;优先级队列是一种非常有用的数据结构&#xff0c;它允许我们根据元素的优先级来对其进行排序和访问。这种数据结构在多种应用场景中都发挥着重…

DockerFile介绍与使用

一、DockerFile介绍 大家好&#xff0c;今天给大家分享一下关于 DockerFile 的介绍与使用&#xff0c;DockerFile 是一个用于定义如何构建 Docker 镜像的文本文件&#xff0c;具体来说&#xff0c;具有以下重要作用&#xff1a; 标准化构建&#xff1a;提供了一种统一、可重复…

最大子矩阵:前缀和、动态规划

最近在学习动态规划&#xff0c;在牛客上刷题时碰到了这一题。其实最初的想法是暴力和前缀和&#xff0c;但是时间复杂度极高&#xff0c;需要套4层循环。后来去网上搜了一下相关的题解和做法&#xff0c;进而了解到了前缀和&#xff0b;线性动态规划的做法。但是在成功做出这题…

JVM 类的加载过程详解

文章目录 1. 哪些类需要加载2. 类加载步骤2.1 装载2.1.1 这个过程都做了什么事2.1.2 类的模板对象2.1.3 二进制流获取方式2.1.4 Class 实例的位置2.1.5 数组类的加载有什么不同 2.2 链接2.2.1 验证2.2.2 准备2.2.3 解析 2.3 初始化 1. 哪些类需要加载 在 Java 中数据类型分为 …