1、SOA与软件定义汽车

"软件定义汽车" 已经成为一个不可逆的趋势,其基本的意思是指汽车的功能及性能,之后将更多的由软件来决定。当然,业内也有不同的声音,如"架构定义汽车"等等,其本质差不多。

那么,在"软件定义汽车"的趋势下,”SOA“到底处于什么样的位置呢?

mqba0平台都有哪些车(技术闲谈之汽车SOA)(1)

右图是历史上的经典”马拉火车“,当年中国第一条铁路修好后,因慈禧不喜欢火车头的“大呼小叫”,导致很长一段时间列车都是让马与驴拉的。

左图呢,由于受汽车行业的惯性思维影响,整车开发流程都是先定EEA,然后定点各ECU或沿用车型平台的ECU,放在前些年就没有然后了。近年来受”软件定义汽车“的影响,同时还会确定”哪些自研,哪些由Tier1开发“。但这还是不够的,如果不搞SOA,就算EEA升级、控制器升级、软件自研,他们也很难高效的运转与支持迭代。

空口无凭,接下来我们来详细的展开吧。

2、行业现状

这里借用几张出现频率较高的图来说明一下:

大众MEB E3 EEA

mqba0平台都有哪些车(技术闲谈之汽车SOA)(2)

大众MEB平台的E3架构,采用千兆Ethernet,规划了3个ICAS(应用服务器),在软件层面上采用了SOA的架构。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(3)

现代(Hyundai)的EEA - 引用自《浅谈整车SOA架构系列》

现代的EEA也是将Ethernet纳入主干网,同时在Ethernet连接的结点采用了SOA架构。

国内上,在此领域走的比较靠前的“华人运通”,参考其官方宣传稿,采用了“HOA开放式EEA”,使用了千兆以太网,拥有6个超级域计算平台,并实现了“真正意义的软件与硬件分离”。从技术语言来说,同样采用了SOA架构。

结论就是,从国际和国内上的各种公开信息来看,凡是将Ethernet纳入主干网的车厂,都在其上采用SOA的架构。

3、SOA到底有什么好处?

SOA将跨ECU交互由“基于信号的通信”变为“基于服务的通信”,其意义抽象的讲,有以下方面:

光讲这些太抽象,作为长期战斗在一线的软件架构师,上向领导汇报,下说服工程师,最有效的办法就是讲“场景”。下面一个个展开吧。

3.1 “全车智能”成为可能

服务化,各个域将自己的能力提供出来,在权限允许的情况下,供大家随意使用。这样的话,”智能“就不仅是体现在”智能座舱“、”智能驾驶“领域,也可以是”智能车身“、”智能底盘“等等。举几个具体的例子。

1) 智能交互的开放 —— APA(自动泊车)过程中语音提示

当前基于CAN通信,就是APA控制器提供CAN信号,中控接收到之后,根据APA的状态做用户提示。但是,一般来说搞中控的人对APA一点都不懂,很容易出各种问题。

SOA的做法,中控大屏提供TTS服务,APA控制器自行使用。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(4)

2) 车控能力的开放 —— “跳舞”模式 (Tesla Model X)

当前基于CAN通信,”跳舞“这个应用较为复杂,包含音乐、车身、前后运动等,其逻辑会分拆到多个控制器中,且基于各种安全因素的考虑,不一定会将直接的控制能力暴露出来。

基于SOA,各域可抽象出通用的服务出来,如”极低速控制服务“和”车身/灯光控制服务“出来,而”跳舞“相关的应用逻辑,就可以完全放在中控应用当中了。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(5)

3) 多域能力的开放与融合 —— 智能车窗

当检测到下雨时,自动将车窗关闭,并通过语音及界面来提示用户。

当前基于CAN通信,车身控制域提供“雨量传感器”的状态、“车窗控制”的信号,一切由中控大屏来实现。但说实话,这功能跟“中控大屏”有什么关系?因为是否与用户交互是可选项,并非此功能的核心。

基于SOA,中控将“通知”与“语音播报”的能力提供出来,车身控制域在发现“下雨”时,调用“车窗控制”,基于用户的习惯,选择合适的方式与用户交互,甚至于说不交互。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(6)

由于笔者为智能座舱背景,举的例子多半与智能座舱相关。相信其他领域的小伙伴,会有更多的用户场景可讲。

3.2 服务的灵活部署

SOA的一个基础,就是“服务发现”机制,即给每个服务分配一个“全局名称”,通过这个名称就可以直接找到对应的服务。比如我们上网时的“网址”就是起的这种作用。这样的好处是:

可以在ECU运行时获取服务的位置。继续以“网址”为例,"ele.me"的服务器到底部署在哪,我们是不知道的,当我们输入"ele.me",DNS服务器会解释其IP地址,并通过动态路由的方式找到拥有这个IP地址的服务器。大白话的说:"不管你在哪里,只要不改名,我都能找到你"所以,基于这个特性,在整车生命周期内,不同的车型配置可做不同的服务部署,对代码几乎可以不用改动。以笔者较为熟悉的OTA,来说明吧:

基于SOA的OTA逻辑架构

mqba0平台都有哪些车(技术闲谈之汽车SOA)(7)

