AUTOSAR BSW介绍

BSW架构

上一篇文章提到了基础软件层BSW包含微处理器抽象层(MCAL)、ECU抽象层、服务层以及复杂驱动,而每一层按照功能模块可以进一步划分,如下图所示。

BSW架构

微处理器抽象层MCAL

我们先来看一下微处理器抽象层(MCAL),MCAL是BSW的最低层,它包含一些MCU内部驱动软件模块,这些驱动直接访问MCU内部外设(ADC、WatchDog、General Purpose Timer等)。MCAL这一层依赖于MCU,但是它的上面一层(ECU抽象层)则可以独立于具体的MCU。

MCAL主要包含下面这些模块:

  1. 微控制器驱动
    MCU内部外设驱动,比如看门狗、通用功能定时器等。
  2. 通信接口驱动
    ECU板上通信接口驱动(如SPI, I2C)以及整车通信接口驱动(CAN, 以太网等)
  3. 非易失性存储器(NVM)驱动
    片上NVM驱动(内部Flash、EEPROM等),片外NVM驱动(外部Flash、EEPROM等)
  4. I/O驱动
    模拟和数字I/O驱动(ADC、PWM、DIO等)
  5. 加密模块驱动
    片上加密模块驱动,如SHE、HSM

在这里插入图片描述

ECU抽象层

ECU的全称是Eclectronic Control Unit,直译为电子控制单元,也称为行车电脑。通俗来讲就是MCU加上一些外围必要的电路组成的一个系统,可以对各种输入信号(传感器信号、车载网络信号等)进行加工处理,然后进行信号输出(控制执行器的信号、车载网络信号等)的一个专用嵌入式系统。

在这里插入图片描述

ECU抽象层对MCAL所包含的驱动进行封装,同时它还包含片外设备(板上设备)的驱动。ECU抽象层提供访问各种设备的接口,不管这些设备的位置在哪里(是MCU内部还是MCU外部),也不管它们是如何与MCU进行连接的(端口还是串行通信)。它的任务是让上层软件(服务层)独立于ECU硬件设备。

片外设备顾名思义是位于MCU外部的设备,或者说是ECU的板上设备。这些设备包括但不限于:

  1. 外部EEPROM
  2. 外部看门狗
  3. 外部FLASH

片外设备的驱动被称为外部驱动,它们位于ECU抽象层,它们通过MCAL层的驱动访问这些外部设备。一个例子是,具有SPI接口的外部EEPROM的驱动程序,通过MCAL的SPI总线驱动对外部EEPROM进行访问。

ECU抽象层通常包含一系列接口,这些接口是对位于它们下方的模块的抽象。它提供访问特定类型设备的通用API,不关心该类型设备存在的个数以及具体的硬件实现。接口层只负责数据的传递,不改变数据的内容。比如,一个CAN通信系统的接口提供访问CAN网络的API,调用者不必关心CAN控制器的个数,也不用关心CAN控制器的位置是在MCU内部还是MCU外部。

复杂驱动CDD

复杂驱动跨越MCAL、ECU抽象层和服务层,是AUTOSAR标准之外的基础软件模块。一般是通过特定中断或复杂的MCU外设,用来实现传感器处理和执行器驱动,比如电机控制、电磁阀控制、位置检测等。

复杂驱动的任务是实现特殊功能或者对时序有较高要求的功能,用以处理复杂的传感器和执行器。复杂驱动高度依赖于MCU、ECU和应用软件。

在这里插入图片描述

服务层

服务层是BSW的最高层,为上层的应用软件提供各种服务:

  1. Input/Output
    对传感器、执行器以及ECU板上设备的标准访问服务
  2. 存储服务
    对内部/外部存储设备的标准化访问服务(NVM)
  3. 通信服务
    对车载网络系统(CAN, LIN)、ECU板上通信系统(SPI, I2C)的标准访问服务
  4. Off-Board通信
    对V2X通信,车内无线通信网络系统的标准化服务
    系统服务
  5. 标准化的系统服务(操作系统,定时器)
  6. 诊断服务
    UDS诊断服务,内存错误检测,DTC等
  7. ECU状态管理
    ECU电源状态管理,模式管理服务,看门狗管理
  8. 加密服务
    对密码原语的标准化访问服务,包括内部/外部硬件加速器

在这里插入图片描述

以上是对BSW的介绍,下一篇介绍一下RTE层。更多干货,请关注微信公众号”日拱一卒不期而至“,我们后会有期。

