五千字说清汽车基础软件及国产现状

news/2024/12/20 23:40:52/

已剪辑自: https://mp.weixin.qq.com/s?__biz=Mzg4NjIxODk4Mg==&mid=2247498062&idx=1&sn=3445603c9e9f135f0394a6261a9b4b63&chksm=cf9fb0c7f8e839d175d7fdf35b11bb24ec948d25fb12eb52f5a294bc61d3d303b0af6cc9a1f6&scene=21#wechat_redirect

还记得在纯电车浪潮之前,那会儿现在叫的基础软件还叫底层软件,而且比较简单,也就包括芯片和外设的驱动、诊断和通信这些功能,那时大部分的控制器还没有引入OS,一个简单的while(1)解决。

在纯电和智能座舱、自动驾驶浪潮后,域控制器、中央计算单元、SOC引入汽车行业,再加上AUTOSAR标准越来越被行业接受,基础软件的叫法也越来越多。

汽车基础软件是啥呢?从定义来看,是用于实现汽车系统软硬件解耦,与用户应用功能无关,但提供汽车系统服务的一系列支撑的软件集合。通俗点讲就是板级芯片驱动、车载操作系统、Hypervisor和中间件。

操作系统的概念大家多少有点了解,常用的就是ISO、Andriod系统,其主要提供任务管理、进程访问、中断处理、内存管理、文件系统等功能,满足用于实时性、安全性等需求。现在车载中常用的操作系统就是QNX、Linux和Android。

**QNX是一个微内核、非开源、安全实时的操作系统。**QNX系统是由加拿大QSSL公司开发,后在2004年被哈曼国际收购,2010年又转手到黑莓。由于QNX是微内核架构,所以内核就很小,只有几十KB。驱动程序、文件系统、网络协议栈、应用程序都在微内核之外的受保护的内存中运行,这样可以实现组件间的相互独立,避免踩内存导致的内核崩溃。这也是其安全性高、稳定性好、不易受病毒破坏的原因。另外QNX也是首款通过ISO26262 ASIL-D安全认证的实时操作系统。

但是由于其封闭性,导致应用生态比较弱,而且开发难度很大,还有就是授权费很高昂,举个例子,当你在使用QNX系统做开发时,遇到一些疑问时,想问一下技术支持,这个都是按小时收费的,而且费用很贵。

因此其常用在仪表、自动驾驶等对安全性要求很高的控制器上,下图是QNX系统的软件架构。

图片

**Linux是一款开源、功能强大的操作系统。**Linux具有内核紧凑高效等特点,可以充分发挥硬件的性能。它相较于QNX的最大优势就是开源,具有很强的定制开发的灵活度,而且功能强大,但是其稳定性和安全性就比QNX要差不少,因此常用在信息娱乐、智能座舱中,不过也有实力比较强的,将其应用在自动驾驶等安全领域,比如特斯拉。

**Android是发行版本的Linux,系统复杂,功能强大。**由Google和开发手机联盟基于Linux开发的操作系统,其特点是开源、应用生态丰富、可移植性强,适合用在信息娱乐和智能座舱。

三个操作系统的整体对比如下图所示。

图片

从主机厂选择信息娱乐系统的操作系统来看,国外主机厂偏向于基于Linux,而国内主机厂偏向于用Android,比如比亚迪的Dilink,小鹏的Xsmart OS,蔚来的NIO OS等都是基于Android来打造的,这些仅仅是更改上层应用,而不会更改内核相关的。

从上图可以看出,在车载操作系统领域,基本全是国外的,国内如何在该领域逐渐自研,掌握核心技术,首先这个肯定很难,毕竟QNX和Linux在操作系统领域已经积累的几十年。从头做基本是不可能。国内现在做自研操作系统的,基本都是基于Linux,然后逐步实现的,毕竟这么好的开源资源,为啥不用,强如Google不都是基于Linux来做的嘛,苹果的IOS也是基于UNIX来做的。

国内目前也有几家企业在从事操作系统的开发,比如国汽智控打造的ICVOS,支持自主可控的主流芯片以硬件平台,支持L~L4及泊车等自动驾驶应用定制化开发。

图片

