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等), 同时还可完成"分布式并可靠" 的"数据存储、数据校验 及 默认值规定"等。
SciTech-EECS-Autosar-4: BSW(Basic SoftWare): 基础软件层的更多相关文章
- CentOS6安装各种大数据软件 第三章:Linux基础软件的安装
相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...
- IT基础架构规划方案三(IT基础软件和系统规划)
IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...
- GIS基础软件及操作(五)
原文 GIS基础软件及操作(五) 练习五.空间分析的基本操作 空间分析的基本操作 空间分析模块 空间分析是基于地理对象的位置和形态的空间数据的分析技术,其目的在于提取和传输空间信息.空间分析是地理信息 ...
- GIS基础软件及操作(六)
原文 GIS基础软件及操作(六) 练习六.空间分析的应用 1.加深对缓冲区分析基本原理.方法的认识:2.熟练掌握距离制图创建缓冲区技术方法.3.掌握利用缓冲区分析方法解决地学空间分析问题的能力. 1. ...
- GIS基础软件及操作(四)
原文 GIS基础软件及操作(四) 练习四.空间数据处理 1.空间数据处理(融合.合并.剪切.交叉.合并)2.设置地图投影及投影变换 空间数据处理 数据:云南县界.shp; Clip.shp西双版纳森林 ...
- GIS基础软件及操作(三)
原文 GIS基础软件及操作(三) 练习三.地图配准操作 1.对无坐标信息的地形图(图片格式)进行地图配准操作2.编辑器的使用(点要素.线要素.多边形要素的数字化) 本例主要介绍如何给无坐标信息的地形图 ...
- GIS基础软件及操作(二)
原文 GIS基础软件及操作(二) 练习二.管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 ...
- GIS基础软件及操作(一)
原文 GIS基础软件及操作(一) 练习一.浏览地理数据 使用 ArcGIS浏览地理数据 第1步 启动 ArcMap 启动ArcMap.执行菜单命令:开始>>所有程序>> Ar ...
- GIS基础软件及操作(十一)
原文 GIS基础软件及操作(十一) 练习十一.3D 可视分析 1.对地理数据进行透视观察.三维浏览:2.制作飞行动画 GIS数据三维显示 (1) 运行程序:[开始菜单]>>[所有程序]&g ...
- GIS基础软件及操作(十二)
原文 GIS基础软件及操作(十二) 练习十二. ArcMap制图-地图版面设计 设置地图符号-各种渲染方式的使用 使用ArcMap Layout(布局)界面制作专题地图 将各种地图元素添加到地图版面中 ...
随机推荐
- 【命令详解001】top
top命令可以用于实时监控cpu的状态,显示系统中各个进程的资源占用情况. 本次来详细看下top命令. 常用命令示例: top # 对,无参数的top命令是最长用的资源监控命令. [root@VM_0 ...
- 高度混淆和多层嵌套的JSP案例免杀思路
免责声明:本文所涉及的技术仅供学习和参考,严禁使用本文内容从事违法行为和未授权行为,如因个人原因造成不良后果,均由使用者本人负责,作者及本博客不承担任何责任. 01 分析特征 目前webshell检测 ...
- 5.3K star!硅基生命新纪元,这个开源数字人框架要火!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "只需3分钟视频素材,就能打造专属数字分身!""开源免费商用, ...
- chatGPT:清理 master 分支的文件,并让这个分支只有一个提交
Q 我的开发工作都在 master 分支上做的,master 分支有很多的开发的时候产生的临时文件.我想清空 master 分支的历史记录.并且只保留 README.md 和 main.py A 你可 ...
- openEuler 20.03 LTS安装单病种前置机
# 下载配置文件包 cd /opt wget https://interface-soft.oss-cn-hangzhou.aliyuncs.com/manual-package/config.tar ...
- codeup之C语言11.1 + C语言11.2 + C语言11.4 + 11.7 + C语言11.8(结构体
讲真,这几道题可以不做,顶多可以注意下结构体和联合体的区别 Description 完成一个对候选人得票的统计程序.假设有3个候选人,名字分别为Li,Zhang和Fun.使用结构体存储每一个候选人的名 ...
- minikube dashboard ImagePullBackOff 失败问题的解决方法
问题 通过minikube启动k8s集群后,我们想安装启动k8s的dashboard插件,执行minikube dashboard后,一直卡住直到提示验证失败. 查看pod状态,我们看到kuberne ...
- 基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战
引言 在精准医疗时代,人工智能技术正在重塑临床决策流程.本文将深入解析如何基于MIMIC-III医疗大数据集,使用Python生态构建符合医疗AI开发规范的糖尿病预测系统.项目涵盖从数据治理到模型部署 ...
- curl ifconfig.me 查看Linux服务器公网IP地址
命令作用:curl ifconfig.me 用于查看Linux服务器公网IP地址. 使用场景:配置Linux服务器IP白名单的时候,需要知道服务器的IP地址,这就到此命令大显身手的时候了.
- 洛谷 P1549 [NOIP1997 提高组] 棋盘问题
洛谷 P1549 [NOIP1997 提高组] 棋盘问题 Problem 构造一个\(n\times n(n\le 10)\)的矩阵,在矩阵中填入\(1,2,\dots,n^2\),使得任意相邻的数之 ...