目 录CONTENT

文章目录

AUTOSAR知识点 之 Dem (三):基于ETAS工具ISOLAR-AB配置实现DEM分析

moke
2024-07-27 / 0 评论 / 0 点赞 / 407 阅读 / 0 字

1、概述

        Dem全称为Diagnostic Event Manager,负责故障事件的处理、故障数据的存储和管理。简单说其功能是故障事件确认前的故障debounce,故障事件确认时的故障数据存储,故障发生后的故障老化、故障替代(AUTOSAR的故障存储策略)。

        AUTOSAR标准中对Dem模块最上层分了两菜单栏,分别是DemConfigSet,DemGeneral。其中DemConfigSet负责不同DTC、event等的配置,DemGeneral负责DTC、event的共用部分,包括冻结帧、扩展帧、使能条件等。

        AUTOSAR规范里面规定如下:

思维导图如下

2、DemGeneral

        该容器包含BSW Dem的配置(参数),区别与一般的通用配置,此配置参数较多,注意甄别用途。一般来说General配置好一次那么就无需后续考虑的。整体的思维导图显示如下。

除了通用配置参数,里面包含了很多小容器参数,如下图示

容器

多重性

范围与依赖

DemCallbackDTCStatusChanged

0..*

这个容器的存在表明,Dem可以访问“DTCStatusChanged”回调,Dem将调用该回调来通知其他组件DTC状态的变化。

如果存在DemCallbackDTCStatusChangedFnc,则该参数定义Dem将调用的函数的名称。如果没有DemCallbackDTCStatusChangedFnc,则Dem将具有需要该接口的R-Port CallbackDTCStatusChanged,其名称是使用唯一的回调前缀后跟事件名称生成的。

状态更改通知仅支持主内存中的DTC。

DemDataElementClass

0..65535

这个容器包含配置(参数)用于内部/外部数据元素类。(一般都配置冻结帧数据)

用于配置扩展数据和快照数据的数据源

外部元素为C/S或S/R接口获取应用层的数据。

DemDidClass

0..65535

该容器包含数据Id类的配置(参数)。它由一个或几个数据元素组装而成。

用于配置快照数据的Did

DemEnableCondition

0..255

该容器包含启用条件的配置(参数)。

DemEnableConditionGroup

0..255

该容器包含启用条件组的配置(参数)。

DemExtendedDataClass

0..*

该类包含用于扩展数据类的扩展数据记录的组合。

DemExtendedDataRecordClass

0..253

此容器包含扩展数据记录类的配置(参数)。它由一个或几个数据元素组装而成。

于配置扩展数据的ID、扩展数据触发储存条件和参考的DemDataElementClass。

DemFreezeFrameClass

0..65535

此容器包含非OBD2和WWH-OBD相关冻结帧类的did组合。

配置快照数据包含的数据,数据来自DemDataElementClass

DemFreezeFrameRecNumClass

0..255

此容器包含分配给事件的专用不同冻结帧记录编号的列表。此列表中记录编号的顺序按照冻结帧记录的时间顺序分配。

依赖:DemTypeOfFreezeFrameRecordNumeration =DEM_FF_RECNUM_CONFIGURED

DemFreezeFrameRecordClass

0..255

这个容器包含了一个专用的,不同的冻结帧记录号码。

主要用于配置快照数据的触发存储条件以及快照id。

DemGeneralJ1939

0..1

该容器包含Dem模块的通用j1939特定配置(参数)。如果容器存在,则启用J1939支持。

DemGeneralOBD

0..1

此容器包含Dem模块的一般obd特定配置(参数)。

DemGroupOfDTC

0..255

这个容器包含DTC组的配置(参数)。

DemIndicator

0..255

该容器包含指示器的配置(参数)。

DemMirrorMemory

0..1

此容器包含Dem模块的镜像事件内存特定参数。

DemNvRamBlockId

0..*

该容器包含非易失性内存块的配置(参数),该内存块从Dem中使用。如果不需要事件内存项的永久存储,则不需要配置块。

所需块的数量取决于Dem模块的实现和配置(例如使用的事件存储器的数量)。

DemOperationCycle

1..256

该容器保存与配置操作周期相关的所有参数。

