虚拟功能总线(Virtual Functional Bus)

📄 文档 ID:056 🏷 类型:EXP(说明文档) 📅 版本:AUTOSAR CP 4.4.0 📑 页数:104 📌 状态:Final 🔗 原 PDF:AUTOSAR_EXP_VFB.pdf

目录

1 介绍(Introduction)

1.1 内容(Contents)

本文档描述 AUTOSAR 的虚拟功能总线(Virtual Functional Bus,VFB)。VFB 是 AUTOSAR 架构的核心抽象,定义了 SW-C 之间通信的虚拟平台,与具体的 ECU 和硬件无关。

1.2 前置阅读(Prereads)

阅读本文档前应先了解:

1.3 与其他 AUTOSAR 规范的关系(Relationship to other AUTOSAR specifications)

VFB 文档与以下文档紧密相关:

1.4 文档结构与约定(Structure and conventions of this document)

1.4.1 文档结构

本文档先介绍 VFB 概念,再详述各种通信模式、模式管理、硬件交互等。

1.4.2 规范项(Specification Items)

规范项以 [<前缀>_VFB_NNNN] 标识。

2 虚拟功能总线(The Virtual Functional Bus)

虚拟功能总线(Virtual Functional Bus,VFB)是 AUTOSAR 抽象出的"虚拟总线",位于所有 SW-C 之间。VFB 抽象了 SW-C 间通信的底层细节:

RTE(Runtime Environment)是 VFB 的具体实现。在单个 ECU 内,RTE 桥接 SW-C 与 BSW;在多 ECU 系统中,RTE 还通过通信协议桥接不同 ECU 上的 SW-C。

3 总体机制与概念(Overall mechanisms and concepts)

3.1 组件(Components)

AUTOSAR 中的组件SwComponentType)是 VFB 的基本单元:

3.2 端口接口(Port-Interfaces)

端口接口(PortInterface)定义了组件间通信的契约

3.3 端口(Ports)

3.3.1 端口类型(Port Types)

AUTOSAR 定义以下端口类型:

3.3.2 端口兼容性(Port Compatibility)

两个端口要连接,必须满足:

3.3.3 数据类型策略(Data Type Policies)

数据类型兼容性策略包括:

3.4 连接器(Connectors)

连接器(SwConnector)连接两个端口:

3.4.1 未连接的端口(Unconnected Ports)

未连接的端口是允许的,表示组件该功能未被使用。

3.5 组合 vs 原子组件(Compositions versus atomic components)

组合由多个子组件组成,可视为一个"逻辑单元"。组合可以嵌套。组合的内部通信对外部不可见。

3.6 VFB 与 ECU 软件架构的关系(Relationship between the VFB and the ECU Software Architecture)

VFB 是抽象的,ECU 软件架构是具体的:

3.7 软件组件的种类(Kinds of software components)

AUTOSAR 定义以下组件类型:

3.8 组件与"可运行实体"的资源(Resources for components and "runnables")

3.8.1 背景(Background)

每个组件包含一个内部行为(Internal Behavior),定义了组件的可运行实体(Runnable Entity)

3.8.2 "可运行实体"概念(The "runnable" concept)

可运行实体(Runnable)是组件中可被 RTE 调用的可执行函数。每个可运行实体具有:

3.8.3 组件实现与 RTE 的角色(The implementation of a component and the role of the RTE)

组件的实现者只需实现其可运行实体。RTE 负责:

3.9 接口转换块(Interface Conversion Blocks)

3.9.1 支持的转换与映射(Supported Conversions and Mappings)

RTE 支持的转换类型:

3.10 变体处理(Variant Handling)

3.10.1 绑定时间(Binding Times)

绑定时间定义了连接何时被建立:

3.10.2 选择变体(Choosing a Variant)

变体选择可在不同阶段进行:

3.10.3 可变性(Variability)

通过条件(Condition)机制处理变体:

variationPoint {
   if (Condition_A) {
      PortA connects to PortB;
   } else {
      PortA connects to PortC;
   }
}

4 VFB 上的通信(Communication on the VFB)

4.1 介绍(Introduction)

VFB 支持两种主要的通信模式:

4.2 错误类型(Error types)

VFB 通信可能产生的错误:

4.3 发送者-接收者通信(Sender-Receiver communication)

4.3.1 从发送者视角(From the point of view of the sender)

发送者通过 Rte_Write_<Port>_<Data>() 写入数据:

Std_ReturnType status = Rte_Write_EngineSpeed_I_EngineSpeed(3000);
if (status != RTE_E_OK) {
    // 处理错误
}

发送操作通常是非阻塞的。

4.3.2 从接收者视角(From the point of view of the receiver)

接收者通过 Rte_Read_<Port>_<Data>() 读取数据:

