CP_AUTOSAR分层软件架构内容简介

news2024/9/22 11:24:47

目录

  • 0、前言
  • 1、综述
    • 1.1 AUTOSAR应用范围及拓展性
    • 1.2 架构总体介绍

0、前言

  随着汽车功能需求日益增加,稳定安全的AUTOSAR分层软件架构逐渐作为一个热词呈现在汽车电子软件开发领域。那么AUTOSAR分层软件架构到底包括了哪些内容?架构之间的是什么关系?本篇博文旨在介绍分层软件架构的概念,不涉及到软件架构的详细设计和动态的软件接口。作为一个AUTOSAR软件开发工程师需要具备有全局视野,先了解顶层设计再找准自己的技术栈,才能更好的在整个架构中理解自己的角色。

1、综述

1.1 AUTOSAR应用范围及拓展性

  AUTOSAR,为汽车ECU而生!这些ECU都会有如下共同的特征:

  • 与硬件强交互,如传感器,执行器;
  • 连接到车辆网络上,像CAN,LIN,FlexRay 或者 以太网;
  • 典型的16位/32位微控制器,其通常只有有限的计算能力和内存资源;
  • 实时操作系统;
  • 从片内/片外的闪存中执行程序指令。

  NOTE:在 AUTOSAR 概念中,ECU通常是指一个微控制器加上一些外设和一些软件配置。

  AUTOSAR 拓展性:
  AUTOSAR 软件架构是总体的方法论:

  • 模块是标准的,但功能是可以扩展的;
  • 当前架构中不存在的模块,可以集成到复杂驱动模块,即 Complex Drivers,CDD;
  • 未来标准模块也会继续拓展。

1.2 架构总体介绍

  在前面章节介绍了AUTOSAR的软件架构,在最高的抽象级别上被划分为三层,从上到下依次是:应用层(Application Layer)、运行时环境(Runtime Environment,RTE)、基础软件层(Basic Software,BSW)。

在这里插入图片描述
  AUTOSAR基础软件层可以进一步划分为四个部分:服务层(Services Layer)、ECU抽象层(ECU Abstraction Layer)、微控制器抽象层(Microcontroller Abstraction Layer)、复杂驱动层(Complex Drivers)。

在这里插入图片描述
  AUTOSAR基础软件层可以进一步划分为功能组,例如系统服务层、内存和通信服务等。

在这里插入图片描述
  一、基础软件层,Basic Software Layer:
  微控制器抽象层(Microcontroller Abstraction Layer),位于基础软件层的最底层。它主要包含一些内部驱动程序,可以实现对微控制器和外设的直接访问,如内存,通信,I/O接口等。其主要任务,就是制作出一个更高级别的软件层,使其独立于微控制器而存在。这样做的好处是,当平台切换不同的芯片时,软件架构基本上不需要大的改变。
在这里插入图片描述

  ECU抽象层(ECU Abstraction Layer),为微控制器抽象层提供接口,也会包含了一些外部设备的驱动。它主要负责提供诸多的应用层接口(API),使其被调用时便可以直接访问一些外设和设备,而不去管这些设备的位置(在μC内部/外部)和连接方式(pin脚,或者其它)。其主要任务,就是制作一个更高级别的软件层,使其独立于ECU硬件的布置。这样做的好处是,当平台切换不同的硬件时,比如EE存储,摄像头等,软件架构基本上不需要大的改变。