DemPrimaryMemory

1

此容器包含Dem模块的主要事件内存特定参数。

DemRatio

0..65535

该容器包含特定于obd的在用监视器性能比率配置。它与特定事件、FID和IUMPR组相关。

DemStorageCondition

0..255

该容器包含存储条件的配置(参数)。

DemStorageConditionGroup

0..255

该容器包含存储条件组的配置(参数)。

DemUserDefinedMemory

0..30

此容器包含Dem模块的用户定义的事件内存特定参数。

2.1、通用配置参数

DemAgingRequieresTestedCycle:定义是否每个老化周期都处理老化周期计数器,还是只考虑已测试的老化周期。

True:老化周期计数器只考虑经过测试的老化周期

False:每个老化周期处理老化周期计数器

DemAvailabilitySupport:这个配置开关定义了是否支持可用性。

Dem应提供将Event视为未配置为DemEventParameter的功能。配置参数DemAvailabilitySupport用于启用该功能(包括API Dem_SetEventAvailable)。

DEM_EVENT_AVAILABILITY

支持Event的可用性

DEM_NO_AVAILABILITY

可用性不支持

DemBswErrorBufferSize:用于处理BSW错误的缓冲区中元素的最大数量,个人理解对应着在初始化之前Dem使用。

        DemClearDTCBehavior:定义易失性和非易失性存储器诊断信息的清除过程,以及Dcm模块的积极响应处理。定义Dcm回复肯定响应的时机。

DEM_CLRRESP_NONVOLATILE_FINISH

清除易失性和非易失性事件内存数据后返回DEM_CLEAR_OK。

DEM_CLRRESP_NONVOLATILE_TRIGGER

清除易失性事件内存数据并触发非易失性事件内存清除后返回DEM_CLEAR_OK

DEM_CLRRESP_VOLATILE

清除易失性事件内存数据后返回DEM_CLEAR_OK

DemClearDTCLimitation:定义支持的Dem_<…>ClearDTC API范围。

 DEM_ALL_SUPPORTED_DTCS

Dem_<...>ClearDTC清挂起的DTC

DEM_ONLY_CLEAR_ALL_DTCS

Dem_<...>ClearDTC会清除所有的DTC

DemDataElementDefaultEndianness:定义数据元素的端序

BIG_ENDIAN

大端-摩托罗拉格式

LITTLE_ENDIAN

小端-因特尔格式

OPAQUE

不透明的数据端序

DemDebounceCounterBasedSupport:是都支持Count形式的消抖

DemDebounceTimeBasedSupport:是都支持时间形式的消抖

DemDtcStatusAvailabilityMask:Dem支持的DTC状态位的掩码。该掩码被UDS服务0x19使用。

DemEnvironmentDataCapture:定义了实际捕获数据的时间点。

DEM_CAPTURE_ASYNCHRONOUS_TO_REPORTING

数据捕获被推迟到Dem_Mainfunction的下一个周期。(这意味着在报告故障和捕获数据之间有最小的延迟)。

DEM_CAPTURE_SYNCHRONOUS_TO_REPORTING

立即捕获,最简单的时间点在调用函数

setEventStatus/reportErrorStatus的时候

DemEventCombinationSupport:此参数定义Dem支持的事件组合类型。

DEM_EVCOMB_DISABLED

不支持组合类型

DEM_EVCOMB_ONRETRIEVAL

检索组合类型

DEM_EVCOMB_ONSTORAGE

存储组合类型

DemEventDisplacementStrategy:此配置开关定义是否支持事件置换,以及遵循哪种置换策略。

DEM_DISPLACEMENT_FULL

通过考虑优先级、主动/被动状态和发生,启用事件内存项置换。

DEM_DISPLACEMENT_NONE

事件内存项置换被禁用。

DEM_DISPLACEMENT_PRIO_OCC

通过考虑优先级和发生(但没有主动/被动状态),启用了事件内存项置换。

DemEventMemoryEntryStorageTrigger:配置主触发器以分配事件内存项。

DEM_TRIGGER_ON_CONFIRMED

事件当UDS DTC状态位3 (confirmedDTC)由0变为1时触发内存。

DEM_TRIGGER_ON_FDC_THRESHOLD

