AUTOSAR架构深度解析

本文转载于:AUTOSAR架构深度解析


AUTOSAR的分层式设计,用于支持完整的软件和硬件模块的独立性(Independence),中间RTE(Runtime Environment)作为虚拟功能总线VFB(Virtual Functional Bus)的实现,隔离了上层的应用软件层(Application Layer)与下层的基础软件(Basic Software),摆脱了以往ECU软件开发与验证时对硬件系统的依赖。 
 
软硬件分离的分层设计,对于OEM及供应商来说,提高了系统的整合能力,尤其标准化交互接口以及软件组件模型的定义提高了各层的软件复用能力,从而降低了开发成本,使得系统集成与产品推出的速度极大提升。

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

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

  1. 应用软件层(Application Layer)
  2. 运行环境RTE(Runtime Environment)
  3. 服务层(Services Layer)
  4. ECU抽象层(ECU Abstraction Layer)
  5. 微控制器抽象层(Microcontroller Abstraction Layer)
  6. 复杂驱动(Complex Device Drivers)

自上而下逐层介绍:


应用软件层

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

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

  1. 软件组件能和同一个ECU上其他软件组件通信
  2. 软件组件能和位于不同ECU上的其他软件组件通信
  3. 软件组件能和有端口并位于同一个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架构深度解析相关推荐

  1. 来来来!我告诉你 AUTOSAR架构深度解析从入门到放弃

    如何快速学习AUTOSAR? 关于AUTOSAR的背景和架构信息,这里就不详细展开了.大家可以参看: AUTOSAR的分层架构 一文了解.今天我们重点讲讲如何快速学习AUTOSAR架构的方法. 如何获 ...

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

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

  3. autosar中bsw架构组成_AUTOSAR架构深度解析

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

  4. 微服务架构深度解析与最佳实践

    微服务架构深度解析与最佳实践 微服务架构的概念,现在对于大家应该都不陌生,无论使用 Apache Dubbo.还是 Spring Cloud,都可以去尝试微服务,把复杂而庞大的业务系统拆分成一些更小粒 ...

  5. 25岁阿里120W年薪架构师推荐学习的750页微服务架构深度解析文档

    前言 当前,微服务架构在国内正处于蓬勃发展的阶段,无论是大型互联网公司还是传统的IT企业,纷纷采用微服务架构构建系统. 在过去几年里,DevOps.云原生.面向演进式架构等理念已经深入人心,围绕微服务 ...

  6. yolov7 网络架构深度解析

    在美团yolov6刚出来不到一个月,yolov4的官方人马yolov7带着论文和代码高调现身,迅速霸屏,膜拜下速度和精度: 四个字"多快好省",yolov7依旧基于anchor b ...

  7. NVIDIA Grace Hopper架构深度解析

    NVIDIA Grace Hopper架构深度解析 NVIDIA Grace Hopper Superchip 架构是第一个真正的异构加速平台,适用于高性能计算 (HPC) 和 AI 工作负载. 它利 ...

  8. 你知道微服务架构深度解析:微服务的主要特性有哪些吗?

    微服务主要特性 粒度更细的服务 微服务架构相比SOA分布式架构强调按业务边界做细粒度的服务拆分.SOA架构使用粗粒度的服务模式来封装业务和技术能力,减少服务交互,但同时带来了业务耦合的复杂性.而微服务 ...

  9. NVIDIA GPU A100 Ampere(安培) 架构深度解析

    NVIDIA GPU A100 Ampere(安培)架构深度解析 文章目录 NVIDIA GPU A100 Ampere(安培)架构深度解析 1. NVIDIA A100 Highlights 1.1 ...

最新文章

  1. 2022-2028年中国马铃薯市场研究及前瞻分析报告
  2. js判断数据类型是哪种
  3. linux下Vi编辑器命令大全
  4. 4G 信令中的 PCO 字段
  5. HMM算例 python 有代码
  6. boost::phoenix::for_each相关的测试程序
  7. 重装mysql遇到的问题
  8. 什么是实验室人员比对人员_CNAS实验室认可对人员、设备的要求
  9. 图文存储常识:单机、集中、分布式、云、云原生存储
  10. 网友疯买、雷军力撑,又一家国货站起来了!
  11. JAVA零碎要点015---java BigDecimal常见操作_加减乘除操作_比较_取几位小数四舍五入_随时更新
  12. linux crontab 实现每秒执行
  13. 深度学习推理性能优化,一个越来越重要的话题
  14. 事件绑定,事件捕获,事件冒泡以及事件委托,兼容IE
  15. 如何编程访问infopath字段
  16. win7下keil4开发s3c2440裸机的开发环境搭建
  17. datax与datax-web安装部署
  18. WEB学习——JavaScript
  19. 电子学:第010课——实验 9:时间与电容器
  20. comparison lemma

热门文章

  1. 字符串匹配算法(C语言实现)
  2. 基于‘纯洁的微笑’开源项目 — Favorites 源码分析
  3. 模型视图简介、QListWidget、QTreeWidget、QTableWidget、QStringListModel、QFileSystemModel
  4. Win11自动删除文件设置方法
  5. 什么是跨域?uniapp跨域问题怎么解决?
  6. python中ndarray是什么意思_什么是Numpy的ndarray
  7. 面向对象第二单元总结——魔鬼电梯
  8. IoT黑板报0111:苹果Swift语言之父离职 转投特斯拉
  9. 乐迪智能陪伴机器人_乐迪陪伴机器人 孩童在智能时代的新玩具
  10. ArcGIS批量栅格影像归一化操作