华为的智能驾驶操作系统AOS,2020年,TV莱茵集团向华为AOS颁发了软件安全产品ISO 26262:2018 ASIL-D等级认证证书,认证内容包括AOS内核、服务中间件等关键组件,满足车载领域最高安全等级应用的开发需求。华为AOS内核是华为完全自主研发的实时运行环境,具有创新型的架构,可满足车控领域高性能,高安全,高可靠的要求。服务中间件遵循AUTOSAR Adaptive Platform R19-11标准开发,是国内首个符合AUTOSAR Adaptive标准的服务中间件软件产品。另外在智能座舱领域,也推出了基于Linux深度定制的鸿蒙OS,在华为与塞力斯合作打造的问界M5上鸿蒙座舱获得了一致的好评。

中间件的任务就是负责各类应用软件模块之间的通信以及对系统资源的调度。其中中间件绝大部分的功能是通信,因此通常我们说的中间件也就是通信中间件。

随着传感器的数量增加,数据来源增多,多元异构数据在芯片之间、各任务进程之间的高效、稳定传递需要引入通信中间件。通信中间件包括点到点、消息队列和发布/订阅三种工作模式。

点到点模式具有很强的时间和空间耦合性,使得通信灵活性受到很大限制;消息队列模式通过一个消息队列来传递消息,解决了通信双方时间和空间松耦合的问题,但不能实现消息消费者通信的异步,并且还存在服务器瓶颈和单点失效的问题,可靠性得不到保障;发布/订阅模型中,发布者和订阅者通过主题相关联,双方不必知道对方在何处,也不必同时在线,实现了通信双方在时间、空间和数据通信上的多维松耦合,并且能够减少网络负载,提高通信效率,也提高开发人员的工作效率。

现在常用的通信中间件SOME/IP与DDS都采用了发布/订阅模式,实现通信双方在时间、空间和数据通信上的多维松耦合。

SOME/IP的全称为:Scalable service-Oriented MiddlewarE over IP,是一种面向服务的传输协议。严格地说,SOME/IP不是一款特定的产品,而是一种技术标准。其最早由宝马在2011年开发,并在2013年集成进AUTOSAR 4.1中。其对内存需求较小,但仅提供一种用于选择UDP与TCP的“可靠性”QoS设置,其同时支持Adaptive AUTOSAR与Classic AUTOSAR。

开源版的SOME/IP则是由Genivi协会来维护的,由 C++ 编写,目前主要实现了 SOME/IP 的通信和服务发现功能,并在此基础上增加了少许的安全机制。

目前SOME/IP中间件提供商有AUTOSAR工具链厂商,包括Vector、ETAS、EB等国外公司,国内的也有包括普华基础软件,经纬恒润、东软等。

DDS全称为Data Distribution Service (数据分发服务),由对象管理组(OMG)发布和维护,是一个中间件协议和API标准,采用发布/订阅体系架构,强调以数据为中心,提供丰富的QoS服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。

其广泛应用于工业物联网领域,DDS对内存需求大,体量较大,需要人为地进行项目级的裁剪,在服务策略方面,DDS支持22种QoS策略,每种策略都可以应用在不同的角色上,而针对同一角色,可单独使用一种QoS,也可以组合使用多种QoS策略。

在2018年,DDS被首次引入Adaptive AUTOSAR,作为可选的通信中间件之一。018年3月,DDS的主要提供者RTI公司宣布,AUTOSAR AP的最新版本(版本18-03)已经具有DDS标准的完整网络绑定,但是目前还不支持Classical AUTOSAR。

此外ROS 2和Cyber RT的底层都使用了开源的DDS,将DDS作为最重要的通信机制。

全球范围内,DDS的最大供应商是RTI(Real-Time Innovations),它同时也是OMG组织董事会的成员,从2004年开始负责主持DDS工作组的工作,包括DDS标准的制定,目前已经成为这个行业的领导者,对DDS标准有足够的权威。其DDS产品为为RTI Connext DDS,占据绝大部分市场。

除此之外,还有一些开源的DDS,其也是根据OMG官方的DDS标准开发的,但源代码开放。