Event达到FDC阈值时触发内存表项。

DEM_TRIGGER_ON_PENDING

Event触发内存条目UDS DTC状态位2(pendingDTC)从0变为1。

DEM_TRIGGER_ON_TEST_FAILED

事件当UDS DTC状态位0 (confirmedDTC)由0变为1时触发内存。

DemGeneralInterfaceSupport:假设DemGeneralInterfaceSupport为TRUE,那么API GeneralEvtInfo, GeneralCallbackEventDataChanged

与GeneralCallbackEventStatusChange可用。

DemImmediateNvStorageLimit:该参数定义了允许立即存储在NVRAM中的特定事件内存项的最大发生次数(参见DemlmmediateNvStorage)。

DemMaxNumberEventEntryEventBuffer:指定用于存储环境数据(冻结帧和扩展数据)的缓冲区的大小,直到它们被处理并存储到事件内存。

DemMaxNumberEventEntryPermanent:可存储在永久存储器中的事件的最大数量。事件对该内存类型的分配是动态的,并且仅用于与排放相关的事件。也就是讲使用OBD的时候才会配置此参数。

DemMaxNumberPrestoredFF:定义预存储冻结帧的最大数目。如果设置为0,则ECU不支持冻结帧预保存。

DemOBDSupport:此配置开关定义OBD支持和OBD ECU类型。

DEM_OBD_DEP_SEC_ECU

OBD Dependend /Secondary ECU

DEM_OBD_MASTER_ECU

Master ECU

DEM_OBD_NO_OBD_SUPPORT

不支持OBD协议

DEM_OBD_PRIMARY_ECU

Pimary ECU

DemOccurrenceCounterProcessing: 此配置开关定义了对发生计数器的故障确认过程的考虑。对于OBD和混合系统(OBD/非OBD,参见DemOBDSupport),配置开关应始终设置为DEM_PROCESS_OCCCTR_TF。

DEM_PROCESS_OCCCTR_CDTC

如果故障确认成功(设置了ConfirmedDTC位),则发生计数器由TestFailed位触发。

DEM_PROCESS_OCCCTR_TF

发生计数器仅由TestFailed位触发(并且不考虑故障确认)J1939时必选。

DemOperationCycleStatusStorage: 定义在电源周期内操作周期状态是否可用(存储的非易失性)

False:操作周期状态仅存储易失性(下电在一起存)

True:操作周期状态存储非易失性

DemResetConfirmedBitOnOverflow:这个配置开关定义,当事件内存项将被替换时,确认位是否被重置。

DemStatusBitHandlingTestFailedSinceLastClear: 该配置开关定义了老化和位移机制是否应用于“TestFailedSinceLastClear”状态。

DEM_STATUS_BIT_AGING_AND_DISPLACEMENT

“TestFailedSinceLastClear”状态位被重置为0。

DEM_STATUS_BIT_NORMAL

老化和位移不影响"TestFailedSinceLastClear"状态位

DemStatusBitStorageTestFailed:激活/去激活“TestFailed”状态位的永久存储。就是到底存储不存储TestFailed,为了下次上电使用。

True:存储激活false:存储未激活

DemSuppressionSupport:此配置开关定义是否支持抑制。一般配置为不支持。

DEM_DTC_SUPPRESSION

支持DTC的抑制

DEM_NO_SUPPRESSION

不支持

DemTaskTime:允许配置周期任务的时间。请注意:此配置值应等于RTE模块的Basic Software Scheduler配置中的值。

DemTriggerDcmReports:激活/取消激活发送给诊断通信管理器的通知以进行ROE处理。ROE:ResponseOnEvent

true:激活Dcm ROE通知false:不激活Dcm ROE通知

当然Dlt与FiM也是可以触发的,看实际需求选择。

DemTriggerMonitorInitBeforeClearOk:定义是否必须在Dem模块返回DEM_CLEAR_OK之前或之后触发监视器重新初始化。true:在DEM_CLEAR_OK之前触发重新初始化false:在DEM_CLEAR_OK之后触发重新初始化。

DemTypeOfDTCSupported:此参数定义Dem_DcmGetTranslationType返回的格式,与所支持的Dem功能无关/不受影响。有以下类型,目前看来一般选择14229-1.

