在 Autosar 中,诊断事件是指在车辆电子系统中发生的特定事件,可以用于诊断和故障排除。
DEM模块通过EventId和相关的EventName来表示每个诊断事件。诊断事件的状态代表了监控器的结果,DEM模块通过RTE或其他BSW模块从SW-C接收监控器的结果。DEM模块使用EventId来管理系统中每个诊断事件的状态,并对各个测试结果执行所需的操作,例如存储冻结帧/拓展帧。
所有监控器和BSW模块使用EventId作为符号化的EventName来管理诊断事件。
每个DEM模块的EventId和相关的EventName在ECU配置中必须是唯一的。DEM模块无法处理多个监控器共享一个EventId的情况。
DEM模块使用内部的监控器状态来存储报告事件的状态并向Dcm模块报告UDS状态。
事件优先级定义为根据重要性级别对事件进行排名。
它用于确定在存储的事件数超过最大内存条目数(事件内存已满)的情况下,可以从事件内存中删除哪些故障条目,也可以说将哪些低优先级的故障条目替换出来。
DEM模块为每一个event提供了一个occurrence counter。
如果配置参数DemOccurrenceCounterProcessing设置为DEM_PROCESS_OCCCTR_TF(发生计数只会由TestFailed位触发),如果上报事件对应的UDS状态位0(TestFailed)从0转换为1,则occurrence counter加1。如果相关事件已经存储在事件存储器中,并且UDS状态位3等于1,则Dem模块应将发生计数器增加一。
如果occurrence counter 已达到最大值255, Dem模块不应增加特定事件的发生计数器。
dem模块有两种不同类型的事件:
BSW相关事件(通过API报告-Dem_SetEventStatus)
SW-C相关事件(通过RTE操作-SetEventStatus报告)
事件类型可配置
Permanent Event Memory(PEM)是DEM的一个重要组成部分。PEM用于存储和管理持久性的诊断事件,这些事件在车辆的整个生命周期中都是可用的。PEM中存储的事件可以是故障码、警告码或其他类型的诊断事件。
“PEM(Permanent Event Memory)”赋值是隐式地从相关的DTC 类派生出来的。与排放相关的事件被自动分配到 PEM,因为作为“永久DTC”的事件存储是动态地从其当前状态派生出来的。在此上下文中,术语“永久”与排放相关事件 的属性相关,而不仅仅与通过NvM进行的持久存储相关,NvM是针对每个事件 内存类型进行的
配置参数定义了事件及其相关数据的专用存储位置。
“永久性事件存储器”的分配是从相关DTC类型中隐含得出的。排放相关事件自动分配到永久性事件记忆中,因为将事件存储为“永久性DTC”是从其当前状态中动态得出的。
对于Dcm-Dem接口,DTCOrigin参数用于区分不同的内存区域。其目的是允许对不同的 内存区域(主内存、用户定义内存、永久内存和镜像内存)进行特定操作。
Diagnostic monitor(诊断监控器)是一种模块或组件,用于监测车辆系统的状态和性能,并生成相应的诊断事件。它负责实时监测各种传感器、执行器和系统组件的运行状况,以便及时检测和报告任何故障或问题。它可以通过与车辆系统中的其他模块和组件进行通信,获取各种状态和参数信息。
该监测功能识别监测路径的特定故障类型(例如,对地短路、开路负载等)。监控路径表示被监控的物理系统或电路(例如传感器输入)。每个监测路径只与一个诊断事件相关联。
如果监视器自己启动,则只有在获得合格的 结果(通过或失败)后才调用report API。如果结果发生变化,报告是必要的。
通常情况下,监视器调用 Dem在计算上更有效率,应该首选。因此, Dem处理未改变结果的报告是特定于实现的。
如果监视器使用了dem内部的debounce机制,那么每当执行带有功能检查的代码时,就会调用report API。
Event dependencies(事件依赖关系)是指诊断事件之间的关联和依赖关系。在车辆系统中,不同的诊断事件之间可能存在一定的依赖关系,即一个事件的发生可能会触发或影响其他事件的发生。
Event dependencies可以帮助DEM在处理诊断事件时,更准确地确定事件的原因和影响。它可以帮助DEM识别和追踪事件之间的关联性,从而更好地理解车辆系统的整体状态和性能。
Event dependencies可以通过定义适当的规则和条件来实现。这些规则和条件可以基于车辆系统的特定要求和逻辑关系进行配置和定义。例如,如果某个传感器故障,可能会导致多个相关的诊断事件被触发。通过定义事件之间的依赖关系,DEM可以更好地处理和报告这些相关的诊断事件。
指定的DemComponent中的事件优先级以及DemComponent之间的依赖关系 用于过滤错误存储报告到故障内存。
Component availability(组件可用性)是指车辆系统中各个组件的可用性和状态。每个组件都有其特定的功能和任务,它们负责监测和控制车辆的不同系统和子系统。
它可以帮助DEM判断各个组件是否正常工作,并根据其可用性和状态来生成相应的诊断事件。如果某个组件不可用或处于异常状态,DEM可以生成相应的故障码或警告信息,并将其发送到适当的Event destination进行处理和报告。
组件可用性可以通过与各个组件进行通信和监测来实现。DEM可以定期检查各个组件的状态和可用性,并根据预定义的规则和条件判断其是否正常工作。这种监测和检查可以通过AUTOSAR中的服务接口或其他通信机制进行。通过实时监测和报告组件的可用性,DEM可以帮助车辆制造商和维修人员及时发现和解决问题,提高车辆的可靠性和性能。
Dem应支持DemComponent的可用性。不可用的组件被视为不包括在系统。
“诊断故障代码”定义了一个唯一标识符(显示给诊断测试人员) 映射到Dem模块的“诊断事件”。Dem向Dcm模块提供 “诊断故障代码”的状态。
DTC有两种类型:
Dem模块应支持的DTC格式:
DTCFormatType
- DEM_DTC_FORMAT_OBD 0
- DEM_DTC_FORMAT_UDS 1
- DEM_DTC_FORMAT_J1939 2
除了单个DTC值外,还可以配置DTC组,详细定义见ISO 14229-1[2] -附件D.1所定义。
每个DTC组都分配了自己的 DTC组值(该值必须与任何其他DTC和DTC 组值唯一)。
当请求对DTC组(如ClearDTC和Disable/ Enable DTC)进行操作时,DTCGroup由DTC值选择。
' all DTC ' DTC组(必选,固定值= 0xFFFFFF)
WWH-OBD的Emission相关dtc (0xFFFF33)
DTC severity是根据诊断事件对车辆功能和安全性的影响程度来确定的。它可以帮助车辆制造商和维修人员对诊断事件进行分类和优先级排序,以便更好地处理和解决问题。
根据ISO-14229-1[2],附件D.3“DTC严重程度和等级定义”,DTC严重程度用于提供有关特定事件重要性的信息。DemDTCSeverity仅对UDS dtc有效。
AutoSar DEM Severity:
- DEM_SEVERITY_CHECK_AT_NEXT_HALT
- DEM_SEVERITY_CHECK_IMMEDIATELY
- DEM_SEVERITY_MAINTENANCE_ONLY
- DEM_SEVERITY_NO_SEVERITY
Functional Unit(功能单元)是指车辆电子系统中的一个独立模块或组件,它具有特定的功能和任务。
Functional Unit可以是车辆中的任何电子控制单元(ECU),例如发动机控制单元、制动控制单元、底盘控制单元等。每个Functional Unit都有其特定的功能和任务,它们负责监测和控制车辆的不同系统和子系统。
每个Functional Unit都与一个或多个DTC(Diagnostic Trouble Code)相关联。当Functional Unit检测到故障或问题时,它会生成相应的诊断事件,并将其报告给DEM。DEM会根据诊断事件的严重程度(DTC severity)和优先级进行处理和管理。
Functional Unit可以通过AUTOSAR中的服务接口与DEM进行通信,以发送诊断事件和接收DEM的指令和请求。这种通信可以是基于AUTOSAR标准的CAN(Controller Area Network)总线或其他通信协议。
DTC significance指的是故障代码的重要性或严重程度。它用于确定故障代码在诊断系统中的处理和显示方式。不同的DTC significance级别表示了不同的故障严重程度,可以用于区分和优先处理故障。
根据AutoSar,DTC significance级别通常分为以下几种:
一般来讲DTC significance级别通常分为以下几种:
- 无意义(Not significant):表示该故障代码不会引起车辆性能下降或安全风险,可以被忽略。
- 一般(General):表示该故障代码可能会引起车辆性能下降或轻微的安全风险,需要进行诊断和修复。
- 严重(Serious):表示该故障代码可能会引起严重的车辆性能下降或安全风险,需要立即进行诊断和修复。
Suppress DTC output是一种配置选项(配置参数:DemSuppressionSupport),用于控制是否屏蔽(Suppress)特定的DTC输出。
当配置了Suppress DTC output时,诊断系统将不会将特定的DTC输出到诊断接口或诊断工具中。这种配置选项通常用于屏蔽一些不重要或不需要显示的DTC,以减少诊断信息的冗余和干扰。
通过配置Suppress DTC output,可以实现以下几个目的:
- 减少诊断信息的冗余:对于一些不重要的DTC,可以选择屏蔽输出,以减少诊断信息的冗余,提高诊断系统的效率。
- 降低诊断工具的负担:对于一些不需要显示的DTC,屏蔽输出可以减少诊断工具的负担,提高诊断工具的性能和响应速度。
- 提高诊断信息的可读性:屏蔽一些不需要显示的DTC可以使诊断信息更加清晰和易读,减少用户的困惑和误解。
被抑制的DTC的行为方式对测试人员是不可见的,但可以由诊断监视器连续处理。
Availability of events (visibility and computation)指的是事件的可见性和计算可用性。事件的可见性是指事件是否能够被正确地检测和识别,以及是否能够被相关的系统和组件观察到。事件的计算可用性是指事件是否能够被正确地处理和计算,以产生相应的结果或响应。
在诊断系统中,事件的可见性和计算可用性非常重要。如果事件的可见性和计算可用性存在问题,可能会导致系统无法准确地监测和诊断故障,或者无法及时采取适当的措施进行修复。
事件的可见性和计算可用性受到事件依赖关系的影响。事件依赖关系是指事件之间的相互关系和依赖,包括事件的产生、传递、处理和响应等过程。事件依赖关系可以影响事件的可见性和计算可用性,因为它们决定了事件的传递路径、处理顺序和结果反馈等。
为了确保事件的可见性和计算可用性,诊断系统需要正确地建立和管理事件之间的依赖关系。这包括定义和配置事件之间的依赖关系,确保事件的传递和处理按照预期进行,并及时处理和反馈事件的结果。通过正确地管理事件的依赖关系,诊断系统可以提高事件的可见性和计算可用性,从而提高系统的监测和诊断能力,确保车辆的安全性和可靠性.