在自动驾驶领域比较有影响力的开源DDS是由RTI原核心团队成员在欧洲创办的eProsima公司推出的FastDDS。在eProsima将FastDDS的源代码开放出来后,用户可以直接在github上免费下载。但FastDDS使用起来比较麻烦,这个时候,用户就需要通过向eProsima支付费用来取得支持。

OpenDDS 由位于圣路易斯和凤凰城的的Object Computing的 ACE/TAO 团队开发,它和FastDDS具有一定的相似性——两者都是基于RTPS实现的,面向数据的通信框架,遵循的是同一标准。这类框架的典型特征是去中心化,支持QoS机制,支持实时通信。通常会绑定如protobuf等序列化工具。

在许多情况下,FastDDS 、OpenDDS可以跟RTI的Connnext DDS互操作/通信。当然,具体还得看场景。比如开源DDS支持的的QoS有 23个,大家都用这23个QOS交互,那就能互操作;如果Connext用的是超出这23个自定义范围的QoS,那么开源DDS就解析不了。此外,如果用的是OMG没开源的DDS工具,那也没法互操作。

目前来看SOME/IP相较于DDS在汽车领域,有先发优势。DDS虽然功能完善,而且在其他领域具有广泛的应用,但是在汽车行业,车规是最重要的。另外SOME/IP是直接针对汽车场景设计的,而DDS应用在汽车场景需要进行剪裁和适配,这里相较于SOME/IP,工作量又多了很多。最重要的一点是,由于现在大部分车载控制器的开发都是基于AUTOSAR来做的,目前SOME/IP同时支持AP和CP,而DDS目前还只能在AP上运行。

SOME/IP和DDS中间件除了上述提到的AUTOSAR工具厂商和RTI及开源可以提供外,国内还有一些企业也提供相关的产品,比如百度Apollo提供的Cyber RT,它在Apollo 3.5中正式加入。Cyber RT和ROS2很像, 其底层也是使用了一个开源版本的DDS。

另外华玉通软(Greenstone)成立于2020年,专注于基础软件的研发和创新,为智能汽车和智能驾驶提供完全自主可控的操作系统、高度可扩展的基础软件平台和定制化解决方案。去年发布了国内首个基于DDS标准完全自主研发的通信中间件—— “雨燕”通信中间件,“雨燕”通信中间件提供20多种QoS机制,为不同场景需求提供灵活的服务质量管理。在通信安全上,“雨燕”通信中间件提供身份认证、数据信息加密、敏感信息保护等多种安全保障,确保数据不会丢失、延滞,也不会被篡改或是窃取。

当前其可适配LiNUX、VxWorks、QNX、AUTOSAR CP、FreeRTOS等多种车载操作系统,并已成功部署在地平线‘征程’系列、赛灵思ZU5、英伟达Xavier、芯驰G9X以及英飞凌TC397等多个平台上,

图片

Hypervisor又名虚拟机,虚拟机主要是支持不同操作系统,这里有两种类型,第一种为虚拟机直接运行在物理硬件之上,第二种是虚拟机运行于另一个操作系统之中,比如你在window电脑上,装个VMware虚拟机,然后再在该虚拟机上装个Ubuntu,或者其他系统。

通过虚拟机技术,可以支持一芯多屏,比如中控屏幕与仪表、HUD采用一颗SOC,同时处理不同屏幕所需的任务,并推送到各个显示区。

图片

一汽集团、东软和英特尔联合发布智能座舱平台 C4-Alfus,已在红旗车型中投产,德赛西威基于高通 820A 车载芯片为理想 ONE 车型打造四屏互动的智能座舱方案。国内主机厂都在试图往“一芯多屏”的智能座舱方案上过渡。

一芯多屏可以降低智能座舱方案的成本,二是多屏交互的信息在芯片内部完成,传输更顺畅,通信时间比之前大大降低,之前多个操作系统之间通过 CAN、以太网等外部总线通信方式,最后一芯多屏系统复杂度降低,芯片等器件数量减少,整体可靠性也有所增加。

目前达到车规级、且实现量产的虚拟机产品包括QNX的Hypervisor、风河的Vxworks、Green Hills的INTERGITY Muitivisor,Mentor的Graphics Embedded Hypervisor等。主流的还是QNX的Hypervisor。

