[AutoSar]基础部分 autosar分层架构及BSW介绍

目录

  • 关键词
  • 平台说明
  • 一、BSW是什么
  • 二、BSW的组成
    • 2.1 微控制器抽象层(MCAL)
    • 2.2 ECU抽象层
    • 2.3 服务层
    • 2.4、复杂驱动
  • 三、功能的实现

  

关键词

嵌入式、C语言、autosar、Rte

平台说明

项目Value
OSautosar OS
autosar厂商vector
芯片厂商TI
编程语言C,C++
编译器HighTec (GCC)

在这里插入图片描述

一、BSW是什么

  BSW(basic software),如图1.1所示,根据autosar的分层架构,BSW层是介于RTE和微控制器层之间的一层封装,让上层可以直接访问到芯片底层。为了适配不同厂商的MCU,BSW自上到下分为了三层,越靠上和下层MCU的硬件的联系就越小。

在这里插入图片描述
(图1.1)

二、BSW的组成

2.1 微控制器抽象层(MCAL)

  (MCAL)MicroController Abstraction Layer。这一层向下直接操作主MCU的寄存器层面。和TI的SDK库差不多,就是把操作寄存器的指令封装供给上层操作,这样上层就能不管是什么芯片都能兼容了。

在这里插入图片描述

2.2 ECU抽象层

  ECU Abstraction Layer。负责将主芯片及其外围设备以及接口一起封装提供给上层调用。外围设备以及接口包括 IO、memory、喂狗、通信芯片等。
在这里插入图片描述

2.3 服务层

  将下面两层的功能归类统一调用,例如FEE、FLS、NVM等归于存储管理,CAN,ETH,SPI等归于通讯管理。上层不需要管下面如何实现通信或者存储,只需要调用服务层即可。服务层总共包含以下服务:诊断(Diagnostics)、管理(ECU and BSW state management) 、存储管理(NVRAM Management)、看门狗管理(Watchdog Manager)、通信(Communication)、操作系统(OS)、调度管理(Schedule Manager)、通信通道管理(Com Channel Management)。
在这里插入图片描述

2.4、复杂驱动

  复杂驱动是对上面三层的一个补充,通常用于复杂传感器或者执行器,SIP包中没有对其进行定义。
在这里插入图片描述

三、功能的实现

  从图中可以看出,想要实现一种功能,都需要从上至下分别经过服务层–>ECU抽象层 -->MCAL
,如下图所框出来的所示。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/337050.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

试问南昌大学——“荧”是怎么“赢”(大学生创新创业疑点案例3)

在第七届中国国际“互联网”大学生创新创业大赛上,南昌大学取得19金并斩获大赛冠军的佳绩! 这期我们一起了解大赛金奖团队——南昌大学荧光微视项目团队的创新创业故事吧! 回望整个比赛历程,团结协作一直是打开项目成功大门的金…

RAG:让大语言模型拥有特定的专属知识

作为一个在Chatbot领域摸爬滚打了7年的从业者,笔者可以诚实地说,在大语言模型的推动下,检索增强生成(Retrieval Augmented Generation,RAG)技术正在快速崛起。 RAG的搜索请求和生成式AI技术,为搜…

省心省力的EMS企业托管服务,全面提升企业运维效能

随着科技革命不断发展,信息化、数字化转型逐渐覆盖企业的方方面面。据IDC《全球数字化转型支出指南》数据显示,2022年全球数字化转型投资规模超过1.5万亿美元,并有望在2026年迈过3万亿美元大关。随着企业对数字化转型的重视加深,相…

牛刀小试 - C++ 实现2048(可存档)

参考文档 借助了这位大佬的开发思路, 开发过程中学到了很多 C语言实现《2048游戏》 技术点: system调整控制台大小的问题 unsigned and 符号位 C对齐输出(左对齐和右对齐) C goto语句详解 完整代码 /********************…

[Linux进程(一)] 什么是进程?PCB的底层是什么?以及进程标识符pid与ppid

文章目录 1、前言2、描述进程 — PCB(os怎么管理进程呢)3、查看进程3.1 方法一3.2 方法二 4、系统调用获取进程标示符(PID)4.1 获取进程的ID4.2 获取进程的父进程ID 5、系统调用创建子进程-fork 1、前言 大家经常都在讲进程,而它到底是什么呢? 这里给大…

2015年电赛控制类—STM32风力摆控制系统资料+源程序

目录 一、项目背景 二、主要研究内容 三、总体思路与研究方案 四、主要研究结果 五、程序 六、图片 一、项目背景 风力摆控制系统是一种利用风力控制物体做简谐运动的系统,风力的利用和控制技术在我国的发展尚未完善,国内正处于起步阶段。风力摆的…

用React给XXL-JOB开发一个新皮肤(二):目录规划和路由初始化

目录 一. 简述二. 目录规划三. Vite 配置 3.1. 配置路径别名3.2. 配置 less 四. 页面 4.1. 入口文件4.2. 骨架文件4.3. 普通页面 五. 路由配置六. 预览启动 一. 简述 上一篇文章我们介绍了项目初始化,此篇文章我们会先介绍下当前项目的目录规划,接着对…

Java网络爬虫--HttpClient

目录标题 技术介绍有什么优点?怎么在项目中引入? 请求URLEntityUtils 类GET请求带参数的GET请求POST请求 总结 技术介绍 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相…

【沉淀之华】SpringBoot配置原生HikariCP数据源两次初始化过程剖析 服务器与本地完全一致却不同数据源结果定位

文章目录 背景介绍场景复现溯源彩蛋 背景介绍 JDK版本:1.8 SpringBoot: 2.2.3.RELEASE 整合原生Hikari数据源连接池 IDEA:2023.1 再保证服务器和本地的启动参数、apollo配置、代码分支完全一致的前提下,经过验证得到如下结论 在…

【ITK库学习】使用itk库进行图像分割(四):水平集分割

目录 1、水平集2、itkFastMarchingImageFilter 快速步进分割3、itkShapeDetectionLevelSetImageFilter 快速步进分割 1、水平集 水平集是跟踪轮廓和表面运动的一种数字化方法。基于图像的亮度均值、梯度、边缘特征的微分计算,进行水平集分割。在itk中,所…

一台Linux服务jdk1.6 与 jdk1.8 并存,tomcat6+tomcat8 并存

Linux jdk1.6,1.8 tomcat6 tomcat8 并存 需求场景: 有一个项目 原来是 jdk1.6tomcat6 部署的,现在需要进行项目架构升级 项目需要适配jdk1.8 然后用 jdk.8 tomcat 8进行部署,然后下架 jdk1.6 的linux服务 现在有一台 jdk.8 tomcat 8的linu…

debug OpenBLAS library 和 应用示例

1. 构建openblas lib git clone gitgithub.com:OpenMathLib/OpenBLAS.git cd OpenBLAS/ 如果要安装在自定义文件夹中,可以修改 PREFIX 的定义: 将 PREFIX /opt/OpenBLAS 修改成 PREFIX ../local/ 然后构建: make -j make install 如果要…