【车载开发系列】Autosar DEM基本概念

news2024/11/26 2:31:28

【车载开发系列】Autosar DEM基本概念

Autosar DEM基本概念

  • 【车载开发系列】Autosar DEM基本概念
    • 一. 诊断事件管理(DEM)概念
    • 二. DEM的主要作用
      • 1、汽车检修提供数据
      • 2、汽车错误状态处理提供依据
    • 三. DEM模块及关联模块关系
      • 1. 功能禁止模块FIM
      • 2. SWC和BSW
      • 3. NvM非易失性存储
      • 4. 诊断通信管理DCM
      • 5. EcuM
    • 四. DEM各种子功能

一. 诊断事件管理(DEM)概念

诊断事件管理(Diagnostic Event Manager, DEM)模块作为AutoSar诊断模块的重要组成部分,主要负责处理和存储诊断事件(错误)和关联数据。
DEM模块相关的标准主要包括两部分:ISO 14229(UDS,汽车诊断遵循的主要标准)和ISO 15031(OBD,该标准制定较早主要针对排放相关的诊断)。

二. DEM的主要作用

DEM模块主要目的是为汽车制造商和零部件供应商定义通用的诊断故障存储功能(diagnostic fault memory)。

1、汽车检修提供数据

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

2、汽车错误状态处理提供依据

故障信息是ECU的运行重要依据,出现影响功能的故障时,应对功能禁止或功能降级以保护ECU或者负载。下面举两个例子:
1)功能禁止:当电机出现短地这种情况时,处于保护负载及ECU的目的应该关断输出
2)功能降级:如车窗反复操作时,车窗电机出现温度升高的情况,处于保护会将温度分为几个保护level,在这几个level中分别禁止相应的功能(如自动上升、自动下降等)
3)汽车重要故障显示:某些重要组件出现出现问题,需要警示用户(仪表盘上显示或者中控屏显示等)避免出现安全事故,主要看OEM如何定义这些故障等级。

三. DEM模块及关联模块关系

DEM模块向DCM模块提供故障信息(DTC),DEM模块给应用层和BSW的其他模块提供了接口。
诊断事件管理模块(DEM)是Autosar架构的重要组成部分,各功能模块之间存在依赖关系,对于各部分完整关系可以查阅AUTOSAR_SWS_DiagnosticEventManager文档,及相关联部分的文档(ClassicAutosar标准文档下载地址)。
在这里插入图片描述
诊断事件管理器(Dem)在软件组件(SWC)和基本软件(BSW)模块中处理和存储监视器检测到的事件。存储的事件信息可通过与软件组件(SWC)和基本软件(BSW)模块的接口访问。

1. 功能禁止模块FIM

功能禁止模块(FIM, Function Inhibition Manager)
在监控状态发生变化时,Dem通知和更新功能抑制管理器(FiM),根据指定的依赖关系停止或释放功能实体。简而言之,就是根据检测到的DTCs来确定是否禁用或者打开某些功能模块。

2. SWC和BSW

在软件组件(SWC, Software components)和基础软件模块(BSW, Basic Software)检测到监控对象状态变化时,通知DEM模块更新数据,以及将错误状态数据通知给监控器以警示状态呈现给用户(状态位warning Indicator)。
简而言之,SWC和BSW可以充当错误检测的功能,还有就是Monitror模块可以通过渠道把一些重要错误(OEM或者标准规定)呈现给用户。BSW也会给DEM报故障。标准接口给DEM报故障,故障内容如NVM写入失败或者排队任务数溢出或者校验错误。该类故障在DEM中的debounce方式是no debounce,不需要debounce,所以故障状态只有DEM_EVENT_STATUS_FAILED或者DEM_EVENT_STATUS_PASSED。

3. NvM非易失性存储

非易失性存储管理(NVM, NVRAM Manager)
NVRAM块分配给Dem,由Dem使用以实现永久存储UDS状态信息和相关数据(例如,开机后复位)。
简而言之,NVM给存储DTCs提供永久空间,避免在断电或者复位的过程中造成诊断数据丢失。
DEM中又有大量数据需要存储在非易失性存储模块(如Dflash、EEPROM)中,但两者的交互关系都发生在上电初始化(startup)和下电(shutdown)过程中,当然,如果没有NvM_WriteAll的过程,也可以在运行过程中写入。
DEM需要存储在非易失性存储模块的数据包括19服务中会用的相关数据(如第一次出现的故障,第一个confirm的故障、最新的故障等等)、primary fault memory中的数据、mirror memory中的故障、OBD相关的数据、冻结帧、预存的数据、Debounce的状态(甚至是debounce counter)等,这些数据会在NVM_Readall的时候读取到DEM的RAM中,下电的时候会在NVM的writeall时从DEM的target RAM写入非易失性存储区(non-volatile memory)。

