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的 "组件及其功能"

  1. 系统:提供标准化的规定. 针对

    OS、Timer及错误存储器、

    ECU特定的服务: ECU状态管理、WatchDog管理

    库函数;
  2. 内存:对内部和外部的内存(非易失性存储器)的访问入口进行标准化;
  3. 通信:对汽车网络系统、ECU通信系统以及ECU内部软件的访问入口进行标准化;
  4. I/O(输入/输出):对传感器、执行器以及ECU外设的访问入口进行标准化;

BSW(基础软件层) 模块 按照类型可以分为:

  1. 驱动模块 : 包含 控制和使用 内部或者外部器件 的功能. 分:

    • 内部驱动: MCU内部器件资源 的驱动程序, 在MCAL层

      如: 内部EEPROM、内部CAN控制器、内部ADC模块 等。
    • 外部驱动: MCU外部硬件资源 的驱动程序(ECU硬件), 在ECU抽象层

      如: 外部的 EEPROM、WatchDog、Flash等。

      外部驱动程序 要 通过 MCAL层驱动程序 才能驱动 外部器件

      这使 AUTOSAR支持嵌入在SBCs(System Basic Chips)的组件(如 收发器, WatchDog等)。例如: SPI接口的 外部EEPROM驱动程序 通过 SPI总线处理程序 驱动 外部EEPROM。

      有一种例外, 和 内存映射有关的外部器件(如外部Flash) 其驱动程序 可直接对 MCU 存取访问,
  2. 接口模块: 抽象其 桥接模块; 不改变通过数据的内容; 一般在ECU抽象层

    如: 抽象 一个 特定功能的硬件。

    • 提供一个通用API(接口函数)以访问 "一种特定的器件类型":

      与 "该类型器件的数目" 无关,同时也与 "器件的具体硬件实现" 无关。
    • 例如: CAN通信系统的接口模块, 提供一个通用的接口函数来访问CAN通信网络,

      并且与ECU上 CAN控制器的数目 以及 硬件实现 无关。
  3. 处理模块: 一个专用接口; 不会改变数据本身的内容

    它控制 "一个或多个客户端" 对 "一个或多个驱动程序" 能 "并行、多重 及 异步"地访问,

    有** 缓冲、队列、仲裁 及 多路复用 的功能**。

    处理模块通常会并入驱动程序 或是接口模块( 如 SPIHandlerDriver、ADC Driver等)。

  4. 管理器: 为 "多重的客户端" 提供 特定服务; 一般在 SERVICE层

    当单个处理程序 不能满足对 多重的客户端 的抽象时,就要用 "管理器" 处理。

    管理器 不仅有 处理功能, 还可以对 "数据内容" 进行 "评估、改变 或 适应数据内容"。

    如: NVRAM管理器, 管理 对内部或外部存储设备 的并行访问(如Flash、EEPROM等), 同时还可完成"分布式并可靠" 的"数据存储、数据校验 及 默认值规定"等。

