SciTech-EECS-Autosar-4: BSW(Basic SoftWare): 基础软件层
SciTech-EECS-Autosar-4: BSW(Basic SoftWare): 基础软件层
4: BSW(Basic SoftWare): 基础软件层
AUTOSAR软件体系结构 是 一个“分层体系架构”,包含:
- APP(Application Layer, 应用层), 完全独立于硬件的。
- BSW(Basic Software, 基础软件层), 与硬件有关的。
- RTE(Run Time Environment, 运行时环境), 使APP层分离BSW层。
一方面,OEM可以专注于开发特定的、有竞争力的APP(应用层软件, 位于RTE之上),
另一方面,它使OEM所不关心的BSW(基础软件层, 位于RTE之下)得到标准化。
BSW: 基础软件层
结构如下图所示。

如上图所示,BSW(基础软件层主要包括四部分:
- MCAL(微控制器抽象层): 与硬件有关的驱动程序, 用于 访问内存、通信和I/O等;
- ECU(抽象层): 提供统一的API 实现对 通信、内存 或I/O 的访问.
透明地访问资源: 由 MCU(微处理器) 或 MCU的外部设备 提供都可以. - SERVICE(服务层): 提供各种类型的后台服务.
例如网络服务、内存管理和总线通信服务等, 操作系统就位于这一层. - COMPLEX DRIVERS(复杂驱动)
BSW(基础软件层) 提供 "基础软件服务", 包括标准化的系统功能以及功能接口,
并且由一系列的 "BSW软件组件" 构成,如下图所示。

BSW的 "组件及其功能"
- 系统:提供标准化的规定. 针对
OS、Timer及错误存储器、
ECU特定的服务: ECU状态管理、WatchDog管理
库函数; - 内存:对内部和外部的内存(非易失性存储器)的访问入口进行标准化;
- 通信:对汽车网络系统、ECU通信系统以及ECU内部软件的访问入口进行标准化;
- I/O(输入/输出):对传感器、执行器以及ECU外设的访问入口进行标准化;
BSW(基础软件层) 模块 按照类型可以分为:
-
驱动模块 : 包含 控制和使用 内部或者外部器件 的功能. 分:
- 内部驱动: MCU内部器件资源 的驱动程序, 在MCAL层
如: 内部EEPROM、内部CAN控制器、内部ADC模块 等。 - 外部驱动: MCU外部硬件资源 的驱动程序(ECU硬件), 在ECU抽象层
如: 外部的 EEPROM、WatchDog、Flash等。
外部驱动程序 要 通过 MCAL层驱动程序 才能驱动 外部器件。
这使 AUTOSAR支持嵌入在SBCs(System Basic Chips)的组件(如 收发器, WatchDog等)。例如: SPI接口的 外部EEPROM驱动程序 通过 SPI总线处理程序 驱动 外部EEPROM。
有一种例外, 和 内存映射有关的外部器件(如外部Flash) 其驱动程序 可直接对 MCU 存取访问,
- 内部驱动: MCU内部器件资源 的驱动程序, 在MCAL层
-
接口模块: 抽象其 桥接模块; 不改变通过数据的内容; 一般在ECU抽象层
如: 抽象 一个 特定功能的硬件。- 提供一个通用API(接口函数)以访问 "一种特定的器件类型":
与 "该类型器件的数目" 无关,同时也与 "器件的具体硬件实现" 无关。 - 例如: CAN通信系统的接口模块, 提供一个通用的接口函数来访问CAN通信网络,
并且与ECU上 CAN控制器的数目 以及 硬件实现 无关。
- 提供一个通用API(接口函数)以访问 "一种特定的器件类型":
-
处理模块: 一个专用接口; 不会改变数据本身的内容
它控制 "一个或多个客户端" 对 "一个或多个驱动程序" 能 "并行、多重 及 异步"地访问,
有** 缓冲、队列、仲裁 及 多路复用 的功能**。
处理模块通常会并入驱动程序 或是接口模块( 如 SPIHandlerDriver、ADC Driver等)。 -
管理器: 为 "多重的客户端" 提供 特定服务; 一般在 SERVICE层。
当单个处理程序 不能满足对 多重的客户端 的抽象时,就要用 "管理器" 处理。
管理器 不仅有 处理功能, 还可以对 "数据内容" 进行 "评估、改变 或 适应数据内容"。
如: NVRAM管理器, 管理 对内部或外部存储设备 的并行访问(如Flash、EEPROM等), 同时还可完成"分布式并可靠" 的"数据存储、数据校验 及 默认值规定"等。

浙公网安备 33010602011771号