BSW 分布指南(Guide to BSW Distribution)

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

目录

1 介绍(Introduction)

本文档是对 AUTOSAR 系统中 BSW 分布的总体介绍。它由两部分组成:一部分聚焦于多核情况下的 BSW 分布,另一部分聚焦于安全情况下的分布。

第 2 章 指导多核系统的 AUTOSAR 兼容软件的开发和配置。自 4.1 版本起,本章仅涉及将 AUTOSAR BSW 模块分配到多核系统的分区以及它们的交互。将 BSW 模块分配到不同 BSW 分区既可增强功能安全,也可提升性能

概念 "MCAL Multicore Distribution" 的所有概念部分(包括第 2.5 节 MCAL 分布)状态为 "draft"(草案)

第 3 章 描述安全场景下的 BSW 分布。自 4.2 版本起,AUTOSAR 允许将 BSW 模块映射到不同分区,并保护这些分区之间的相互干扰。

第 4 章 展望了 BSW 分布领域可能的未来扩展。

2 多核系统中的 BSW 分布(BSW Distribution in Multi-Core Systems)

2.1 概述(Overview)

本章描述 BSW 模块在多个分区和核上分布式执行的支持场景,以及 BSW 分布可提升性能的若干用例。同时介绍适用于分布式 BSW 执行的基本同步概念和分区间通信简介。

2.1.1 支持的场景(Supported Scenarios)

可将 BSW 模块的功能集群(用于应用访问总线、非易失性存储器、I/O 通道和看门狗)分配到不同 BSW 分区。BSW 模块的集群目前未标准化。除 MCAL 外,不同分区中同一类型功能集群的并行使用("复制")通常不被支持,但通过主/卫星方法可以实现。功能集群到分区的分配方式如下:

在以上所有场景中,以下限制适用:

AUTOSAR 支持上述场景,并涵盖以下关键特性:

在所有场景中,不同模块实体之间的通信保持不变(与单分区中运行的 BSW 相比)。

2.1.2 性能用例与硬件分配到不同核(Performance Use Cases and Hardware Assigned to Different Cores)

以下用例展示了如何通过将 BSW 分配到多个分区和核来提升系统性能,以及多核系统中访问外设硬件的场景如何受益于 BSW 多分区/多核分配:

2.1.3 技术概述(Technical Overview)

以下是对后续章节中技术解决方案的简要总结:

该方案满足性能和安全性要求,同时最小化对已标准化 BSW 模块接口的影响(RS_BRF_00206RS_BRF_01160)。大多数更改都隐藏在模块内部(例如通过提供主/卫星实现),而不会影响其他模块。不同模块之间的接口保持不变。

2.1.3.1 BSW 功能集群(BSW Functional Clusters)

BSW 功能集群是功能上相关的 BSW 模块的分组。每个功能集群包含一组 BSW 模块。可以有多个相同类型的 BSW 功能集群(例如在不同 BSW 分区中有多个 I/O 集群),每个集群使用不同的模块集(例如一个分区中是 IOHWA + ADC,另一个分区中是 IOHWA + ADC + DIO)。

以下类型的集群可能在后续版本中标准化:

BSW 功能集群到 BSW 分区的分配由应用软件对 BSW 模块的使用决定。功能集群可分配到不同 BSW 分区,相同类型的功能集群可在多个 BSW 分区中可用。不同功能集群可分配到相同或不同的 BSW 分区。

同一功能集群在每个 BSW 分区中最多只能存在一份

BSW 功能集群由应用或其他 BSW 模块使用,用于访问总线、内存、I/O 通道和看门狗,通常只需要在一个或少数几个 BSW 分区中存在。

BSW 功能集群的引入不改变现有 BSW 与 RTE 之间的 AUTOSAR 接口。

2.2 BSW 模块的并行执行(Parallel Execution of BSW modules)

2.2.1 与核相关的分支(Core-Dependent Branching)

核相关分支是在代码中根据当前执行核选择不同实现路径的方法。这是支持多核系统的最简单方式,但会引入核依赖性,不建议广泛使用。

2.2.2 主/卫星方法(Master/Satellite-approach)

主/卫星方法将一个 BSW 模块的实体(entity)拆分为一个实体和多个卫星实体。

主实体通过 OS 的IOC(Inter-OS-Application Communication)机制接收来自卫星的请求。这允许在多个核上同时存在模块接口,但实际功能仅在一处实现。

