【车载开发系列】Autosar DCM诊断管理模块

本文详细介绍了AutosarDCM诊断管理模块的概念、与Autosar其他模块的交互方式,以及在车载开发中的配置过程。重点讲解了DCM在会话管理、通信控制和与其他模块协作的关键功能及其在诊断服务中的角色。

【车载开发系列】Autosar DCM诊断管理模块

【车载开发系列】Autosar DCM诊断管理模块

  • 【车载开发系列】Autosar DCM诊断管理模块
    • 一. DCM模块概念
    • 二. DCM模块与Autosar其他模块关系
      • 1)Dcm和PduR的交互
      • 2)Dcm和ComM模块的交互
      • 3)Dcm和Dem的交互
      • 4)SWC通过和RTE接口和Dcm交互
      • 5)BswM和Dcm模块的交互
    • 三. Dcm模块配置
    • 四. Dcm通用配置(DcmGeneral)

一. DCM模块概念

在AUTOSAR架构中,Dcm模块的全称是Diagnostic Communication Manager,它是诊断通信管理用的一个模块,位于通信服务层。
它的主要作用是负责诊断数据流和管理诊断状态,包括诊断会话、安全状态及诊断服务分配等。
从网络分层角度看,DCM模块属于上层模块,主要为应用层提供服务。主要包括5-7层,包括会话层服务及应用层等,会话层包括服务定时及服务分配等,应用层为具体的服务功能实现。
DCM模块相关的标准主要包括三部分:ISO 14229(UDS,DCM遵循的主要标准)、ISO 15031(ISO 15031 (1-7))及SAEJ1939(OBD,与OBD相关的$01 -$0A服务)。

二. DCM模块与Autosar其他模块关系

在这里插入图片描述
Dcm模块是诊断通信管理用的模块,它独立于具体的网络的(不依赖于具体的CAN,Lin,Eth,Flexray等网络来实现)。

1)Dcm和PduR的交互

PduR模块接收和发送诊断数据。PduR为Dcm模块提供一个与具体通信协议无关的接口。
PduR模块为Dcm模块提供独立于具体网络的接口。Dcm模块从PduR模块接收诊断信息,Dcm模块在内部处理和检查诊断消息。

2)Dcm和ComM模块的交互

Dcm模块可以指示状态“活动”和“非活动”用于诊断通信。Dcm模块提供了处理通信需求“完全/静默/无通信”的功能。此外,Dcm模块提供了在ComM模块要求时启用和禁用诊断通信的功能。

3)Dcm和Dem的交互

DEM模块提供了检索与故障内存相关的所有信息的功能,以便Dcm模块能够通过从故障内存中读取数据重新响应测试人员的请求,通俗的讲就是Dcm能够读取Dem记录的DTC信息

4)SWC通过和RTE接口和Dcm交互

Dcm模块在完成诊断功能的时候需要通过RTE接口来读写/函数调用其他SWC的数据/服务。
Dcm将与其他BSW模块或SW-Components(通过RTE)交互,以获取所请求的数据或执行所请求的命令。诊断服务处理与特定的服务请求强绑定(不同的诊断请求依赖于不同的一个或几个模块来实现)。通常,Dcm将汇集收集到的信息,并通过PduR模块发送回消息。

5)BswM和Dcm模块的交互

如果Dcm的初始化是从引导加载程序跳转的结果,则Dcm通知BswM应用程序已更新。Dcm也向BswM指示通信模式的改变。
在这里插入图片描述

三. Dcm模块配置

诊断通信管理(DCM)主要包括三个子模块:诊断服务层(Diagnostic Service Layer,DSL)、诊断服务调度(Diagnostic Service Dispatcher, DSD)、诊断服务处理(Diagnostic Service Processing, DSP)。在Vector Configurator Pro中,Dcm模块由以下五个容器组成。通过Vector Configurator Pro工具配置Dcm模块,并实现客户的需求。

子模块名说明
DcmDsd该容器配置诊断服务调度的所有参数,各个SID服务就是在这里定义
DcmDsl该容器配置诊断会话层的所有参数
DcmDsp该容器配置诊断服务处理的所有参数
DcmGeneral该容器配置Dcm模块的通用参数
DcmPageBufferCfg该容器配置Dcm模块的缓存区参数

在这里插入图片描述
Diagnostic Service Layer:确定诊断数据请求和响应的数据流;监控和确保诊断请求和响应的时序,管理诊断状态(特别是诊断会话和安全状态)
Diagnostic Service Dispatcher:接收到的诊断请求转发给数据处理器;当数据处理器触发时,通过PDUR传输诊断响应。
Diagnostic Service Processing:处理实际的诊断请求。

