作者:刘向
出品:汽车电子与软件
01
Adaptive AUTOSAR是一种新的汽车软件框架,旨在满足现代汽车行业中不断增长的技术需求。随着汽车变得越来越智能,对处理器的性能要求也在不断增长。Adaptive AUTOSAR旨在通过提供高性能计算和通信机制以及灵活的软件配置来满足这些需求,为车联网和远程诊断、自动驾驶汽车铺平道路。
统一标准可以促进不同供应商之间的互操作性、可复用性,使得汽车制造商能够更容易地集成来自不同供应商的组件。这有助于降低开发成本,缩短开发时间,并提高产品质量。
灵活的软件配置,支持运行时软件更新(OTA),可以实现更快的功能迭代和改进。
面向服务的通信,提供了一系列标准化的服务接口和协议,用于实现各种汽车应用程序之间的通信和交互。
多协议和多硬件平台支持,可以根据实际需求选择最适合的通信协议和硬件平台。
2、利用开源,即特斯拉利用了开源社区的资源和贡献,使用了一些开源的软件组件和工具,例如Linux内核、Qt框架、TensorFlow框架等。这种方式要求特斯拉遵守开源协议和规范,同时也需要与开源社区保持良好的沟通和合作。
3、第三方工具,即特斯拉借助了一些第三方的软件工具和平台,例如TeslaFi、TeslaMate、Tezlab等。这些工具可以提供一些额外的功能和服务,例如数据统计、行程记录、车辆控制等。
1、CP和AP不是为了谁取代谁,而是针对不同的应用领域和不同的功能安全要求相辅相成。
2、CP和AP都在持续开发和完善中
3、具有共同的基础并独立发布
2、AP AUTOSAR使用POSIX操作系统,而CP AUTOSAR使用OSEK操作系统。这意味着AP AUTOSAR可以运行在更多种类的硬件平台上,也可以利用现有的POSIX兼容的软件库和工具。CP AUTOSAR则需要专门为OSEK开发和优化软件。
3、AP AUTOSAR支持多核处理器,而CP AUTOSAR通常运行在单核处理器。这意味着AP AUTOSAR可以充分利用多核处理器的并行计算能力,提高性能和效率。CP AUTOSAR则需要通过分时调度或者分布式系统来实现多任务处理,(通常一次只运行一个程序)。
4、AP AUTOSAR支持网络管理和更新配置管理,而CP AUTOSAR不完全支持。这意味着AP AUTOSAR可以在运行时动态地管理网络拓扑和节点状态,也可以远程地更新和配置软件。CP AUTOSAR则需要在启动时确定好网络结构和节点功能,也需要通过物理介质来更新和配置软件。
5、AP AUTOSAR通常运行在SOC之上,而CP通常运行在MCU上。这意味着AP的硬件主频相对较高,使用POSIX操作系统,支持多进程的程序。基于AP开发的ECU具有更加智能、更大的计算力(基于SOA架构使得AP能够支持多核并行处理)拥有更好的兼容性,功能服务化,接口统一化。更容易实现基于以太网的SOA通信,适合无线,远程,云连接以及部署V2X应用。而CP使用RTOS操作系统是以task的形式,类似于多线程,它运行不了多进程的程序,功耗更低。
现有的Linux是一个通用的操作系统,是按照分时系统设计的,进程调度强调平衡各进程之间的响应时间来保证公平的CPU时间占用,以获得最大的整体性能,这也正是通用操作系统的设计原则。
虽然在后来的2.6版本开始,加入了内核抢占的功能,使它的实时性得到了提升,在某种程度上具备了软实时的能力。
AUTOSAR经典平台适用于嵌入式系统,通过RTE为基础软件和应用软件提供了基础的应用环境资源池以及API,对外接口封装成RTE的形式,主要目的有两个:
一个是实现接口的并发访问,由系统来保证接口调用在多核场景下不发生冲突。
另一个是通过注册之后,代码生成工具可以控制每个模块能够访问的接口,在整个的逻辑上更加清晰,最终实现软硬件的分层解耦,实现软件在不同平台上的复用。
CP AUTOSAR的优点是:
适合于深度嵌入式的电子控制单元(ECU),如车身控制、底盘控制、动力系统等,可以满足实时性、可靠性、安全性等方面的要求。
采用了虚拟功能总线(VFB)的概念,实现了应用层软件组件与基础软件层服务的解耦,支持硬件无关的软件开发。
标准化程度高,规范了详细的接口和配置方法,便于不同厂商之间的软件互操作和重用。
CP AUTOSAR的缺点是:
基于C语言开发,面向过程,不支持面向对象和泛型等高级特性。
基于OSEK操作系统,需要专门为OSEK开发和优化软件,不能利用现有的POSIX兼容的软件库和工具。
只支持单核处理器,不能充分利用多核处理器的并行计算能力。
采用基于信号的静态配置通信方式,需要在编译时确定好组件之间的连接和通信方式,不支持动态地管理网络拓扑和节点状态。
不支持动态更新和配置软件,需要通过物理介质来更新和配置软件,不能适应外部系统的变化。
AP AUTOSAR的优点是:
适合于高性能计算和自动驾驶等应用场景,如环境感知、行为规划、车辆与外部系统的集成等,可以提供更强大的功能和灵活性。
基于C++语言开发,面向对象,支持泛型、模板、多态等高级特性。
基于POSIX操作系统,可以运行在多种硬件平台上,也可以利用现有的POSIX兼容的软件库和工具。
支持多核处理器,可以充分利用多核处理器的并行计算能力,提高性能和效率。
采用基于服务的动态通信方式,可以在运行时动态地连接和使用不同的服务,不需要预先定义好接口和配置。
支持网络管理和更新配置管理,可以在运行时动态地管理网络拓扑和节点状态,也可以远程地更新和配置软件。
AP AUTOSAR的缺点是:
标准化程度低,只规定了一些API和语义,并没有详细地规范每个服务或组件的实现方式,导致不同厂商之间的软件互操作性和重用性较差。
面向服务的架构增加了通信开销和复杂度,需要更高带宽和更好的网络管理能力。
•基础软件层(Basic Software Layer)
基础软件层又可分为四层:包括服务层、ECU 抽象层、微控制器抽象层和复杂驱动。各层又由一系列基础软件组件构成,包括系统服务、存储服务、通信服务等,它们主要用于提供标准化的基础软件服务。
为保证上层与下层的无关性,通常每层只能使用下一层所提供的接口,并向上一层提供相应的接口。BSW是可配置的,并且可以被多个产品线的ECU重复使用
AUTOSAR Adaptive Release R22-11
3、操作系统层(Operating System Layer):AUTOSAR Adaptive Platform使用基于POSIX标准的操作系统,例如Linux或QNX。操作系统层提供了一些基本的操作系统服务和驱动程序,例如内存管理、进程管理、文件系统、网络协议栈、设备驱动程序等。这些服务和驱动程序为运行时层和应用程序层提供了底层的支持。
4、硬件抽象层(Hardware Abstraction Layer):硬件抽象层提供了一个通用的硬件接口,以便AUTOSAR Adaptive Platform可以在不同的硬件平台上运行。硬件抽象层将硬件平台与操作系统层和运行时层分开,以便AUTOSAR Adaptive Platform可以在不同的硬件平台上进行移植和扩展。
这些组件通过标准化的接口进行通信和协作,以实现整个AUTOSAR Adaptive Platform的功能。
可以实现软件的自主可控,不受第三方的限制和影响,可以根据自身的需求和特色进行定制和优化,提升软件的竞争力和创新力。例如,华为自研AP AUTOSAR可以结合自研微控制器芯片,实现软硬件垂直整合优化,提高质量和安全性。
可能可以降低成本和风险,避免购买第三方提供的AP AUTOSAR中间件所需的昂贵的费用,也避免因为第三方的技术问题或者合作变化而导致的项目延误或失败。例如,特斯拉自研了基于Linux开发的实时操作系统,而不使用AP AUTOSAR中间件。
已完成
数据加载中