在这里插入图片描述
  复杂驱动层(Complex Drivers Layer),范围从硬件跨越到RTE层。其主要任务,是为集成一些特殊功能组件提供可能性,比如设备的驱动:

  • 这些驱动未曾出现在AUTOSAR的标准模块;
  • 带有非常高的时效性;
  • 出于移植目的。
    在这里插入图片描述
      服务层(Services Layer),位于基础软件层的最上层,其主要应用于应用层软件相关的:当访问属于ECU抽象层内的I/O信号时,服务层(Services Layer)主要提供如下功能:
  • 操作系统功能组件;
  • 车辆网络通讯和管理服务;
  • 内存服务(NVM管理);
  • 诊断服务(包括UDS通讯、错误内存和故障处理);
  • ECU状态管理和模式管理;
  • 逻辑和临时程序流监控(看门狗管理);
      其主要任务是为了应用程序、RTE和基础软件模块提供基础服务。
    在这里插入图片描述

  二、运行时环境,Runtime Environment,RTE:
  RTE是为应用层软件提供通讯服务的一层,应用层软件主要为(AUTOSAR软件组件,SWC、传感器/执行器组件)。通过RTE,可以实现AUTOSAR应用组件和其它组件之间的通信。其主要任务,就是将应用层组件独立于特定ECU的映射。
在这里插入图片描述
  软件架构—服务类型介绍:

  • 输入/输出,Input/Output(I/O):访问传感器、执行器和板载外设的标准接口;
  • 内存,Memory:访问内/外部内存(非易失性存储)的标准接口;
  • 加密,Crypto:对加密原语的标准化访问,包括内部/外部硬件加速器;
  • 通讯,Communication:访问:车辆网络系统,ECU车载通信系统,ECU内部软件;
  • 车外通讯,Off-board Communication:访问:车到端通信、无线网络系统、ECU车外通讯;
  • 系统,System:提供标准化(操作系统,计时器,错误内存)、提供ECU特定服务(ECU状态管理,看门狗)和库函数;

  基础软件层模块类型—内部驱动介绍:
  内部驱动(驱动包含了控制和访问内部和外部设备的功能),位于微控制器抽象层。而内部设备位于微控制器上,例如:

  • 内部EEPROM;
  • CAN控制器;
  • ADC;

  基础软件层模块类型—外部驱动介绍:
  外部驱动,位于ECU抽象层,其通过微控制器抽象层来访问外部设备。外部设备位于微控制器之外,比如:

  • 外部EEPROM;
  • 外部看门狗;
  • 外部闪存;

  比如:带有SPI接口的外部EEPROM的驱动通过SPI总线的处理程序/驱动程序,来访问外部EEPROM设备。

  基础软件层模块类型—接口介绍:
  接口模块,Interface (interface module) 包含了从模块中抽象出来的功能,这些功能都被架构性的放置在接口里面。例如,接口模块从特定设备的硬件实现中抽象出来。它可以提供一个通用的API,可以来访问特定类型的设备,与该类型的现有设备的数量无关,与不同设备的硬件实现也无关。
  接口不会改变数据的内容。
  一般来说,接口位于ECU抽象层。
  举例:CAN通信系统的接口提供了一个通用的API,来访问CAN通信网络,这与ECU内部的CAN控制器的数量无关,与硬件实现(片上或片外)也无关。

  基础软件层模块类型—处理程序介绍:
  处理程序是一个特定的接口,它控制一个或多个客户端对一个或多个驱动程序的并发、多重和异步访问。也就是说,它执行缓冲、排队、仲裁和多路复用。
  处理程序不改变数据的内容。
  处理程序功能通常包含在驱动程序或接口中(例如SPI HandlerDriver, ADC driver)。

  基础软件层模块类型—管理模块介绍:
  管理模块为多个客户提供特定的服务。在单纯的处理程序功能不足以从多个客户端抽象的所有情况下,都需要它。
  除了处理程序功能之外,管理模块还可以评估、更改或调整数据的内容。
  一般来说,接口位于服务层。
  案例:NVRAM管理模块,管理着内/外部存储设备(如闪存和EEPROM存储器)的并发访问。它还执行分布式和可靠的数据存储,数据检查,提供默认值等。

  软件层—库介绍:
  库是服务于某些功能的函数集合,库:

  • 可由BSW模块(包括RTE)、SW-Cs、库或集成代码调用;
  • 在同一保护环境中的调用者的上下文中运行;
  • 只能调用库函数;
  • 没有内部状态;
  • 不需要任何的初始化;
  • 同步,无需等待点;

   在AUTOSAR中,指定了如下的库文件:

  • 不动点数学;
  • 浮动点数学;
  • 不动点数据拟合;
  • 浮动点数据拟合;
  • 扩展函数(如, 64位运算);
  • 位扩展;
  • 端到端的通信;
  • CRC计算;
  • 原子性多核安全操作。

   AUTOSAR分层软件架构的具体内容将会在下一节中展开介绍!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mac mysql连接中断重新启动办法

