自适应 AUTOSAR 如何实现自动驾驶

简介: 自适应 AUTOSAR 如何实现自动驾驶

在我的上一篇文章中,我讨论了虚拟 ECU,并且我非常强调 AUTOSAR 作为轻松交换软件功能的基础。然而,这一切都是关于经典的 AUTOSAR,或者更准确地说,是 AUTOSAR 经典平台。但是在自动驾驶的背景下,大家都在谈论自适应AUTOSAR,或者说AUTOSAR Adaptive Platform

4887a7a5388935af5e62b6739abc6662_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

当自适应平台第一次与客户讨论时,它基本上是这样的:

客户:“我们需要软件架构的灵活性来进行无线更新。”

我:“你打算怎么做?”

客户:“我们还不知道,但自适应 AUTOSAR 会。”

那是自适应平台首次发布的几个月前。因此,我们的期望很高,它们完全符合我的 dSPACE 同事已经在努力支持我们的软件在环工具链中的“自适应”的渴望。

当然,每个人都应该知道一个基本事实:自适应 AUTOSAR 不是经典 AUTOSAR 的继承者;它不会取代它。相反,它是定义 ECU 软件以及它如何在 ECU 硬件或虚拟机上运行的另一种方法。

为什么选择自适应 AUTOSAR平台?


发明新平台的原因是什么?AUTOSAR 的第一次启动是在 2002 年,到今天为止,AUTOSAR Classic Platform 已经有一个成熟的版本 4。如果您正在寻找一个模块化标准来编码和交换汽车领域的嵌入式软件,建议您用它。

但汽车行业正在重塑自我。随着自动驾驶,对软件架构的要求发生了根本性的变化。

请记住,我们的自动驾驶汽车必须:

  • 与他们的环境交流。
  • 使用大量传感器观察他们的环境。
  • 使用这些数据来做出许多驾驶决定,其中大多数对我们的健康,有时甚至对生命至关重要。

让我们把它翻译成更专业的术语:

  • 我们的汽车只是另一个设备,连接到一切。这可能包括您的智能家居,但它首先包括与数据后端、其他汽车和拐角处的交通信号灯的通信。
  • 它使用媒体流。不是为您的孩子在后面,而是为不断扫描环境并生成大量数据以确保您的高速公路飞行员或紧急休息工作的传感器。
  • 它需要足够的计算能力来运行经过全面训练的最先进的神经网络来解释传感器数据并做出正确的决定。
  • 购买后必须定期使用最新软件进行更新,并且我们不希望在商店中闪烁 ECU 的麻烦。

这些项目只是部分自动驾驶和自动驾驶的注意事项示例。

它们对软件的开发方式有着巨大的影响。

当您决定如何开发软件时,您还必须决定特定的软件架构,并且您不会轻易做出决定。每个软件架构都有一个目的。

使用 AUTOSAR 经典平台,您可以设计具有特定目标的软件架构。这都是关于“深度嵌入”的软件:

  • 它在小型专用硬件上运行(就计算能力而言)。
  • 它是为 ECU 设计、创建和闪存的,然后它就可以工作——无需修改它。
  • 它的通信(主要)针对使用传统汽车总线网络(如 CAN)的相对较小数据包的循环广播。

这些都不符合我们对上述自动驾驶的期望。仅从三个示例中,我们已经可以看到必须满足新的要求:

  • 必须在两个或三个功能之间交换连续的传感器数据流,而不是向整个网络广播的小数据包。
  • 即使在图形处理单元 (GPU) 的支持下,也有更多的计算能力可以真正快速地处理数字。
  • 灵活的软件,可以在运行时更换,也可以连接到最先进的网络系统(不关心汽车使用哪种通信协议)。

AUTOSAR Classic 平台并非专为自动驾驶而设计。因此,AUTOSAR 创建了自适应平台——正是考虑到了新的要求。

57619407a37765302d9b37979b289e3c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


灵活性是关键


借助自适应平台,软件功能之间的通信不再以循环突发的方式进行,而是面向服务的。一个“自适应应用程序”(在经典平台中称为“软件组件”)宣布它能够提供哪些数据,以及它需要哪些数据。代理服务找到正确的匹配项,两个应用程序直接通信。

