0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AutoSAR Dem配置项基础知识梳理

汽车ECU开发 来源:汽车ECU开发 2023-07-24 17:26 次阅读

Dem负责DTC的处理,包括冻结帧、扩展数据、运行循环、debounce策略等。

从最上层来看,Dem分别是DemConfigSet、DemGeneral两大部分。其中DemConfigSet是围绕Event的配置,DemGeneral负责DTC和Event的通用部分,包括冻结帧、扩展帧、使能条件、运行循环等。

9b3abc50-2a03-11ee-a368-dac502259ad0.png

DemGeneral

DemGeneral分小部分,通用配置、冻结帧配置、扩展数据配置。

通用配置:

DemAvailabilitySupport:定义是否支持通过 Dem_SetEventAvailable接口设置Event的有效性 ,用于在运行时切换事件的可用性。

DemBswErrorBufferSize:配置BSW Event的数量,在Event配置里,需要配置event是BSW_KIND还是SWC_KIND;

DemClearDTCBehavior:定义Dcm回复肯定响应的时机。

VOLATILE:Dem清除RAM中的DTC数据之后,Dcm回复肯定响应;

NONVOLATILE_TRIGGER:Dem清除RAM中数据并且启动NVM清除数据,Dcm回复肯定响应;

NONVOLATILE_FINISH:Dem清除RAM中数据,同时启动并完成NVM清除数据,Dcm回复肯定响应。

DemClearDTCLimitation:DTC清除配置;

ALL_SUPPORTED_DTCS:支持所有的DTC值;

ONLY_CLEAR_ALL_DTCS: 仅支持清除所有DTC;

ONLY_CLEAR_SINGLE_AND_ALL_DTCS:支持单个和所有DTC清除;

DemDataElementDefaultEndianness:定义数据元素的字节序;

DemDebounceCounterBasedSupport、 DemDebounceTimeBasedSupport :定义是否支持计数或计时debounce。这个配置限制了Event中debounce处理。

DemDtcStatusAvailabilityMask:设置0x19服务支持的状态位;

DemEnvironmentDataCapture:设置冻结帧和扩展数据的获取是同步还是异步,也就是在当前周期,还是下个周期;

•DemEventCombinationSupport:是否支持多个Event映射到一个DTC;

•DemEventDisplacementStrategy:配置DTC的替代策略,这AutoSAR提供了几种,也可以自定义。

•DemEventMemoryEntryStorageTrigger:定义冻结帧和扩展数据的触发存储的条件,一般是选test_fail,意味着test_fail从0—>1触发。

•DemGeneralInterfaceSupport:环境数据和eventstatus改变是否,提供callback接口,一般选择false;

•DemImmediateNvStorageLimit:定义NVM立即写的限制数量,DemGeneral/DemImmediateNvStorageSupport和DemConfigSet/DemDTCClass/DemImmediateNvStorage需要开启;

•DemMaxNumberEventEntryEventBuffer:定义环境数据缓存的大小;

•DemMaxNumberPrestoredFF:定义预存储快照的最大数量;一般存储的冻结帧里有快速变化的数据,需要配置;

•DemResetConfirmedBitOnOverflow:定义当事件存储被取代时,confirmed位是否复位,一般设置为true;

•DemStatusBitHandlingTestFailedSinceLastClear:定义老化和内存替代后是否设置“TestFailedSinceLastClear”状态位。

•DemStatusBitStorageTestFailed:定义testfail位是否存储;

•DemSuppressionSupport:定义是否支持DTC或者Event抑制;

•DemTypeOfDTCSupported:定义DTC的格式;

•DemTypeOfFreezeFrameRecordNumeration:定义如何分配快照号

•DemNvRamBlockIds:设置Event Memory数量,从NvM引用;

•DemOperationCycle:运行循环设置,这里虽然可以配置不同的运行循环,但是循环的控制还是需要在代码里去实现;

•DemStorageCondition:设置环境数据是否可以存储;用于Event引用;

•DemDTCofgroup:可以将DTC分成不同的组,后面会详细讲。

冻结帧配置:

1.DemDataElementClass:用于配置所需的冻结帧数据以及扩展数据,这些数据可以来自模块定义好的,也可以通过SR接口获取,

2.DemDidClass:定义冻结帧的数据的DID;