遇到如图所示问题,可以用下面的命令重启mysql服务 sudo /usr/local/mysql/support-files/mysql.server start

【深度学习】卷积神经网络(CNN)的参数优化方法

著名: 本文是从 Michael Nielsen的电子书Neural Network and Deep Learning的深度学习那一章的卷积神经网络的参数优化方法的一些总结和摘录,并不是我自己的结论和做实验所得到的结果。我想Michael的实验结果更有说服力一些。本书在github上有中文翻译的…

浅谈 Guava 中的 ImmutableMap.of 方法的坑

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐&…

数据结构与算法编程题16

已知长度为n的线性表A&#xff0c;请写一时间复杂度为O(n)、空间复杂度为O(1)的算法&#xff0c;该算法删除线性表中所有值为item的数据元素。 item 3 数组下标 i 0 1 2 3 4 5 6 7 8 顺序表&#xff1a; 1 2 3 4 3 3 5 3 7 #include <iostream> using namespace std;typ…

jupyter notebook 不知道密码,怎么登录解决办法

jupyter notebook 不知道密码&#xff0c;怎么登录解决办法 1、 windows下&#xff0c;打开命令行&#xff0c;输入jupyter notebook list &#xff1a; C:\Users\tom>jupyter notebook list Currently running servers: http://localhost:8888/?tokenee8bb2c28a89c8a24d…

【【Linux系统下常用指令学习 之 二 】】

Linux系统下常用指令学习 之 二 文件查询和搜索 文件的查询和搜索也是最常用的操作&#xff0c;在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在&#xff0c;或者搜索哪些文件都调用了某个函数等等。 1、命令 find find 命令用于在目录结构中查找文件…

基于IDEA+Tomcat+Mysql开发的企业资产管理

基于Tomcat的企业资产管理信息系统 项目介绍&#x1f481;&#x1f3fb; 企业资产管理系统”项目是一个管理和维护企业资源的平台&#xff0c;能够提供系统管理、内容管理、用户管理、组织架构维护、流程管理、模块管理、角色管理、调度管理和个人设置等功能。 本项目所述的全…

Centos上安装Docker和DockerCompose

安装Docker Docker可以运行在MAC&#xff0c;Windows&#xff0c;CtenOS,UBUNTU等操作系统上。目前主流的版本有Docker CE和Docker EE&#xff0c;CE是免费的开源Docker版本&#xff0c;适用于开发人员和小型团队&#xff0c;EE是适用于企业的容器化解决方案。它基于Docker CE…

【开发实践】使用AES算法加密 .sql文件

一、需求分析 笔者在开发遇到一个小需求&#xff0c;导出数据的sql文件&#xff0c;由于安全监管的需要&#xff0c;对sql文件进行加密处理。实现将sql文件进行加密&#xff0c;最终呈现如下效果&#xff1a; 二、加密文件 1、加密模块 /*** AES加密算法** param sourceFileP…

运动戴什么耳机好?运动无线耳机哪个品牌比较好?运动耳机推荐

​如果你是一名户外运动爱好者&#xff0c;那么一款高品质的运动耳机是必不可少的。它们具备好音质、高稳固性舒适度、防尘防水等多项防护功能&#xff0c;让你在恶劣的天气条件下也能保持音乐的陪伴。面对市面上越来越多的运动耳机&#xff0c;到底哪款更值得入手&#xff1f;…