DemTypeOfFreezeFrameRecordNumeration:此参数定义为特定事件的冻结帧记录分配冻结帧记录编号的类型。项目工程里面选择时间顺序进行编号,考虑到替代存储与老化的原因。

DEM_FF_RECNUM_CALCULATED

定格帧记录将按时间顺序从1开始连续编号

DEM_FF_RECNUM_CONFIGURED

定格帧记录将根据给定的配置按时间顺序编号

DemHeaderFilelnclusion:包含使用的c回调声明的Dem模块要包含的头文件的名称。

DemMILIndicatorRef:该参数定义了代表MIL的指示器。MIL:Malfunction Indicator Light (SAE J1979) or Lamp (SAE J1939) 故障指示灯。

2.2、DemCallbackDTCStatusChanged

这个容器的存在表明,Dem可以访问“DTCStatusChanged”回调,Dem将调用该回调来通知其他组件DTC状态的变化。

如果存在DemCallbackDTCStatusChangedFnc,则该参数定义Dem将调用的函数的名称。在没有DemCallbackDTCStatusChangedFnc的情况下,Dem将有一个R-Port,需要接口CallbackDTCStatusChanged,其名称是通过使用唯一的回调前缀后跟事件名称生成的。。状态更改通知仅支持主内存中的DTC。

DemCallbackDTCStatusChangedFnc:原型的函数名“DTCStatusChanged”。自己可以命名,但是有个注意点:如果使能DemTriggerDcmReports参数,该参数不能为“Dcm_DemTriggerOnDTCStatus”。

生成的函数代码如下:

2.3、DemCallbackEventStatusChanged

这个容器的存在表明,Dem可以访问“EventStatusChanged”回调,Dem将调用该回调来通知其他组件事件状态的变化。如果有一个DemCallbackEvenStatusChangedFnc,这个参数定义了Dem将调用的函数的名称。在没有DemCallbackEvenStatusChangedFnc的情况下,Dem将有一个R-Port需要接口CallbackEventStatusChanged,其名称是通过使用唯一的回调前缀后跟事件名称生成的。

DemCallbackEventStatusChangedFnc:原型EventStatusChanged的函数名

以上两个回调会在Dem_Cfg_EventsCallback.h生成函数原型的,但是需要自己进行定义。

2.4、DemClients

这个容器包含可能使用Dem api的客户端

DemClientFunctionality:Dem为DemClient提供的功能。

DemClientUsesRte:如果设置为true,该客户端只能通过RTE使用DEM (DEM将提供C/S接口:CDDIf, EvMemOverflowlndication)。客户端不能对DEM执行任何C_API调用。

DemRbClientPriority:该参数定义了一个DemClient可以拥有的唯一优先级值,该值越低优先级越高。

DemEventMemorySetRef:对客户端分配的事件内存容器的引用,该容器包含客户端特定的设置和事件内存。

2.5、DemDataElementClasses

配置扩展数据和快照数据的数据源

DemExternalCSDataElementClass

它定义了Dem如何从SW-C或另一个BSW模块获取数据元素的值。是否使用客户端/服务器端口或C函数调用,由DemDataElementUsePort定义。CS接口用于同核。

DemDataElementDataSize:以字节为单位定义数据元素的大小。

DemDataElementReadFnc:在DemDataElementUsePort为false的情况下,该参数定义用于获取相应值的C函数“ReadDataElement”的原型。一旦为true那么就无需配置此参数。

DemDataElementUsePort:如果设置为True,则生成R-Port,以获取数据元素(接口DataServices_{data))。如果该参数设置为False,则通过C函数调用DemDataElementReadFnc参数指定的另一个BSW模块获取信息。

由于与ASW相交互,需要R-Port,所以此处配置成TRUE。

DemExternalSRDataElementClass

此容器包含基于外部发送方/接收方数据元素类的配置(参数)。它定义了Dem如何通过使用发送/接收端口从SW-C(只有SWC)获取数据元素的值。

DemInternalDataElementClass

该容器包含内部数据元素类的配置(参数)。

DemInternalDataElement:该参数定义dem内部数据值,该值映射到数据元素。