国内目前阿里旗下的斑马智行在自研虚拟机技术,名称为AliOS Hypervisor。

AUTOSAR是目前最常见和最常用的中间件方案,可提供控制器通信、诊断、OS等各种功能。AUTOSAR仅是一个标准,需要完全实现AUTOSAR,需要购买第三方公司做好的AUTOSAT工具链,头部三大厂商分别是Vector、 EB、ETAS,Classical和Adaptive AUTOSAR工具都可以提供。例如EB的tresos、Vector的达芬奇、ETAS的ISOLAR为classical AUTOSAR的开发工具,EB的Corbos Studio、vector的Davinci Adaptive、etas的RTA-VRTE AP为Adaptive AUTOSAR开发工具。

目前国内也有很多公司在从事AUTOSAR 中间件的开发,比较大的是东软睿驰、普华基础软件。其余有经纬恒润、华为、斑马智行、超星未来、映驰科技、未动科技、零念科技、上海赫千、国汽智控、成都道伟。

普华基础软件是中国电子科技集团下的子公司,其成立于2011年,其汽车电子事业部自成立以来一直从事AUTOSAR基础软件的开发,AUTOSAR基础软件开发和技术服务团队人员约70人。其自主研发推出的AUTOSAR工具链为ORIENTAIS AUTOSAR,能为用户提供了操作系统、底层驱动、通信协议栈、诊断协议栈、网络管理、测量标定、复杂驱动、Bootloader 、FOTA 、功能安全、信息安全等基础软件模块及集成开发环境。早在大概在2011年的时候,普华的产品通过了德国奔驰技术中心的测试和认证, 2013年就与长安汽车合作,将国产AUTOSAR应用到量产车型CS75上,2015年我们拿到Automotive SPICE 3级认证,2020年5月,普华的AUTOSAR OS获得莱茵颁发的 ISO 26262 ASIL D的产品认证证书。

2021年AUTOSAR中国日上,普华发布了其新一代面向Adaptive AUTOSAR产品。

除了普华基础软件之外,东软睿驰的AUTOSAR产品NeuSAR,在国内也是做的不错的,AUTOSAR本文为21-11。有支持AUTOSAR Adaptive标准的NeuSAR aCore平台,以及支持AUTOSAR Classic标准的NeuSAR cCore平台。

与其他工具厂商一样,NeuSAR ccore涵盖了Classical AUTOSAR标准里规定的模块,其中OS、RTE、E2E、WDGM等模块还通过了功能安全ISO26262 ASILD的认证,可以适配主流的英飞凌Aurix系列,恩智浦的MPC56、57、S32的部分产品,瑞萨的RH850系列等,另外国产芯驰的芯片也支持。

用于Adaptive AUTOSAR开发的NeuSAR acore目前也比较完善了,支持系统功能组件、通信功能组件(支持SOME/IP和DDS)、安全功能组件、诊断和日志组件等。其适配的操作系统有主流用Linux和QNX。适配硬件平台也很多,包括NXP的S32V和G,IMX6和8,TI的TDA4,Renesas的R-Car H3,Xilinx的Zynq UltraScale+,安霸的CV22,芯驰的G9X以及NVIDIA的Jetson-AGX等,覆盖面已经很广了,除此之外,对于特定的平台,还有额外的配置、代码生成、编译等工具支持,比如瑞萨、安霸、FPGA和英伟达。

今年4月,东软推出针对域控制器的软件开发平台——NeuSAR DS(Domain System),其有机地将AUTOSAR CP和AUTOSAR AP、SOA中间件、底层文件系统的支持等融合到一起。针对域控制器的应用提供一个完整一体化的软件包、工具链和开发环境。这样主机厂和Tier-1供应商既可以将其快速应用于量产项目,也可以通过使用在主流芯片平台上的NeuSAR DS原型开发系统,甚至直接采用NeuSAR DS的虚拟化版本,快速启动面向SOA的应用软件开发。极大地缩短开发周期,节省开发成本。

