在汽车电子电气架构还处于分布式时代时,汽车软件的开发方式主要是采用嵌入式软件进行开发,而随着汽车智能化程度的加深,更加复杂且多样的功能需求让汽车软件在复杂度上再上一层。在整车的自动驾驶方面,由于未来高阶自动驾驶能力的渗透,不同车型在其动力性及安全性方面将得到趋同,而智能化融合用车场景所带来的差异可与用户进行直接互动,将成为影响用户消费的关键。
在此复杂的环境背景之下,传统的软件开发方式由于灵活性差、开发周期长等原因,在汽车电子电气架构处于域融合/中央集成的环境之下,开始逐渐被面向服务架构(Service Oriented Architecture ,SOA)的软件开发设计方法取代。
一、SOA的定义
SOA是一种C/S (Client-Server,客户端/服务器)架构的软件设计方法,其通过采用分层的方式去强调构建松散耦合的架构,可在将软/硬件解耦的同时做到整车的应用功能与开发的车型也同步解耦。由于其应用软件是由独立的、模块化的软件(即服务)组成的,且服务之间采用独立的标准接口进行调用,因此当有整车功能的增加或更新需求时,可在无需改变现有控制单元中的软件模型的前提下,直接通过在中央计算平台去调用提前预埋好的API接口,以此实现对域内或跨域的ECU功能的控制从而实现整车相关功能的增加与更新,此方式即实现了跨域功能的调度与融合。
二、SOA架构的优点
SOA的主要优点为以下几个方面:
1、服务之间通过简单、精确定义的接口进行通信,不涉及底层编程接口和通信模型。
2、粗粒度性:粗粒度服务提供一项特定的业务功能,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够了。
3、松耦合性:松耦合性要求SOA架构中的不同服务之间应该保持一种松耦合 的关系,也就是应该保持一种相对独立无依赖的 关系。这样的好处有两点,首先是具有灵活性,其次当组成整个应用程序的服务内部结构和实现逐步地发生变化时, 系统可以继续地独立存在。而紧耦合意味着应用程序的不同组件之间的接口与其功能和结构是紧密相连的,因而当需要对部分或整个 应用程序进行某种形式的更改时 这种结构就显得非常脆弱。
4、位置透明性:位置透明性要求SOA系统中的所有服务对于其调用者来说都是位置透明的,也就是说,每个服务的调用者只需 要知道想要调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪。
5、协议无关性:协议无关性要求每一个服务都可以通过不同的协议来调用。
三、SOA在整车中的应用价值
1、功能服务化。在传统的汽车时代,由于整车功能与硬件、车型高度绑定,因此想要对其功能进行更新或增加都需要付出巨大的工作量,而在域/中央集成架构的发展下,各功能模块会将其对应的功能提前封装好,并对外提供标准化的接口以供功能之间的相互调用,通过此方式可对新功能或原有的功能进行更新迭代。
如在整车自动驾驶功能中,通过自动驾驶算法会对整车的行径路线进行最合理的规划,在汽车的行进过程中如有补能需求,算法可通过计算汽车当前点与最近可补能点之间的距离,然后提前协调热管理系统的工作让动力电池进入最佳的充电温度,以此让动力电池获得最佳的充电速度。在此过程中,便是自动驾驶域与动力域之间的跨域调度的典型应用。
2、升级简单化。由于SOA让软/硬件得以解耦,在有软件升级需求时可在不考虑硬件架构的前提下快速对软件进行需求范围内的更新,通过快速的、精准的软件更新让用户在软件迭代上获得更好的体验。
如在不同的节假日对整车的HMI进行合适的更新,以此让用户获得更加浓厚的节日体验,此方式便是在精准的小范围内对车机软件进行更新的应用案例。
3、信息安全化。通过具有高速率、高稳定性、高安全性的车载以太网作为整车主网络,以此来实现数据的安全传输。
4、高扩展性。通过预埋接口的方式,可针对多样化的用户需求快速开发相应的应用软件,让整车实现更高、更快地扩展应用。如可根据某一用户群体快速开发适合其功能的应用软件,而对于基础车型而言,其原本的服务并不需要做更新。