4. 诊断通信管理DCM

诊断通信管理(DCM, Diagnostic Communication Manager)。
DCM模块处理来自外部测试人员或机载测试系统的诊断请求,转发来自外部诊断扫描工具的请求,并进一步负责响应消息的组装(DTC,状态信息等),之后将传输到外部诊断扫描工具。
简而言之,两个主要功能:
1)读取DTC(0x19服务)
2)清除DTC(0x14服务)
DCM中有ReadDTCInformation和ClearDiagnosticInformation这两个服务都是都是要从DEM中读取信息或者传递命令
在19服务的自服务的处理函数里面,首先给DEM传递DTC和该DTC所属的memory类型,来获得DTCStatus;然后获得冻结帧(快照)的数据大小,因为数据大小和数据内容是提前配置好的,也可标定。最后调用
获取冻结帧。但是DCM和DEM是两个不同的任务,所以一般是异步执行,DCM只负责把请求命令和写入目标给到DEM,在DEM任务中轮询DCM的任务请求,并实现数据的填充,后通知DCM任务完成。DCM再通过肯定相应回复数据。

5. EcuM

它的全称是ECU State Management。用来管理ECU的状态。
ECUM主要负责在不同时序调用DEM的初始化工作,DEM初始化应包括对每个故障的debounce status做处理;初始化fault memory相关数据;初始化DEM中存储的BSW的故障数据。

四. DEM各种子功能

DEM内部又分为很多子模块,每个子模块分工不同,任务明确。INIT负责对DEM内部变量根据配置内容进行初始化。debounce负责对事件发生故障的有效性和事件表现正常的有效性的做滤波判断。
primary fault memory负责存储当前发生的故障的DTC及相关数据,如冻结帧、扩展数据等。Operational Cycle Management负责管理各种操作循环的判断,如对于OBD-related ECU中OBD drving cycle开启时才能故障状态才能进入confirm的状态,这也和项目配置有关
在这里插入图片描述

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

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

相关文章

分布式存储Ceph介绍及搭建