Co-DETR:DETRs与协同混分配训练论文学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2211.12860.pdf 代码地址&#xff1a; GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一种新的协同混合任务训练方案&#xff0c;即Co-DETR&#xff0c;以从多种标…

自建私有化证书颁发机构(Certificate Authority,CA)实战之 《0x01 Nginx 配置 https单向认证》

自建私有化证书颁发机构&#xff08;Certificate Authority&#xff0c;CA&#xff09;实战之 《0x01 Nginx 配置 https单向认证》 上一篇文章我们介绍了如何自建私有化证书颁发机构&#xff08;Certificate Authority&#xff0c;CA&#xff09;&#xff0c;本篇文章我们将介…

Python 使用XlsxWriter操作Excel

在数据处理和报告生成的领域中&#xff0c;Excel 文件一直是广泛使用的标准格式。为了让 Python 开发者能够轻松创建和修改 Excel 文件&#xff0c;XlsxWriter 库应运而生。XlsxWriter 是一个功能强大的 Python 模块&#xff0c;专门用于生成 Microsoft Excel 2007及以上版本&a…

ECRS生产工时分析软件:工业效率提升的隐形引擎

降本增效往往是企业开工规划的第一步。那到底降什么本&#xff0c;增什么效呢&#xff0c;对于很多企业来说&#xff0c;都是从采购成本入手&#xff0c;结果采购成本是降下来了&#xff0c;但是整体品质却下降了。实际上&#xff0c;要降本增效&#xff0c;优化现场管理才是企…

【LeetCode刷题笔记】DFSBFS(二)

994. 腐烂的橘子(树/图的BFS问题) 解题思路: 多源BFS ,首选找到 所有的腐烂的橘子 ,放入队列中,然后进行 BFS 广搜,广搜的 层数 - 1 就是所需要花费的分钟数。 在最开始先扫描一遍二维数组,将所有的 腐烂的橘子 加入 队列 ,同时统计新鲜橘子的数量 <

Java架构师发展方向和历程

目录 1 导论2 架构师的三观培养3 架构师的遇到的困难4 架构师职责5 架构师之路6 架构师的发展方向7 应用领域架构师8 业务架构师9 系统架构师和企业架构师10 技术路线和演进规划11 一线大厂的技术生态拓张案例12 如何推进项目落地想学习架构师构建流程请跳转:Java架构师系统架…

Spark-06:共享变量

目录 1.广播变量&#xff08;broadcast variables&#xff09; 2.累加器&#xff08;accumulators&#xff09; 在分布式计算中&#xff0c;当在集群的多个节点上并行运行函数时&#xff0c;默认情况下&#xff0c;每个任务都会获得函数中使用到的变量的一个副本。如果变量很…

深信服防火墙路由模式开局部署-手把手教学(小白篇)

PS&#xff1a;深信服的设备只有400能够通过console连接&#xff0c;一般用户是无法连接的&#xff0c;所以大家不要妄想着从Console连接设备了&#xff0c;开局就通过MANAGE进入Web就可以 接通电源后&#xff0c;开机拿一根网线&#xff0c;一端连接防火墙的MANAGE口&#xf…

中国毫米波雷达产业分析2——毫米波雷达产业链分析

一、产业链构成 毫米波雷达产业链分为三部分&#xff1a;上游主要包括射频前端组件&#xff08;MMIC&#xff09;、数字信号处理器&#xff08;DSP/FPGA&#xff09;、高频PCB板、微控制器&#xff08;MCU&#xff09;、天线及控制电路等硬件供应商&#xff1b;中游主体是毫米波…

Electron+VUE3开发简版的编辑器【文件预览】

简版编辑器的功能主要是: 打开对话框,选择文件后台读取文件文件前端展示文件内容。主要技术栈是VUE3、Electron和Nodejs,VUE3做页面交互,Electron提供一个可执行Nodejs的环境以及支撑整个应用的环境,nodeJS负责读取文件内容。 环境配置、安装依赖这些步骤就不再叙述了。 …