CP_AUTOSAR分层软件架构内容简介

目录

  • 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.hqwc.cn/news/212520.html

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

相关文章

QtCreator9.02不支持JDK11解决

最终效果 使用Android Studio 下载Android SDK Platform 31与Sources for Android 31 下载Android SDK Build Tools 31.0.0 下载NDK 25.1 ,23.1 ,21.3 重要: 下载Android SDK Command-Line Tools ,选择10.0或者9.0其中一个版本 其它版本不支持JDK11 ,本例选择10.0 下载CMak…

Java项目如何打包成Jar(最简单)

最简单的办法,使用Maven插件(idea自带) 1.选择需要打包的mudule,点击idea右侧的maven插件 2.clean操作 3.选择需要的其他mudule,进行install操作(如果有) 4.再次选择需要打包的module&#…

nodejs微信小程序+python+PHP -留学信息查询系统的设计与实现-安卓-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

【论文阅读笔记】Smil: Multimodal learning with severely missing modality

Ma M, Ren J, Zhao L, et al. Smil: Multimodal learning with severely missing modality[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2302-2310.[开源] 本文的核心思想是探讨和解决多模态学习中的一个重要问题:在训练和测…

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

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

SSM家具个性定制管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 家具个性定制管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用…

黑马点评12-实现好友关注/取关功能,查看好友共同关注列表

好友关注 数据模型 数据库中的tb_follow记录博主与粉丝的关系 tb_follow表对应的实体类 Data EqualsAndHashCode(callSuper false) Accessors(chain true) TableName("tb_follow") public class Follow implements Serializable {private static final long ser…

嵌入式系统在工业自动化中的应用

嵌入式系统在工业自动化中的应用非常广泛,它们通过集成控制和实时响应能力,实现了生产线的自动化、智能化和高效化。以下将详细介绍嵌入式系统在工业自动化中的几个重要应用领域,并提供一些示例代码。 1. PLC(可编程逻辑控制器&a…

Web服务器(go net/http) 处理Get、Post请求

大家好 我是寸铁👊 总结了一篇Go Web服务器(go net/http) 处理Get、Post请求的文章✨ 喜欢的小伙伴可以点点关注 💝 前言 go http请求如何编写简单的函数去拿到前端的请求(Get和Post) 服务器(后端)接收到请求后,又是怎么处理请求&#xff0c…

【网络奇缘】- 计算机网络|分层结构|ISO模型

🌈个人主页: Aileen_0v0🔥系列专栏: 一见倾心,再见倾城 --- 计算机网络~💫个人格言:"没有罗马,那就自己创造罗马~" 目录 计算机网络分层结构 OSI参考模型 OSI模型起源 失败原因: OSI模型组成 协议的作用 📝全文…

4.常见面试题--操作系统

特点:并发性、共享性、虚拟性、异步性。 Windows 和 Linux 内核差异 对于内核的架构⼀般有这三种类型: ● 宏内核,包含多个模块,整个内核像⼀个完整的程序; ● 微内核,有⼀个最⼩版本的内核&#xff0…

Python----类对象和实例对象

目录 一.类和类的实例 二.类属性和实例属性 三.私有属性和公有属性 四.静态方法和类方法 五.__init__方法,__new__方法和__del__方法: 六.私有方法和公有方法 七.方法的重载 八.方法的继承 九.方法的重写 十.对象的特殊方法 十一.对象的引用&a…