基础信息
依据 ISO-14229-1的定义,dem提供了定义不同操作周期的能力。
例如:
- ignition on/off cycle
- power up/power down cycle
- OBD driving cycle
- engine warm up cycle
- operation active/passive cycle
- accumulated operating time
计算操作周期的基础信息就是定义的各种操作周期,如testCompleteThisOperationCycle。
操作周期是一些功能的基础,如故障老化、故障确认等。
dem提供API Dem_RestartOperationCycle,用来重新启动或切换到下一个操作周期,重启或者切换到下一个操作周期作为某些功能的触发器。
- 重启操作周期:
- [SWS_Dem_01318] DEM只允许在Dem_PreInit阶段之后调用Dem_RestartOperationCycle函数。如果在Dem_Init之前重启了一个操作周期,则重启的处理应在Dem_Init完成之后进行。
- [SWS_Dem_01316] Dem只有在之前操作周期重新启动被完全处理后,才能重新启动操作周期。这意味着DEM不提供Operation Cycle重启队列。
- [SWS_Dem_01224] 当通过Dem_RestartOperationCycle重新启动一个操作周期时,依赖于所选操作周期的所有操作周期也应重新启动,但前提是它们是合格的。
- [SWS_Dem_01225] 重新启动依赖操作周期时,应重新设置其运行周期资格。
- [SWS_Dem_01221] Dem允许使用dem leading cycleRef参数定义相关的操作周期。每当设置该参数时,将该操作周期视为依赖操作周期(依赖其他的操作周期)。当不设置该参数时,认为该运行周期为“正常”运行周期。例如:A是一个正常的操作周期,A只能通过Dem_RestartOperationCycle来重启/进入下一个操作周期,B是一个依赖操作周期,它可以通过Dem_RestartOperationCycle或者A周期的重启来重启操作周期。
- [SWS_Dem_01222] 如果传递给Dem_SetCycleQualified的操作周期没有被配置为依赖操作周期,则报告Det错误deme_wrong_configuration。
- [SWS_Dem_01235] 如果传递给Dem_GetCycleQualified的操作周期根本没有配置,则应报告检测错误Dem_E_WRONG_CONFIGURATION。
Dem_SetCycleQualified 用于设置事件的周期性触发条件。这个 API 允许应用程序设置事件的触发条件,以便 DEM 模块根据指定的条件来触发事件报告。
作用
Dem_SetCycleQualified API 用于设置事件的周期性触发条件。周期性触发条件是 DEM 模块用来决定何时触发事件报告的条件。通过设置周期性触发条件,应用程序可以指定在何种条件下 DEM 模块应该生成事件报告。
用途
定义周期性触发条件:通过调用 Dem_SetCycleQualified API,应用程序可以指定事件触发条件。例如,应用程序可以指定在特定的车辆运行周期内、特定的驾驶循环内或者特定的环境条件下触发事件报告。
优化事件报告:通过合理设置周期性触发条件,可以避免在不必要的情况下触发事件报告,从而减少通信和存储开销,提高系统性能。
满足监测要求:一些监测功能可能需要根据特定的运行周期或者条件来触发事件报告,Dem_SetCycleQualified API 可以满足这些监测要求。
注意事项
在使用 Dem_SetCycleQualified API 时,需要根据具体的应用场景和监测要求来合理设置周期性触发条件。此外,需要确保设置的触发条件符合系统设计和监测要求,以避免触发条件设置不当导致的错误事件报告。
总之,Dem_SetCycleQualified API 提供了设置事件触发条件的灵活性,使得 DEM 模块可以根据特定的周期或条件来触发事件报告,从而满足不同的监测要求和优化系统性能。
- [SWS_Dem_01317] Dem应存储功率相关的操作周期的合法状态。
- [SWS_Dem_01220] 如果将DemOBDDelayedDCYConfirmedAndMIL设置为TRUE,则将改变与OBD驱动周期(demobddrivecycleef)相关的事件行为: 运行周期不合格时,除更新确认状态外,应处理状态报告。当OBD驾驶周期被设置为合格时,Dem将执行所需的计算,以达到在周期的“不合格”阶段收集的事件的确认状态。
DemOBDDelayedDCYConfirmedAndMIL 是 AUTOSAR DEM 模块规范中的一个事件状态,用于表示 OBD(On-Board Diagnostics,车载诊断)延迟确认和 MIL(Malfunction Indicator Lamp,故障指示灯)状态。
作用
DemOBDDelayedDCYConfirmedAndMIL 事件状态用于表示车辆的 OBD 系统中出现了延迟确认的故障,并且需要点亮 MIL(故障指示灯)来指示驾驶员有故障需要维修。
用途
指示延迟确认的故障:当车辆的 OBD 系统检测到故障时,可能需要经过一定的条件满足后才能确认该故障。DemOBDDelayedDCYConfirmedAndMIL 事件状态表示了这种延迟确认的故障情况。
点亮故障指示灯:根据 OBD 系统的监测结果,如果需要驾驶员进行维修或者注意,故障指示灯(MIL)会被点亮,以提醒驾驶员有故障需要处理。
驾驶员提示:通过点亮故障指示灯,驾驶员可以及时得知车辆的故障情况,从而及时采取维修措施,确保车辆的安全和性能。
Cycles since last failed
从上次故障发生以来的周期数。这个参数主要用于表示自上次故障发生以来经过了多少个周期,其中一个周期可以是时间周期或者特定条件满足的周期。
- [SWS_Dem_00984] 如果将计数器 “Cycles since last failed” 映射到扩展数据记录中,并且将 DemInternalDataElement 设置为 DEM_CYCLES_SINCE_LAST_FAILED,那么该计数器应该在 “event related data” 记录中可用。“event related data” 记录是 DEM 模块中用于存储与事件相关的数据的记录,其中包括了与事件相关的诊断信息、故障码、计数器等。
- [SWS_Dem_00771] 当内部去抖动计数器达到 DemDebounceCounterFailedThreshold(UDS状态位0从0变为1),并且该计数器未存储在事件存储器中并且有可用的事件存储器条目时,应分配新的条目存储,并且该计数器应该被启动并初始化为零。
- [SWS_Dem_00772] 当内部去抖动计数器达到 DemDebounceCounterFailedThreshold(最新的UDS状态位0从0变为1),并且该计数器存储在事件存储器中时,应将计数器初始化为零。
- [SWS_Dem_00773] 在特定情况下,如果计数器可用并已启动,在引用操作周期的末尾(参考 DemOperationCycleRef)应对计数器进行递增操作。
- [SWS_Dem_00774] 计数器应该实现为一个字节。如果进行计数操作导致计数器超过0xFF(即255),则计数值应该保持在0xFF,而不是回绕到0。
Cyles since first failed
“Cycles since first failed”(自首次故障以来的周期数)指的是自从首次发现故障以来经过的操作周期数。
- [SWS_Dem_00775] 如果“Cycles since first failed”计数器被映射到扩展数据记录(DemInternalDataElement设置为DEM_CYCLES_SINCE_FIRST_FAILED),则它应该在“与事件相关的数据”记录中可用。
- [SWS_Dem_00776] 当内部去抖动计数器达到了 DemDebounceCounterFailedThreshold(故障计数器失败阈值)时,且最新的UDS状态位0从0变为1时,如果该计数器尚未存储在事件存储器中并且有可用的事件存储器条目,那么应该分配一个新的条目,并且计数器应该被启动并初始化为零。
- 内部去抖动计数器用于处理故障事件的去抖动,以避免因临时性问题引起的不必要的故障报告。当内部去抖动计数器达到了失败阈值(DemDebounceCounterFailedThreshold)时,这意味着故障事件已经达到了一定的持续时间或次数,系统需要开始处理这个故障事件。
- [SWS_Dem_00777] 当计数器可用且已启动时,在引用的操作周期(DemOperationCycleRef)的末尾,计数器应该被增加。在每个操作周期结束时,系统应该对故障计数器的值进行递增,以便准确记录故障事件的发生次数或持续时间。
- [SWS_Dem_00778] 故障计数器应该实现为一个字节(8位),如果进行任何计数操作导致计数器超过0xFF(255),则计数值应该被保持在0xFF(255)。
Failed cycles
“Failed cycles” 指的是指示特定故障事件在操作周期中的失败次数。具体来说,当特定的故障事件在操作周期内未能成功解决或清除时,就会增加该故障事件的失败周期计数。
操作周期是指诊断事件管理模块中定义的一个时间段,用于执行诊断事件的清除和解决操作。在每个操作周期内,系统会尝试清除或解决所有已经触发的故障事件。如果特定的故障事件在操作周期内未能成功解决或清除,就会增加该故障事件的失败周期计数。这个计数通常用于指示系统在处理特定故障事件时的成功或失败情况。
- [SWS_Dem_00779] 如果故障周期计数器 “Failed cycles” 被映射到扩展数据记录(DemInternalDataElement 设置为 DEM_FAILED_CYCLES),那么它应该对每个“与事件相关的数据”记录都是可用的。
- [SWS_Dem_00780] 与[SWS_Dem_00776] 类似
- [SWS_Dem_00781] 如果计数器可用并已启动,在引用的操作周期结束时(参考 DemOperationCycleRef),如果UDS状态位1被设置为1,则该计数器应该被递增。
- [SWS_Dem_00782] 与[SWS_Dem_00778] 一致