FiM产品参考手册

缩写词注解

缩写词

英文全名

解释/描述

FID

Function Identifier

功能标识符

FiM

Function Inhibition Manager

功能禁止管理模块

DEM

Diagnostic Event Manager

诊断事件管理模块

简介

image1

图1-1 FiM模块层次图

功能抑制管理器负责为软件组件及其功能提供控制机制。在本文档中,一个功能可以由一个、几个或部分具有相同权限/禁止条件的可运行实体的内容构成。

功能性和可运行实体是不同且独立的分类类型。可运行实体的主要特征是它们的调度要求。与此相反,功能是根据它们的抑制条件来分类的。FiM的服务主要关注SW-Cs中的功能,然而,它们并不局限于这些功能。BSW的功能也可以使用FiM服务。

QQ图片20170122100614.png

图1-2 FiM与其他模块交互图

参考资料

[1] AUTOSAR_SWS_FunctionInhibitionManager.PDF,4.2.2

[2] AUTOSAR_SWS_FunctionInhibitionManager.PDF,R19-11

功能描述

功能禁止管理功能

功能禁止管理功能介绍

FiM模块允许查询软件组件的许可/抑制状态及其功能。功能在执行之前轮询其FID的许可状态。如果禁止条件适用于特定的标识符,则不再允许执行相应的功能。通过FiM,这些功能的抑制可以通过校准来配置甚至修改。支持Dem事件及其状态信息作为抑制条件。在FiM的配置过程中,建立了数据结构(即禁止矩阵)来处理标识符对某些事件的敏感性。

FiM与Dem密切相关,因为诊断事件及其状态信息为抑制条件的基础。因此,在发生故障时需要停止的功能,例如某个传感器,可以用一个特定的标识符来表示。如果检测到故障并将事件报告给Dem,那么FiM就会阻止FID,从而阻止相应的功能。

功能禁止管理器(FiM)的主要功能是为SW-C和BSW功能提供控制机制。功能禁止管理器允许查询软件构件及其中的功能性的准许/禁止状态。主要功能包括:管理功能禁止状态、主动获取诊断事件状态更新禁止状态、根据诊断事件管理器的触发更新禁止状态、提供接口供应用查询功能禁止状态。

FiM支持功能禁止管理:根据故障状态状态位,与故障关联的FID的MASK进行计算,如果计算结果满足抑制,则FID的抑制计数器加1,如果计算结果不满足抑制,则FID的抑制计数器减1,当FID的抑制计数器等于 0 ,FID为允许状态,当抑制计数器不等于0,FID为抑制状态,原理如图2-1所示。

image2

图2-1 功能禁止管理原理

功能禁止管理功能实现

根据配置,如果是轮询方式获取信息,则在FiM_MainFunction中轮询调用Dem_GetComponentFailed和Dem_GetEventStatus来获取诊断事件状态信息,然后根据状态信息以及相关功能的配置关系表来进行计算,得出功能抑制计数,SWC通过调用FiM_GetFunctionPermission来获取功能的允许使用状态。

如果不是轮询方式获取信息,则DEM模块调用FiM_DemTriggerOnEventStatus和FiM_DemTriggerOnComponentStatus来通知诊断事件状态信息,然后根据状态信息以及相关功能的配置关系表来进行计算,得出功能抑制计数,SWC通过调用FiM_GetFunctionPermission来获取功能的允许使用状态。

源文件描述

表3-1 FiM组件文件描述

文件

说明

FiM _cfg.h

定义FiM模块预编译时用到的配置参数。

FiM_Cfg.c

定义FIM模块配置相关的配置参数。

FiM.h

FiM模块头文 件,包含了API函数的扩展声明并定义了端口的数据结构。

FiM .c

FiM模块源文件,包含了API函数的实现。

FiM_Internal.h

包含FiM模块需要使用的部分类型定义和宏定义。

FiM_MemMap.h

包含FiM模块的内存抽象。

FiM_Types.h

包含FiM模块需要使用的类型定义。

Rte_FiM_Type.h

空文件(autosar要求的文件)

image3

图3-1 FiM组件文件交互关系图

API接口

类型定义

FiM_FunctionIdType类型定义

名称

FiM_FunctionIdType

类型

uint16

范围

0-65535 功能ID

描述

功能ID的类型定义

FiM_ConfigType类型定义

名称

FiM_ConfigType

类型

Structure

范围

描述

配置参数结构体类型定义

输入函数描述

输入模块

API

DEM

Dem_GetEventStatus

Dem_GetComponentFailed

DET

Det_ReportError

静态接口函数定义

FiM_Init函数定义

函数名称:

FiM_Init

函数原型:

void FiM_Init(const FiM_ConfigType* FiMConfigPtr)

服务编号:

0x00

同步/异步:

同步

是 否可重入:

输入参数:

FiMConfigPtr:配置参数

值 域:

输入 输出参数:

输出参数:

返回值:

功能概述:

FiM初始化 函数,初始化相关变量与模块状态

FiM_GetFunctionPermission函数定义

函数名称:

FiM_GetF unctionPermission

函数原型:

Std_ReturnType FiM_GetFun ctionPermission(F iM_FunctionIdType FID,boolean* Permission)

服务编号:

0x01

同步/异步:

同步

是 否可重入:

输入参数:

FID 功能ID

值域:

0..65535

输入 输出参数:

输出参数:

Permiss ion:功能允许状态

返回值:

Std_ReturnType: E_OK: 请求成功 E_NOT_OK: 请求失败

功能概述:

获取 功能是否运行运行

FiM_SetFunctionAvailable函数定义

函数名称:

FiM_Set FunctionAvailable

函数原型:

Std_ReturnType FiM_Set FunctionAvailable (F iM_FunctionIdType FID,boolean Availability)

服务编号:

0x07

同步/异步:

同步

是 否可重入:

输入参数:

FID:功能ID

值域:

0..65535

Avail ability:使能状态

值域:

TRUE/FALSE

输入 输出参数:

输出参数:

返回值:

Std_ReturnType: E_OK: 请求成功 E_NOT_OK: 请求失败

功能概述:

通过 函数设置相应的功 能使能还是不使能

FiM_DemTriggerOnEventStatus函数定义

函数名称:

FiM_DemTriggerOnEventStatus

函数原型:

void FiM_DemTrigge rOnEventStatus(Dem_EventIdType EventId,Dem_UdsStatusByteType EventStatu sByteOld,Dem_UdsStatusByteType EventStatusByteNew)

服务编号:

0x02

同步/异步:

同步

是 否可重入:

输入参数:

EventId:事件ID

值域:

0..65535

EventStatusByteOld:事件老状态

值域:

0..255

EventStatusByteNew:事件新状态

值域:

0..255

输入 输出参数:

输出参数:

返回值:

功能概述:

DEM调用该接口通知FiM事件的状态 改变,以便FiM计算功能允许状态

FiM_DemTriggerOnComponentStatus函数定义

函数名称:

FiM_DemTriggerOnComponentStatus

函数原型:

void FiM_DemTriggerOnComponentStatus (Dem_ComponentIdType ComponentId,boolean ComponentFailedStatus)

服务编号:

0x06

同步/异步:

同步

是 否可重入:

输入参数:

ComponentId:组件ID

值域:

0..65535

ComponentFailedStatus:组件状态

值域:

T RUE/FALSE

输入 输出参数:

输出参数:

返回值:

功能概述:

DEM通过调用函数通知FiM组件 的状态,以便FiM计算功能允许状态

FiM_DemInit函数定义

函数名称:

FiM_DemInit

函数原型:

void FiM_DemInit(void)

服务编号:

0x03

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

DEM 调用该接口对FiM模 块进行完整初始化

FiM_GetVersionInfo函数定义

函数名称:

F iM_GetVersionInfo

函数原型:

void FiM_Ge tVersionInfo(Std_ VersionInfoType* versioninfo)

服务编号:

0x04

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

Vers ioninfo:版本信息

输出参数:

返回值:

功能概述:

获 取FiM模块版本信息

FiM_MainFunction函数定义

函数名称:

FiM_MainFunction

函数原型:

void FiM_M ainFunction(void)

服务编号:

0x05

同步/异步:

同步

是 否可重入:

输入参数:

值域:

输入 输出参数:

输出参数:

返回值:

功能概述:

FiM模 块主处理函数,在 配置为轮询时使用

可配置函数定义

无。

SWC服务组件封装

以下类型和接口可以封装至SWC生成完整的服务组件,可以与应用通过端口连接。

CS接口封装

注:下面提到的<UserModule>和<UserPort>分别为用户SWC的名字和对应端口名,在与FiM服务组件端口连接后适用。

Rte_Call_<UserModule>_<UserPort>_GetFunctionPermission

函数名称:

Rte_Call_<UserModule>_<UserPortName>_GetFunctionPermission

运行 实体函数定义:

详见4.3.2

变体:

Name=FiMConfigSet/FiMFID.SHORT-NAME

生成条件:

端口类型:

Provided Port

从属端口:

Func_{Name}

Rte_Call_<UserModule>_<UserPort>_SetFunctionAvailable

函数名称:

Rte_Call _<UserModule>_<UserPortName>_SetFunctionAvailable

运行 实体函数定义:

详见4.3.3

变体:

Name=FiMConfigSet/FiMFID.SHORT-NAME

生成条件:

FiMGeneral/FiMAvailabilitySupport == True

端口类型:

Provided Port

从属端口:

Control_{Name}

配置

FiMGeneral

image4

图5-1 FiMGeneral容器配置图

表5-1 FiMGeneral属性描述

UI名称

描述

