当前位置: 首页 > news >正文

Autosar之DCM模块

一、DCM介绍
DCM(Diagnostic Communication Manager)是AUTOSAR(汽车开放系统架构)基础软件BSW中服务层(Service Layer)的核心模块,其核心功能是为车辆电子控制单元(ECU)提供符合行业标准(如ISO 14229 UDS、ISO 15765 DoCAN、ISO 15031 OBD等)的诊断服务支持,为开发和生产阶段提供与诊断仪交互的诊断服务,如下图所示

在这里插入图片描述

Dcm模块实现依据ISO 14229-1和ISO 15031-5等标准规范中定义的UDS诊断和OBD诊断功能。在接收到一个诊断请求后,需要对诊断请求进行分析,包括请求的服务是否支持,寻址方式是否正确,会话级,安全级,长度,子服务等是否正确。
在这里插入图片描述

其主要功能包括:

诊断数据流
管理诊断状态(诊断会话状态和安全访问等级状态)
检查诊断服务的请求是否满足条件
DCM模块由三个子模块构成,分别是DSL(DiagnosticSession layer)、DSD(Diagnostic Service Dispatcher)、DSP(Diagnostic Service Processing),如下图所示,接下来将针对三个子模块功能进行讲解

在这里插入图片描述

二、诊断会话层(DSL)

DSL模块主要用于诊断请求的处理及诊断时序的控制,管理诊断状态(诊断会话和安全状态)等,具体存在几个功能如下:

处理诊断请求:收到请求时,PduR会调用Dcm_StartOfReception()和Dcm_CopyRxData()接口将诊断请求数据从下层的Buffer中Copy到DCM的接收Buffer中。PduR调用Dcm_TpRxIndication()接口通知Dcm模块接收到了新的诊断请求
处理诊断响应:当需要响应诊断请求时,DLS通过调用通过调用PduR_DcmTransimit()和Dcm_CopyTxData()接口,将数据传递至PduR中,其中PduR_DcmTransimit()接口只是传递长度信息、地址信息,数据是通过Dcm_CopyTxData()接口传递至PduR,当数据传输成功后,PduR通过调用Dcm_TpTxConfirmation()接口告知DCM数据接收成功。
管理安全等级:通过Dcm_GetSecurityLevel()和DslInternal_SetSecurityLevel()两个接口分别用于获取当前的安全等级和设置安全等级
在配置层面,DSL(Diag Session Layer)的配置参数主要包括以下几个方面:

诊断帧配置:涵盖物理寻址和功能寻址的设置
通信缓冲区配置:定义单次通信中允许的最大Buffer大小
时间参数配置:
回复0x78的时间设置
为防止诊断服务异常,允许0x78的最大次数。
这些参数的合理配置对于确保诊断通信的稳定性和可靠性至关重要

三、诊断分发层(DSD)

DSD模块主要用于诊断服务的分配、服务执行环境及条件,会从接收的数据识别请求的服务类型(如0x10、0x27、0x22等),主要功能如下:

检查诊断服务:当诊断会话层(DSL)接收到新的诊断请求时,它会通过内部接口通知诊断服务调度器(DSD),如图所示。DSD 会调用 Dcm_GetSesCtrlType() 和 Dcm_GetSecurityLev

http://www.dtcms.com/a/355841.html

相关文章:

  • 构建AI智能体:十六、构建本地化AI应用:基于ModelScope与向量数据库的文本向量化
  • Day14 Gorm框架学习(1)
  • 安装与环境搭建:准备你的 Electron 开发环境
  • leetcode 525 连续数组
  • 可改善能源利用水平、削减碳排放总量,并为可再生能源规模化发展提供有力支撑的智慧能源开源了
  • 计算机组成原理3-3-5:定点数的乘法运算——补码阵列乘法器
  • init.usb.configfs.rc的USB动态配置
  • 算法学习笔记:双指针_滑动窗口专题
  • STM32CubeMX 6.15.0 + CLion
  • 3.渗透-.IP地址-详解
  • AI批量抠图工具,无需付费,永久使用
  • 报错记录 Error: CUDNN_STATUS_BAD_PARAM; Reason: finalize_internal()
  • 仓颉编程语言青少年基础教程:输入输出
  • Vue 自定义筛选组件:3 种全选反选场景的优雅实现
  • Groovy闭包语法详解
  • 【MySQL数据库入门课程】开课啦!
  • 一个是“内容生成器”,一个是“知识管理器”:VibeVoice 与 NoteBookLM 优劣对决?
  • 《零基础入门AI:YOLO目标检测模型详解(从基础概念到YOLOv1核心原理)》
  • Vue模版:Ant-design模态框弹窗
  • vue3的setup
  • 基于离散小波变换(DWT)的数字水印Matlab
  • @Indexed注解的作用
  • 整理3点结构点与点之间的距离
  • Paimon——官网阅读:非主键表
  • 基于pytorch的垃圾分类识别项目实战
  • Qt|QElapsedTimer 的使用详解
  • H5小游戏-超级马里奥
  • 【涂鸦T5】2. 光感bh1750
  • 效率飙升200%:Appsmith开发结合cpolar远程访问实战解析
  • 前端面试题2(vue)