2.2.3 使用 BSW 调度器进行分区间通信(Using the BSW Scheduler for Inter-Partition-Communication)

BSW 调度器(BSW Scheduler)负责管理跨分区的 BSW 通信。它生成必要的代码以处理分区间的请求/响应。

2.2.4 使用共享缓冲区(无内存保护的系统)(Using Shared Buffers (in systems without memory protection))

在没有内存保护的系统中,分区间可通过共享缓冲区直接传递数据指针。但需要额外的同步机制保护共享数据的访问。

2.2.5 访问硬件/驱动(Accessing Hardware/Drivers)

硬件访问通常绑定到特定核。BSW 模块应仅从其所在核访问硬件,跨核硬件访问需要 IOC 等机制转发。

2.2.6 模块的并发安全实现(Concurrency safe implementation of modules)

可重入性(re-entrancy)是 BSW 模块在多核系统中的关键属性。模块的可重入实现需要:

2.3 并行 BSW 执行的 SchM 接口(SchM Interfaces for Parallel BSW execution)

BSW 调度器(SchM)为并行执行的 BSW 模块提供关键区(critical sections)管理 API。SchM 接口在多核系统中通过 OS 的 RESOURCE 机制实现。

2.4 分区系统中基础软件的配置(Configuration of Basic Software in Partitioned Systems)

2.4.1 任务映射(Task Mapping)

任务到分区的映射决定 BSW 模块的执行位置。映射规则包括:

2.4.2 主和卫星的通用配置(General Configuration of Master and Satellites)

主/卫星方法需要在 BSW 模块描述中明确声明主实体和卫星实体,并配置它们之间的通信通道(IOC)。

2.4.3 配置 BswM(按分区)(Configuring the BswM (per Partition))

BswM(基础软件模式管理器)在每个分区中实例化,处理该分区内的模式切换和动作列表。

2.4.4 配置 EcuM(按核)(Configuring the EcuM (per Core))

EcuM(ECU 状态管理器)仅在主核上实例化,负责整个 ECU 的启动、睡眠和关闭。其他核的 EcuM 状态由主核通过模式切换分发。

2.5 MCAL 分布(MCAL Distribution)

2.5.1 介绍(Introduction)