一:存储的类型 1.单机存储设备 ●DAS(直接附加存储,是直接接到计算机的主板总线上去的存储) IDE、SATA、SCSI、SAS、USB 接口的磁盘 所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储 ●NAS(…

一、docker-compose方式安装运行Jenkins

docker-compose方式安装运行Jenkins 服务器系统:centos 7.6 以docker-compose 编排容器方式安装,当然需提前安装docker-compose环境(见百度->docker-compose环境安装) docker-compose.yml version: 3.1 services:jenkins:i…

率先领跑!人大金仓布局“数字医疗”护航健康中国

近日,中国医院信息网络大会(CHIMA 2023)在福州圆满结束。作为数据库领域唯一参展企业,人大金仓携一系列“数字医疗”国产数据库解决方案亮相,在激发数据价值,促进数据资源整合利用,确保数据安全使用等方面的突出表现和…

死神来了 | 高铁出轨:“德国的泰坦尼克号事件”

点击文末“阅读原文”即可收听本期节目 剪辑、音频 / 伊姐 运营 / SandLiu 卷圈 封面 / 姝琦Midjourney 监制 / 姝琦 产品统筹 / bobo 场地支持 / 声湃轩天津录音间 德国高铁出轨事故是1998年6月3日发生于德国下萨克森州策勒县艾雪德镇附近的严重铁路事故,造成…

华为OD机试真题B卷 Java 实现【合法IP】,附详细解题思路

一、题目描述 IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我…

在中文LLaMA模型上进行精调

最近在开源项目ymcui/Chinese-LLaMA-Alpaca的基础上完成了自己的中文模型精调工作,形成了两个工具共享给大家。ymcui/Chinese-LLaMA-Alpaca 构建指令形式的精调文件 如果用于精调,首先要准备精调数据,目标用途如果是问答,需要按…

【下篇】我们邀请了4位专家来探讨消费市场的新增量:W型机会、单客经济、日本市场、DTC......

在4月底的时候,我们举办了一场线上直播活动,有幸邀请到了4位消费零售行业的专家,我本人与他们一起探讨如何寻找市场的新增量,思考品牌如何找到新机会。本篇内容就是将专家们的观点进行了梳理和总结。 接上篇内容: 本篇…

【六·一】就做个纯粹的小小游戏吧

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成…

Java学习(maven)——maven新建项目 常用IO工具 Durid数据库工具 案例

引出 如何用maven新建项目,用maven建项目的优势,常用的io工具和durid工具 用Maven建项目 0.Maven配置方式 参考博客 : 【配置】Maven的配置 & Tomcat的配置 & 在IDEA中新建web项目 中的maven配置 1.io流的工具IOUtils/FileUtils…

ROS:一些基本命令行

目录 一、打开小海龟1.1终端,启动ROS Master:1.2终端2,启动小海龟仿真器:1.3终端3,启动海龟控制节点: 二、查看系统中的计算图三、节点命令3.1查看节点下的命令rosnode3.2显示节点列表rosnode list3.3查看节…

【致敬未来的攻城狮计划】打卡1:rasc+keil环境搭建

前言 这回参加的是csdn李肯老师的攻城狮计划,简单说就是我白嫖板子,输出学习笔记。 板子是瑞萨的CPK_RA2E1,还有触摸元件,看起来很有意思hh。 环境搭建 一开始决定采取vscode搭建的方式。后期进行到最后一步——cmake build的时…

多链路传输技术在火山引擎 RTC 的探索和实践

动手点关注 干货不迷路 传统的数据传输方式大多是利用一个链路、选择设备的默认网卡进行传输,使用这种方式实现实时音视频通话时,如果默认网络出现问题(如断网、弱网等),用户的通信就会发生中断或者卡顿,影…

chatgpt赋能python:Python倒序函数:让你的列表逆转!

Python倒序函数:让你的列表逆转! Python作为一种高级编程语言,代码简洁易学,因此被广泛使用。对于开发者而言,逆转列表(list)是很常见的需求。Python提供了一个内置函数reverse()来解决这个问题…

前端技术搭建扫雷小游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了贪吃蛇游戏,今天还是继续按照我们原定的节奏来带领大家完成一个游戏,功能也比较简单简单,也是想…

钉钉斜杠“/”开启邀请测试;用ChatGPT写一个数据采集程序

🦉 AI新闻 🚀 钉钉斜杠“/”开启邀请测试,AI全面智能化助力企业生产 摘要:钉钉斜杠“/”邀请测试开启,应用于文档、群聊、视频会议、应用开发等场景,为企业用户提供多项AI智能能力,如创作、汇…

【AUTOSAR】Com通讯栈配置说明(五)---- ComM模块

ComM模块 ComMConfigSet ComMChannels ComMBusType:定义总线类型 ComMChannelId:通道号 ComMFullCommRequestNotificationEnabled:未使用 ComMComMGlobalNvmBlockDescriptor:未使用 ComMMainFunctionPeriod:ComM的…

【云原生•监控】mtail轻量日志监控系统

【云原生•监控】mtail轻量日志监控系统 前言 「笔者已经在公有云上搭建了一套临时环境,可以先登录体验下:」 http://124.222.45.207:17000/login 账号:root/root.2020 简介 「可观测性平台三大支柱:日志监控、调用链监控和度量指…

2023年05月小结

5月一晃即将过去,先看看5月份都写了哪些文章: 往期推荐 国内手机号如何注册Google账号 Python中的布尔类型以及布尔值介绍 Python中深拷贝与浅拷贝介绍 Python中的集合介绍 Python中的字典学习笔记 Python学习历程-元组的基本操作回顾 记录我的Python学习…

初学prometheus监控(一)

初学prometheus监控(一) 1、promethues 介绍 1.1 监控的分类 监控重要性由高到低 业务监控:公司领导比较关心的指标,如电商平台的订单数量,用户的日活等系统监控:主要是跟操作系统相关的基本监控项,比如CPU,内存&#…

ChatGPT能解决信息抽取吗?一份关于性能、评估标准、鲁棒性和错误的分析

深度学习自然语言处理 原创作者:qazw 信息抽取(IE)旨在从非结构化文本中抽取出结构化信息,该结果可以直接影响很多下游子任务,比如问答和知识图谱构建。因此,探索ChatGPT的信息抽取能力在一定程度上能反映出ChatGPT生成回复时对任…