11月7日-8日,2024中国汽车软件大会在上海嘉定召开。本届大会由中国汽车工业协会和安亭•上海国际汽车城联合主办,以“软件智领未来,融合共创生态”为主题,共设置“1场闭门会议、1场大会论坛和6场主题论坛”。其中,在11月8日下午举办的“主题论坛五:融合共建:汽车基础软件新路径”上,维克多汽车技术(上海)有限公司技术方案经理丁嵘晖发表精彩演讲。以下内容为现场发言实录:
在软件定义汽车SDV的落地,需要有5个方面来保证。第一,集中式E/E架构,如下图,包括三层架构,中间是三个中央计算平台HPC,其外围有4个区域控制器Zonal,最外围是边缘传感器和执行器节点。需要说明的一点,在紫色范围之外,一些边缘ECU由于硬件资源限制,不在SDV范围之内。
第三,强大的软件平台,来支持丰富的功能和多种的生态系统。这个软件平台也称为整车操作系统(Vehicle OS)。
第四,车云一体的软件工厂。支持车端和云端软件,覆盖从设计开发、集成测试,到SOP后更新的软件全生命周期。
第五,支持和顾问服务。Vector作为可靠的伙伴,提供专业知识能帮助到SDV的落地。
今天分享聚焦在第三部分,软件平台。
在微处理器MPU领域,市面上已经有许多成熟的Hypervisor和OS方案。基于不同的操作系统OS,Vector可以提供MICROSARAdaptive产品。在跨域融合的趋势下,客户常询问,如何将为不同区域开发的应用App,从原生态中剥离出来,快速的集成到新的生态中。针对这个痛点,我们尝试开发了Application Framework工具套件,如图中粉色部分。此外,当下基于片上系统SOC,通常会部署多个软件生态,如辅助驾驶ADAS功能域的ROS2框架,在智能座舱IVI常用的Android生态。针对我们客户打通中间件的需求,我们提供了系统路由的方案,将不同中间件,做通信层面的打通,从而将不同的三方生态连接到整车主干网络中。下面看一下我们怎么做的。
在介绍支持跨越融合的Application Framework方案之前,我们先回顾一下,SOC上软件开发为什么是复杂的。主要有3个层面。第一,SoC上通常使用多种中间件,不同中间件使用不同格式的服务描述文件如ARXML、IDL、Protobuf、Json等。不同场景使用不同的传输协议。这些不同方面增加了SoC软件技术复杂度。第二,不同团队,包括架构和开发团队,有不同的输出物释放进度。通常架构团队较慢,可能几个月更新一次,而功能开发迭代较快,通常以周为单位。这些不同周期也加强了软件集成的复杂度。最后,不同车型项目使用不同的框架样板代码,App开发团队需要维护这些平台软件的样板代码,带来额外的开发和维护。这三个方面使得SoC上软件变得非常复杂。
再看一下在SOC开发之上,涉及Application Framework工件有哪些。第一是平台软件,它主要涉及到E/E架构的设计,AUTOSAR架构使用ARXML文件作为整车系统设计文本。 DDS框架下面使用IDL或者XML文件。第二个工件是车辆数据,包括数据元素格式和定义。国际上比较著名的是COVESA组织的VSS格式。国内的OEM通常自己定义数据格式。第三个工件是应用App,包括算法以及需要的接口。编程语言可以支持C++和Rust。将这三个工件同各国排列组合,打包起来,构建出可执行的程序,或者可用于更新的下载包。
如何使用Application Framework做独立App的开发呢?
可以看到,Application Framework通过生成的Platform Gateway服务接口,可以做到不同App跟平台软件和中间件的隔离。从而让不同生态的App在跨域融合中,从原始的生态中剥离出来,快速的集成到新的平台和生态之中。这个过程是通过Application Framework套件完成的,是自动化的过程。
以上是站在APP开发的角度,提供的跨域融合的工具。下面介绍做中间件打通的系统路由方案System Gateway。
下面的篇幅将介绍这个方案的实现,如何将Android引入到车辆SOME/IP网络中。
数据映射层面,HIDL作为接口文本,里面记录了需要映射的数据名称和类型的定义。可以看到,左边我们达芬奇的配置界面,和右边的HIDL定义的数据是有一一映射的。
第二种部署场景,将我们SOME/IP部分,直接集成到Android的分区中。
上位机通过发送SOME/IP Event, 守护进程接收到后通过进程间通信,通过ARA:COM接口将Event给到适配层,翻译或者影射成Property,进入到安卓框架中,最终在安卓上的TestApp上做实时的数据显示。在展示效果之前看一下构建工具链。分两步,第一步是我们原生AP使用的Taco构建工具。输出项目配置后生成的源代码,再连同需要的库文件,写入到BP文件中。BP文件是安卓编译链Soong的配置文本。通过我们生成器生成的这个BP文件,将Taco同Soong流程衔接起来。最终得到包含SOME/IP协议栈的安卓可执行文件。
总结一下,今天主要分享了3部分内容。第一部分和大家沟通维克多理解的软件定义汽车和车辆操作系统。第二部分给出两个解决方案。针对支持App跨域融合,介绍了Application Framework,实现了将App从原生态中剥离出来,快速通过这个框架集成到新的生态系统中。第二个是系统路由方案,完成了不同中间件之间打通,包括SOME/IP 同ROS2框架和同Android生态。最后一部分,展示了如何通过VHAL Gateway,将SOME/IP Event转换为安卓的Property数据,显示在安卓的App上。实现了引入Android生态到车辆SOME/IP网络。