——摘要——
本文主要介绍Dem模块,针部分配置选项进行介绍。
Dem全称为Diagnostic Event Manager,负责故障事件的处理、故障数据的存储和管理。简单说其功能是故障事件确认前的故障debounce,故障事件确认时的故障数据存储,故障发生后的故障老化、故障替代(AUTOSAR的故障存储策略)。
AUTOSAR标准中对Dem模块最上层分了两菜单栏(参见图1),分别是DemConfigSet,DemGeneral。其中DemConfigSet负责不同DTC、event等的配置,DemGeneral负责DTC、event的共用部分,包括冻结帧、扩展帧、使能条件等。
图1 Dem的上层架构
下面主要介绍上层菜单下的配置选项。
——DemConfigSet——
DemConfigSet下包含图2所示的配置项,下面针对常用的配置选项进行介绍。
图2 DemConfigSet配置项
1. DemComponent
DemComponent又名MonitorComponent,主要用于有关联的故障事件。比如传感本身发生故障,这时控制器读取的数据应该被视为无效。一个DemComponent是若干故障事件的集合,在DemComponent内部,故障事件有优先级,当最高优先级的故障事件状态为Failed导致其他故障事件状态也为Failed,或者父节点DemComponent的状态为Failed导致子节点DemComponent内的故障事件状态变成Failed,这种故障叫做连续错误(CONSECUTIVE FAULT),其他被认为是偶发错误(CAUSAL FAULT)。另外如果DemComponent内部故障事件优先级被忽略,那么仅有当父节点DemComponent的状态为Failed导致子节点DemComponent内的故障事件状态变成Failed被称作是连续错误(CONSECUTIVE FAULT)。
2. DemDTCAttributes
DemDTCAttributes用于配置DTC的属性,包括老化周期、故障优先级、存储方式(立即存储还是下电存储)、快照数据需记录的最大组数以及参考的冻结帧数据快照数据、故障数据存储的memory等,其中快照数据、扩展数据等需要在DemGeneral中配置。
3. DemDTC
DemDTC用于配置故障的DTC值(诊断故障码)、DTC的严重程度以及参考的DTC属性、Obd属性等。
4. DemDebounceCounterBaseClass、DemDebounceTimeBaseClass
这两项主要用于为不同的故障事件配置不同的debounce策略,可以是基于计数器的debounce策略,也可以是基于时间的debounce策略,或者由SWC自定义,具体请查看AUTOSAR故障Debounce策略。
5. DemObdDTC
DemObdDTC用于配置obd类故障事件是否支持Pto以及故障事件的DTC值等。
6. DemPidClass
用于配置Pid以及相关联的应用层信号。
7. DemEventParameter
DemEventParameter用于配置故障的类型(BSW or SWC)、故障需要多少个运行循环才能确认、是否支持预存储功能、故障事件的debounce策略以及参考的DTC属性、DemComponent、使能条件、运行循环等。
以上参数基本为DemConfigSet比较重要的配置项,其他未介绍的可以查看标准。
——DemGeneral——
DemGeneral主要用于配置DemConfigSet中不同event、DTC共用的一些参数,所以相对来说比较杂,下面针对一些进行介绍。
1. DemDataElementClass
DemDataElementClass用于配置内部、外部元素,如表1所示,用于配置扩展数据和快照数据的数据源。其中内部元素如表2所示,外部元素主要分通过C/S或S/R接口获取应用层的数据。
DemExternalCSDataElementClass |
This container contains the configuration (parameters) for an external client/server based data element class. It defines, how the Dem can obtain the value of the data element from either a SWC or another BSW module. Whether a client/server port or a C function-call is used, is defined by DemDataElementUsePort. |
DemExternalSRDataElementClass |
This container contains the configuration (parameters) for an external sender/receiver based data elementclass. It defines, how the Dem can obtain the value of the data element from a SWC, by using a sender/receiver port. |
DemInternalDataElementClass |
This container contains the configuration (parameters) for an internal data element class. |
表1 DemDataElementClass中三种数据
DEM_AGINGCTR_DOWNCNT |
map down-counting Dem-internal aging counter, max. range: 1 byte |
DEM_AGINGCTR_UPCNT |
map up-counting Dem-internal aging counter, max. range: 1 byte |
DEM_CURRENT_FDC |
map up-counting Dem-internal fault detection counter, max. range: 1 byte |
DEM_CYCLES_SINCE_FIRST_FAILED |
map Dem-internal Operation Cycle Counter - Cycles since first failed, max. range: 1 byte |
DEM_CYCLES_SINCE_LAST_FAILED |
map Dem-internal Operation CycleCounter - Cycles since last failed, max. range: 1 byte |
DEM_FAILED_CYCLES |
map Dem-internal Operation Cycle Counter - Failed cycles, max. range: 1byte |
DEM_MAX_FDC_DURING_CURRENT_CYCLE |
map Dem-internal DTC Fault Detection Counter maximum value during current operation cycle, max. range: 1 byte |
DEM_MAX_FDC_SINCE_LAST_CLEAR |
map Dem-internal DTC Fault Detection Counter maximum value since last clear, max. range: 1 byte |
DEM_OCCCTR |
map Dem-internal occurrence counter, max. range: 1 byte |
DEM_OVFLIND |
map Dem-internal overflow indication, max. range: 1 byte (0 = False, 1 =True) |
DEM_SIGNIFICANCE |
map (static) Dem-internal event significance (refer to DemDTCSignificance), max. range: 1byte (0 = OCCURRENCE, 1 = FAULT) |
表2 内部参数
2. DemDidClass
DemDidClass用于配置快照数据的Did 以及对应的DemDataElementClass。
3. DemExtendedDataRecordClass
该项用于配置扩展数据的id、扩展数据触发储存条件和参考的DemDataElementClass。
4. DemFreezeFrameRecordClass
该项主要用于配置快照数据的触发存储条件以及快照id。
5. DemFreezeFrameClass
该项用于配置快照数据包含的数据,数据来自DemDataElementClass。
至此,关于Dem模块就大致介绍到此,由于Dem信息很多,难以一一介绍,主要挑了一些主要的进行介绍
本文转自 汽车ECU开发公众号 https://mp.weixin.qq.com/s/HxiX1_7YQaEvwTj31kNQiA