本处选择发生次数:DEM_OCCCTR :map -内部发生计数器,max。范围:1字节

2.6、DemDidClasss

该容器包含数据Id类的配置(参数)。它由一个或几个数据元素组装而成。

DemDidDataElementClassRef:参考引用数据元素,此引用包含指向数据元素类的链接。容器:DemDataElementClasses

DemDidIdentifier:数据ID的标识符。

2.7、DemExtendedDataRecordClass

此容器包含扩展数据记录类的配置(参数)。它由一个或几个数据元素组装而成。目前项目里面只有一个发生次数的扩展数据,与冻结数据一起存储了,假设需要还可以加入扩展数据:发生时间之类。

DemDataElementClassRef:此引用包含指向数据元素类的链接。数据来源DemDataElementClass。

DemExtendedDataRecordNumber:此配置参数为扩展数据记录指定唯一标识符。可以将一个或多个扩展数据记录分配给一个诊断事件/DTC。0x00由ISO保留(因此最小值等于1)0xF0到0xFF由ISO保留(因此最大值等于239)

DemExtendedDataRecordTrigger:定义用于存储ExtendedDataRecord的触发器。

DEM_TRIGGER_ON_CONFIRMED

当事件状态确认位从0变为1时,存储ExtendedDataRecord,bit3

DEM_TRIGGER_ON_FDC_THRESHOLD

当FDC达到阈值时,将存储ExtendedDataRecord。

DEM_TRIGGER_ON_MIRROR

ExtendedDataRecord将在事件传输到镜像内存时存储。

DEM_TRIGGER_ON_PASSED

当事件报告为通过(testFailed位转换1-> 0)时,将存储ExtendedDataRecord。

DEM_TRIGGER_ON_PENDING

当事件状态待定位从0变为1时,将存储ExtendedDataRecord。

DEM_TRIGGER_ON_TEST_FAILED

Bit0从0到1存储

DemExtendedDataRecordUpdate:如果满足“DemExtendedDataRecordTrigger”中配置的触发条件,则捕获扩展的数据记录。

DEM_UPDATE_RECORD_NO

仅为新的事件内存项捕获此扩展数据记录。

DEM_UPDATE_RECORD_YES

每次都会捕获这个扩展的数据记录。

2.8、DemExtendedDataClasses

该类包含用于扩展数据类的扩展数据记录的组合。假设存在多个扩展数据的时候怎么组合,需要几个扩展数据的选择。

DemExtendedDataRecordClassRef:索引扩展数据的容器,参考数据来源DemExtendedDataRecordClass。

2.9、DemFreezeFrameClass

此容器包含非OBD2和WWH-OBD相关冻结帧类的did组合。也就是UDS类的。

DemDidClassRef:参考应包含在冻结框架中的DID元素。参考容器:DemDidClass。

2.10、DemFreezeFrameRecordClasss

此容器包含专用的,不同的冻结帧记录编号的列表。其实这个容器主要配置冻结帧触发与更新的条件。

DemFreezeFrameRecordNumber:这个参数为一个定格帧记录定义一个记录号。此记录编号在每个冻结帧记录编号类别中是唯一的。与扩展帧类似。

DemFreezeFrameRecordTrigger:定义什么时候触发存储冻结帧。

DEM_TRIGGER_ON_CONFIRMED

状态位bit3从0到1时候存储

DEM_TRIGGER_ON_FDC_THRESHOLD

Event达到FDC阈值时触发内存表项。

DEM_TRIGGER_ON_PENDING

Bit2从0到1时候存储

DEM_TRIGGER_ON_TEST_FAILED

Bit0从0到1时候存储

DemFreezeFrameRecordUpdate:什么时候进行更新冻结帧

DEM_UPDATE_RECORD_NO

仅为新的事件内存项捕获此扩展数据记录。

DEM_UPDATE_RECORD_YES

每次都会捕获这个扩展的数据记录。

2.11、DemFreezeFrameRecNumClass

此容器包含分配给事件的专用不同冻结帧记录编号的列表。此列表中记录编号的顺序按照冻结帧记录的时间顺序分配。

DemFreezeFrameRecordClassRef:索引冻结帧数据,参考容器:DemFreezeFrameRecordClass

