03 | 芯片: 长文详解智能汽车的心脏SoC与安全岛(Safety Island)设计
04 | 芯片: 从裸机到智驾操作系统OS - 关于汽车OS必须知道的事
05 | 芯片: 万字详解不同的E/E架构下,我们需要什么的汽车操作系统OS?
图片来源: Apex.AI
那么问题来了:
在当下汽车电子电气架构集中化的大背景下,中间件的意义有什么变化?
为什么突然感觉大家都在卷中间件?
提供ECU内部及跨ECU之间的通信功能
调度任务管理功能
也就是给Runnable提供相应的数据和资源,并实现任务触发,映射到OS Task上去。
高性能计算支持:中间件需要优化调度算法,以处理多个复杂功能集成在一个或多个域控制器中的情况,特别是在自动驾驶系统、智能座舱等高计算负载场景下。
虚拟化支持:为了隔离不同功能域(如动力总成和信息娱乐系统),中间件需要支持虚拟化技术,允许多个操作系统和应用程序在同一硬件上运行。
统一的通信协议支持:中间件需要支持不同的通信协议(如CAN、LIN、以太网)之间的无缝交互,同时保证数据的可靠性和实时性。这种“桥梁”功能变得更加复杂,因为数据流量增加,系统间通信更加密集。
服务化架构(SOA):在SDV中,功能被抽象为服务,中间件需要支持服务化架构,将传统的信号传输模式转变为面向服务的通信,允许不同软件模块按需访问功能或数据。
多核调度与任务并行处理:中间件需要支持高效的多核任务调度,确保在复杂计算场景下合理分配计算负载,提升整体性能。
加速器调度与优化:对于自动驾驶的感知和决策功能,GPU和专用加速器的使用越来越多。中间件需要管理这些异构硬件的资源调用,确保计算任务能够充分利用硬件加速能力。
差异化更新:中间件能够支持只更新特定模块或功能,而不需要整个系统重新编译和部署,减少停机时间和更新风险。
版本管理与回滚功能:中间件必须具备版本控制和回滚功能,确保在更新过程中出现问题时,系统能够自动恢复到以前的稳定版本,保障系统安全性。
例如:
实时调度与任务优先级管理:为了满足自动驾驶或其他安全关键功能的严格实时性要求,中间件必须提供实时任务调度和优化机制,确保关键任务得到优先处理,减少延迟和上下文切换的影响。
安全架构增强:SDV的开放性使汽车面临更多的网络安全威胁。中间件需要实现增强的安全管理机制,如访问控制、数据加密、认证与防护机制等,以应对潜在的黑客攻击或数据泄露风险。
第二个问题,中间件这些年为什么又火了? 为什么大家都在卷中间件?
不知道朋友们有没有注意到,这两年中间件突然火起来了,并且大多都是和自动驾驶放,智能驾舱联系在一起。突然间,不管是芯片制造商,还是基础软件供应商,甚至OEM,都在强调中间件有多么重要,纷纷开始自研中间件,中间件突然就成了香饽饽,为什么会这样呢? 在集中式电子电气架构下,中间件有什么新的意义吗?
个人觉得,主要原因还是在于,汽车智能化以及电子电气架构集中化,导致的中间件作用的突显,以及各家对新兴领域的争夺。
具体来讲,我们可以从以下几个方面谈起:
1. 集中式电子电气架构下硬件的异构(SoC)
在集中式的电子电气架构下,为了实现不同的软件需求,控制器硬件异构SoC成为趋势,不同的硬件组件(例如,CPU, GPU, DSP, AI加速器等)被集成到一起,而这些硬件组件大多基于不同的协议或标准,这时候就需要中间件的存在,作为一个抽象层,统一不同组件的接口,促进异构系统的集成,从而降低开发难度和成本。
中间件通过抽象不同的异构硬件,使得在控器内部及跨控制器之间的数据传输、协议的转换和消息的分发成为可能,确保各个软件模块都能够高效地互相沟通。
2. 基于服务的架构(SOA)实现需求
在汽车智能化背景下,汽车软件复杂骤增,软件组件之间交互也更加复杂。基于服务的架构SOA通过将功能模块化为独立的服务,并通过标准化的服务接口来进行相互通信,使得每个服务可以独立开发、测试和部署,从而降低了系统的复杂性,并简化了软件的开发和维护。
汽车智能化,尤其是自动驾驶系统集成了大量的传感器、摄像头、雷达和通信设备,以及复杂的算法,如感知、规划、控制等,这些算法对计算资源,尤其是数据吞吐量和通信效率的要求非常高,传统的中间件无法满足这一需求,需要开发新的通讯中间件,实现更高效的通讯。
自动驾驶系统对实时性和安全性有极高的要求,中间件能够提供必要的支持。例如,通过优先级管理来确保关键任务的实时执行,或者通过数据加密和访问控制来保障系统安全。
为了保持竞争力和降低成本,汽车OEM需要保持软件平台化,模块化,不断更新,以提升车辆的性能和功能。中间件的存在使得软件和硬件松解耦,使得这一需求成为可能。 汽车软件动态更新成为常态,以自动驾驶系统为例,其技术一直处于不断演进的过程,需要频繁的软件功能更新和扩展。中间件能够帮助汽车厂商更轻松地部署软件更新,支持模块化设计,使得新功能可以在不影响其他部分的情况下进行集成和测试。
在分布式架构下,汽车嵌入式解决方案很唯一,说白了就是Classic AUTOSAR,由不同的软件供应商,例如Vector,ETAS等国外供应商,根据Classic AUTOSAR标准,开发相应的基础软件并配以完整的开发工具链,基本上一条龙服务,所以这块内容非常成熟,对实时性,安全性的要求很高,所以基本上被外国的大的软件供应商垄断。 在汽车智能化背景下,域集中或中央电子电气架构成为发展趋势,车辆软件复杂性,数据吞吐量骤然提升,基于服务的架构成为主流,虽然Adaptive AUTOSAR的推出,在一定程度上弥补了Classic AUTOSAR的不足,但是这块内容相对比较空白,行业内还没有形成统一的软件架构标准和技术解决方案,各家都处于积极尝试的阶段,在满足自身产品需求的同时,也在试图占领更多市场。 目前国内汽车智能化发展速度较快,在一定程度上,站在了技术发展的最前沿,各家都在致力新的汽车软件架构的发展,这也是打破国外垄断的新机遇。
虽然目前汽车智能化软件架构相对处于百花齐放的状态,没有统一的行业标准和生态系统,但是内核操作系统,例如ROTS, Linux, ROS等,相对还是比较稳定,目前都是基于这些内核OS,这些内核OS已经经过很多时间的验证,生态及开发工具相对完善,完整开发的难度也非常大,所以内核OS上做文章的空间非常有限,难度较大,也没有太多的必要。 而作为广义操作系统组成的中间件,技术开发难度相对低,也和各家OEM应用层软件紧密相关,所以就成为了争逐之地,所以目前所谓自称自研汽车操作系统,实质上都是中间件的自研,毕竟在这么内卷的环境下,各家为了宣传都是用尽解数,说的天花乱坠。
一个字,绝!
但是,朋友们千万不要太当真!!!
----- 华丽的分割线,设为星标,好文不迷路 -----
写在最后:
芯片系列,中间件第一篇内容我们就聊完了,接下来会进一步给朋友介绍到底什么是中间件,如何工作,如何开发,希望能够给朋友们对其带来更多理解。
END
【点赞】和【在看】= 原创的动力
多谢【点赞】和【在看】