【AutoSar_诊断协议栈】FiM模块详解

本文详细介绍了AutoSAR中的FiM模块,包括术语解释、功能介绍、Dem与FiM的交互、FIDPermission的计算以及FiM与SW-C的通信。重点阐述了功能抑制策略、FID与Event和Component的关系,以及系统降级的逻辑和配置参数。

1 术语解释

1.1 缩略语

缩写描述解释
BSWBasic Software基础软件
DemDiagnostic Event Manager诊断事件管理
ECUElectronic Control Unit电子控制单元
FIDFunction Identifier功能标识符
NVRAMNon volatile Memory非易失性内存
EcuMECU State ManagerECU状态管理模块

2 相关模块

Moduledependencies
Dem将改变的Event或Component的状态告知给FiM,用计算并判断相应FID的状态(对应功能是否能执行)
SW-C通过FiM提供的FID和接口问询功能是否执行或者禁止
EcuM负责相关模块的初始化和去初始化的过程
BSWBSW内部的功能可以使用FiM的功能降级机制
RTE主要负责相关模块的调度函数执行顺序,优先级,但并负责SW-C和FiM之间的交互

3 功能简介

3.1 功能概述

FiM提供以下功能:

  • FiM模块提供一种用于功能抑制场景的功能降级策略,并且该功能抑制关系和条件能够配置;
  • 可通过特定的FID来实现相应的功能降级策略;
  • 功能降级可由Dem模块的Event或Component在FiM模块中根据降级需求完成映射(map FID);
  • FiM模块为BSW以及SW-C各模块提供了一种有效的降级手段(特定功能的降级或者抑制需要知道对应的FID)。

总而言之,当SW-C或者BSW层发生故障发生时,会将故障即Event上报给到Dem模块;通过Dem内部的计算,当Event或Component发生状态变化时,Dem会告知FiM(这个动作需要在Dem配置才会执行),当然FiM也会通过Dem的接口来获取Event或Component的状态;SW-C以及BSW层通过接口获取FID的permission做出相应的降级行为。

如下图所示,包含整体功能降级架构组成:
在这里插入图片描述

3.2 Dem和FiM的交互

3.2.1 Event或Component和FID的映射

在说Event或Component和FID的映射关系之前,先提一下Dem中Event和Component之间的映射关系:==一般地,多个同类的Event mapping一个Component, 且在Event进入FAILED状态后,其关联的Component也会进入FAILED状态。==更多的关系请参考Dem的规范文档。

在FiM的配置中往往需要实现一下的映射关系,可以参考下图:

  • FID - Event - Inhibition Mask(每个Event都有其对应的Mask
  • FID - ComponentId - inhibition configuration

下图是Event和FID的映射关系图:
在这里插入图片描述

注:这里一个Event可以mapping多个不同的FID(一般不推荐),一个FID也可以mapping多个Event(同一类的);但是FID只能mapping一个component,且Event和Component对于FID的映射是可以同时存在的。

3.2.2 Dem和FiM之间的交互接口

在运行时,Dem内部有Event状态发生变化时,会调用FiM_DemTriggerOnMonitorStatus通知FiM,之后FiM会调用Dem_GetMonitorStatus去查询Event最新的状态,并计算FID的permission,permission由SW-C轮询;具体流程如下图:
在这里插入图片描述
在Dem Component状态发生变化时,Dem会调用接口FiM_DemTriggerOnComponentStatus告知FIM;这种情况该动作需要在Dem的配置中使能。不仅如此,FiM也可以通过Dem_GetComponentFailed轮询Component的状态并由此计算FID的permission。

3.2.3 FiM的初始化

除了在运行时Dem会和FiM有交互,FiM在初始化期间也会获取Dem存储在NvM中的Event Status,故在EcuM中调用初始化函数的时序很重要:
在这里插入图片描述

3.3 FID Permission的计算

下图是通过Event status计算FID的图示:
在这里插入图片描述
这里面有几个重要的参数:

参数解释
Event Monitor StatusDem计算的Event Status与DTC status一致
Inhibition Mask抑制FID的判断条件
Event Status和对应Inhibition Mask按位与的结果不为0,即Inhibit Counter +1
Inhibition Counter导致FID抑制的Event和Component的个数
该Counter会随着导致FID置位的Event数目增加而增加,减少而减少
Function Inhibition即FID的permission,在Inhibition Counter > 0时FID = FALSE则功能降级
在Inhibit Counter == 0时FID = TRUE则功能不降级

以下图为例,当三个Event和一个Component(一般Event都依赖于该component)映射到FID_0时,以上参数之间运算关系:
在这里插入图片描述
如上图6所示,假设Event A,EventB、EventC均Map了FID_0,也就意味着当这三个Event status中任意一个或多个发生变化时且与响应MASK按位与结果为TRUE(此时Component状态也为FAILED),FID_0就会置位,即FID_0 = FALSE。

系统降级算法规则:当 Inh Counter >0, FID就会置位,即为FALSE,相应的系统降级行为就会发生。

当下列情况时,FID_0 的permission如何变化呢?

  • 当Event A Status & Ihibition Mask_a = TRUE, Inh Counter + 1, 即Inh Counter= 1,FID_0 = FALSE;
  • component Status变为FAILED,Inh Counter + 1,即Inh Counter = 2,FID_0 = FALSE;
  • 当Event B Status & Ihibition Mask_b = TRUE, Inh Counter + 1, 即Inh Counter = 3, FID_0 = FALSE;
  • 当Event C Status & Ihibition Mask_c = TRUE, Inh Counter + 1, 即Inh Counter = 4, FID_0 = FALSE;
  • 过一段时间Event A Status & Ihibition Mask_a = FALSE, Inh Counter – 1, 即FID_A Counter = 3, FID_A = FALSE;
  • 同上,EventB Status & Ihibition Mask_b = FALSE,Inh Counter – 1, 即FID_A Counter = 2, FID_A = FALSE;
  • 同上,EventB Status & Ihibition Mask_c = FALSE,Inh Counter – 1, 即FID_A Counter = 1, FID_A = FALSE;
  • component Status变为PASSED,Inh Counter - 1,即Inh Counter = 0,FID_0 = TRUE;

通过上述场景分析得知,只要Inh Counter不等于0,FID_0 就会等于FALSE,系统就会降级。不过在此需要特别提醒的是虽然此时你知道系统降级了,但是从FID你无法知道到底是哪个Event导致的降级,此时就需要通过相关的诊断服务0x19读取内部的Event并且该Event也确实Map了该FID,那么你就可以锁定该Event就是原因所在。

注:特殊地,当FID被FiM_SetFunctionAvailable设置为不可用,那么 FiM_GetFunctionPermission即返回FALSE,即功能被降级不可用。

3.4 FiM与SW-C之间的交互

一般地,SW-C组件会调用 FiM_GetFunctionPermission轮询FID状态,由此判断对功能进行降级与否。前提是SW-C知道FID和功能的映射关系。

4 配置参数

Dem :

  • 存在需求中Events;
  • 是否使能Event monitor status改变时告知FiM;
  • 是否使能Component status改变时告知FiM;

FiM:

  • FID与Event以及Component之间的映射关系,还有Event statsus对应的Inh mask;
  • 配置可以将一类Event合成一个summary event,其处理过程并无差异;

注:一般Event和Component不会都配置在FID的引用中,状态的计算上有重复之处。

5 参考资料

1. AutoSAR基础篇之FiM
2. Specification of Function Inhibition Manager(AUTOSAR CP R20-11)
3. Specification of Diagnostic Event Manager(AUTOSAR CP R20-11)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值