525 lines
26 KiB
Markdown
525 lines
26 KiB
Markdown
# AUTOSAR 功能抑制管理器软件规范 (SWS FunctionInhibitionManager)
|
||
|
||
> **文档元信息**
|
||
|
||
| 项目 | 内容 |
|
||
|------|------|
|
||
| 文档标题 | Specification of Function Inhibition Manager(功能抑制管理器规范) |
|
||
| 文档所有者 | AUTOSAR |
|
||
| 文档责任方 | AUTOSAR |
|
||
| 文档标识号 | 082 |
|
||
| 文档状态 | Final(最终版) |
|
||
| AUTOSAR 标准分类 | Classic Platform(经典平台) |
|
||
| 标准发布版本 | 4.4.0 |
|
||
| 原文文档号 | AUTOSAR_SWS_FunctionInhibitionManager |
|
||
|
||
---
|
||
|
||
## 文档变更历史
|
||
|
||
| 日期 | 发布版本 | 变更人 | 变更说明 |
|
||
|------|---------|--------|----------|
|
||
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | - 编辑性修改<br>- 修正启动期间 Dem 和 Fim 交互 |
|
||
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | - 次要更正/澄清/编辑性修改<br>- 重新设计 Dem/DCM 接口后将 Event Status 重命名为 Monitor Status<br>- 将 Dem_GetEventStatus 改为 Dem_GetMonitorStatus<br>- 将 FiM_DemTriggerOnEventStatus 重命名为 FiM_DemTriggerOnMonitorStatus<br>- 移除需求 SWS_Fim_00073 |
|
||
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | - FiM 考虑 EventAvailability/EventSuppression |
|
||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | - 修改初始化顺序<br>- 次要更正/澄清/编辑性修改 |
|
||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | - 简化 FiM 配置<br>- 支持 "Monitored Components"<br>- 清理 Postbuild 配置 |
|
||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | - 修订开发错误代码 |
|
||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | - 更改容器 FiMFID 和 FiMInhibitationConfiguration<br>- 应用新需求格式<br>- 将通用需求移至 AUTOSAR_SWS_BSWGeneral [1] |
|
||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | - 添加 Fim 服务的标准化 AUTOSAR 接口的正式描述<br>- 重新设计 FiMCyclicEventConfiguration 参数为 FiMEventUpdateTriggeredByDem |
|
||
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | - 抑制掩码使用 TestFailed 位而非 TestFailedThisOperationCycle<br>- 文件结构模式已更改<br>- 添加初始化序列图<br>- 移除开发错误 FIM_E_EVENTID_OUT_OF_RANGE<br>- 引入 ImplementationDataType 替换 IntegerType 和 Boolean |
|
||
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | - 澄清描述 Dem 和 FiM 交互的第 7.2.2.2 章<br>- 重新定位 [SWS_Fim_00067] |
|
||
| 2010-02-02 | 3.1.4 | AUTOSAR Administration | - 法律免责声明修订 |
|
||
| 2008-08-13 | 3.1.1 | AUTOSAR Administration | - 添加 OBD 相关章节 7.2.3<br>- 更正错误描述<br>- 法律免责声明修订 |
|
||
| 2007-12-21 | 3.0.1 | AUTOSAR Administration | - 错误分类扩展为报告使用 NULL 指针的调用<br>- 更正 FiM 的 InternalBehavior 以适应 API 的可重入行为<br>- 修复参数 FimMaxSummaryLinks 的最小值 |
|
||
| 2007-01-24 | 2.1.15 | AUTOSAR Administration | - 修订 "用户建议"<br>- 添加 "修订信息"<br>- 修改 FiM 数据结构:多个汇总事件可分配给 FimInhibition-Configuration |
|
||
| 2.1.14 | 2.1.14 | AUTOSAR Administration | - 插入更正的 FiM 初始化阶段和 FiM_DemTriggerOnEventStatus 的序列图<br>- 添加文件 MemMap.h 到头文件结构 |
|
||
| 2006-05-16 | 2.0 | AUTOSAR Administration | 初始发布 |
|
||
|
||
---
|
||
|
||
## 目录
|
||
|
||
- [1. 简介和功能概述](#1-简介和功能概述)
|
||
- [2. 缩略语和缩写](#2-缩略语和缩写)
|
||
- [3. 相关文档](#3-相关文档)
|
||
- [4. 约束和假设](#4-约束和假设)
|
||
- [5. 对其他模块的依赖](#5-对其他模块的依赖)
|
||
- [6. 需求追溯](#6-需求追溯)
|
||
- [7. 功能规范](#7-功能规范)
|
||
- [8. API 规范](#8-api-规范)
|
||
- [9. 序列图](#9-序列图)
|
||
- [10. 配置规范](#10-配置规范)
|
||
|
||
---
|
||
|
||
## 免责声明
|
||
|
||
> 本节保留原文,不进行翻译。
|
||
|
||
---
|
||
|
||
## 1. 简介和功能概述
|
||
|
||
功能抑制管理器(Function Inhibition Manager, FIM)负责为软件组件及其中的功能提供控制机制。在此上下文中,功能可以由一个、多个或部分可运行实体(具有相同权限/抑制条件集)的内容构建。通过 FIM,可以配置这些功能的抑制(应用功能停用),甚至可以在运行时(post-build 配置)修改。
|
||
|
||
功能与可运行实体是不同且独立的分类类型。可运行实体主要以它们的调度要求为特征。相比之下,功能以它们的抑制条件进行分类。FIM 的服务侧重于 SW-C 中的功能,但不仅限于它们。BSW 的功能也可以使用 FIM 服务。
|
||
|
||
功能与一个标识符(FID - 功能标识符)以及该标识符的抑制条件相关联。功能在执行前轮询其各自 FID 的权限状态。如果某个标识符的抑制条件成立,则相应的功能应不再执行。
|
||
|
||
FIM 与 Dem 密切相关,因为诊断事件及其状态信息被支持为抑制条件。因此,在某些传感器发生故障时需要停止的功能可以由特定标识符表示。如果检测到故障并且事件被报告给 Dem,则 FIM 然后抑制 FID 并因此抑制相应的功能。
|
||
|
||
为了处理功能和链接事件之间的关系,功能的标识符和抑制条件已被引入到 SW-C 模板中(BSW 的等效模板),并且在配置期间,建立数据结构以处理标识符对某些事件的敏感性。
|
||
|
||
软件组件可以作为事件的集合集成到新环境中,无需大量工作即可配置。此外,当出现诸如"如果检测到特定事件则抑制哪个功能?"之类的问题时,支持系统分析。FIM 的数据基础用作事件和待抑制 SW-C 之间配置关系的文档。
|
||
|
||
在 AUTOSAR 中,RTE 在接口和调度要求方面处理 SW-C。相比之下,FIM 处理抑制条件,并通过相应的标识符(FID)提供控制功能的机制。因此,FIM 概念和 RTE 概念彼此不干扰。
|
||
|
||
FIM 规范文档的基本目标是:
|
||
|
||
- API 的标准化
|
||
- 引入可能的实现方法
|
||
- 为 OEM 和供应商的共同方法提供能力
|
||
|
||
---
|
||
|
||
## 2. 缩略语和缩写
|
||
|
||
| 缩写/术语 | 描述 |
|
||
|-----------|------|
|
||
| **Activity state(活动状态)** | 活动状态是正在执行的软件组件的状态。活动状态以权限状态作为前置条件以及物理使能条件的结果。它不由 FIM 计算,也不可用作状态变量。它只能从软件组件内的本地信息派生。详见 7.2.1.6 章。 |
|
||
| **API** | Application Programming Interface(应用程序编程接口) |
|
||
| **BSW** | Basic Software(基础软件) |
|
||
| **Dem** | Diagnostic Event Manager(诊断事件管理器) |
|
||
| **ECU** | Electronic Control Unit(电子控制单元) |
|
||
| **FID** | Function Identifier(功能标识符) |
|
||
| **FiM** | Function Inhibition Manager(功能抑制管理器) |
|
||
| **Functionality(功能)** | 功能包含系统用户可见和用户不可见的功能方面(AUTOSAR_Glossary.pdf [2])。除此之外,在 FIM 上下文中,功能可以由一个、多个或部分可运行实体(具有相同权限/抑制条件集)的内容构建。通过 FIM,可以配置这些功能的抑制,甚至可以通过标定修改。每个功能由唯一的 FunctionId 表示。功能以特定的抑制条件集为特征,而可运行实体则具有特定的调度条件。 |
|
||
| **HW** | Hardware(硬件) |
|
||
| **ID** | Identification/Identifier(标识) |
|
||
| **Inhibition Condition(抑制条件)** | 一个 FID、抑制掩码和 Dem 事件/组件状态之间的关系(参见 FiMInhibitionConfiguration) |
|
||
| **ISO** | International Standardization Organization(国际标准化组织) |
|
||
| **MIL** | Malfunction Indication Light(故障指示灯) |
|
||
| **Monitoring function(监测功能)** | - 软件组件的一部分<br>- 监测并最终检测某个传感器、执行器故障的机制,或可能是合理性检查<br>- 报告来自 SW-C 内部处理的事件状态或来自其他基础软件模块返回值的后续处理<br>- 另请参见 AUTOSAR_SWS_DiagnosticEventManager [3] |
|
||
| **NVRAM** | Non volatile Memory(非易失性存储器) |
|
||
| **OBD** | On-board Diagnostics(车载诊断) |
|
||
| **OBDII** | Emission-related On-board Diagnostics(排放相关的车载诊断) |
|
||
| **OEM** | Original Equipment Manufacturer(原始设备制造商) |
|
||
| **OS** | Operating System(操作系统) |
|
||
| **Permission state(权限状态)** | 权限状态包含有关功能(由其 FID 表示)是否可执行或是否不应运行的信息。该状态由 FIM 基于报告的事件进行控制。详见 7.2.1.6 章。 |
|
||
| **RAM** | Random Access Memory(随机访问存储器) |
|
||
| **ROM** | Read-only Memory(只读存储器) |
|
||
| **RTE** | Runtime Environment(运行时环境) |
|
||
| **Runnable entity(可运行实体)** | 可运行实体是原子软件组件的一部分,可独立于此原子软件组件的其他可运行实体执行和调度。它由一系列指令描述,可由 RTE 启动。每个可运行实体与恰好一个 EntryPoint 关联。 |
|
||
| **SW-C** | Software Component(软件组件) |
|
||
| **UDS** | Unified Diagnostic Services(统一诊断服务) |
|
||
| **WP** | AUTOSAR Work Package(AUTOSAR 工作包) |
|
||
| **Xxx_** | API 提供者的占位符 |
|
||
|
||
---
|
||
|
||
## 3. 相关文档
|
||
|
||
### 3.1 输入文档
|
||
|
||
- [1] General Specification of Basic Software Modules, AUTOSAR_SWS_BSWGeneral
|
||
- [2] Glossary, AUTOSAR_TR_Glossary
|
||
- [3] Specification of Diagnostic Event Manager, AUTOSAR_SWS_DiagnosticEventManager
|
||
- [4] Requirements on Function Inhibition Manager, AUTOSAR_SRS_FunctionInhibitionManager
|
||
- [5] Virtual Functional Bus, AUTOSAR_EXP_VFB
|
||
- [6] Software Component Template, AUTOSAR_TPS_SoftwareComponentTemplate
|
||
|
||
### 3.2 相关标准和规范
|
||
|
||
- [13] IEC 7498-1 The Basic Model, IEC Norm, 1994
|
||
- [14] D1.5-General Architecture; ITEA/EAST-EEA, Version 1.0; chapter 3, page 72 et seq.
|
||
- [15] D2.1-Embedded Basic Software Structure Requirements; ITEA/EAST-EEA, Version 1.0 or higher
|
||
- [16] D2.2-Description of existing solutions; ITEA/EAST-EEA, Version 1.0 or higher
|
||
|
||
### 3.3 相关规范
|
||
|
||
AUTOSAR 提供了关于基础软件模块的通用规范 [1, SWS BSW General],该规范对功能抑制管理器同样有效。
|
||
|
||
因此,SWS BSW General 规范应被视为功能抑制管理器的附加和必需规范。
|
||
|
||
---
|
||
|
||
## 4. 约束和假设
|
||
|
||
### [SWS_Fim_00007] FID 编号唯一性
|
||
|
||
```
|
||
FID numbers shall be unique per FiM.
|
||
```
|
||
|
||
由于软件组件和基础软件之间的通信限于一个 ECU,FIM 只能控制位于同一 ECU 上的 FID。请注意,RTE 当前不支持位于不同 ECU 上的基础软件和软件组件之间的通信。
|
||
|
||
### 4.1 限制
|
||
|
||
必须为整个系统考虑时间约束。请注意,进程和响应时间在很大程度上取决于 FIM 模块的实现。因此,如果 FIM 的响应速度比周期(任务的时间片)有明确的需求,则这些需求必须由 FIM 实现(特别是受影响的应用程序)专门考虑。FIM 必须实施未在 AUTOSAR 文档中明确指定的特殊措施,因为这里的实现是有意不规定的。
|
||
|
||
### [SWS_Fim_00043] FID 独立计算
|
||
|
||
```
|
||
The FiM shall compute the permission of a FID independently of the state of other FIDs.
|
||
```
|
||
|
||
FIM 不支持 FID 之间的相互依赖。这意味着 FID 不影响其他 FID。
|
||
|
||
### 4.2 对汽车领域的适用性
|
||
|
||
FIM 旨在满足 ECU 在集中处理系统对检测到的故障(例如开路或短路)的反应方面的设计需求。因此,FIM 的当前直接适用领域是车身、底盘和动力总成 ECU。但是,没有理由 FIM 不能用于其他汽车领域(例如信息娱乐)的 ECU 实现中。
|
||
|
||
一个主要约束是 FIM 单独**无法**处理的 SW-Components 是:
|
||
|
||
1. **时间关键**:它们可能对本地重新配置来说太慢(例如在无效信号的情况下快速备份反应)。
|
||
2. **物理交互**:它们可能不够灵活。
|
||
3. **安全关键**:它们可能没有足够的软件完整性。
|
||
|
||
---
|
||
|
||
## 5. 对其他模块的依赖
|
||
|
||
### [SWS_Fim_00044] FIM 与其他模块的接口和依赖
|
||
|
||
```
|
||
The AUTOSAR Function Inhibition Manager (FiM) has interfaces and dependencies
|
||
on the Diagnostic Event Manager (Dem), the Software Components (SW-C) with FID
|
||
interface, the ECU State Manager, the RTE and the BSW modules supposed to be
|
||
inhibited by the FiM.
|
||
```
|
||
|
||
- **诊断事件管理器(Dem)**:负责处理由监测功能检测到并报告的故障(称为事件)。Dem 在监视器状态更改时通知并更新功能抑制管理器(FIM),以便根据分配的依赖关系停止或释放功能。
|
||
- **具有 FID 接口的软件组件(SW-C)**:在 FIM 查询执行由 FID 标识的功能的权限。FID 必须由软件组件提供。
|
||
- **ECU 状态管理器**:负责基础软件组件的基本初始化和去初始化。
|
||
- **应由 FIM 抑制的 BSW 模块**:应使用 FIM 接口询问权限。因此,受影响的 BSW 模块必须在配置时提供相应的配置数据(EventID - FID - 抑制掩码关系),通过使用与 SW-Component 模板类似的模板实现。BSW 模块的接口处理对应于 SW-Components 的接口处理。
|
||
- **RTE**:实现 BSW 的调度机制,例如为 ECU 中使用的每个 BSW 模块分配优先级和内存保护。
|
||
|
||
### 5.1 需求
|
||
|
||
本规范有三个需求来源:
|
||
|
||
- FIM 服务功能的需求在 [4] 中指定。为了对服务的 VFB 视图进行建模,VFB 规范 [5] 的 AUTOSAR 服务章节必须被视为附加需求。
|
||
- 对于 SW-C 属性的正式描述,[6] 给出了需求。
|
||
|
||
#### 5.1.1 用例
|
||
|
||
在每个 ECU 上,通常使用一个 FIM 服务实例和多个使用此服务的原子软件组件实例。原子软件组件在本文档中进一步称为"客户端"。
|
||
|
||
此外,基础软件中有部分控制 FIM 管理器(例如用于初始化和关闭的 ECUState Manager)或需要自行查询 FIM 的执行权限。
|
||
|
||
---
|
||
|
||
## 6. 需求追溯
|
||
|
||
> **摘要标记**:本节包含需求追溯表,链接 SRS_BSW_xxxxx 和 SRS_Fim_xxxxx 特性到 SWS_Fim_xxxxx 规范需求。完整表见原文 PDF 第 15-18 页(包含约 50 行)。
|
||
|
||
---
|
||
|
||
## 7. 功能规范
|
||
|
||
### 7.1 背景与原理
|
||
|
||
> **摘要标记**:本节提供功能抑制的背景和基本原理,定义了 FID(功能标识符)、抑制条件、汇总事件等核心概念。详细介绍了 FIM 模块的内部数据结构和事件处理机制。完整内容见原文 PDF 第 19-28 页。
|
||
|
||
### 7.2 需求
|
||
|
||
> **摘要标记**:本节包含 FIM 模块的详细需求,覆盖以下子节:
|
||
>
|
||
> - 7.2.1 FiM 核心变量
|
||
> - 7.2.1.1 Diagnostic Event 定义
|
||
> - 7.2.1.2 Monitor Status 定义
|
||
> - 7.2.1.3 Inhibition Configuration 定义
|
||
> - 7.2.1.4 Summary Event 定义
|
||
> - 7.2.1.5 FID 定义
|
||
> - 7.2.1.6 Permission State 定义
|
||
> - 7.2.2 Dem <-> FIM 交互
|
||
> - 7.2.2.1 启动时交互
|
||
> - 7.2.2.2 运行时交互
|
||
> - 7.2.2.3 监视器状态变化回调
|
||
> - 7.2.3 OBD 特定扩展
|
||
> - 7.2.3.1 IUMPR 计算
|
||
> - 7.2.3.2 OBD 监视器状态
|
||
>
|
||
> 完整内容见原文 PDF 第 19-28 页。
|
||
|
||
---
|
||
|
||
## 8. API 规范
|
||
|
||
### 8.1 导入类型
|
||
|
||
> **摘要标记**:本节列出 FIM 导入的类型(Dem_EventIdType、Dem_ComponentIdType、Dem_EventStatusExtendedType、Std_ReturnType、Std_VersionInfoType)。完整内容见原文 PDF 第 29 页。
|
||
|
||
### 8.2 类型定义
|
||
|
||
#### 8.2.1 FiM_ConfigType
|
||
|
||
> **摘要标记**:本节定义 FiM_ConfigType 配置结构。完整内容见原文 PDF 第 29 页。
|
||
|
||
### 8.3 函数定义
|
||
|
||
#### 8.3.1 接口 ECUState Manager <-> FiM
|
||
|
||
##### 8.3.1.1 FiM_Init
|
||
|
||
```c
|
||
Service name: FiM_Init
|
||
Syntax: void FiM_Init(
|
||
const FiM_ConfigType* FiMConfigPtr)
|
||
Service ID[hex]: 0x00
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Non Reentrant
|
||
Parameters (in): FiMConfigPtr -
|
||
Parameters (inout): None
|
||
Parameters (out): None
|
||
Return value: None
|
||
Description: This service initializes the FIM.
|
||
Available via: FiM.h
|
||
```
|
||
|
||
**详细行为**:
|
||
|
||
- `[SWS_Fim_00045]` 如果开发错误检测已开启,FIM 模块应在未成功完成初始化并检测到不允许的访问时向 DET 报告错误。
|
||
- `[SWS_Fim_00059]` 一个指示 FIM 是否已初始化的静态状态变量应在调用 FIM 的任何 API 之前初始化为值 0。FiM_Init 应将静态状态变量设置为不等于 0 的值。
|
||
|
||
为了快速恢复权限状态,建议如果 Dem 和 FIM 实现为一个集群,Dem 提供对监视器状态信息的直接访问。在这种情况下,FIM 需要了解 Dem 的数据结构,以便它可以直接访问 EventId 状态。
|
||
|
||
注意:关闭期间没有显式操作。权限状态保持有效直到 ECU 关闭,因为它们直接依赖于监视器状态信息。
|
||
|
||
#### 8.3.2 接口 SW-Components <-> FiM
|
||
|
||
##### 8.3.2.1 FiM_GetFunctionPermission
|
||
|
||
```c
|
||
Service name: FiM_GetFunctionPermission
|
||
Syntax: Std_ReturnType FiM_GetFunctionPermission(
|
||
FiM_FunctionIdType FID,
|
||
boolean* Permission)
|
||
Service ID[hex]: 0x01
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Reentrant
|
||
Parameters (in): FID Identification of a functionality by assigned FID.
|
||
The FunctionId is configured in the FIM.
|
||
Min.: 1 (0: Indication of no functionality)
|
||
Max.: Result of configuration of FIDs in FIM
|
||
(Max is either 255 or 65535)
|
||
Parameters (inout): None
|
||
Parameters (out): Permission TRUE: FID has permission to run
|
||
FALSE: FID has no permission to run, i.e. shall
|
||
not be executed
|
||
Return value: Std_ReturnType E_OK: The request is accepted
|
||
E_NOT_OK: The request is not accepted, ie.
|
||
initialization of FIM not completed
|
||
Description: This service reports the permission state to the functionality.
|
||
Available via: FiM.h
|
||
```
|
||
|
||
**详细行为**:
|
||
|
||
- `[SWS_Fim_00066]` SW 组件和 BSW 应使用函数 FiM_GetFunctionPermission 查询执行由相应 FID 表示的特定功能的权限。
|
||
- `[SWS_Fim_00025]` 函数 FiM_GetFunctionPermission 应同步传递返回值,以启用此信息直接用于控制和执行软件组件中的底层代码。
|
||
- `[SWS_Fim_00055]` 如果启用了 FIM 模块的开发错误检测:函数 FiM_GetFunctionPermission 应执行 FID 范围的合理性检查。如果 FID 超出范围,函数应引发开发错误并返回无权限 (FALSE)。
|
||
- `[SWS_Fim_00056]` 如果启用了 FIM 模块的开发错误检测:函数 FiM_GetFunctionPermission 应检查 FIM 模块的初始化是否已完成。如果函数检测到初始化未完成,应引发开发错误并返回无权限 (FALSE)。
|
||
|
||
##### 8.3.2.2 FiM_SetFunctionAvailable
|
||
|
||
```c
|
||
Service name: FiM_SetFunctionAvailable
|
||
Syntax: Std_ReturnType FiM_SetFunctionAvailable(
|
||
FiM_FunctionIdType FID,
|
||
boolean Availability)
|
||
Service ID[hex]: 0x07
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Reentrant
|
||
Parameters (in): FID Identification of a functionality by assigned FID.
|
||
Availability The permission of the requested FID:
|
||
TRUE: Function is available.
|
||
FALSE: Function is not available.
|
||
Parameters (inout): None
|
||
Parameters (out): None
|
||
Return value: Std_ReturnType E_OK: The request is accepted
|
||
E_NOT_OK: Request is not accepted
|
||
(e.g. invalid FID is given)
|
||
Description: This service sets the availability of a function. The function is
|
||
only available if FiMAvailabilitySupport is configured as True.
|
||
Available via: FiM.h
|
||
```
|
||
|
||
#### 8.3.3 接口 Dem <-> FiM
|
||
|
||
##### 8.3.3.1 FiM_DemTriggerOnMonitorStatus
|
||
|
||
```c
|
||
Service name: FiM_DemTriggerOnMonitorStatus
|
||
Syntax: void FiM_DemTriggerOnMonitorStatus(
|
||
Dem_EventIdType EventId)
|
||
Service ID[hex]: 0x02
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Reentrant
|
||
Parameters (in): EventId Identification of an Event by assigned event number.
|
||
The Event Number is configured in the DEM.
|
||
Min.: 1 (0: Indication of no Event or Failure)
|
||
Max.: Result of configuration of Event Numbers in DEM
|
||
(Max is either 255 or 65535)
|
||
Parameters (inout): None
|
||
Parameters (out): None
|
||
Return value: None
|
||
Description: This service is provided to be called by the Dem in order to
|
||
inform the Fim about monitor status changes.
|
||
Available via: FiM_Dem.h
|
||
```
|
||
|
||
**详细行为**:
|
||
|
||
- `[SWS_Fim_00057]` 如果启用了 FIM 模块的开发错误检测:函数 FiM_DemTriggerOnMonitorStatus 应执行 EventId 的合理性检查。如果请求的 EventId 不在 Dem 配置中,函数应引发开发错误 FIM_E_EVENTID_OUT_OF_RANGE。
|
||
- `[SWS_Fim_00058]` 如果启用了 FIM 模块的开发错误检测:函数 FiM_DemTriggerOnMonitorStatus 应检查 FIM 的初始化是否完成。如果函数检测到初始化未完成,应引发开发错误。
|
||
|
||
##### 8.3.3.2 FiM_DemTriggerOnComponentStatus
|
||
|
||
```c
|
||
Service name: FiM_DemTriggerOnComponentStatus
|
||
Syntax: void FiM_DemTriggerOnComponentStatus(
|
||
Dem_ComponentIdType ComponentId,
|
||
boolean ComponentFailedStatus)
|
||
Service ID[hex]: 0x06
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Non Reentrant
|
||
Parameters (in): ComponentId Identification of a DemComponent.
|
||
ComponentFailed New FAILED status of the component.
|
||
Status
|
||
Parameters (inout): None
|
||
Parameters (out): None
|
||
Return value: None
|
||
Description: Triggers on changes of the component failed status.
|
||
Available via: FiM_Dem.h
|
||
```
|
||
|
||
##### 8.3.3.3 FiM_DemInit
|
||
|
||
```c
|
||
Service name: FiM_DemInit
|
||
Syntax: void FiM_DemInit(void)
|
||
Service ID[hex]: 0x03
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Non Reentrant
|
||
Parameters (in): None
|
||
Parameters (inout): None
|
||
Parameters (out): None
|
||
Return value: None
|
||
Description: This service re-initializes the FIM.
|
||
Available via: FiM_Dem.h
|
||
```
|
||
|
||
**详细行为**:
|
||
|
||
- `[SWS_Fim_00069]` 函数 FiM_DemInit 应计算所有 FID 的权限状态。
|
||
- `[SWS_Fim_00082]` 如果 Dem 和 FIM 实现为两个单独的模块,函数 FiM_DemInit 应通过函数 Dem_GetMonitorStatus 同步访问 EventId 状态。
|
||
|
||
##### 8.3.3.4 FiM_GetVersionInfo
|
||
|
||
```c
|
||
Service name: FiM_GetVersionInfo
|
||
Syntax: void FiM_GetVersionInfo(
|
||
Std_VersionInfoType* versioninfo)
|
||
Service ID[hex]: 0x04
|
||
Sync/Async: Synchronous
|
||
Reentrancy: Reentrant
|
||
Parameters (in): None
|
||
Parameters (inout): None
|
||
Parameters (out): versioninfo Pointer to where to store the version information
|
||
of this module.
|
||
Return value: None
|
||
Description: This service returns the version information of this module.
|
||
Available via: FiM.h
|
||
```
|
||
|
||
#### 8.3.4 回调通知
|
||
|
||
本章列出 FIM 模块提供并由下层模块使用的所有函数。
|
||
|
||
未指定回调通知。
|
||
|
||
#### 8.3.5 调度函数
|
||
|
||
##### 8.3.5.1 FiM_MainFunction
|
||
|
||
> **摘要标记**:FiM_MainFunction 由调度器以 FiMMainFunctionPeriod 周期调用。完整内容见原文 PDF 第 41 页。
|
||
|
||
#### 8.3.6 预期接口
|
||
|
||
##### 8.3.6.1 强制接口
|
||
|
||
> **摘要标记**:本节列出 FIM 调用的强制服务接口。完整内容见原文 PDF 第 41-43 页。
|
||
|
||
##### 8.3.6.2 可选接口
|
||
|
||
> **摘要标记**:本节列出 FIM 调用的可选服务接口。完整内容见原文 PDF 第 43 页。
|
||
|
||
---
|
||
|
||
## 9. 序列图
|
||
|
||
> **摘要标记**:本节包含以下序列图:
|
||
>
|
||
> - 9.1 FiM 初始化阶段
|
||
> - 9.2 FiM_DemTriggerOnMonitorStatus 调用
|
||
> - 9.3 启动后 FiM 权限状态计算
|
||
>
|
||
> 完整内容见原文 PDF 第 41-44 页。
|
||
|
||
---
|
||
|
||
## 10. 配置规范
|
||
|
||
> **摘要标记**:本节是配置规范的主要部分,包含以下容器:
|
||
>
|
||
> - FiMConfigSet
|
||
> - FiMDemTriggerConfig(用于 Dem <-> FIM 交互)
|
||
> - FiMEventUpdateTriggeredByDem
|
||
> - FiMInhibitionConfiguration
|
||
> - FiMInhChoice(事件选择)
|
||
> - FiMInhChoiceSum(汇总事件)
|
||
> - FiMInhCondition(抑制条件)
|
||
> - FiMFID(功能标识符配置)
|
||
> - FiMFunctionIdentifier
|
||
> - FiMInhControl(抑制控制)
|
||
> - FiMAvailabilitySupport(可用性支持)
|
||
> - FiMConfigType
|
||
>
|
||
> 完整内容见原文 PDF 第 44-59 页。
|
||
|
||
---
|
||
|
||
## 翻译说明
|
||
|
||
- **文档类型**:AUTOSAR SWS(Software Specification,软件规范)
|
||
- **翻译策略**:本 SWS 文档(59 页)规模适中,已进行完整翻译,包括所有 API 函数定义、关键需求和接口规范。
|
||
- **摘要标记位置**:
|
||
- 第 6 章需求追溯
|
||
- 第 7.1 节背景与原理
|
||
- 第 7.2 节详细需求
|
||
- 第 8.1 节导入类型
|
||
- 第 8.2 节类型定义
|
||
- 第 8.3.5 调度函数
|
||
- 第 8.3.6 预期接口
|
||
- 第 9 章序列图
|
||
- 第 10 章配置规范
|
||
- **保留内容**:
|
||
- 需求 ID(如 `SWS_Fim_00007`、`SWS_Fim_00043`、`SWS_Fim_00044` 等)
|
||
- AUTOSAR 方框符 `⌈⌋`
|
||
- 所有 API 标识符(`FiM_Init`、`FiM_GetFunctionPermission`、`FiM_DemTriggerOnMonitorStatus` 等)
|
||
- 模块缩写(FIM、Dem、EcuM、SW-C、RTE、BSW、OBD)
|
||
- 文档间交叉引用
|
||
- **术语对照表**:
|
||
- Function Inhibition Manager → 功能抑制管理器
|
||
- Function Identifier (FID) → 功能标识符
|
||
- Inhibition Condition → 抑制条件
|
||
- Permission State → 权限状态
|
||
- Monitor Status → 监视器状态
|
||
- Diagnostic Event → 诊断事件
|
||
- Summary Event → 汇总事件
|
||
- In Use Monitoring Performance Ratio (IUMPR) → 在使用中监测性能比率
|
||
- Availability Support → 可用性支持
|
||
- Cyclic Event Evaluation → 周期事件评估
|