四. Dcm通用配置(DcmGeneral)

在这里插入图片描述
1)DcmBswApiVersion:
指定BSW堆栈API的AUTOSAR版本。若参数为空,使用V4.XX.XX AUTOSAR版本
2)DcmCalibrationOfObdIdsEnabled:
是否支持标准OBD ID。
3)DcmCalibrationOfObdIdsMemoryType:
标准OBD ID数据的存储类型。
VOLATILE:生成RAM表。NON_VOLATILE:生成const区域表。默认使用NON_VOLATILE类型。
4)DcmDtrDataProvisionViaDemEnabled:
Dem是否处理OBD MID DTR数据采集。若设置enable,Dcm请求OBD MID DTR(Sid 0x06 or Did 0xF600)时与Dem数据交互;若设置disable,Dcm使用BSWMD文件定义OBD MID配置来获取DTR数据。
5)DcmDefensiveBehaviorEnabled:
指定Dcm是都监控API输入输出和内部行为,不通知DET BSW。若设置enable,Dcm监控代码的正常功能,避免不可预知情况(空指针、越界、不可预期的参数)。
6)DcmDemApiVersion:
指定Dem API的AOTOSAR版本。若参数为空,使用V4.03.00 AUTOSAR版本
7)DcmDevErrorDetect:指定Dcm是都监控API输入输出和内部行为,并通知DET BSW。若设置enable,Dcm监控代码的正常功能,避免不可预知情况(空指针、越界、不可预期的参数)。
8)DcmDspDataDefaultEndianness:
DSP层数据默认字节序
9)DcmFinalResponseToFblEnabled:
是否支持FBL最终的响应传输。若设置enable,Dcm调用“Dcm_GetProgConditions”函数决定是否发送最终响应。
10)DcmForeignDiagnosticRequestDetectionEnabled:
指定是否监听其他ECU的诊断请求。若设置enable,Dcm花费资源来处理这些诊断请求。
11)DcmKeepAliveTime
指定处理每个诊断请求后 Dcm 将保持 ComM 中的 Diag-Active 用户注册的时间(以秒为单位)。
12)DcmMainFunctionWorkerTaskTime:
配置诊断服务处理任务的周期时间。若设置为空,同时DcmSplitTasksEnabled为true,诊断服务处理任务周期会直接调用DcmTaskTime时间。
13)DcmMaxNumberIterationsPerTask:
每个Dcm_MainFunction任务的最大迭代次数。若设置为空,不限制次数;若设置大于0,对于比较复杂的诊断服务会造成运行时间增加。
14)DcmRequestManufacturerNotificationEnabled:
为制造商提供诊断服务通知功能。若设置为enable,Dcm接收到诊断请求后会先处理配置函数。必须配置DcmDslServiceRequestManufacturerNotification参数。
15)DcmRequestSupplierNotificationEnabled
为供应商提供诊断服务通知功能。若设置为enable,Dcm接收到诊断请求后会先处理配置函数。同时必须配置DcmDslServiceRequestSupplierNotification参数。
16)DcmResetToFblAfterSessionFinalResposeEnabled:
配置诊断会话切换肯定响应之前还是之后复位带FBL。若设置enable,Dcm会先回复肯定响应,再复位到FBL;若设置为disable,Dcm会先根据配置跳转到FBL,之后FBL会回复肯定响应。
17)DcmRespondAllRequest:
是否处理接收到的安全诊断请求。若设置enable,Dcm会接收并处理所有的诊断请求;若设置为disable,Dcm会接收所有请求,但是不处理[0x40,0x7F]U[0xC0, 0xFF]范围内的诊断请求。
18)DcmSafeBswChecks:
是否配置SafeBSW模式。若设置enable,Dcm不支持某些特定的功能(待深入理解);反之Dcm则支持全功能。
19)DcmSecurityLevelChangeNotificationEnabled:
安全等级改变时是否通知SWC。若设置enable,Dcm会在安全等级发生改变时调用RTE的接口。
20)DcmSplitTasksEnabled:
main-function任务是否分裂成worker+timer任务。若设置enable,Dcm会由Dcm_MainFunctionTimer和Dcm_MainFunctionWorker组成;反之Dcm只有一个Dcm_MainFunction任务。
21)DcmStateRecoveryAfterResetEnabled:
是否通过重置ECU保留一些Dcm内部状态。若设置enable,Dcm在Dcm_Init之后读取信息或者默认信息。反之Dcm不恢复信息直接启动。
22)DcmSupportedIDCalculationSuppressionEnabled:
是否抑制SupportedIDs的计算(待深入理解)。
23)DcmSuppressResponseOnCanTpFuncMixedAddrRequest
是否抑制由MixedAddressing CanTp连接的功能寻址的任何响应
24)DcmTaskTime:
Dcm主任务的周期时间
25)DcmUserConfigFile:
用户配置文件的路径。
26)DcmVersionInfoApi:
是否提供版本信息。若设置enable,Dcm提供“Dcm_GetVersionInfo”API接口来读取版本信息。
27)DcmVirtualRequestEnabled:
是否支持虚拟请求。