2.12、DemNvRamBlocklds

该容器包含非易失性内存块的配置(参数),该内存块从Dem中使用。如果不需要事件内存项的永久存储,则不需要配置块。

所需块的数量取决于Dem模块的实现和配置(例如使用的事件存储器的数量)。

DemNvRamBlockIdRef:对NVM块的索引。例如需要存储状态字之类的,有多少个DTC,NVM的状态字长度应该在此基础上加上CRC,CRC是可选的。

2.13、DemPrimaryMemory

可以存储多少个event的设置。

DemMaxNumberEventEntryPrimary:可存储在主内存中的最大事件数,这个地方一般与DemNvRamBlocklds设置多少个是相等的。

3、DemConfigSet

此容器包含支持多个配置集的Dem模块的配置参数和子容器。配置思维导图如下所示。

3.1、DemDebounceCounterBasedClass

此容器包含基于类的Debounce Counter的配置

下面配置显示的是底层消抖。

DemDebounceBehavior:此参数定义在相关启用条件未满足或相关事件的ControlDTCSetting被禁用时,事件解密算法将如何表现。

DEM_DEBOUNCE_FREEZE

事件消抖计数器将冻结当前值,并且在相关启用条件未满足或相关事件的ControIDTCSetting被禁用时不会更改。在满足所有相关的启用条件并再次启用相关事件的ControlDTCSetting之后,事件将继续与事件的下一个报告(即SetEventStatus)一起进行。

DEM_DEBOUNCE_RESET

如果相关的启用条件未满足或相关事件的ControlDTCSetting被禁用,则事件消抖计数器将重置为初始值。事件的序列将随着下一个有效的事件报告而重新开始。

DemDebounceCounterDecrementStepSize:在PREPASSED时候定义内部衰减的步长计数器。

DemDebounceCounterFailedThreshold:定义消抖计数器失败时候的阈值。也就是FDC的最大值。

DemDebounceCounterIncrementStepSize:故障从prefailed状态跳转至failed的限值;

DemDebounceCounterJumpDown:是否使能JumpDown功能, JumpDown功能是指当上一次Diagnostic Monitor上报的状态是prefailed,而这次上报的是prepassed,且当前计数器的值大于DemDebounceCounterJumpDownValue,错误计数器的值会重置为DemDebounceCounterJumpDownValue。如果JumpDown功能禁止,计数器按照步长减少。DemDebounceCounterJumpDownValue:当Jump Down功能使能,改变量定义了计数器的重置值,一般设置为0。

DemDebounceCounterJumpUp:是否使能JumpUp功能, JumpUp功能是指当上一次Diagnostic Monitor上报的状态是prepassed,而这次上报的是prefailed,且当前计数器的值小于DemDebounceCounterJumpUpValue,错误计数器的值会重置为DemDebounceCounterJumpUpValue。如果JumpUp功能禁止,计数器按照步长增加。

DemDebounceCounterJumpUpValue:当JumpUp功能使能,该变量定义了计数器的重置值。

DemDebounceCounterPassedThreshold:故障从prepassed状态跳转至passed状态的限值。

DemDebounceCounterStorage:是否讲Debounce的值存储到NVM。

具体每个参数在实际应用中的含义如下:

1、5表示JumpDown功能,

3、4表示JumpUp功能,

2表示当前计数器小于DemDebounceCounterJumpDownValue,所以JumpDown功能没有激活,

6表示DemDebounceCounterJumpDownValue,

7表示DemDebounceCounterJumpUpValue,

8表示DemDebounceCounterFailedThreshold,

9表示DemDebounceCounterPassedThreshold ,

10、 12表示故障确认,由于计数器的值达到了fail的限值,

11故障恢复,由于计数器的值达到pass的限值,

13表示Dem接收的状态为failed,所以故障直接置位;

14表示Dem接到的状态为passed,所以故障恢复;

15表示DemDebounceCounterlncrementStepSize,

16表示DemDebounceCounterDecrementStepSize,

假设由应用层实现,也就是不需要消抖,直接触发的形式,如下设置即可

采用Debounce由应用层做,则在Dem可简化,即INC = 255, DEC=256,FAIL = 1,PASS = -1。所有的DTC使用相同的BasedClass。不使能JumpUp与JumpDown

