编程技术分享平台

网站首页 > 技术教程 正文

软件定义汽车,车载操作系统和中间件是什么

xnh888 2025-03-29 23:35:21 技术教程 34 ℃ 0 评论

前面两篇文章介绍了EEA硬件架构、软件架构和通讯架构的大体发展方向,这里再对一些基础且重要的概念进行梳理,作为补充。

中央计算平台

从功能域进化到位置域,再参照电脑和手机,最终成为一个中央计算平台,集成了座舱、自动驾驶、车控、网关等功能。

简单来看,计算平台是由众多“小SoC”进一步集合而成的“大SoC”,其架构会决定软件架构的设计方向。

分离式的架构,各单元的SoC运行不同操作系统,每个单元硬件和软件完全独立;硬件隔离式的架构,通过一颗强大的SoC运行多个操作系统,每个单元都有专属硬件资源,在硬件上独立;软件虚拟式的架构,一个强大的SoC运行多个操作系统,每个单元没有专属的硬件资源,全部由虚拟层调配。

操作系统

车载操作系统的基础是内核,决定着汽车软件架构的稳定性。

常用的内核有VxWorks、Unix(IOS)、Linux、QNX,其中VxWorks和QNX是微内核,能实现基本的任务管理、内存管理、进程通信等功能;而Linux和Unix属于宏内核,除微内核的基本组件外,还有网络、设备管理、文件系统等功能。

在内核基础上,通过增加应用开发框架、包管理、核心服务等组件,可以得到Android、AliOS等发行版本;而再基于Android,通过修改系统服务和操作界面UI,可形成MIUI、EMUI等ROM。

宏内核的Linux系统是分时操作系统,单个服务的崩溃往往意味着整个系统的崩溃;相比较而言,QNX作为微内核的实时系统比Linux更有优势。

但Linux是开源且免费的,相比于付费和半开源的QNX在生态上有优势;QNX在娱乐系统的竞争力更小,更多用在仪表、ADAS等与驾驶相关且要求高安全性的部件上。

Linux的内核组件比QNX复杂,对主机厂或供应商的开发能力也提出了极高的要求。

车载操作系统选择

操作系统需要芯片的支持,要兼容POSIX接口,更重要的是结合生态,特别是面向C端用户,是应用生态决定了生死。

操作系统的选择会基于成本、商业、生态等多方面考虑。

针对于智能座舱,核心是多媒体和互联网应用,主要关注应用生态和开发者生态,因此主要是跟随消费电子,大部分用的是Android,而特斯拉更想掌握自己的话语权,采用的是Linux。

针对于自动驾驶,核心是算法设计和数据积累,主要关注系统成熟,在Linux、QNX和VxWorks中,QNX比较安全和稳定,被采纳的较多。

对于网关及以太网交换机,算力要求高,但任务相对单一,架构简单,操作系统常采用Linux。

通讯协议

DDS和SOME/IP都是基于TCP/IP的一种应用层通信协议,相比于CAN,通信过程是面向服务而非信号,发送会考虑接收的需求,类似于一种订阅/发布机制,DDS和SOME/IP两者作用大同小异,DDS功能更强大。

中间件

中间件可以认为是一种广义操作系统,不同于内核,它是介于上层应用和底层系统之间的一套软件框架,充当着软件和硬件解耦的角色。

车企和供应商开发的操作系统,实际都是对内核做补充,开发中间件或裁减应用软件,其开发能力体现在其所开发底层操作系统的整体框架上,而框架又取决于操作系统与中间件的组合。

基于QNX内核做开发,一般是通过叠加定制的上层算法来完成中间件的设计;而基于Linux内核,则是先依据自身需求,对底层内核做软件裁减配置,再上层适配不同的中间层算法,因此Linux难度要大得多。

借助中间件,车企可以采用插拔式设计,将不同硬件配置进行统一定制化开发,然后根据需求进行软件(不同级别自动驾驶算法)和硬件(激光雷达选装)不同拓展。

汽车人参考小结

结合前两篇文章,这里梳理了电子电气架构EEA的三条主线,能够初步建立结构化的知识体系。

无论是集中式电子电气架构演进,还是操作系统、中间件等,其实对于终端用户来说都没有太多意义,基于技术变化能带来座舱和驾驶全新体验才是关键。

本文为汽车人参考第362篇原创文章,如果您觉得文章不错,“推荐和关注”是对我最大的支持。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表