AUTOSAR DEM (一):简介

news2024/10/7 8:29:40

AUTOSAR DEM (一):简介

  • 故障事件触发
  • 故障信息上报
  • 故障信息处理
  • 故障事件存储
  • DEM与其他模块的联系

缩略词说明

abbreviationdescription
DEMDiagnostic event manager
DTCDiagnostic Trouble Code
BSWBasic software
SWCSoftware componen
ECUMECU state manager
DCMDiagnostic communication manager
FIMFunction inhibition manager
NVMNVRAM manager
RTERun-Time Environment

故障事件管理(Diagnostic Event Manager, DEM)是autosar 诊断模块的重要组成部分,主要负责监控车辆的各种诊断事件,并提供相应的诊断信息和服务。它负责收集、存储和处理来自各个车辆电子控制单元(ECU)的诊断事件,以便进行车辆健康状态的监控和故障诊断。

DEM模块相关的标准主要包括两部分:ISO 14229(UDS,车身域诊断遵循的主要标准)和ISO 15031(OBD,该标准制定较早,主要针对排放相关的诊断)。
主要作用:

1、汽车检修提供数据:汽车售后会通过诊断仪去读取诊断仪读取诊断数据,主要包括诊断故障码(DTC)、扩展数据及冻结帧等。根据故障码能够判断出现故障的汽车部件,根据具体的关联数据可以读到出现故障的时间以及当时的ECU的一些状态数据(记录易于判断故障原因的数据)

2、汽车错误状态处理提供依据:故障信息是ECU的运行重要依据,出现影响功能的故障时,应对功能禁止或功能降级以保护ECU或者负载。

1)、功能禁止:当电机出现短机这种情况时,处于保护负载及ECU的目的应该关断输出

2)、功能降级:如车窗反复操作时,车窗电机出现温度升高的情况,处于保护会将温度分为几个保护level,在这几个level中分别禁止相应的功能(如自动上升、自动下降等)

3、汽车重要故障显示:某些重要组件出现出现问题,需要警示用户(仪表盘上显示或者中控屏显示等)避免出现安全事故,主要看OEM如何定义这些故障等级。

故障事件触发

故障监控基本单元为event, 上报的event来自于BSW/SWC。上报时机和监控策略由上报event的模块自行决定。
故障事件触发原则

事件触发条件:DEM根据特定的条件来触发故障事件,这些条件可以是硬件故障、软件故障、传感器数据等。例如,当某个传感器的数据超过预定的范围时,DEM可以触发相应的故障事件。
事件触发优先级:DEM可以根据故障的严重程度来确定事件的优先级,以便在处理多个故障事件时进行优先级排序。这样可以确保高优先级的故障事件先被处理。
事件触发时机:DEM可以根据特定的时机来触发故障事件,例如,在系统启动时、周期性检查时或根据特定的输入触发时。

事件定义原则

事件类型定义:DEM可以定义不同类型的故障事件,例如,故障事件、警告事件、信息事件等。每种类型的事件都有不同的严重程度和处理方式。
事件参数定义:DEM可以定义故障事件的参数,以提供更多的信息来描述故障。例如,事件参数可以包括故障类型、故障代码、故障位置等。
事件状态定义:DEM可以定义故障事件的状态,以跟踪事件的处理过程。例如,事件状态可以包括未处理、已确认、已修复等。

AUTOSAR 事件定义原则

事件依赖清晰
事件触发方式合理
事件本身定义明确合理
事件定义不宜过多或者过少

故障信息上报

经由BSW模块或者SWC模块上报的故障事件,有多种上报方式,如通过RTE接口、DEM模块标准接口来上报,一般是同属于BSW的模块直接调用RTE或者DEM标准接口均可,对于SWC模块则需要通过RTE来上报故障事件。其中,调用DEM标准接口时,也存在四种调用方式

故障信息处理

Dem模块收到来自BSW或者SW-C模块的故障事件及状态会进行相应的处理,上报故障事件状态可分为四种:PreFail、PrePass、Passed、Failed。其中前两者需要经过TimeBased 或者CounterBased 的debouncing 策略来进一步判定故障是否成熟,而后二者则可以直接判别故障是否成熟。
在这里插入图片描述
如果故障成熟则直接修改上报的故障事件对应的DTC 状态并判断是否需要存储/替换等。
DTC简介放在第二节进行介绍。

故障事件存储

