全面讲解智能汽车系统诊断管理模块设计( 二 )


2)DEM提供的API:DEM也提供了一些API,用于向DCM提供诊断信息,例如故障码、诊断状态和诊断数据等 。
3)DCM-DEM通信协议:DCM和DEM之间的通信需要使用一些标准化的通信协议,例如UDS(Unified Diagnostic Services)协议和ISO 14229标准 。
4)诊断存储库:DCM和DEM需要共享一些诊断数据,例如故障码和诊断状态等,这些数据通常存储在诊断存储库中,DCM和DEM可以通过这个存储库来交换数据 。
举个例子,我们在对智能汽车生产线过电检时,通常需要关闭智能驾驶的环境目标检测及后台自启动功能(如AEB、MEB这类后台自动运行的功能),因为这些功能在产线上自动运行往往会导致误触发,误报警等 。

全面讲解智能汽车系统诊断管理模块设计

文章插图
那么如何通过诊断管理链路关闭这类功能呢?
这就需要用到AutoSar中非常重要的两个软件组件模块诊断事件管理DEM和实时调度系统RTE 。他们之间的通信链路可以通过AUTOSAR的标准化软件接口RTE APIs来实现 。首先,DEM模块可以向RTE模块发送事件(例如功能抑制信息或故障码、诊断状态信息) 。RTE模块接收到这些事件后,通过其自身提供的一些API,RTE事件总线通过管理和分发来自DEM和其他模块的事件,并将它们路由到相应的处理程序中 。此外,RTE操作系统作为一种特殊的软件层,它负责管理和控制运行时环境,并提供一些基础设施服务,例如任务调度、内存管理和错误处理等 。从而有效的访问汽车电子系统的各种资源,例如读取传感器数据、控制执行器等 。也可以触发相应的操作,例如关闭AEB或MEB功能,亦或者打开某个告警灯等 。
为了更加详细的说明整个DEM的诊断链路,我们将以实际的DEM相关函数调用为例进行有效的说明 。
首先,DEM的API主要包括DEM监视器DemComponent(又名MonitorComponent),主要用于有关联到的故障事件,比如传感器本身发生的故障,这时控制器读取的数据应该被视为无效 。一个DemComponent是若干个事件的集合,在DemComponent内部,故障事件有优先级,当最高优先级的故障事件状态为FAIled从而导致其他故障事件也为Failed时,亦或者父节点DemComponent的状态为Failed从而导致子节点DemComponent内的故障事件状态变为Failed,这种叫连续错误的故障 。其他则被认为是偶发错误故障 。另外,如果DemComponent内部故障事件优先级被忽略,那么仅有当父节点DemComponent状态为Failed导致子节点DemComponent的故障事件状态变成Failed时,也可被当做连续错误 。
其次,DemDTCAttributes可以用于配置DTC的属性,包括老化周期、故障优先级、存储方式(立即存储还是下电存储)、快照数据需记录的最大组数以及参考的冻结帧快照数据、故障数据存储的Memory等,其中快照数据、扩展数据等需要在DemGneral中进行配置 。
DemDTC用于配置故障得DTC值(即诊断故障码)、DTC的严重弄程度以及参考的DTC属性、Obd属性等 。
DemDebunceCounterBaseClass、DemDebounceTimeBaseClass两项主要用于为不同的故障事件配置不同的Debounce策略,可以是基于计数器的Debounce策略,也可以是基于事件的Debounce策略,或者由SWC自定义 。
DemOBDDTC用于配置OBD类故障事件是否支持PTO以及故障事件的DTC值等 。
DemPidClass用于配置PID以及相关的应用层信号 。
DemEventParameter用于配置故障的类型(BSW或SWC)、故障需要多少个运行循环才能确认、是否支持预存储功能、故障事件的Debounce策略以及参考的DTC属性、DemComponent、使能条件、运行循环等 。
功能抑制管理FIM
FIM实际是一种软件组件,用于实现对应功能的抑制管理 。功能抑制是指在车辆故障或安全问题出现时,对某些汽车功能进行限制或禁用的操作,以保证车辆和乘客的安全 。FIM组件通过AUTOSAR的标准化软件接口(FIM API)与其他软件组件(例如ECU、Sensor和Actuator)进行通信,以检测和响应车辆故障或安全问题,并执行相应的功能抑制措施 。
FIM的主要功能逻辑就是基于DEM模块上报Event状态,来触发相应的FID,然后BSW层或者SWC层相关的子模块根据这些FIM功能抑制场景(也就是功能降级) 。
这里举个自动窗户升降与防夹功能的例子来说明如何通过FIM相关的函数模块来调用Sensor SWC层中的Event anti_Pinch,并通过下面几个阶段来完成系统降级过程 。
S1:Front-left Window-lifter SWC上报故障给到Error Management模块;
S3:Dem模块会调用FIM模块相应的函数接口来通知FIM该Event Status对相应FID的影响;
S4:SWC模块接收到轮询的FID,然后完成相应的系统降级响应;


推荐阅读