uint8 buffer[4];
Std_ReturnType status = Rte_Read_EngineSpeed_I_EngineSpeed(buffer);
if (status == RTE_E_OK) {
    uint16 speed = (buffer[0] << 8) | buffer[1];
}

4.3.3 发送者-接收者的多重性(Multiplicity of sender-receiver)

一个数据元素可被多个接收者消费(1:N),或多个发送者提供(N:1,或 N:M with arbitration)。

4.3.4 发送者与接收者之间的过滤(Filtering between the sender and the receiver)

RTE 支持多种过滤机制:

4.3.5 发送者-接收者连接器内的并发与排序(Concurrency and ordering within a sender-receiver connector)

多个发送者到同一数据元素时,RTE 决定:

4.4 客户端-服务器通信(Client-Server communication)

4.4.1 从客户端视角(From the point of view of the client)

客户端通过 Rte_Call_<Port>_<Operation>() 调用操作:

Std_ReturnType status = Rte_Call_DiagnosticService_I_ReadDataById(0x1234, buffer);
// status 包含 E_OK 或 RTE_E_<错误>

4.4.2 从服务器视角(From the point of view of the server)

服务器通过可运行实体实现操作。RTE 负责将客户端调用映射到服务器的可运行实体。

4.4.3 客户端-服务器的多重性(Multiplicity of client-server)

一个操作可被多个客户端调用(多个客户端 → 1 个服务器)。

4.4.4 客户端-服务器连接器内的排序与并发(Ordering and concurrency within a client-server connector)

多个客户端的调用可以并发执行(服务器支持),或必须串行执行(取决于服务器实现)。

4.5 关于通信伙伴识别的说明(Remarks regarding the identification of communication partners)

客户端应当通过连接点(Connection Point)标识其通信伙伴。VFB 通过 RTE 实现这种标识的透明性。

5 时间扩展(Timing Extensions)

5.1 AUTOSAR 时间扩展的主要目的(Main Purpose of Timing Extensions for AUTOSAR)

时间扩展(Timing Extensions)允许为 SW-C 的运行时行为附加时间约束

5.2 AUTOSAR 方法论各阶段的时间(Timing in different phases of the AUTOSAR methodology)

时间约束可在不同阶段指定:

6 与硬件的交互(Interaction with hardware)

6.1 介绍(Introduction)

VFB 上的 SW-C 通过 RTE 与 BSW 交互,最终访问硬件。

6.2 微控制器抽象层(MCAL)

MCAL 提供对微控制器外设的直接访问。只有 MCAL 驱动可以直接访问硬件寄存器

6.3 ECU 抽象

ECU 抽象层(ECU Abstraction)将 MCAL 进一步抽象为ECU 级的接口。

6.4 传感器-执行器软件组件

传感器-执行器 SW-C 通过 ECU 抽象层访问物理传感器和执行器。

6.5 复杂驱动组件

复杂驱动(CDD)可以绕过 ECU 抽象层直接访问硬件(例如处理特殊传感器)。

7 AUTOSAR 服务(AUTOSAR Services)

7.1 介绍(Introduction)

AUTOSAR 服务(Services)是 BSW 提供的、可被 SW-C 通过标准接口使用的功能,例如:

7.2 VFB 表示(VFB Representation)

服务在 VFB 上表示为特殊的 SW-C 类型,SW-C 通过客户端-服务器接口访问它们。

7.3 服务列表(List of Services)

详细的服务清单见原文 7.3 节。常见服务包括 OS 任务管理、EcuM 状态控制、DCM 诊断通信、COM 信号传输等。

8 模式管理(Mode Management)

8.1 介绍(Introduction)

AUTOSAR 中的模式(Mode)表示组件、ECU 或系统的某个运行状态。

8.2 定义模式(Defining modes)

模式通过 ModeDeclarationGroup 定义:

ModeDeclarationGroup VehicleMode {
   OFF, STARTUP, RUN, SHUTDOWN
}

8.3 通信模式(Communicating modes)

组件通过 ModeSwitchInterface 接收模式变化。

8.4 模式管理器:控制模式的组件(Mode-managers: components that control modes)

模式管理器(如 BswM、EcuM)负责

8.5 依赖模式的组件(Components that depend on modes)

依赖模式的组件应当通过 ModeSwitchInterface 接收模式通知,并根据模式调整行为。

9 端口组(Port Groups)

端口组(Port Group)允许将多个端口组合在一起进行批量操作,例如:

10 测量与标定(Measurement and Calibration)

10.1 标定(Calibration)

标定是修改 SW-C 参数以优化 ECU 行为的过程。AUTOSAR 支持两种标定方式:

10.1.1 基于端口的标定(Port-based calibration)

通过 ParameterInterface 提供参数。SW-C 通过参数端口接收标定值。

10.1.2 私有标定(Private calibration)

参数仅在组件内部可见,不通过端口暴露。

📋 校对记录

校对轮次:L1 自动校对(2026-06-13)