MCAL 驱动是最底层与硬件交互的软件。在多核系统中,MCAL 驱动的分布需要特殊考虑。本节描述 MCAL 多核分布的概念。(状态:草案

2.5.2 使用假设(Assumptions of Use)

假设条件:

2.5.3 约束(Constraints)

约束包括:

2.5.4 MCAL 用户定义(Definition of MCAL Users)

MCAL 用户是指调用 MCAL API 的模块,包括:

2.5.5 多核能力分类标准(Multi-Core Capabilities Classification Criteria)

MCAL 模块的多核能力按以下标准分类:

2.5.6 MCAL 多核类型定义(Definition of MCAL Multi-Core Types)

基于上述标准,AUTOSAR 定义以下 MCAL 多核类型:

类型说明
Type 1(强绑定)模块的所有 API 必须从单一核调用,不能跨核调用
Type 2(弱绑定)模块可由多个核调用,但需内部同步
Type 3(可重入)模块完全可重入,多个核可同时调用
Type 4(无状态)模块无状态,可被任何核调用

2.5.7 将 MCAL 模块映射到多核类型(Mapping MCAL Modules to Multi-Core Types)

不同的 MCAL 模块根据其硬件特性和 API 设计归入上述类型。例如:

2.5.8 分离策略与元素映射(Seperation Stragies and Mapping of Elements)

分离策略描述如何将 MCAL 元素(通道、引脚、硬件寄存器组等)分配到不同的核。常见策略包括:

2.5.9 分离策略(Separation Strategies)

详细描述各分离策略的优缺点及适用场景。

2.5.10 元素映射(Mapping of Elements)

MCAL 元素(通道、HWR 资源等)的具体映射规则,取决于硬件架构和功能需求。

2.5.11 示例(Examples)

本章给出具体的 MCAL 分布配置示例。

3 安全系统中的 BSW 分布(BSW Distribution in Safety Systems)

3.1 功能安全总览(General overview on safety)

本章描述如何通过 BSW 分布实现功能安全(ASIL)要求。自 AUTOSAR 4.2 起,BSW 模块可映射到不同分区,并通过 OS 的内存保护机制实现分区隔离。

3.2 AUTOSAR 中的安全方案(Safety solutions in AUTOSAR)

3.2.1 始终为 ASIL 的模块(Some modules are always ASIL)

某些模块由于其功能性质,必须实现为 ASIL(例如与安全气囊、刹车、转向相关的驱动)。这些模块必须部署在 ASIL 分区中。

3.2.2 整体配置(Overall configuration)

整体安全配置包括:

3.2.3 跨越分区边界(Crossing partition boundaries)

跨分区边界的调用必须通过受信任的接口。AUTOSAR 通过 IOC 机制或受信任函数(Trusted Function)实现安全分区间的通信。

3.2.4 访问外设/硬件(Access to peripherals / hardware)

外设的访问必须由适当的分区独占。如果多个分区需要访问同一外设,必须通过主/卫星模式协调。

3.2.5 启动、关闭与睡眠/唤醒(Startup, Shutdown and Sleep/Wakeup)

EcuM 协调整个 ECU 的启动、关闭和睡眠。所有分区的启动顺序必须明确定义,以满足安全要求。

3.2.6 错误处理(Error handling)

错误必须通过 DEM(诊断事件管理器)上报。ASIL 分区的错误处理必须符合 ASIL 等级要求。

3.2.7 时间保护(Timing protection)

OS 的时间保护机制可检测任务执行时间超出预期、死锁等情况,对 ASIL 应用至关重要。

3.2.8 结合安全与多核(Combining Safety and Multi-Core)

多核与安全的组合需要仔细规划:每个核可有多个分区,但每个核上 QM 分区最多一个。

3.2.9 性能考量(Performance Considerations)

分区隔离会带来一定的性能开销(IOC、上下文切换)。设计时需平衡安全与性能。

3.2.10 约束(Constraints)

实现安全 BSW 分布时的关键约束:

4 后续 AUTOSAR 版本展望(Outlook on Upcoming AUTOSAR Versions)

4.1 已知限制(Known limitations)

4.4 版本的 BSW 分布仍有以下限制:

4.2 分布式 BSW 中的模块间调用(Inter BSW module calls in distributed BSW)

后续版本将标准化跨核 BSW 模块调用的接口和机制。

4.3 标准化的 BSW 功能集群(Standardized BSW functional clusters)

后续版本将定义标准的 BSW 功能集群(包括通信、内存、I/O、看门狗等),简化集成。

5 术语表(Glossary)

5.1 缩略语与缩写(Acronyms and abbreviations)

缩写英文中文
ASILAutomotive Safety Integrity Level汽车安全完整性等级
QMQuality Management质量管理(非安全关键)
BSWBasic Software基础软件
MCALMicrocontroller Abstraction Layer微控制器抽象层
IOCInter-OS-Application CommunicationOS 应用间通信
EcuMECU State ManagerECU 状态管理器
BswMBasic Software Mode Manager基础软件模式管理器
DEMDiagnostic Event Manager诊断事件管理器
CDDComplex Device Driver复杂设备驱动
SW-CSoftware Component软件组件
RTERuntime Environment运行时环境
OSOperating System操作系统
RS_BRFRequirements - Business Requirements Framework需求-业务需求框架

5.2 技术术语(Technical Terms)

术语说明
BSW 分区(BSW Partition)一个受 OS 保护的内存和时间域,用于隔离 BSW 模块的执行。
BSW 功能集群(BSW Functional Cluster)功能相关的 BSW 模块分组,可作为一个整体分配到某个 BSW 分区。
主/卫星(Master/Satellite)将一个 BSW 模块拆分为一个主实体(完整功能)和多个卫星实体(轻量代理)的模式。
抗干扰自由度(Freedom of Interference)分区之间互不干扰的能力,是安全的关键特性。
可重入(Re-entrant)一个函数可被多个上下文并发安全调用的属性。
受信任函数(Trusted Function)可在非信任上下文中调用、运行在信任上下文的函数。
时间保护(Timing Protection)OS 提供的机制,用于检测任务执行时间超出预算等情况。

6 参考资料(References)

编号引用
[1]AUTOSAR 基础软件模块清单
[2]AUTOSAR 分层软件架构(AUTOSAR_EXP_LayeredSoftwareArchitecture.pdf
RS_BRF_00206AUTOSAR 应支持 BSW 模块的多核分布
RS_BRF_01160AUTOSAR 应支持 BSW 模块在多核 MCU 上的分布

📋 校对记录

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