当前位置: 首页 > news >正文

[CP_AUTOSAR]_系统服务_DEM模块(二)功能规范介绍

目录

  • 1、DEM 功能规范描述
    • 1.1、Startup behavior
    • 1.2、Monitor re-initialization

  在前面 《[CP_AUTOSAR]_系统服务_DEM模块(一)》文中,简要介绍了 DEM 模块的功能、与其它模块之间的功能交互,本文将接着介绍 DEM 模块的功能规范。
  参考文档《AUTOSAR_SWS_DiagnosticEventManager》

1、DEM 功能规范描述

  SWCs 和 BSW 模块中诊断监视器监测到的诊断故障都交由 DEM 模块处理和存储,而SWCs 和 BSW 模块可以通过 DEM 模块提供的接口函数来获取存储的故障信息。

1.1、Startup behavior

  [SWS_Dem_00169] DEM 模块应该区分 pre-initialization 和 full-initialized 工作模式。
  [SWS_Dem_00180] Dem_PreInit 函数会初始化 DEM 模块的内部状态,这些内部状态对于处理诊断事件和重置防抖动计数器是必要的,SWCs 和 BSW 模块使用 Dem_SetEventStatus 和 Dem_ResetEventDebounceStatus 函数去汇报。
           在ECU启动阶段中,NvM 模块初始化之前,函数 Dem_PreInit 由 EcuM 模块调用。 BSW 模块使用 Dem_SetEventStatus 函数去汇报相关的诊断事件。
           在ECU启动阶段中,NvM 模块完成存储 NVRAM 数据之后,函数 Dem_Init 被调用。 SWCs 模块包含故障监视器,在之后被初始化。使用 Dem_SetEventStatus 函数去汇报相关的诊断事件。

1.2、Monitor re-initialization

  应用程序中的故障监测器主要初始化由 Rte_Start 完成,监视器的特定事件部分的初始化可以由Dem触发。
  [SWS_Dem_00003] DEM 模块提供接口 InitMonitorForEvent 去触发诊断监视器的初始化。函数形参 InitMonitorReason 触发初始化的原因。
  [SWS_Dem_00679] 函数 Dem_RestartOperationCycle 被调用,应该重新初始化所有相关事件的诊断监测器,通过调用各自的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_RESTART。
  [SWS_Dem_00680] API Dem_ClearDTC 会触发相关事件的回调函数 InitMonitorForEvent ,如果需要清除诊断故障,形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_CLEAR 。
  [SWS_Dem_00681] 如果一个诊断事件的使能条件改变了,API Dem_SetEnableCondition 应该触发相关诊断事件的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_REENABLED。
  [SWS_Dem_00682] 如果 0x85(ControlDTCSetting,控制诊断故障代码设置服务) 被重新使能,API Dem_EnableDTCSetting 应该触发相关诊断事件的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_REENABLED。
  [SWS_Dem_01113] 如果诊断事件的存储条件改变了,API API Dem_SetStorageCondition 应该触发相关诊断事件的回调函数 InitMonitorForEvent ,并将形参 InitMonitorReason 设置为 DEM_INIT_MONITOR_REENABLED。如果诊断事件汇报为 FAILED 或者 PASSED,而存储条件被失能,那么回调函数只是被回调。下面展示两条使用案例:
  Use case1:在诊断事件监测器在运行过程中,$85服务触发或者是清除故障触发后,只要是诊断前置条件满足,那么监视器应该从头开始运行,并在运行结束时评估事件的状态,如passed 或者 failed。
在这里插入图片描述
  Use case2:柴油机 ECU 在运行4小时后重启,那么监视器应该从头开始运行,并在运行结束时评估事件的状态,如passed 或者 failed。
在这里插入图片描述
  任何功能模块(主要与监视器相关)可以由 DEM 模块来触发初始化。
  [SWS_Dem_01046] 如果同时触发 InitMonitorForEvent 函数的情况发生,那么 InitMforE 应该被只调用一次。形参 InitMonitorReason 设置为哪种参数根据参数优先级来定:最高优先级,DEM_INIT_MONITOR_CLEAR;低优先级,DEM_INIT_MONITOR_RESTART, DEM_INIT_MONITOR_REENABLED。

   更多内容可参考 CP_AUTOSAR_总目录,点击跳转

http://www.lryc.cn/news/413468.html

相关文章:

  • Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
  • IPython的使用技巧2
  • win10打开程序闪退的解决方法,亲测好用
  • 木舟0基础学习Java的第二十一天(数据库,MySQL,SQLyog)
  • python-鼠标绘画线条程序
  • 【Python实战】如何优雅地实现 PDF 去水印?
  • Keysight(原Agilent) E4980AL 精密 LCR 表特性与技术指标
  • 【运维】Redis主从复制 配置
  • C++ 微积分 - 求导 - 自动微分(Automatic Differentiation)
  • 面试题-每日5道
  • STM32卡死、跑飞如何调试确定问题
  • 代理模式和Spring MVC
  • 深入理解Vue slot的原理
  • git fetch作用与用法
  • pycharm如何查看git历史版本变更信息
  • 【2.2 python中的变量】
  • Python软体中找出一组字符串的最长公共前缀:算法与实现
  • git lfs使用(huggingface下载大模型文件)-教程记录
  • 1. 什么是操作系统
  • 数据科学 - 数据预处理 (数据清洗,结构化数据)
  • 基于SpringBoot+Vue的校车调度管理系统(带1w+文档)
  • 基于改进拥挤距离的多模态多目标优化差分进化(MMODE-ICD)求解无人机三维路径规划(MATLAB代码)
  • opencascade AIS_Trihedron源码学习 绘制三轴坐标系
  • 【C++】C++应用案例-通讯录管理系统
  • 使用Python自动批量提取增值税发票信息并导出为Excel文件
  • vitis (eclipse) 的Indexer不能搜索、不能跳转到函数和变量定义和声明不能打开调用层次的解决方法
  • 最佳HR软件指南:11款高效管理工具
  • 家长为孩子出国留学择校的四个步骤
  • 数据挖掘可以挖掘什么类型的模式?
  • JAVA中的隐式参数this