更重要的是,底层通信不再基于CAN或其他使用专用协议的经典汽车总线系统,而是基于以太网。除了以太网通信之外,SOME/IP [http://some-ip.com] 目前正获得更多关注。作为面向服务的中间件层,它定义了应用程序通信的实际方式。例如,您不再需要直接在代码行为中定义循环触发时间。

作为来自经典平台世界的人,我在非嵌入式环境中理解在运行时替换软件,但在 AUTOSAR 环境中则不然。原因很简单:使用经典平台,软件组件之间的通信是硬连线的,并由 AUTOSAR 运行时环境 (RTE) 实现,它将通信从架构级别转换到 ECU 级别。它通过解析静态宏并将它们转换为适当的基本软件调用来做到这一点,例如,将它们包装到总线消息中。

如果您想拥有可以在运行时更换的软件,这是行不通的。自适应平台通过实现面向服务的通信架构克服了硬连线通信的缺点。

因此,AUTOSAR 运行时环境的自适应版本(ARA,AUTOSAR Runtime for Adaptive Applications)独立于实际应用程序工作。它只是提供代理服务。在任何需要它的应用程序之间建立通信。

最后的结果?您可以在运行时添加或替换软件,因为只有在您启动软件后才会自动建立通信——这不是在设计阶段确定的,不像在经典平台中那样。

关于灵活性的最后一点说明:我们都知道最先进的自动驾驶系统,尤其是在传感器数据处理方面,是在 Linux 系统上开发的。我们需要操作系统提供的所有灵活性,包括灵活的内存分配、线程处理等等。我们不想——也可能不能——仅仅因为我们必须为专门的 ECU 操作系统编译代码而放弃这种灵活性。

因此,自适应平台基于 POSIX 接口。通过将他们的应用程序部署到自适应平台,开发人员现在可以利用他们钟爱的 Linux 的所有优势。那是一回事,不是吗?

概括


我个人的结论是自适应平台是经典平台的姐妹。两个平台有相同的祖先,相同的总体意图:提供开发高质量汽车软件的方法和标准。

它们是互补的:经典平台专门用于经典汽车领域的高效、深度嵌入功能,而自适应平台则针对自动驾驶不断发展的领域,具有该领域所需的所有灵活性,我们可以在软件方面实现这一点架构、通信方式和处理能力。

因此,我们两者都需要。

相关文章
|
10月前
|
机器学习/深度学习 传感器 自动驾驶
探索机器学习在图像识别中的创新应用
本文深入分析了机器学习技术在图像识别领域的最新进展,探讨了深度学习算法如何推动图像处理技术的突破。通过具体案例分析,揭示了机器学习模型在提高图像识别准确率、效率及应用场景拓展方面的潜力。文章旨在为读者提供一个全面的视角,了解当前机器学习在图像识别领域的创新应用和未来发展趋势。
|
存储 缓存 数据可视化
SourceTree使用教程图文详解
Git分布式版本控制系统是我们日常开发中不可或缺的一部分,能够大大提高我们协同工作的效率。前面的一篇文章如何玩转Git介绍过Git的相关知识。在工作中往往我们需要使用Git的可视化管理工具进行版本控制。目前市面上比较流行的Git可视化管理工具有SourceTree、Github Desktop、TortoiseGit等等,我们公司主要使用的是SourceTree。该篇文章主要结合日常开发工作的对于sourctree的一些常用操作进行讲解和总结,帮助没有使用过的同学进行快速入门,希望能对大家有所帮助!
2007 0
SourceTree使用教程图文详解
|
编解码 监控 网络协议
一文读懂以太网与CANoe的配置
一文读懂以太网与CANoe的配置
一文读懂以太网与CANoe的配置
|
9月前
|
存储 Java
Bitmap位图(Java实现)
本文介绍了使用Java实现一个简单的Bitmap,通过自定义byte数组存储数据,提供put和exist方法分别用于插入数据和查询数据是否存在。Bitmap利用位操作高效地管理大量布尔值,适用于空间优化的场景。代码中详细解释了位图的核心原理、方法实现及边界检查。后续计划探讨位图在海量数据去重中的应用及JDK BitSet源码分析。
665 7
|
11月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
241 5
|
SQL 人工智能 Cloud Native
数据库技术全攻略:基础、应用与未来趋势
一、引言 在当今数据驱动的时代,数据库技术成为了企业和个人不可或缺的工具
|
前端开发 API Android开发
26. 【Android教程】网格视图 GridView
26. 【Android教程】网格视图 GridView
287 2
|
存储 RDMA 内存技术
nvmf代码分析
nvmf代码分析
|
缓存 编译器 Linux
CPU中断控制和并发处理的内核解析
CPU中断控制和并发处理的内核解析
CPU中断控制和并发处理的内核解析
|
存储 安全 内存技术
ECU Bootloader的三部曲
ECU Bootloader的三部曲
ECU Bootloader的三部曲

热门文章

最新文章