应用层消抖配置如下:

3.2、DemComponent

将相关联的DTC按SWC分组,并能过Dem_GetComponentFailed获取状态。

3.3、DemDTCAttributes

        配置DTC的属性,此时的颗粒的是最小的单元了,例如过温、过压等DTC,属于单个DTC的配置。

配置界面展示一个如下:

DemAgingAllowed:是否允许老化,这个选项一般没啥争议,老化机制。

DemAgingCycleCounterThreshold:清除/删除事件所需的老化周期数。

DemAgingCycleCounterThresholdForTFSLC:复位testFailedSinceLastClear位所需的老化周期数。

DemDTCPriority:此DTC,也可以认为是Event的等级,数值越低,优先级越高。其实就是类似一级故障、二级故障、三级故障这里面的1、2、3.

DemDTCSignificance:事件的意义,表示与故障分类和解决有关的附加信息。它可以映射为dem内部数据元素。如果是事件相关数据的一部分,则需要配置。

DEM_EVENT_SIGNIFICANCE_FAULT

故障,影响组件/ECU本身

DEM_EVENT_SIGNIFICANCE_OCCURRENCE

问题,它指示有关系统行为不足的附加信息

DemEventMemoryEntryFdcThresholdStorageValue:分配事件内存条目和捕获冻结帧的阈值。

DemlmmediateNvStorage:开关以启用立即存储触发相应事件内存条目持久化到NVRAM。如果启用,事件内存中的立即存储将发生,例如,每次增加发生计数器和清除。

DemMaxNumberFreezeFrameRecords:这个参数定义了冻结帧记录的数量,可以为这个事件存储最多的记录。因此,所有这些冻结帧记录都具有相同的冻结帧类。

DemAgingCycleRef:老化周期参考,是一个上电周期还是点火周期之类,参考通用配置参数:DemOperationCycle。

后面的配置:冻结帧、扩展帧、冻结帧顺序参考均是来自DemGeneral的配置,不再一一赘述。

3.4、DemDTC

这个容器包含DemUdsDTC的配置(参数)。

举例参数如下:

DemDTCAttributesRef:该参数定义与DemDTC相关联的DTC属性。参考容器:DemDTCAttributes。

DemDTCFunctionalUnit:DTCFuncitonalUnit是一个1字节的值,它标识了相应的报告DTC的基本车辆/系统功能。上报严重性信息时需要设置该参数。无DTC时,不提供DTC功能单元信息。

DemDTCSeverity:DTC严重程度符合ISO 14229-1。此参数取决于汽车制造商。如果没有配置,则以“no severity”计数。如果不配置DTC,则不提供DTC的严重程度信息。

DEM_SEVERITY_CHECK_AT_NEXT_HALT

下一轮检查

DEM_SEVERITY_CHECK_IMMEDIATELY

立即检查

DEM_SEVERITY_MAINTENANCE_ONLY

维护需求

DEM_SEVERITY_NO_SEVERITY

没有可用的严重性信息

3.5、DemEventParameter

该容器包含事件的配置(参数)。

DemComponentClassRef:对被监视组件的引用。并没有配置DemComponent,所以此项暂时没有引用。

DemComponentPriority:指定组件内的优先级。值越小优先级越高。

DemDTCRef:引用的DTC是哪个,参考容器:DemDTC。

DemEventAvailable:此Event是否在整个Dem里面可用,一般此项配置为True。

DemEventKind:该参数用于区分SW-C事件和BSW事件。SW-C事件由Dem_SetEventStatus API报告,BSW事件由Dem_ReportErrorStatus API报告。

DEM_EVENT_KIND_BSW

BSW的Event

DEM_EVENT_KIND_SWC

SWC的Event

DemFFPrestorageSupported:是否支持预存储冻结帧数据。

DemEventFailureCycleCounterThreshold:定义基于事件的故障确认的故障循环次数。启用该参数,表示启用该事件的故障确认功能。由于项目在ASW进行故障的消抖,这里写1即可。

备注:类似于Dem的配置,建议使用脚本实现,规格比较统一,arxml相对来说好实现。

博主关闭了所有页面的评论