FiMAvailab ilitySupport

取值范围

true/false

默认取值

False

参数描述

此配 置参数指定FiM是 否支持服务来设置 某个功能的可用性 。当为false时, FiM_SetFunctionA vailable不可用。

true:支持 。false:不支持

依赖关系

FiMDataFixed

取值范围

true/false

默认取值

False

参数描述

此配置项在 代码中未使用,在 版本后期也会被移 除,可以不用关心

依赖关系

FiMDe vErrorDetect

取值范围

true/false

默认取值

False

参数描述

DET检查使能开关

依赖关系

FiME ventUpdateTr iggeredByDem

取值范围

true/false

默认取值

False

参数描述

此配置参数 指定FiM获取Even tIds状态的方式。

TRUE: DEM通知F iM事件状态的变化

FALSE: FiM从D EM模块周期性或按 需投票事件状态。

依赖关系

根据DemTri ggerFiMReports自 动生成,不可配置

FiMMa xEventsPerFi dInhibitionC onfiguration

取值范围

1 .. 65535

默认取值

1

参数描述

此配置参数指定Fi Minhibitationcon figuration中抑制 事件的最大总数。

依赖关系

FiMMaxFiM InhibitionCo nfigurations

取值范围

1 .. 65535

默认取值

1

参数描述

此配置 参数指定FiMinhib itationconfigura tion的最大总数。

依赖关系

FiMMaxInp utEventsPerS ummaryEvents

取值范围

1 .. 65535

默认取值

1

参数描述

此配置参数指定 每个汇总事件的最 大输入事件总数。

依赖关系

FiMMaxSu mEventsPerFi dInhibitionC onfiguration

取值范围

1 .. 65535

默认取值

1

参数描述

此配 置参数指定FiMinh ibitationconfigu ration中抑制摘要 事件的最大总数。

依赖关系

FiMMaxS ummaryEvents

取值范围

0 .. 65535

默认取值

0

参数描述

此配置参数指 定可以配置的汇总 事件的最大数量。

依赖关系

FiMTaskTime

取值范围

0 .. 0.1

默认取值

0

参数描述

不生成的 配置项,代码中未 使用,可以不关心

依赖关系

FiMVe rsionInfoApi

取值范围

true/false

默认取值

False

参数描述

获取版 本信息的使能开关

依赖关系

FiMConfigSet

image5

图5-2 FiMConfigSet容器配置图

表5-2 FiMConfigSet属性描述

UI名称

描述

FiMFID

取值范围

默认取值

参数描述

用 于添加FID的容器 ,多重性:1..*

依赖关系

Fi MInhibitionC onfiguration

取值范围

默认取值

参数描述

用于添加 配置关系表的容器 ,多重性:1..*

依赖关系

F iMMaxFiMInhibiti onConfigurations

FiM SummaryEvent

取值范围

默认取值

参数描述

用于添加 汇总事件的的容器 ,多重性:0..*

依赖关系

FiMSummaryEvent

FiMFID

image6

图5-3 FiMFID容器配置图

表5-3 FiMFID属性描述

UI名称

描述

F iMFunctionId

取值范围

0 .. 65535

默认取值

参数描述

FID值,不可配 置,自动填充生成

依赖关系

FiMInhibitionConfiguration

image7

图5-4 FiMInhibitionConfiguration容器配置图

表5-4 FiMInhibitionConfiguration属性描述

UI名称

描述

FiMInhIn hibitionMask

取值范围

FIM_LAST_FAILED /FIM_NOT_TESTED/ FIM_TESTED/FIM_T ESTED_AND_FAILED

默认取值

FIM_L AST_FAILED

参数描述

事件和FID关 系指定抑制掩码。

依赖关系

FiMInh ComponentRef

取值范围

默认取值

参数描述

对De mComponent的引用

依赖关系

FiMInhSumRef、Fi MInhEventRef、Fi MInhComponentRef 三者至少配置一个

Fi MInhEventRef

取值范围

默认取值

参数描述

对DEM事件的引用

依赖关系

FiMInhSumRef、Fi MInhEventRef、Fi MInhComponentRef 三者至少配置一个

FiMMaxEve ntsPerFidInhibit ionConfiguration

FiMInhF unctionIdRef

取值范围

默认取值

参数描述

对功能ID的引用

依赖关系

FiMInhSumRef

取值范围

默认取值

参数描述

对汇总事件的引用

依赖关系

FiMInhSumRef、Fi MInhEventRef、Fi MInhComponentRef 三者至少配置一个

FiMMaxSumEve ntsPerFidInhibit ionConfiguration

FiMSummaryEvent

image8

图5-5 FiMSummaryEvent容器配置图

表5-5 FiMSummaryEvent属性描述

UI名称

描述

FiMI nputEventRef

取值范围

默认取值

参数描述

引用DEM事件

依赖关系

F iMMaxInputEvents PerSummaryEvents