网站首页 > 技术文章 正文
BSW架构
上一篇文章提到了基础软件层BSW包含微处理器抽象层(MCAL)、ECU抽象层、服务层以及复杂驱动,而每一层按照功能模块可以进一步划分,如下图所示。
微处理器抽象层MCAL
我们先来看一下微处理器抽象层(MCAL),MCAL是BSW的最低层,它包含一些MCU内部驱动软件模块,这些驱动直接访问MCU内部外设(ADC、WatchDog、General Purpose Timer等)。MCAL这一层依赖于MCU,但是它的上面一层(ECU抽象层)则可以独立于具体的MCU。
MCAL主要包含下面这些模块:
- 微控制器驱动MCU内部外设驱动,比如看门狗、通用功能定时器等。
- 通信接口驱动ECU板上通信接口驱动(如SPI, I2C)以及整车通信接口驱动(CAN, 以太网等)
- 非易失性存储器(NVM)驱动片上NVM驱动(内部Flash、EEPROM等),片外NVM驱动(外部Flash、EEPROM等)
- I/O驱动模拟和数字I/O驱动(ADC、PWM、DIO等)
- 加密模块驱动片上加密模块驱动,如SHE、HSM
ECU抽象层
ECU的全称是Eclectronic Control Unit,直译为电子控制单元,也称为行车电脑。通俗来讲就是MCU加上一些外围必要的电路组成的一个系统,可以对各种输入信号(传感器信号、车载网络信号等)进行加工处理,然后进行信号输出(控制执行器的信号、车载网络信号等)的一个专用嵌入式系统。
ECU抽象层对MCAL所包含的驱动进行封装,同时它还包含片外设备(板上设备)的驱动。ECU抽象层提供访问各种设备的接口,不管这些设备的位置在哪里(是MCU内部还是MCU外部),也不管它们是如何与MCU进行连接的(端口还是串行通信)。它的任务是让上层软件(服务层)独立于ECU硬件设备。
片外设备顾名思义是位于MCU外部的设备,或者说是ECU的板上设备。这些设备包括但不限于:
- 外部EEPROM
- 外部看门狗
- 外部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的最高层,为上层的应用软件提供各种服务:
- Input/Output对传感器、执行器以及ECU板上设备的标准访问服务
- 存储服务对内部/外部存储设备的标准化访问服务(NVM)
- 通信服务对车载网络系统(CAN, LIN)、ECU板上通信系统(SPI, I2C)的标准访问服务
- Off-Board通信对V2X通信,车内无线通信网络系统的标准化服务
- 系统服务标准化的系统服务(操作系统,定时器)
- 诊断服务UDS诊断服务,内存错误检测,DTC等
- ECU状态管理ECU电源状态管理,模式管理服务,看门狗管理
- 加密服务对密码原语的标准化访问服务,包括内部/外部硬件加速器
以上是对BSW的介绍,下一篇会介绍一下RTE层。如果大家对AUTOSAR或者汽车软件开发有兴趣,可以关注微信公众号“汽车软件后花园”,获取更多干货。
- 上一篇: AUTOSAR概述
- 下一篇: 纯电动汽车整车控制器软件设计
猜你喜欢
- 2024-12-14 鉴源实验室:车载ECU嵌入式设备的诊断测试 - 会话和安全控制
- 2024-12-14 AUTOSAR学习笔记之服务层介绍
- 2024-12-14 大众汽车为所有ID.系列引入OTA无线更新
- 2024-12-14 纯电动汽车整车控制器软件设计
- 2024-12-14 AUTOSAR概述
- 2024-12-14 什么是AUTOSAR(一)——AUTOSAR概述
- 2024-12-14 UDS网络层介绍
- 2024-12-14 CAN编程介绍
- 2024-12-14 想要快速进阶车载测试!这些基础问题你一定要知道
- 2024-12-14 一种本机网络 IO 方法,让你的性能翻倍
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)