AutoSar之诊断事件管理②

​介绍下Dem的定义过程。

诊断事件管理(Dem)会处理和存储SW-Cs和BSW模块中检测到的事件,并且存储的事件信息通过其他BSW模块或SW-Cs的接口获得。下图展示了Dem的配置:
AutoSar之诊断事件管理②_第1张图片

Dem的定义

诊断事件可由Dem模块处理的原子单元来定义。诊断事件的状态代表监控的结果。Dem可以直接接收来自SW-C的监控结果,也可以通过RTE接收来自其他BSW模块的监控结果。Dem模块使用EventId管理系统诊断事件的状态,并对单个测试结果执行所需的操作,例如存储冻结帧。Dem模块应该通过EventId或相关事件名来表示每个诊断事件。所有监控模块和BSW模块都使用EventId作为符号事件名。Dem通过配置工具将符号名替换成数字。毋庸置疑,每一个EventId都是独一无二的,Dem无法处理多个监控模块共享一个ID的情况。

Dem模块使用内部监控状态来存储报告事件的状态。比如,向Dcm报告UDS状态。

Dem模块支持下图所示的几个特定事件的配置参数。
AutoSar之诊断事件管理②_第2张图片
AutoSar之诊断事件管理②_第3张图片

事件优先级

事件优先级即事件的重要性级别排序。它用于确定当存储的事件数量超过最大内存条目数量时,可以从事件内存中删除哪些错误条目(事件内存已满)。每个支持的事件,都会对应一个表征其优先级的参数DemDTCPriority,并且优先级越高,其值越小。

AutoSar之诊断事件管理②_第4张图片

事件类型

对于BSW和SW-C的事件需要分别处理,所以Dem包含两种事件类型:

BSW相关事件,报故障通过C-API接口:Dem_SetEventStatus;

SW-C相关事件,报故障通过RTE操作:SetEventStatus

这样处理是非常有必要的,因为BSW事件可能在完整的Dem初始化之前被报告,并且需要被缓冲。

AutoSar之诊断事件管理②_第5张图片

事件存储

参数DemMemoryDestinationRef定义了事件及其相关数据的专用存储位置。“永久事件内存”是由相关的DTC类型派生出来的隐性类型。与排放相关的事件自动分配给永久事件内存,因为事件的存储作为“永久DTC”是根据其当前状态动态派生的。永久故障码与排放对应事件的属性有关,而不是与NvM进行的持久存储有关,NvM对每种事件内存类型都进行持久存储。对于Dcm-Dem接口,使用参数DTCOrigin来区分不同的内存区域。其目的是允许对不同的内存区域(主内存、用户定义内存、永久内存和镜像内存)进行特定的操作。

AutoSar之诊断事件管理②_第6张图片

诊断监控

诊断监控是确定计算机适当功能的例行实体。此监控功能为监视路径标识特定的故障类型(例如对地短路、开路负载等)。监视路径表示被监视的物理系统或电路(例如,传感器输入)。每个监视路径都与一个诊断事件相关联。如果监控器自行退出,那么只有在合格的结果(通过或失败)可用之后才调用报故障的API函数。然而,通常情况下,监视器总是调用Dem在计算上更有效,应该首选这种方法。因此,Dem处理未变化结果的报告是特定实现的。分配在DemComponent中的事件的优先级,以及DemComponent之间的依赖关系,用于过滤错误报告进入故障内存。

AutoSar之诊断事件管理②_第7张图片

文章首发于微信公众号“汽车控制与人工智能”,欢迎关注。

你可能感兴趣的:(AutoSar)