<think>好的,我现在需要回答用户关于BSW架构的介绍、原理和实现的问题。首先,我需要查阅提供的引用资料,尤其是引用[1]、[3]、[4]、[5],因为这些直接提到了BSW相关内容。 引用[1]简要提到BSW的三层子架构,但具体内容需要进一步分析。引用[3]讨论的是BSW中的Memory Stack,特别是FEE模块,涉及初始化和Flash组织。引用[4]和[5]涉及CAN网络管理模块和CAN通讯的实现,属于BSW中的通信协议栈部分。 用户的问题需要涵盖BSW架构的整体介绍、设计原理以及实现方法。根据AUTOSAR标准,BSW通常分为服务层、ECU抽象层、复杂驱动层和微控制器抽象层。需要确认这些层次在引用中的体现。引用[2]虽然主要讲AP AUTOSAR,但可能对理解BSW有帮助,因为CP和AP有区别,但用户问题集中在BSW,属于CP AUTOSAR。 接下来,需要组织信息结构。首先介绍BSW的定义和作用,然后分层次解释每个子层的功能和原理,接着结合引用中的例子(如FEE模块、CAN NM模块)说明具体实现,最后总结应用场景和相关技术。 需要注意的是,用户提供的引用中有部分可能不直接相关,比如引用[2]关于AP的,但需要确保只引用与BSW相关的部分。同时,生成的问题需要围绕BSW架构展开,可能涉及子模块、设计方法或实际应用等。 需要验证引用内容是否准确,如引用[3]中的FEE模块属于Memory Stack,引用[4]中的CAN NM模块属于通信协议栈,这些都是BSW的组成部分。此外,确保LaTeX格式正确,行内公式使用$...$,独立公式用$$...$$,但当前回答可能较少涉及数学公式,可能需要检查是否有必要添加。 最后,生成的相关问题应基于BSW架构的子模块、设计原理、实现案例或与其他模块(如AP)的对比,确保问题具有针对性和延伸性。</think>### BSW架构介绍、原理及实现 #### **1. BSW架构概述** **基础软件层(Basic Software, BSW)** 是AUTOSAR(汽车开放系统架构)的核心组成部分,旨在为汽车电子控制单元(ECU)提供标准化的底层服务。BSW通过模块化设计,将硬件依赖性与应用层解耦,支持跨平台复用[^1]。其核心功能包括通信管理、内存管理、诊断服务、IO控制等。 #### **2. BSW架构分层与原理** BSW分为以下子层(引用自AUTOSAR标准): 1. **服务层(Service Layer)** - **功能**:提供系统级服务,如网络管理(CAN NM)、诊断协议(UDS)、存储管理(如FEE模块)等。 - **示例**:CAN NM模块通过标准化协议实现网络节点的协同唤醒与休眠[^4]。 - **原理**:通过状态机管理网络通信,例如在总线静默时触发低功耗模式。 2. **ECU抽象层(ECU Abstraction Layer)** - **功能**:屏蔽硬件差异,为上层提供统一接口(如CAN控制器、IO端口)。 - **实现**:例如,CAN驱动通过抽象接口将物理信号映射为逻辑帧[^5]。 3. **微控制器抽象层(Microcontroller Abstraction Layer, MCAL)** - **功能**:直接操作硬件寄存器,管理ADC、PWM、GPIO等外设。 - **关键模块**:如内存管理模块(FEE)通过`Fee_Init()`初始化Flash存储分区[^3]。 4. **复杂驱动层(Complex Drivers)** - **功能**:处理非标准化硬件或实时性要求高的操作(如传感器信号滤波)。 - **实现**:需手动编码,部分逻辑可调用MCAL接口。 #### **3. BSW实现案例** - **内存管理(Memory Stack)** FEE模块(Flash EEPROM Emulation)负责虚拟化Flash存储,支持块读写与磨损均衡。初始化时需调用`Fee_Init()`,且首次操作后才会完成扇区配置。 **代码示例**(伪代码): ```c void Main() { Fee_Init(); // 初始化FEE模块 Fee_Read(BlockId, DataPtr); // 读取NV块数据 } ``` - **通信管理(CAN协议栈)** CAN NM模块通过状态机管理网络通信,例如: - **唤醒**:总线活动触发ECU从睡眠模式唤醒。 - **休眠**:无活动时发送休眠请求,协调各节点进入低功耗模式。 #### **4. BSW的应用场景** - **车载网络管理**:通过CAN NM模块实现多ECU协同。 - **诊断服务**:基于UDS协议读取故障码或更新软件。 - **存储管理**:FEE模块用于保存标定数据或事件日志。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值