在汽车行业电动化、智能化、网联化的浪潮下,相较于燃油汽车时代,拼的是机械功底以及工艺功底,在智能网联汽车时代,拼的更多的是软件,不管是操作系统,还是中间件、AUTOSAR等基础软件,都能看到国产厂商的身影,虽然当前国内厂商的产品与国际主流产品还有一定差距,但是在随着国产产品的不断迭代,越来越强肯定是没问题的。

参考文章:https://www.greenstonesoft.com/newsinfo/2339656.htmlhttps://zhuanlan.zhihu.com/p/406012043?utm_source=wechat_session&utm_medium=social&utm_oi=44796261433344https://zhuanlan.zhihu.com/p/488457744?utm_source=wechat_session&utm_medium=social&utm_oi=44796261433344亿欧的基础软件报告等


http://www.ppmy.cn/news/289338.html

相关文章

经纬恒润AUTOSAR全面适配芯驰车规芯片,联合打造全场景国产解决方案

近日,经纬恒润与车规芯片企业芯驰科技共同宣布,经纬恒润AUTOSAR系列产品已全面适配芯驰全场景车规芯片,助力芯驰中央网关芯片“网之芯”G9、智能座舱芯片“舱之芯”X9、智能驾驶芯片“驾之芯”V9、高性能MCU“控之芯”E3的应用落地&#xff0…

2006. Count Number of Pairs With Absolute Difference K(的绝对值为 K 的数对数目)————附带详细代码和解析

文章目录 0 效果1 题目2 思路2.1 思路12.2 哈希 3 代码3.1 思路13.2 思路2 0 效果 1 题目 2 思路 2.1 思路1 暴力枚举 2.2 哈希 数组(hash)统计向量中每个元素出现的个数&#xff0c;然后i从1到ik<101开始遍历&#xff0c;结果集等于累加hash[i]*hash[ik]的和。 3 代码…

解决Anaconda的python覆盖linux本地python版本

文章目录 1 问题复现2 问题解决 1 问题复现 出现这个问题的原因是&#xff0c;在linux上安装了Anaconda后&#xff0c;无论python软链接怎么建立&#xff0c;输入python&#xff0c;输出的永远都是Anaconda中的python3。现在想要做的是输入python使用的是linux自带的python版本…

CMake安装、配置编译C++代码(Mac、Linux)————附带详细步骤和代码

文章目录 0 背景1 安装CMake2 使用CMakefile.txt编译C程序 0 背景 因为需要使用cmake来进行跨平台编译&#xff0c;所以根据网上的资料学习和总结成此文。 1 安装CMake ## 1. 查看当前cmake版本 [rootlocalhost ~]# cmake -version cmake version 2.8.12.2 ## 2. 进行卸载 […

‘CMRESHandler‘ object has no attribute ‘_timer‘,socket.gaierror: [Errno 8] nodename nor servname pro

文章目录 1 错误重现2 解决3 调用方法写入es4 扩展 1 错误重现 在Mac上调用Python的CMRESHandler进行elasticsearch的日志写入时&#xff0c;遇到如下错误。一开始还以为是自己的语法出现了错误&#xff0c;排查出发现问题出在库中的代码上。在网上找了一圈都没有发现解决方案…

Ubuntu 18安装nerfstudio教程、踩坑记录

写在最前头&#xff01;&#xff01;&#xff01;配置nerfstudio需要cuda没有cuda请不用往下看了&#xff0c;cuda官方是要求11.3或者11.7我自己用的是阿里云的11.4亲测可用。 一、配置环境 安装anaconda3 去官网或者镜像下载anaconda3 的执行文件 官网&#xff1a;anaconda…

jQuery(一) 选择器

jQuery的基本设计思想和主要方法&#xff1a;选择某个网页元素&#xff0c;然后对其进行某种操作。 $(document) //选择整个文档 $(‘#myId’) //选择IDmyId的网页元素, 如果选择器中包含特殊字符&#xff0c;可以用两个饭反斜杠转义。 $(div.myClass) //选择class为…

Java中的注解

1 . 什么是注解 注解即元数据,就是源代码的元数据&#xff0c;注解在代码中添加信息提供了一种形式化的方法,可以在后续中更方便的 使用这些数据&#xff0c;Annotation是一种应用于类、方法、参数、变量、构造器及包声明中的特殊修饰符。 注解可以用来生成文档&#xff1b;跟…