车载基础软件——国产基础软件开发平台:架构设计
我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
“
人生中最大的谎言就是不活在“此时此刻”。纠结过去、关注未来,把微弱而模糊的光打向人生整体,自认为看到了些什么。你之前就一直忽略“此时此刻”,只关注根本不存在的过去和未来。对自己的人生和无可替代的刹那撒了一个大大的谎言。
”
本文主要介绍了智能汽车车用基础软件开发平台的架构设计。
自动驾驶操作系统是车载智能计算基础平台的核心部分,如图所示。自动驾驶操作系统使用并包含了车控操作系统,其基于异构分布硬件 / 芯片组合,是车控操作系统的异构分布扩展。车控操作系统是指传统车控 ECU 中主控芯片 MCU 装载运行的嵌入式操作系统,如 AUTOSAR(OSEK) 操作系统,可参考 Classic AUTOSAR 软件架构,吸收其模块化和分层思想。
自动驾驶操作系统,除具有车控操作系统的功能和特点外,还能够提供高性能、高可靠的传感器、分布式通信、自动驾驶通用框架等模块,以支持自动驾驶感知、规划、决策、控制等功能的共性实现。自动驾驶操作系统将车控操作系统纳入整体系统软件和功能软件框架。车控操作系统运行在 MCU 上,一般以功能安全 ASIL-D 等级保障车载智能计算基础平台安全可靠,并根据自动驾驶需求进行一定程度上的扩展。
系统软件和功能软件是车载智能计算基础平台安全、实时、高效的核心和基础。自动驾驶操作系统包含系统软件和功能软件两部分。系统软件创建复杂嵌入式系统运行环境。功能软件根据自动驾驶核心共性需求,明确定义自动驾驶各共性子模块。系统软件可参考借鉴 AUTOSAR 软件架构分层思想,可以实现与 Classic 和 Adaptive 两个平台的兼容和交互。功能软件根据自动驾驶共性需求,进行通用模块定义和实现,可补充 AUTOSAR 架构在自动驾驶方面的不足和缺失。
目前应用在汽车或嵌入式系统中的 RTOS(实时操作系统),如 OSEK OS,VxWorks,RT-Linux 等,均可作为计算单元内核的选择,但要考虑其汽车功能安全等级以及市场成熟度。另外,车载智能计算基础平台的复杂性也要求内核系统对系统软件、功能软件及应用软件的库支持和编程性。
国内相关 ICT 企业如华为、中兴等也推出了自研实时内核系统,并开始商用和计划通过汽车功能安全评估。Linux 内核紧凑高效,开源灵活,广泛支持芯片和硬件环境及应用层程序。目前技术路线也有对 Linux 系统进行定制优化,实现部分 CPU 和内存资源保护并高效实时的混合系统,达到功能安全等级要求。QNX 是目前广泛应用的汽车嵌入式 RTOS 内核系统,其建立在微内核和完全地址空间保护基础之上,硬实时、稳定、可靠、安全,满足 ASIL-D 功能安全等级。
目前自动驾驶算法大多在基于 Linux 内核的中间件环境 ROS(机器人操作系统)中进行搭建和验证。ROS 主要提供 “节点” 之间数据传输服务。为了增强 “节点” 之间数据的实时性、持续性和可靠性,近期发布的 ROS2 通讯系统基于分布式系统数据分发服务设计。ROS 依托于 Linux 系统,无法满足车规级和嵌入式系统要求,其效率、安全等方面的问题也限制了其商业产品化。
搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者!
页:
[1]