SDV-SOA-SOSA工程师眼中的软件定义汽车
2024-06-20
来源:有驾
序
不知道什么时候开始,SOA为标题的文章遍布各大公众号和媒体。
说到软件定义汽车,我们就很难不听到这几个词,一个是zone或者zonal,也就是域控制器的域,一个是SOA,就是基于服务的架构,那说到基于服务的架构,然后会说到autosar的CP和AP,说到autosar的AP,就会看到一个词,叫做SOME/IP。
所以说大家到底在讲什么?其实归根结底是在说三个东西,一个是整车电子架构,一个是软件架构,一个是通讯。
那这些新东西是怎么出来的呢,我在网上看到一句话我觉得概括得非常准确,就是“通过为用户提供更多的价值,从而达到用户持续与OEM进行价值交换的目的“。
懂的都懂。虽然从汽车这个产品的角度大家看到的是电子架构的演化、软件架构的变革,但实际上它背后的驱动也很清楚,是因为随着汽车这个产品的成熟和普及,传统车的利润被压缩,大家想通过软件功能的增加,提高产品的价值,来创造更多的价值交换。这又涉及到,因为OEM要设计软件,就需要把一些以前是供应商的工作放到内部来做。
那研发层面来说,要求工程师从新的角度去审视开发和产品,对工程师的能力要求变了,客户思维、系统工程等等比如说我们看到其实都是在为软件定义汽车这个东西打铺垫。
一
我们先来看两个概念,说SDV是什么,网上有很多定义,我摘抄了一个,就是说软件将深度参与到汽车的定义、开发、验证、销售、服务等过程中,实现体验持续优化、过程持续优化、价值持续创造。那大白话其实就是软件在汽车上越来越重要了。
那这个越来越重要具体体现在哪里呢,
从三个方面来看,
一个是创新,我们说行业的行业发展靠创新来推动,那汽车的创新在哪里呢,有预测说未来汽车一半的创新会是汽车软件的创新;
第二个是开发成本,就说到2030年,软件的开发成本会占到整车开发成本的一半;
还有一个是整车成本,到30年,软件成本会占到整车成本的一半;
也有说一辆车的价格中软件要占到60%以上。
那SOA又是什么东西呢?
SOA是一个IT的概念,而且是在好几年前已经提出了(1996年,权威的IT研究与顾问咨询公司Gartner提出),那它不是一种具体的技术,而是一种架构策略层面的指导思想。对于SOA来说有两个很重要的概念是服务和接口。
既然SOA是一个IT行业的概念,那它为什么这两年在汽车行业忽然火了?
汽车发展的愿望,我总结了一下其实就是多快好省四个字,多是功能多,快是快速满足市场新需求,好是新车好新体验,老车新体验,持续用户价值,省是更低的开发成本和物料成本。
那SOA推动了什么趋势呢?解耦,快速开发,两者一拍即合。
我们之前早期的时候应用软件和底层是强耦合的,到后来应用软件和基础软件解耦了,应用SOA之后其实是进一步提高了,因为它对嵌入式应用软件的接口(即服务接口)进行了标准化。
与硬件和底层解耦后,汽车应用软件的开发和交互灵活性大大提高,将汽车变成一部随时可下载软件的智能手机。所以说SOA推动的趋势与汽车的发展愿望充分一致。
二
介绍了概念,我们再来看SOA的应用。
要在车上实现SOA,必须要通过三个东西,分别是SOC、SORS和SOSA,也就是基于服务的电子架构、软件架构和通讯。
首先我们来看第一个SORS,它是基于下一代电子架构而进行的服务实现并体现服务复用性设计工作。
这里我们就有一个问题,那当前的架构不能支持SOA吗?
这个地方有几个困难,第一个是算力,第二个是通信,第三个其实是前面两个的总和,就是服务的管理。
那一个支持服务的架构有什么特点呢
首先它一定是有一个高性能、多资源的中央节点,然后它的控制器的数量肯定会比现在大大减少。
那电子架构对开发会有什么影响呢?
举个例子,之前车展上吸引很多人的车子的跳舞模式。
假如在我们现在的架构做,我们可能在ICI上放一个交互的应用,要实现的话至少要在BCM和ECM中放逻辑,分别实现车门车灯的控制和车的运动。
但假如说是SOA的架构,我们只要把功能逻辑都放在ICI或者任意一个模块,然后去调用相关的服务就可以了。
这里随之而来的问题是,那这些服务是哪里来的或者说是什么时候设计的?
一旦我们有这个基于服务的架构之后,会给开发带来很明显的变化,在我们传统的开发模式中我们要新增一个功能要很早提CR,并且影响很大。
但是基于新的架构,假如前期架构具有足够的前瞻性,我们就能基于基于服务库轻松地开发新功能,并通过OTA部署到车端。而且这个开发新功能的过程不是主机厂才能做,而是任何被授权的第三方都可以。
那我们在什么阶段做这个基于服务的设计呢,很明显即使在前期设计阶段
首先,我们怎么知道有哪些服务呢?
大致有两种途径,
一种是自下而上的,就是从我们车上有哪些硬件,能够提供哪些功能和数据,汇总出来我们可以有哪些服务。比如说轮速传感器采集到的数据通过处理就可以提供车速服务。另一种是自上而下,我们熊整车功能和算法中把服务抽取出来。
具体是怎么设计,服务包的大小,都需要前期统一的规划。
所以我们可以看到,在这个过程中,服务的规划和拆分非常重要,总原则就是高内聚和低耦合。
三
说完了整车电子架构,我们来说软件架构,这里我们说应用软件的变化
我们当前应用软件开发大概是左边的样子,就是我们有了需求,然后知道软件要完成哪些动作,把这些动作分一分,每个动作由哪个单元来实现,然后出来一个架构。但是SOA之后我们可能要先做一个事情就是一个服务的分析和设计,我这个功能需要哪些服务的组合,然后搭建一个对应的架构。
四
我们前面在不断地说服务这个东西,说服务的抽取和打包,但还有一个很关键的点就是通讯。
我们现在有这么多服务和功能,有个很关键的点就是大家要能交互起来那大家怎么调用服务,又怎么交流呢?
所以我们还需要SOC,SOC的关键点是统一的接口和协议。
那这个时候我们就会问了,你怎么知道我什么时候需要这个服务呢?
所以它又定义了四种通讯的形式
我们来看一个例子,ADAS和高精地图之前的交互就是典型的eventgroups。
五
讲了半天那哪些功能适合用SOA?
一类是以汽车以太网作为主要通信协议的功能-海量数据,如:
自动驾驶或驾驶辅助的视频流信息:各角度摄像头获取的视频及解析出来的信息;
车内影音娱乐信息:比如音视频播放、IVI/副驾及后座娱乐系统互动、导航等图像信息传输、收音机、CD等功能;
诊断及刷写功能:在CAN及Eth都已经是以服务的方式实现;
一类是与车外互联网实现互联互通的功能-强交互更新,如:
获取车载摄像头的信息,比如通过手机远程获取车辆周围环境;
获取车辆运行状态信息,比如云端获取车辆的驾驶习惯;
远程控制车辆舒适性设备,比如通过手机远程打开车辆空调;
远程控制车辆安全性设备,比如通过手机为代驾远程开锁与启动车辆运行;
结
电动化智能化不可避免,汽车工程师一定是站在这个浪潮中,感受行业的变化,哪怕没有SOA,也会有SOBSOC,汽车的电子架构和软件架构一定会不断地变化,作为一个功能的开发者,对于功能的内容和边界要有清晰的规划和把控力,显得更为重要。