Dem模块之故障数据存储策略

事件存储概述

事件存储指当事件发生故障时将相关的数据存储到Nvm中,事件存储分为primary event memory 、user defined event memory、mirror event memory和permanent event memory。其中primary event memory和user defined event memory有同样的功能,主要是事件保留、事件优化、老化、内存替换等功能,mirror event memory具备不同的功能,permanent event memory主要处理OBD事件相关的存储。

事件存储管理

事件内存管理流程

Dem模块的内存管理主要包括事件的添加、更新、去除等操作,下图是诊断事件存储的主要流程
在这里插入图片描述

事件存储流程

Dem模块事件预留包括记录和处理DTC、UDS status、event related data等功能,具体流程如下图所示。
在这里插入图片描述
Dem模块的存储由主触发器和辅助触发器,主触发器包括DemEventMemoryEntryStorageTrigger容器,辅助触发器包括DemFreezeFrameRecordTrigger和DemExtendedDataRecordTrigger等 。

DemEventMemoryEntryStorageTrigger主要功能是事件被存储的时机,具体配置参数如下:

  • CONFIRMED:当事件对应的DTC确认(状态位bit3由0到1)时,事件会被存储
  • FDC_THRESHOLD:当故障检测计数器超过DemDebounceCounterPreconfirmedThreshold时,事件会被存储
  • PENDING:当事件对应的DTC挂起(状态位bit2由0到1)时,事件会被存储
  • TEST_FAILED:当事件对应的DTC失败(状态位bit0由0到1)时,事件会被存储
  • DemFreezeFrameRecordTrigger主要功能是快照被记录的时机,具体配置参数如下:

FDC:当故障计数器达到阈值时获取快照数据

  • CONFIRMED:当confirmed状态标志位由0置1时获取快照数据
  • PENDING:当pending状态标志位由0置1时获取快照数据
  • TESTFAILED:当testfailed状态标志位由0置1时获取快照数据
  • TESTFAILED_FIRST_IN_CYCLE:当testfailed状态标志位由0置1时获取快照数据,一个运行周期只会记录一次快照数据
  • FDC_FIRST_IN_CYCLE:当故障计数器达到阈值时获取快照数据,一个运行周期只会记录一次快照数据

DemExtendedDataRecordTrigger主要功能是快照被记录的时机,具体配置参数如下:

  • FDC_FIRST_IN_CYCLE:当故障计数器达到阈值时记录扩展数据,同时一个运行周期只会记录一次数据。
  • TESTFAILED:当testfailed标志位由0置1时记录扩展数据
  • CONFIRMED:当confirmed标志位由0置1时记录扩展数据(不支持)
  • PASSED:当testfailed标志位由1置0时记录扩展数据

事件溢出指示

当Event memory存满了或者当前的event正在存储别的event时,Dem模块会给每个event memory溢出指示,此时Dem模块会触发内部displacement策略。Dem模块提供Dem_GetEventMemoryOverflow API接口,这个API主要为特定的诊断服务或者特定的供应商处理,同时还为SW-Cs提供接口。Dem模块提供Dem_GetNumberOfEventMemoryEntries API接口,这个API主要返回当前存储在Event memory中的event数量。

event memory溢出指示会在清除DTC(14服务)操作后重置相关参数。

事件替代

Dem模块事件替换指新的事件存储条目替换旧的事件存储条目。当发生事件存储溢出指示后,Dem模块会根据配置丢弃事件存储条目。

Dem模块提供了DemEventDisplacementStrategy参数,配置Dem是否支持事件存储替换。具体配置如下:

  • NONE:不替换。如果事件内存被填满,不会替换已存在的事件存储条目。请注意,对于这种情况,惟一支持的回退策略是DISCARD_NEW_EVENT。
  • PRIO_OCC:可替换。如果事件内存已被填充,则选择优先级最低的DTC。如果多个dtc共享这个最低优先级,则选择最老的dtc。
  • FULL: 可替换。如果事件内存已被填充,则选择优先级最低的DTC。如果多个DTC共享这个最低优先级,则选择最老的被动DTC。如果最低优先级列表中没有被动DTC,则选择最老的活动但未测试的DTC。
  • LEGACY_403:根据Autosar 4.0.3中定义的置换行为做向量扩展。如果事件内存已被填充,则选择优先级最低的DTC。如果多个DTC共享这个最低优先级,则选择最老的被动DTC。
    Dem模块事件存储替换流程如下图所示:
    在这里插入图片描述
    上报的事件优先级和已存在的事件优先级相同,同时已存在的事件在本次运行周期未完成测试,Dem模块把上报的事件将替换已存在的事件。

上报的事件优先级和已存在的事件优先级相同,同时已存在的事件在本次运行周期完成测试,Dem模块将丢弃上报的事件。

当某个事件被替换之后,同时DemResetConfirmedBitOnOverflow 参数配置为true,Dem模块将该事件的UDS status bit2和bit3设置为0。

当某个事件被替换之后,同时DemStatusBitHandlingTestFailedSinceLastClear参数配置为DEM_STATUS_BIT_AGING_AND_DISPLACEMENT,DemResetConfirmedBitOnOverflow设置为true,Dem模块将该事件的UDS status bit5设置为0。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在AUTOSAR中,DEM(Diagnostic Event Manager)模块是负责诊断和管理车辆故障模块DEM模块的工作过程涉及以下几个主要步骤: 1. 事件监测:DEM模块监测车辆系统中可能发生的故障事件。这些事件可以来自各个子系统或传感器,如发动机控制单元、刹车系统、气囊系统等。 2. 事件分类和存储DEM模块对监测到的故障事件进行分类和存储。它根据预定义的故障码规则和逻辑,将事件进行分类,确定其严重性级别,并生成相应的DTC(Diagnostic Trouble Code)。 3. DTC报告和通信:DEM模块生成的DTC可以通过诊断接口(如UDS、OBD等)进行报告和通信。这使得车辆的故障信息可以被读取、记录和传输给诊断工具和服务中心。 4. 诊断决策:DEM模块可以根据故障事件的严重性和其他条件,做出相应的诊断决策。例如,触发告警灯、限制车辆功能或建议驾驶员采取特定的操作等。 5. 故障处理:DEM模块可以与其他AUTOSAR模块(如BSW模块)协同工作,以进行故障处理和故障恢复。它可以触发相应的故障处理策略,如重新初始化故障系统、执行自适应校准等。 总之,DEM模块在AUTOSAR中负责诊断和管理车辆故障。它监测故障事件、分类和存储故障信息,生成DTC报告并进行通信,做出诊断决策,并与其他模块协同处理故障DEM的工作过程有助于提高车辆故障诊断的效率和准确性,并确保车辆的安全和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值