3.DemFreezeFrameClass:选择需要参考的DemDidClass;

4.DemFreezeFrameRecRecordClass:定义冻结帧的触发条件,以及是否更新;

5.DemFreezeFrameRecNumClass:对需要record的数据进行打包成一个冻结帧结构;

对于快照数据:可以选择一个DID映射一个数据,这样的好处是数据和DID明确的,解析也方便,当时劣势是占的空间大,每个DID需要占2个byte;另外一种方案是用一个DID定义一大块内存,上层软件去做数据打包,这样就节省空间,劣势就是需要自己打包,以及上位机按照下位机的格式进行数据解析。

扩展数据:

1.DemExtendedDataRecorderClass:选择DemDataElementClass中的数据,并设置更新策略以及数据ID;

2.DemExtendedDataClass:打包扩展数据,用于Event引用。

DemConfigSet

DemConfigSet这个菜单主要是围绕Event来展开配置的。首先来梳理一下Event和DTC的一些基础信息

Event是指系统诊断事件,Dem用EventId来区分不同的诊断事件,通常使用来说Event和DTC是一一对应的,但是如果是使用Event combination,则可以多个Event对一个DTC。

Event的基础信息包括Event Priority、Event occurrence、Event Kind。

1.Event Priority是指事件的优先级,其中1表示优先级最高,数据越大优先级越低;

2.Event occurrence主要是根据DemGeneral中配置的DemOccurrenceCounterProcessing来处理,一种是testfailbit 0—>1,一种是在confirmbit为1的情况下,testfail bit0—>1,两者统计的大小会相差1.

3.Event kind主要是将Event分为BSW和SWC两种,在DemGeneral中也配置了BSWerror的buffer大小。其两者的区别是,BSW kind是通过配置来关联到Dem模块,比如在Busoff故障,可以直接在CANSM中直接关联Dem。

4.BSW和SWC的区别在与,在Dem_PreInit后,就可以处理BSW kind故障,而SWC kind需要在Dem_Init后才能处理。

9b5d713c-2a03-11ee-a368-dac502259ad0.png

Eventdependencies

Event之间的依赖目的是过滤部分级联故障以及节省存储。其主要通过DemComponent来实现的,比如传感本身发生故障,这时控制器读取的数据也应该无效。

一个DemComponent是若干event的集合,在DemComponent内部,故障事件有优先级,当一个DemComponent内部最高优先级的故障事件状态为Failed导致其他故障事件状态也为Failed,或者父节点DemComponent的状态为Failed导致子节点DemComponent内的故障事件状态Failed,这种故障叫做连续错误(CONSECUTIVE FAULT),其他被认为是偶发错误(CAUSAL FAULT)。

另外如果DemComponent内部故障事件优先级被忽略,那么仅有当父节DemComponent的状态为Failed导致子节点DemComponent内的故障事件状态变成Failed被称作是连续错误(CONSECUTIVE FAULT)。连续故障则不会记录环境数据。

9b7a0662-2a03-11ee-a368-dac502259ad0.png

1.DTC format是指DTC的格式,分别为15031和14229两种,15031的格式为U150293,14229为D50293。

2.DTC severity是指用于表示故障的严重程度,主要从售后的角度来看,分为,立即检查、下次检查、立即维修

3.DTCsignificance 是用于区分是ECU或系统的fault还是外部fault。

4.SuppressDTC output是指DemGeneral中DemSuppressionSupport 配置参数,如果参数配置为true,则可以通过Dem_SetDTCSuppression 接口抑制某些DTC,抑制后对外是不可见的。

5.DTCgroup只需要一个参数就可以确定,就是DTC的界限(下界),上图中两个DTC组它们的各自参数就是该组DTC的下界,一个DTC组中的包含的DTC是该组配置的DTC界限与本组紧接的下一组的界限之间的DTC,但是不包括这两个界限。这就可以用于0x14或0x85服务进行单独操作。当前内部预制了两个组如下。

9b9a767c-2a03-11ee-a368-dac502259ad0.png

DemConfigSet-Debounce策略

基于计数器的Debounce策略

在这种策略下,Dem模块会提供一个计数器(fault detection counter)用来记录判断的结果,当Diagnostic Monitor上报至dem的状态为prefailed,计数器会按步长增加,当上报状态为prepassed,计数器按步长减少。