SciTech-EECS-Autosar-4: BSW(Basic SoftWare): 基础软件层的更多相关文章

  1. CentOS6安装各种大数据软件 第三章:Linux基础软件的安装

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  2. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  3. GIS基础软件及操作(五)

    原文 GIS基础软件及操作(五) 练习五.空间分析的基本操作 空间分析的基本操作 空间分析模块 空间分析是基于地理对象的位置和形态的空间数据的分析技术,其目的在于提取和传输空间信息.空间分析是地理信息 ...

  4. GIS基础软件及操作(六)

    原文 GIS基础软件及操作(六) 练习六.空间分析的应用 1.加深对缓冲区分析基本原理.方法的认识:2.熟练掌握距离制图创建缓冲区技术方法.3.掌握利用缓冲区分析方法解决地学空间分析问题的能力. 1. ...

  5. GIS基础软件及操作(四)

    原文 GIS基础软件及操作(四) 练习四.空间数据处理 1.空间数据处理(融合.合并.剪切.交叉.合并)2.设置地图投影及投影变换 空间数据处理 数据:云南县界.shp; Clip.shp西双版纳森林 ...

  6. GIS基础软件及操作(三)

    原文 GIS基础软件及操作(三) 练习三.地图配准操作 1.对无坐标信息的地形图(图片格式)进行地图配准操作2.编辑器的使用(点要素.线要素.多边形要素的数字化) 本例主要介绍如何给无坐标信息的地形图 ...

  7. GIS基础软件及操作(二)

    原文 GIS基础软件及操作(二) 练习二.管理地理空间数据库 1.利用ArcCatalog 管理地理空间数据库 2.在ArcMap中编辑属性数据 第1步 启动 ArcCatalog 打开一个地理数据库 ...

  8. GIS基础软件及操作(一)

    原文  GIS基础软件及操作(一) 练习一.浏览地理数据 使用 ArcGIS浏览地理数据 第1步 启动 ArcMap 启动ArcMap.执行菜单命令:开始>>所有程序>> Ar ...

  9. GIS基础软件及操作(十一)

    原文 GIS基础软件及操作(十一) 练习十一.3D 可视分析 1.对地理数据进行透视观察.三维浏览:2.制作飞行动画 GIS数据三维显示 (1) 运行程序:[开始菜单]>>[所有程序]&g ...

  10. GIS基础软件及操作(十二)

    原文 GIS基础软件及操作(十二) 练习十二. ArcMap制图-地图版面设计 设置地图符号-各种渲染方式的使用 使用ArcMap Layout(布局)界面制作专题地图 将各种地图元素添加到地图版面中 ...

随机推荐

  1. 【命令详解001】top

    top命令可以用于实时监控cpu的状态,显示系统中各个进程的资源占用情况. 本次来详细看下top命令. 常用命令示例: top # 对,无参数的top命令是最长用的资源监控命令. [root@VM_0 ...

  2. 高度混淆和多层嵌套的JSP案例免杀思路

    免责声明:本文所涉及的技术仅供学习和参考,严禁使用本文内容从事违法行为和未授权行为,如因个人原因造成不良后果,均由使用者本人负责,作者及本博客不承担任何责任. 01 分析特征 目前webshell检测 ...

  3. 5.3K star!硅基生命新纪元,这个开源数字人框架要火!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "只需3分钟视频素材,就能打造专属数字分身!""开源免费商用, ...

  4. chatGPT:清理 master 分支的文件,并让这个分支只有一个提交

    Q 我的开发工作都在 master 分支上做的,master 分支有很多的开发的时候产生的临时文件.我想清空 master 分支的历史记录.并且只保留 README.md 和 main.py A 你可 ...

  5. openEuler 20.03 LTS安装单病种前置机

    # 下载配置文件包 cd /opt wget https://interface-soft.oss-cn-hangzhou.aliyuncs.com/manual-package/config.tar ...

  6. codeup之C语言11.1 + C语言11.2 + C语言11.4 + 11.7 + C语言11.8(结构体

    讲真,这几道题可以不做,顶多可以注意下结构体和联合体的区别 Description 完成一个对候选人得票的统计程序.假设有3个候选人,名字分别为Li,Zhang和Fun.使用结构体存储每一个候选人的名 ...

  7. minikube dashboard ImagePullBackOff 失败问题的解决方法

    问题 通过minikube启动k8s集群后,我们想安装启动k8s的dashboard插件,执行minikube dashboard后,一直卡住直到提示验证失败. 查看pod状态,我们看到kuberne ...

  8. 基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战

    引言 在精准医疗时代,人工智能技术正在重塑临床决策流程.本文将深入解析如何基于MIMIC-III医疗大数据集,使用Python生态构建符合医疗AI开发规范的糖尿病预测系统.项目涵盖从数据治理到模型部署 ...

  9. curl ifconfig.me 查看Linux服务器公网IP地址

    命令作用:curl ifconfig.me 用于查看Linux服务器公网IP地址. 使用场景:配置Linux服务器IP白名单的时候,需要知道服务器的IP地址,这就到此命令大显身手的时候了.

  10. 洛谷 P1549 [NOIP1997 提高组] 棋盘问题

    洛谷 P1549 [NOIP1997 提高组] 棋盘问题 Problem 构造一个\(n\times n(n\le 10)\)的矩阵,在矩阵中填入\(1,2,\dots,n^2\),使得任意相邻的数之 ...