为了便于故障发生后能够保留现场,因此需要将相关故障信息存储至Flash或者EEPROM中。 DEM模块的故障信息存储方式可以根据具体需求和系统设计进行选择和配置。以下是一些常见的存储方式:

  1. RAM存储:
    • 实时存储:DEM模块可以将故障信息实时存储在RAM中。这种方式可以提供快速的读写速度和实时性,适用于需要实时故障信息的应用场景。
    • 循环缓冲区:DEM模块可以使用循环缓冲区的方式存储故障信息。这样可以保证最新的故障信息总是可用,而旧的故障信息会被覆盖。
  2. NVM存储:
    • 非易失性存储器:DEM模块可以将故障信息存储在非易失性存储器(如闪存)中。这种方式可以保证故障信息在断电后仍然可用,并且可以长期存储。
    • 存储管理:DEM模块可以使用存储管理机制来管理故障信息的存储。例如,可以使用块管理方式将故障信息存储在不同的存储块中,以便进行读写和擦除操作。
  3. 日志文件存储:
    • 文件系统:DEM模块可以将故障信息存储在文件系统中的日志文件中。这种方式可以提供灵活的存储管理和故障信息的查询和分析。
    • 循环日志:DEM模块可以使用循环日志的方式存储故障信息。这样可以保证最新的故障信息总是可用,而旧的故障信息会被覆盖。

需要注意的是,具体的存储方式应根据系统设计和硬件平台来确定。在实际应用中,需要考虑存储容量、读写速度、存储寿命等方面的要求。同时,还需要确保所选的存储方式与系统中其他模块的通信协议和接口兼容。

DEM与其他模块的联系

DEM处于BSW的服务层
在这里插入图片描述
从图来看与dem交互的模块有SWC、BSW、ECUM、FIM、DCM、NVM。

SWC
应用层SWC会周期调用故障监控函数,并周期调用标准接口

Std_ReturnType Dem_SetEventStatus(Dem_EventIdType EventId,Dem_EventStatusType EventStatus)

把故障及状态报给DEM,DEM会根据预先配置的debounce方式调用相对应的函数。然后根据debounce的结果决定是否把当前故障加入到fault memory中和触发FIM。

BSW
BSW也会给DEM报故障,根据AUTOSAR规定,BSW通过调用标准接口

void Dem_ReportErrorStatus(Dem_EventIdType EventId,Dem_EventStatusType EventStatus)

给DEM报故障,故障内容如e2e校验错误。该类故障在DEM中的debounce方式是no debounce,不需要debounce,所以故障状态只有DEM_EVENT_STATUS_FAILED或者DEM_EVENT_STATUS_PASSED。

ECUM
ECUM主要负责在不同时序调用DEM的初始化工作.
DEM初始化应包括

对每个故障的debounce status做处理;
初始化fault memory相关数据;
初始化DEM中存储的BSW的故障数据。

Dem分两阶段进行初始化:Dem_PreInit和Dem_Init。
Dem_PreInit可在NvM初始化完成前(比如InitZero阶段)就进行一些BSW相关的DTC管理的初始化,之后BSW模块即可通过Dem_ReportErrorStatus()接口上报诊断事件(DTC所对应的operation cycle必须已经启动,参数DemOperationCycleAutostart确定其是否自启动)。
Dem_Init发生在NvM初始化完成之后(比如StartupTwo阶段),之后ASW应调用Dem_SetOperationCycleState()启动相应的operating cycle,启动后ASW即可通过RTE使用接口Dem_SetEventStatus()上报事件。
FIM

FIM全称function inhibition manager,主要负责给SWC提供一个控制机制,可以使能或者失能SWC的功能,如SWC中电压检测功能,此时由于其该功能被抑制,SWC此时使用Dem_SetEventStatus报给DEM的故障状态是no condition。

另外在SWC调用Dem_SetEventStatus时,如果故障状态发生变化,DEM会通过调用

void FiM_DemTriggerOnEventStatus(Dem_EventIdType EventId,Dem_UdsStatusByteType EventStatusByteOld,Dem_UdsStatusByteType EventStatusByteNew )

来抑制SWC本身的功能和与之相关的事件的功能。详
DCM
DCM和DEM之前有着密切关系,因为DCM中有ReadDTCInformation和ClearDiagnosticInformation这两个服务都是都是要从DEM中读取信息或者传递命令,还有PID01请求当前动力诊断数据等服务。比如根据DTC读冻结帧(也叫快照)(19 04 xx xx xx yy),在19服务的自服务的处理函数里面,首先就要调用