课程大纲1-学前必看1-课程大纲介绍2-一名汽车软件工程师10年成长历程3-资料下载4-教你如何看AutoSAR SWS官方文档2-AutoSAR基础认知篇5-什么是 AutoSAR 为什么要学习 AutoSAR6-用Linux操作系统思维理解AutoSAR7-AutoSAR出现的背景和行业状况8-AutoSAR运行的硬件环境ECU9-AutoSAR优势和代码演示10-AutoSAR开发方法论11-汽车电子岗位介绍12-AUTOSAR工具链讲解3-AutoSAR基础软件层01-BSW概述13-BSW概述-114-BSW概述-202-BSW MCAL驱动015-MCAL和普通的单片机驱动区别016-TC3XX芯片介绍017-TC397芯片框架介绍018-TC3XX芯片存储资源和寻址介绍019-TC3XX芯片CAN外设020-TC3XX芯片中断系统021-TC3XX安全管理单元022-TX3XX直接存储访问模块DMA023-TC3XX芯片CAN驱动MCAL介绍03-BSW通信功能24-CAN总线物理层讲解-125-CAN总线物理层讲解-226-CAN总线物理层讲解-标准和仲裁机制27-CAN总线物理层讲解-数据帧28-CAN总线物理层讲解-错误检测机制29-CAN总线物理层讲解-位时间和同步30-CAN总线DBC文件讲解31-AutoSAR通信概述-通信服务架构132-AutoSAR通信概述-通信服务架构233-AutoSAR通信概述-PDU和收发数据流34-CAN总线网络传输层CanTp讲解-Can诊断网络分层35-CAN总线网络传输层CanTp讲解-CanTp组帧拆帧过程-136-CAN总线网络传输层CanTp讲解-CanTp组帧拆帧过程-237-CAN总线网络传输层CanTp讲解-CanTp时间参数和诊断数据流38-车载以太网第一讲-车载以太网基础知识MAC PHY39-车载以太网第一讲-车载以太网和工业以太网区别40-车载以太网在Autosar上的应用-以太网协议栈软件架构41-车载以太网在AutoSAR上的应用-Soad PduR42-LIN总线入门到精通第一讲-Lin总线基础知识43-LIN总线入门到精通第一讲-Lin协议格式44-LIN总线入门到精通第一讲-Lin帧类型45-LIN总线的通信矩阵和LDF文件讲解46-LIN总线在AutoSAR上的应用47-Lin总线诊断应用-LinTp传输层48-Lin总线诊断应用-Lin主节点诊断流程49-SPI总线基础知识50-AutoSAR SPI应用51-协议数据单元PDU和服务数据单元SDU52-Pdu Router(PduR)模块详解53-Com模块讲解-报文和信号54-Com模块讲解-COM内部实现原理04-通信状态&网络管理55-通信管理架构(状态管理&网络管理)56-CanSM模块57-Network Management(NM)网络管理模块05-诊断功能58-诊断功能第一讲-诊断基础知识59-诊断功能第二讲-UDS服务讲解-UDS基础知识60-诊断功能第二讲-UDS服务讲解-物理寻址和功能寻址61-诊断功能第二讲-UDS服务讲解-具体服务讲解-162-诊断功能第二讲-UDS服务讲解-具体服务讲解-263-诊断功能第二讲-DCM模块讲解64-诊断功能第四讲-OBD服务06-存储功能65-存储知识和AUTOSAR存储架构66-AUTOSAR 存储服务之Fee换页策略07-标定功能67-标定讲解08-BSW基础服务68-Autosar BswM模块讲解10-BSW OS功能69-AutoSAR OS和OSEK OS70-OS内核讲解171-OS内核讲解24-AutoSAR的实时运行环境72-AutoSAR应用软件层-RTE层概述5-AutoSAR的应用层(APPL)73-AutoSAR应用软件层-AppL层概述 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值