9bb965aa-2a03-11ee-a368-dac502259ad0.png

1、5表示JumpDown功能,

3、4表示JumpUp功能,

2表示当前计数器小于DemDebounceCounterJumpDownValue ,所以JumpDown功能没有激活,

6表示DemDebounceCounterJumpDownValue ,

7表示DemDebounceCounterJumpUpValue,

8表示DemDebounceCounterFailedThreshold ,

9表示DemDebounceCounterPassedThreshold ,

10、12表示故障确认,由于计数器的值达到了fail的限值,

11故障恢复,由于计数器的值达到pass的限值,

13表示Dem接收的状态为failed,所以故障直接置位;

14表示Dem接到的状态为passed,所以故障恢复;

15表示DemDebounceCounterIncrementStepSize,

16表示DemDebounceCounterDecrementStepSize,

基于次数的debounce涉及的配置项含义如下:

1、FDC(fault detection counter):错误计数器,其范围为-128~127;

2、DemDebounceCounterFailedThreshold:故障从prefailed状态跳转至failed的限值;

3、DemDebounceCounterPassedThreshold:故障从prepassed状态跳转至passed状态的限值。

4、DemDebounceCounterIncrementStepSize:当Diagnostic Monitor上报Prefailed,错误计数器的增加量;

5、DemDebounceCounterDecrementStepSize:当Diagnostic Monitor上报Prepassed,错误计数器减少量;

6、DemDebounceCounterJumpDown:是否使能JumpDown功能,JumpDown功能是指当上一次Diagnostic Monitor上报的状态是prefailed,而这次上报的是prepassed,且当前计数器的值大于DemDebounceCounterJumpDownValue,错误计数器的值会重置为DemDebounceCounterJumpDownValue。如果JumpDown功能禁止,计数器按照步长减少。

7、DemDebounceCounterJumpDownValue:当JumpDown功能使能,该变量定义了计数器的重置值。

8、DemDebounceCounterJumpUp:是否使能JumpUp功能,JumpUp功能是指当上一次Diagnostic Monitor上报的状态是prepassed,而这次上报的是prefailed,且当前计数器的值小于DemDebounceCounterJumpUpValue,错误计数器的值会重置为DemDebounceCounterJumpUpValue。如果JumpUp功能禁止,计数器按照步长增加。

9:DemDebounceCounterJumpUpValue:当JumpUp功能使能,该变量定义了计数器的重置值。

基于时间的Debounce策略

计数器的初始值为0,其范围为-128~127,当Dem接收到Diagnostic Monitor发送的状态值开始计数,计数器的增长方向有接收到的状态决定,当计数器的值在一定时间达到阈值,完成此次判断,如果在未达到阈值之前,Dem收到的状态发生变化,计数器会重新开始计数,并且计数方向也发生转变。

9be474ca-2a03-11ee-a368-dac502259ad0.png

t failed:表示故障failed需要的时间,该值等于DebounceTimeBasedTaskTime乘以DemDebounceTimeFailedThreshold;

t passed:表示故障passed需要的时间,该值等于DebounceTimeBasedTaskTime乘以DemDebounceTimePassedThreshold;

1、表示Diagnostic Monitor传至Dem的状态为prefailed;并经过t failed时间故障状态编程failed;

2、表示Diagnostic Monitor传至Dem的状态为prepassed;此时计数器重新开始计数;

3、由于2时刻开始计数未达到阈值时,Dem接收的状态发生变化,此时计数器开始重新计数,并计数方向发生变化,经过t failed时间后,故障状态编程failed。

4、Dem接收到的状态为failed,所以故障直接置位了;

5、Dem接收到的状态为passed,所以故障直接恢复了;

6、表示故障已发生;

7、表示故障未发生;

对于基于时间Debounce的策略主要配置以下几个参数:

1、DebounceTimeBasedTaskTime:该变量定义基本的检测周期

2、DemDebounceTimeFailedThreshold:定义故障状态从prefailed跳转至failed需要多少个DebounceTimeBasedTaskTime周期;

3、DemDebounceTimeFailedThreshold:定义故障状态从prepassed跳转至passed需要多少个DebounceTimeBasedTaskTime周期;





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113706
  • 计数器
    +关注

    关注

    32

    文章

    2123

    浏览量

    92985
  • AUTOSAR
    +关注

    关注

    9

    文章

    329

    浏览量

    21137
  • 触发器
    +关注

    关注

    14

    文章

    1681

    浏览量

    60404
  • NVM
    NVM
    +关注

    关注

    1

    文章

    37

    浏览量

    19053