Dem_ReturnGetStatusOfDTCType Dem_DcmGetStatusOfDTC(uint32 DTC,Dem_DTCOriginType DTCOrigin,uint8* DTCStatus)

给DEM传递DTC和该DTC所属的memory类型,来获得DTCStatus;然后调用

Dem_ReturnGetSizeOfDataByDTCType Dem_DcmGetSizeOfFreezeFrameByDTC(uint32 DTC,Dem_DTCOriginType DTCOrigin,uint8 RecordNumber,uint16* SizeOfFreezeFrame)

获得冻结帧(快照)的数据大小,因为数据大小和数据内容是提前配置好的,也可标定。最后调用

Dem_ReturnGetFreezeFrameDataByDTCType Dem_DcmGetFreezeFrameDataByDTC(uint32 DTC,Dem_DTCOriginType DTCOrigin,uint8 RecordNumber,uint8* DestBuffer,uint16* BufSize)

获取冻结帧。但是DCM和DEM是两个不同的任务,所以以上几个函数一般是异步执行,DCM只负责把请求命令和写入目标给到DEM,在DEM任务中轮询DCM的任务请求,并实现数据的填充,后通知DCM任务完成。DCM再通过肯定相应回复数据。

NVM

NVM主要用于非易失性数据的存储和维护。DEM中存在大量数据需要存储在非易失性存储模块(如Dflash、EEPROM)中,但两者的交互关系基本都发生在上电初始化(startup)和下电(shutdown)过程中,也可以在运行过程中写入,write all除外。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/939437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java 大厂面试 —— 常见集合篇 List HashMap 红黑树

23Java面试专题 八股文面试全套真题(含大厂高频面试真题)多线程_软工菜鸡的博客-CSDN博客 常见集合篇-01-集合面试题-课程介绍 02-算法复杂度分析 2 List相关面试题 2.1 数组 2.1.1 数组概述 数组(Array)是一种用连续的内存空…

Win11 重启资源管理器的方法

方法一:按【Ctrl Alt Del】组合键后,调出锁定界面,然后点击【任务管理器】即可 方法二:按【Ctrl Shift ESC】组合键后,会直接调出任务管理器 1、在任务管理器窗口中,找到名称为【Windows 资源管理器】…

使用synchronized关键字同步类方法

要想解决“脏数据”的问题,最简单的方法就是使用synchronized关键字来使run方法同步,代码如下: public synchronized void run() { } 从上面的代码可以看出,只要在void和public之间加上synchronized关键字,就可以…

内网远程控制总结

前言 在内网渗透过程中,会碰到远程控制soft或者其他,这里针对远程控制软件做如下总结。 远程控制软件 向日葵篇 向日葵查看版本 向日葵(可以攻击) 针对向日葵的话其实如果有本地安装的话,是有可能存在漏洞的。这…

[CKA]考试注意事项及作者考试结果

在CKA考试的时候,注意目前可以使用中文名进行注册,最后证书上的名字也是中文名 考试前准备: 1、身份证 2、桌面除了电脑鼠标其他物品都收好 3、房间就自己一个人,不允许房间有其他人 4、网速要快,博主特意升级了自…

GBU814-ASEMI功率整流器件GBU814

编辑:ll GBU814-ASEMI功率整流器件GBU814 型号:GBU814 品牌:ASEMI 封装:GBU-4 恢复时间:>50ns 正向电流:8A 反向耐压:1400V 芯片个数:4 引脚数量:4 …

CGLIB代理,jsp,EL表达式,JSTL标准标签库

1、CGLIB代理 有一个类没有实现接口&#xff0c;想要对这个类实现增强&#xff0c;就需要使用CGLIB代理 导入CGLIB的包 <dependency><groupId>cglib</groupId><artifactId>cglib</artifactId><version>3.3.0</version> </depende…

集成易点易动管理系统连接更多应用

场景描述&#xff1a; 基于易点易动开放平台能力&#xff0c;无代码集成易点易动与多个应用互通互连&#xff0c;实现固定资产管理数字化、智能化。通过Aboter可搭建业务自动化流程&#xff0c;实现多个应用之间的数据连接。 开放能力&#xff1a; 消息推送&#xff1a; 新…

