AUTOSAR的分层式设计,用于支持完整的软件和硬件模块的独立性(Independence),中间RTE(Runtime Environment)作为虚拟功能总线VFB(Virtual Functional Bus)的实现,隔离了上层的应用软件层(Application Layer)与下层的基础软件(Basic Software),摆脱了以往ECU软件开发与验证时对硬件系统的依赖。

软硬件分离的分层设计,对于OEM及供应商来说,提高了系统的整合能力,尤其标准化交互接口以及软件组件模型的定义提高了各层的软件复用能力,从而降低了开发成本,使得系统集成与产品推出的速度极大提升。

AUTOSAR分层结构及应用软件层功能

图中所示,算上复杂驱动层(Complex Device Drivers),AUTOSAR架构中共分六层:

应用软件层(Application Layer)

运行环境RTE(Runtime Environment)

服务层(Services Layer)

ECU抽象层(ECU Abstraction Layer)

微控制器抽象层(Microcontroller Abstraction Layer)

复杂驱动(Complex Device Drivers)

自上而下逐层介绍:

应用软件层

AUTOSAR的软件被组织在独立的单位软件组件(software-component)中,其中封装了部分或全部汽车电子的功能与行为,包括对具体模块功能的实现以及对应描述,但是对外界仅仅开放了定义好的接口,称之为PortPrototypes,而所有ECU内部组件之间的通信及获取其他ECU资源的动作就都必须要通过接口来访问RTE来完成了。

应用软件层内的通信关系如下:

软件组件能和同一个ECU上其他软件组件通信

软件组件能和位于不同ECU上的其他软件组件通信

软件组件能和有端口并位于同一个ECU上的基础软件(BSW)进行通信

虚拟功能总线VFB及运行环境RTE

虚拟功能总线(VFB)是底层基础软件与网络拓扑结构的抽象,是AUTOSAR提供的所有通信机制的集合,在信息数据交互的过程中,应用程序被建模为组合组件。当系统进行配置时,软件组件就会被映射到指定ECU上,而同时组件间的虚拟连接也被映射到了CAN, FlexRay,MOST等总线上。最后软件组件利用预先定义好的端口,通过VFB来实现通信。

运行环境RTE即是具体单个ECU上对VFB接口的实现,可以理解成是面向对象的编程语言中对象的创建。

各软件组件之间不允许直接进行通信,由RTE封装好了下层如OESK、COM等通信层BSW后,为上层提供数据通信所需的RTE API,再使用端口或者Sender-Receiver通信和Client-Server通信的方式进行交互。

软件组件「SWC1」的运行实体A通过端口「switch」向外发送名为a的数据元素,软件组件「SWC2」的运行实体B则通过端口「cmd」接收该数据。该过程中运行实体A调用的RTE API是Rte_Write_Switch_a, 运行实体B实现时调用的RTE_API是Rte_Read_cmd_a。可见软件组件在与其他软件进行通信时,并不依赖模块所处的网络环境及特定拓扑结构。有些ECU 内部的S/R通信API可以直接映射到赋值语句,而其他某些ECU内的C/S通信API则可以映射为调用服务运行实体的语句。

基础软件层(BSW)层内划分及其功能

服务层(Services Layer)被分为3个部分:

1. 通信服务(Communication Services)

包括CAN、LIN、FlexRay在内的整车网络系统、ECU网络及软件组件内的访问进行了统一封装,模块则通过通信硬件抽象层进行通信:

对上层的应用软件层隐藏了协议以及报文属性

提供了统一的总线通信接口供应用软件层调用

提供了统一的网络管理服务

提供了统一的诊断通信接口

2. 内存服务(Memory Services)

将微控制器内外内存的访问进行统一封装,而NVRAM管理器提供了一个RAM镜像,来支持数据的快速读取。

以统一的格式为上层的应用软件层传输非易失性数据

抽象了内存地址以及属性

为数据的保存、加载、校验保护、验证以及安全存储提供了统一的机制

3. 系统服务(System Services)

提供RTOS服务,包括中断管理、资源管理、任务管理等

提供功能禁止管理、通信管理、 ECU状态管理、看门狗管理、同步时钟管理、基本软件模式管理等服务。

ECU抽象层被分为4部分

1. I/O硬件抽象层(I/O Hardware Abstraction)

通过I/O硬件抽象中的信号接口来访问不同的I/O设备

对电流、电压、频率等I/O信号进行封装传输

对上层的应用软件层隐藏下层的ECU硬件

2. 通信硬件抽象层(Communication Hardware Abstraction)

通信硬件抽象将微控制器及板上所有的通信信道都进行了封装,并对CAN、FlexRay、LIN、MOST等通信方式进行了抽象的定义。

3. 内存硬件抽象层(Memory Hardware Abstraction)

将片内、板上的内存资源进行统一封装,如对片内EEPROM和片外的EEPROM都提供了统一的访问机制。

4. 车载设备抽象层(On-board Hardware Abstraction)

对ECU上特殊的一些外设进行封装,如WatchDog以及时钟等。

微控制器抽象层(Microcontroller Abstraction Layer)被划分为四部分

1. I/O驱动(I/O Drivers)

用于驱动模拟及数字I/O信号,如ADC, PWM,DIO。

2. 通信驱动(Communication Drivers)

负责车辆各模块及整车通信,SPI、CAN等。

3. 内存驱动(Memory Drivers)