原文标题:AutoSAR Dem配置项梳理

文章出处:【微信号:eng2mot,微信公众号:汽车ECU开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AUTOSAR存储模块的基础知识

    AUTOSAR存储模块的解释文章很多,本文整理存储模块基础知识
    发表于 10-08 09:30 5061次阅读

    第25章 DHCP动态主机配置协议基础知识

    。(本章的知识点主要整理自网络) 25.1 初学者重要提示 25.2 DHCP基础知识参考资料 25.3 DHCP基础知识点25.4 DHCP函数 25.5总结
    发表于 11-20 14:55

    关于AUTOSAR架构的知识点看完你就懂了

    关于AUTOSAR架构的知识点看完你就懂了
    发表于 10-18 07:41

    C语言基础知识的树状结构是如何组成的

    该图是关于C语言基础知识的树状结构图,也许里面有些地方看起来不够主流,但是可能更合理。以后将会对该图的所有细节知识点以通俗易懂的方式逐个梳理,敬请关注!...
    发表于 11-08 07:39

    STM32的中断基础知识配置过程,绝对实用

    STM32的中断基础知识配置过程,绝对实用
    发表于 11-17 07:10

    嵌入式系统概述知识梳理

    《嵌入式系统》 |(一)嵌入式系统概述 知识梳理《嵌入式系统》 |(二)ARM Cortex M3 体系结构 知识梳理嵌入式系统》 |(三) STM32最小系统
    发表于 12-22 06:53

    通信基础知识教程

    通信基础知识 1、电信基础知识2、通信电源技术3、配线设备结构、原理与防护4、防雷基础知识5、EMC基础知识6、防腐蚀原理与技术7、产品安
    发表于 03-04 16:48 33次下载

    路由器基础知识

    路由器基础知识 一、路由器配置途径 可以通过以下几个途径来配置路由器:
    发表于 08-01 11:37 834次阅读

    电源管理基础知识电源管理基础知识电源管理基础知识

    电源管理基础知识电源管理基础知识电源管理基础知识
    发表于 09-15 14:36 75次下载
    电源管理<b class='flag-5'>基础知识</b>电源管理<b class='flag-5'>基础知识</b>电源管理<b class='flag-5'>基础知识</b>

    LAN9352评估板基础知识配置

    本文主要介绍了LAN9352评估板基础知识配置
    发表于 06-05 17:29 9次下载

    适合C语言小白看的基础知识梳理总结

    C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!
    的头像 发表于 01-04 11:07 4512次阅读

    OpenVINO开发配置应必备哪些基础知识

    通过第一篇文章我们已经了解什么是OpenVINO,它的诸多功能与全应用场景支持人工智能落地的能力。本篇我们将重点介绍OpenVINO开发流程与开发必备的基础知识与相关API函数对象。 环境配置
    的头像 发表于 05-18 09:10 1590次阅读
    OpenVINO开发<b class='flag-5'>配置</b>应必备哪些<b class='flag-5'>基础知识</b>?

    嵌入式C语言基础知识梳理

    该图是关于C语言基础知识的树状结构图,也许里面有些地方看起来不够主流,但是可能更合理。以后将会对该图的所有细节知识点以通俗易懂的方式逐个梳理,敬请关注!...
    发表于 11-03 14:06 12次下载
    嵌入式C语言<b class='flag-5'>基础知识</b><b class='flag-5'>梳理</b>

    关于AUTOSAR-DEM模块的简要介绍和几点思考

    DEM全称“Diagnostic Event Management”,该模块作为AUTOSAR架构中的BSW模块之一,对于ECU软件开发也是必需的软件模块
    的头像 发表于 04-15 17:12 2425次阅读

    DEM功能详解

    DemAUTOSAR配置项最多,实现功能最为复杂的模块之一,主要负责记录故障诊断以及其关联数据,是实现诊断功能至关重要的模块,本文将以最简单的方式将Dem的功能聊具体,聊透彻。为了
    的头像 发表于 05-23 09:12 4089次阅读
    <b class='flag-5'>DEM</b>功能详解