无涯教程-分类算法 - 多项式逻辑回归模型函数

Logistic逻辑回归的另一种有用形式是多项式Lo​​gistic回归&#xff0c;其中目标或因变量可以具有3种或更多可能的unordered类型&#xff0c;即没有定量意义的类型。 用Python实现 现在&#xff0c;无涯教程将在Python中实现上述多项式逻辑回归的概念。为此&#xff0c;使用…

前端js实现获取指定元素(top,lef,right,bottom)到视窗的距离 ;getBoundingClientRect()获取

getBoundingClientRect()获取元素位置&#xff0c;这个方法没有参数 该函数返回一个Object对象&#xff0c;该对象有6个属性&#xff1a;top,lef,right,bottom,width,height&#xff1b; <div id"box"></div>var objectdocument.getElementById(box); …

产教融合 | 中南大学暑期实训,用万应低代码践行敏捷开发之路

融合学究与实践&#xff0c;方能成为当代“数字英才”。 2023年8月11日&#xff0c;由潇湘大数据研究院、中南大学计算机学院及云畅科技联合组织的2020级数据科学与大数据技术专业暑期‘生产实训’项目圆满结束。本次实训全程线下进行&#xff0c;基于“深度创新培育计划”&…

宇凡微Y51T合封射频芯片,集成433M芯片和MCU

宇凡微推出的Y51T芯片的设计理念很有趣&#xff0c;将MCU和射频芯片集成在一颗芯片内&#xff0c;从而实现高度的集成度和功能优势。这样的设计在某些应用中确实能够带来诸多优点&#xff1a; Y51T将51H MCU和Y4455 433MHz射频芯片融合在一颗芯片内&#xff0c;实现了高度集成的…

GPU中统一内存最新机制解析

通过异构内存管理简化 GPU 应用程序开发 异构内存管理 (HMM) 是一项 CUDA 内存管理功能&#xff0c;它扩展了 CUDA 统一内存编程模型的简单性和生产力&#xff0c;以包括具有 PCIe 连接的 NVIDIA GPU 的系统上的系统分配内存。 系统分配内存是指最终由操作系统分配的内存&#…

face-api实现人脸识别。

face-api实现人脸识别 face-api的由来tensorflow.js 是什么部分代码模型介绍 face-api的由来 访问地址 JavaScript API for face detection and face recognition in the browser implemented on top of the tensorflow.js core API 官方说明 翻译&#xff1a;在tensorflow.js…

oppo手机怎么录屏?录制屏幕,就看这里!

“有人知道oppo手机怎么录屏吗&#xff0c;前几年买的oppo手机&#xff0c;用到现在感觉挺流畅的&#xff0c;也不是很卡顿&#xff0c;最近听说我这个型号的手机也有录屏功能&#xff0c;但是我不知道怎么打开&#xff0c;就想问问大伙&#xff0c;oppo手机怎么录屏呀。” 在…

MySql015——使用子查询

一、创建customers表 ######################## # Create customers table ######################## use study;CREATE TABLE customers (cust_id int NOT NULL AUTO_INCREMENT,cust_name char(50) NOT NULL ,cust_address char(50) NULL ,cust_city char…

LED地板屏幕的工作原理

LED地砖屏是一款数字化地面展示设备&#xff0c;它的实现主要是以数字技术为核心&#xff0c;通过微电脑全数字化处理以及先进的电路保护设备&#xff0c;对视频进行同步控制&#xff0c;并实现了高分辨率的显示效果&#xff0c;在展厅设计以及舞台演出中都有相关的应用。免费提…

【MySQL】组合查询

目录 一、组合查询 1.创建组合查询 2.union规则 3.包含或取消重复的行 4.对组合查询结果排序 一、组合查询 多数SQL查询都只包含从一个或多个表中返回数据的单条SELECT语句。MySQL也允许执行多个查询&#xff08;多条SELECT语句&#xff09;&#xff0c;并将结果作为单个查…

kafka和消息队列

https://downloads.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgz d kafka依赖与zookeeper kakka配置文件 broker.id1 #每个 broker 在集群中的唯一标识&#xff0c;正整数。每个节点不一样 listenersPLAINTEXT://192.168.74.70:9092 ##监听地址 num.network.threads3 #…

Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转换flv播放

场景 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放&#xff1a; 开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放_srs按需拉流_霸道流氓气质的博客-CSDN…