控制设备芯片内存(如片内Flash、EEPROM)及外部映射设备(外置Flash)。

4. 微处理器驱动(Microcontroller Drivers)

驱动如看门狗(Watchdog)、时钟模块(Clock Unit)并负责RAM测试及对微控制器抽象层内部设备和映射的微控制器抽象层外部设备的内存访问等功能。

复杂驱动(Complex Device Drivers)

通过对复杂传感器评估,利用中断、TPU、PCP等来实现实时性高的传感器采样、执行器控制等功能。

AUTOSAR架构对软件组织结构的统一,使得当底层硬件配置升级时不需要更改整个系统,有利于未来整车系统软件的更新,而目前各OEM都在着力研发的智能汽车、自动驾驶等技术都对现有的汽车架构提出了较高的要求,因而AUTOSAR的推广也成为了汽车电子行业的趋势。

autosar中bsw架构组成_AUTOSAR架构深度解析相关推荐

  1. autosar中bsw架构组成_AUTOSAR分层架构深度解析

    AUTOSAR的分层式架构设计,用于支持完整的软件和硬件模块的独立性(Independence),中间RTE(Runtime Environment)作为虚拟功能总线VFB(Virtual Funct ...

  2. 1.1 Spring的整体架构--Spring源码深度解析

    前言: Spring 始于2003年,轻量级 Java 开源框架. Spring 是为了解决企业应用开发的复杂性而创建的,它使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情. Sp ...

  3. 享学课堂java架构师课程,深度解析,值得收藏

    8-22 投递简历 8-24 一面(大概1h50min) 0.currenthashmap怎么扩容的?fwn为什么固定hash -1,这样设计有什么好处?帮助扩容是发生在什么阶段?读线程和写线程都会帮 ...

  4. Istio 网关中的 Gateway 和 VirtualService 配置深度解析

    原文链接:请求都去哪了? 通过前几篇文章的学习与实践,我们对 Gateway.VirtualService 和 Destinationrule 的概念和原理有了初步的认知,本篇将对这几个对象资源的配置 ...

  5. 功能安全---AUTOSAR架构深度解析

    AUTOSAR架构深度解析 本文转载于:AUTOSAR架构深度解析 AUTOSAR的分层式设计,用于支持完整的软件和硬件模块的独立性(Independence),中间RTE(Runtime Envir ...

  6. Go后台项目架构思考与重构 | 深度长文

    作者 | 腾讯云后台工程师黄雷 编辑 | 唐小引 来源 | CSDN(ID:CSDNnews) 引言 本文首先介绍了架构的重要性,随后从一个实际项目的重构过程作为主线,逐步引出主流的架构设计思想以及其 ...

  7. 推荐:微服务架构的深度解析!

    通过采用微服务架构,企业最大的收益是帮助内部IT建设沿着可演进的方向发展.支持灵活扩展.降低运维成本.快速响应业务变化. 这些底层技术能力的提升让业务更加敏捷.成本可控,企业也可以从中获得技术红利和市 ...

  8. 深度解析HashMap高频面试及底层实现架构!

    深度解析HashMap高频面试及底层实现架构! HashMap高频面试题 1,Map接口和List接口是什么关系? 2.Map有哪些常用的实现类? 3.请阐述HashMap的put过程? 4.链表中是 ...

  9. 深度解析数据湖存储方案Lakehouse架构

    简介:从数据仓库.数据湖的优劣势,湖仓一体架构的应用和优势等多方面深度解析Lakehouse架构. 作者:张泊 Databricks 软件工程师 Lakehouse由lake和house两个词组合而成 ...

最新文章

  1. python可以干嘛知乎-一行Python代码能做什么?
  2. Visual Studio Code高效开发----自动保存设置方法
  3. java 对象拷贝属性_使用Java对两个对象的属性进行拷贝
  4. leetcode 557. Reverse Words in a String III 、151. Reverse Words in a String
  5. open ssl里面的自定义get***函数失效
  6. 数据结构 - 多路搜索树(2-3树、b树、b+树、b*树)
  7. 补码到底是个什么东西
  8. mysql将查询数据另存
  9. spring 查找实现类_69道Spring面试题和答案
  10. append有时加载不出来_为什么有时候画画很顺手,有时候怎么也画不出来?
  11. c# getresponsestream返回byte[]_C#通过SharpZipLib库创建压缩文件
  12. 第十八章 35用重载比较运算符实现字符串的比较
  13. LeetCode题解之Single Number
  14. 为什么不要在android log中打印中文_Android 开发:揭开App秒开的奥秘
  15. MBA-day12 逻辑学-关系判断
  16. 使用cmd查看电脑显卡的信息
  17. pytorch复现经典生成对抗式的超分辨率网络
  18. MySQL数据库教程天花板,mysql安装到mysql高级,强|硬
  19. Python数据科学环境配置
  20. 如何关闭Internet Explorer 增强的安全配置

热门文章

  1. 如何使用3D MAX建造出DNA双螺旋结构
  2. 纯css实现粒子效果
  3. 文艺女青年成功转型为女汉子
  4. 将表格导出为excel
  5. Windows 11 即将问世 | Windows 10 和 Windows 11 该如何抉择
  6. 企业托管服务器有什么优势
  7. 配置git send-mail发邮件 (126邮箱适用)
  8. 网间互联-国家级互联网骨干直联点
  9. LeetCode 1079 活字印刷
  10. 我是如何学习 Linux 的?