上图中,带SOC的ECU都连接了Ethernet,需要基于SOA Middleware来提供标准的OTA Service,如版本号查询、自升级控制、升级状态反馈等;不带SOC的ECU,通过CAN连接网关,则通过UDS直接刷新。其中所有的Service的部署都与位置无关。

举个例子,拿OTA中最最最要命的”升级主控“的选择来说吧。”升级主控 (OTA Master)“是OTA的核心,其功能一般包含:版本检测、升级状态控制、回滚、状态上报、合法校验等。升级主控放在哪个ECU上,是整个OTA方案争议最大,最重要的决策之一。但问题是,同一个项目,因为不同配置的关系,它还要放在不同的ECU上。比如说,

采用SOA架构的OTA方案就没有这个问题。

升级主控由网关换成Tbox

mqba0平台都有哪些车(技术闲谈之汽车SOA)(8)

如上图中,升级主控由网关换为Tbox,也只需要重新部署OTA Master Service和OTA UDS Service即可。其他的不变。

而传统架构的OTA方案,改动升级主控?大工程啊。除了服务要重新部署,相关的通信协议也需要改动,代码也要做一定的修改,麻烦。

3.3 软件更新更灵活

SOA的松藕合特性,可以将功能更新与变更限制在更小的范围内。

1) 硬件架构需要调整,减少复杂功能涉及的ECU数量

mqba0平台都有哪些车(技术闲谈之汽车SOA)(9)

车控域发生域融合

如上图,基于SOA的架构,车控域发生域融合时,应用可以直接做重新部署,而无需重新开发,改动限制在服务的实现上。

若不基于SOA实现,发生域融合时,所有功能几乎都要重头开始。

2) 软件架构需要更新,一个功能改变只需要更新/升级部分软件

mqba0平台都有哪些车(技术闲谈之汽车SOA)(10)

增加"空调滤芯寿命显示"功能时传统方式与SOA方式的对比

如上图,“增加PM2.5滤芯寿命显示”这一功能,传统方式有4处的改动,而SOA方式仅有2处。

4、实现SOA的成本如何?

4.1 内部成本

SOA在很多年前,某些Tier 1就已经在搞了,但由于设计过于理想,开发成本过高,且运行效率较低,放弃了。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(11)

在理想架构下,不同的控制器的应用与服务可以任意的通信,它们全都使用跨ECU IPC。但是,这样实现:

所以,考虑实际,可落地架构是指

所以,只有采用上图中的可落地架构,才能做到内部成本可控。

4.2 外部成本

要实现SOA,有不少的工具、组件需要向外部购买,其成本如何呢?是否可以分步走呢?

1) 基础版本:仅支持所有带SOC的ECU之间的服务调用。

成本:最低可以为0。

对于SOC上运行的操作系统,如Linux, Android, QNX而言,SOA是十分自然的过程,其源生的就支持IPC(跨进程通信),如binder, dbus等。在这种情况下,可选用的跨ECU的IPC就不少,如SOME/IP,DDS-RPC(DDS支持RPC的版本),fdbus (Jeremy大神写的)等等。

但由于免费的DDS-RPC及fdbus等方式,不被Classic AutoSAR支持,所以后续扩展会有一定的问题。

2) 进阶版本:支持所有ECU之间的服务调用,但不支持实时业务

成本最低为单件百万级别

目前可选的跨ECU通信中间件,只有SOME/IP,且最好选择商业版的。因为虽然Genivi有开源的vSOMEIP,但是是否量产还是个问题。

3) 专业版本:支持SOC内的应用升级(Software OTA)

成本为单件几百万至千万级别。

先解释一下SOTA。业界叫的OTA,通常指的是FOTA (Firmware OTA),而严格意义上的OTA分别3个级别:

目前来看,除了Android系统,其他系统最直接的方式就是上AutoSAR AP。但是个人比较质疑其效果,就拿源生支持SOTA的Android而言,对于深度定制的中控大屏系统,目前有哪一家支持SOTA?原因是,SOTA听起来简单,但对组织的能力要求很高,每次升级某个应用,都需要清楚的知道其依赖关系,而实行SOA架构的系统,其依赖关系往往错综复杂,很容易出错。

因此,AP平台需要慎重考虑。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(12)

4) 极致版本:支持跨ECU的实时通信

成本:上亿?

方式是选择TSN,使Ethernet上的部分业务达到CAN同样的实时性。当初Ethernet为了高吞吐量,采用了CSMA/CD,而CAN为了实时性,采用了CSMA/CR。采用TSN的Ethernet集齐了两者的共同优点,可谓完美。但现实是,目前其标准仍在修改中,且尚无车厂量产。

5、SOA带来的挑战

最后,简单总结一下,SOA的本质是让汽车变成一个真正的分布式系统,就像阿里的“飞天”一样。各自为战的ECU功能设计将被打破,取而代之的是分层式的架构设计与实施。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(13)

SOA分层式的架构也不是一蹴而就的,就跟软件行业的操作系统的发展一样,也是增加功能 -> 抽象的不断循环往复。

mqba0平台都有哪些车(技术闲谈之汽车SOA)(14)

其将给我们带来变革与挑战:

,