车载SOA基础讲解之一—SOA概述

目录

1 概述

2 SOA架构详解

2.1 什么是SOA架构

2.2 协议的选择

2.3 SOA架构服务的流程

2.3.1 梳理整车功能

2.3.2 规划SOA架构

2.3.3 服务定义

2.3.4 服务矩阵和ARXML文件

2.3.5 服务验证与仿真

2.4 SOA架构举例

3 车载SOA架构的四问四答

 3.1 为什么车载领域需要SOA 

3.2 服务是什么?   

3.3 服务接口是什么

3.4 为什么用SOA,SOA有哪些好处


1 概述

    车载 SOA 是一种软件架构风格,它将车辆的各种功能(如车窗控制、空调调节、导航计算、自动驾驶感知)包装成独立的、可复用的服务。这些服务通过网络(如车载以太网)进行通信,通过标准化的接口 被其他软件组件发现和调用。

  核心比喻:将汽车变成一个“服务网络”

传统汽车像一台功能固定的台式电脑,所有硬件和软件被紧密地集成在一起,升级和扩展极其困难。

基于 SOA 的智能汽车像一个小型局域网或智能手机,每个功能(如摄像头、雷达、娱乐系统)都是一个可独立提供服务的“设备”。应用(如自动驾驶、智能座舱)可以像手机App一样,灵活地调用这些服务来组合出复杂的功能。

2 SOA架构详解

2.1 什么是SOA架构

        系统设计过程中,需要秉承一套可以被分享,可以被评审,可以被记录,可以被流程化的设计思路,这就是架构;是产品需求和技术需求之间的桥梁。

        架构的设计原则如下:

2.2 协议的选择

     SOA架构支持多种协议,例如SomeIP,DDS,MQTT,HTTP等,最常见的是SomeIP协议,具体每种协议的特点如下表所示:

特性

SomeIP

DDS

MQTT

HTTP

通信机制

Request/Response+订阅发布

订阅发布

订阅发布+Broker

Request/Response

是否轻量型

相对于DDS来说,轻量型

相对于HTTP来说,轻量型

架构风格

服务发现

全量数据空间

代理

P2P

传输协议

TCP/UDP

TCP/UDP

TCP

TCP

动态发现

CP AUTOSAR

支持

占用比较大的资源

不支持

不支持

AP AUTOSAR

支持

支持

不支持

REST模块

Linux/QNX

支持

支持

支持

支持

云端

不支持

需要DDS,Web转换

支持

支持

安全性

TLS

自带安全协议,也支持TLS等

简单用户名/密码认证,TLS数据加密

TLS

2.3 SOA架构服务的流程

       具体的流程如下:梳理整车功能—>规划SOA架构—>服务定义—>服务矩阵和Arxml设计—>服务验证和仿真。

2.3.1 梳理整车功能

目标: 回答“车要做什么?”的问题。将传统的、以信号为导向的功能描述,转化为以用户价值为中心的服务化功能清单。

详细解释:

功能收集与定义:
来源包括:市场需求、用户场景、法律法规要求、品牌特色功能等。例如:“迎宾模式”、“自动驾驶导航”、“智能座舱多屏互动”、“远程空调预冷”等。
功能分析:
对每个功能进行细化分析,明确其触发条件、执行流程、性能指标、安全等级等。例如:“迎宾模式”的流程可能是:用户携带钥匙靠近 -> 车门把手灯亮起 -> 后视镜展开 -> 车内氛围灯和仪表盘点亮 -> 座椅调整到预设位置。
服务化思维转换:
这是关键一步。需要将功能看作是由一系列可复用、可组合的“能力”或“服务”协作完成的。在“迎宾模式”中,“点亮车门把手灯”、“展开后视镜”、“调整座椅”这些动作,本身就可以被定义为独立的服务,不仅可以用于迎宾,也可以被其他功能(如远程控制)调用。
输出物:整车功能清单(Feature List);功能描述文档(包括用例图、序列图等);初步的服务化功能框图

2.3.2 规划SOA架构

    目标: 回答“系统如何组织?”的问题。设计一个分层、分域的架构蓝图,确保系统的灵活性、可扩展性和可靠性。

  详细解释:

(1)架构分层设计:

应用层: 承载具体的整车功能逻辑(如“迎宾模式”控制器)。它不关心底层硬件,只通过调用下层提供的服务来实现功能。服务层: 架构的核心。由一系列粗粒度、可复用的服务组成。服务提供标准化的接口,对上层隐藏其实现细节。功能层/原子服务层: 由ECU提供的、最基础的服务,通常与具体的传感器、执行器或计算资源绑定(如“车灯控制服务”、“座椅调节服务”、“GPS定位服务”)。基础平台层: 包括车载操作系统、AUTOSAR Adaptive Platform、Hypervisor、车载网络等,为服务的运行和通信提供基础支持。

(2)服务域划分:根据功能关联性,将服务划分到不同的域中,便于管理和团队协作。常见的域包括:动力域;底盘域;车身域;智驾域;座舱域

(3)通信机制设计:确定服务间通信的主要协议,如基于SOME/IP 和 DDS。SOME/IP是当前车载SOA的事实标准,负责服务的发现、序列化和传输。

(4)输出物:SOA系统架构图;服务域划分图;技术栈选型文档(如确定使用AUTOSAR AP)

2.3.3 服务定义

    目标: 回答“每个服务具体是什么?”的问题。以机器可读和标准化的方式,精确描述每个服务的“合同”。

   详细解释:

(1)服务接口设计:

服务接口: 服务的唯一标识,类似于编程中的类名。方法: 需要请求-响应的操作(如“获取当前车辆位置”)。事件: 服务主动发出的通知,无需请求(如“车辆位置已更新”)。字段: 可订阅的状态数据(如“当前车辆位置”)。

(2)数据类型定义:为方法、事件和字段的参数定义复杂的结构体、枚举等数据类型,确保通信双方对数据的理解一致。

(3)服务质量定义:配置通信的可靠性、传输协议(TCP/UDP)、生命周期管理等非功能性属性。

(4)工具:通常使用Franca IDL 或 SOA建模工具 来进行服务定义。Franca IDL是一种接口定义语言,允许工程师以文本形式描述服务。

(5)输出物:*.fidl 文件(Franca IDL文件)或工具导出的等效模型文件。

2.3.4 服务矩阵和ARXML文件

    目标: 回答“服务如何在物理网络上部署和通信?”的问题。将逻辑上的服务映射到物理上的ECU和网络总线上,并生成标准的工程配置文件。

   详细解释:

(1)创建服务矩阵:这是一个关键的衔接步骤。它是一个表格,清晰地定义了:

服务提供者: 哪个ECU提供哪个服务接口。服务消费者: 哪个ECU需要调用或订阅哪个服务。网络通信路径: 服务通信需要经过哪些网关和网络(如以太网、CAN FD)。

(2)ARXML设计:

ARXML 是AUTOSAR标准的XML格式文件,是不同工具链和ECU开发团队之间交换设计信息的“通用语言”。根据服务矩阵和服务定义(Franca IDL),使用AUTOSAR系统设计工具(如Vector PREEvision、ETAS ISOLAR-A等)来创建详细的ARXML描述。ARXML文件包含了完整的系统配置信息:所有ECU的软件组件;服务接口、端口;服务到ECU的映射关系;网络通信配置(SOME/IP-SD配置、报文帧ID等)。

(3)输出物:服务矩阵(Excel表格或工具内矩阵视图)完整的系统描述ARXML文件。

2.3.5 服务验证与仿真

    目标: 回答“服务设计是否正确并能协同工作?”的问题。在投入实际的硬件和软件开发之前,尽早发现设计缺陷和接口问题。

    详细解释:

(1)静态验证:检查ARXML文件是否符合AUTOSAR元模型规范,检查服务接口定义的一致性(如数据类型匹配)。

(2)动态仿真:生成仿真代码/模型: 利用工具从ARXML文件自动生成服务的仿真骨架代码或模型(如Simulink模型)。

(3)搭建仿真环境:服务提供者仿真: 模拟一个ECU,对外提供指定的服务;服务消费者仿真: 模拟另一个ECU,去调用或订阅服务。

(4)执行测试:

端到端功能测试: 模拟完整的用户场景,验证多个服务协作是否能实现预期功能。性能测试: 评估网络带宽、通信延迟、ECU负载等。负面测试: 模拟服务不可用、通信超时等异常情况,检验系统的鲁棒性。

(5)工具链:使用像Vector CANoe.CAR2X、ETAS LABCAR、dSPACE SystemDesk 等专业工具进行系统级的仿真和测试。

6)输出物:验证报告;仿真测试用例和结果;早期发现的缺陷列表,用于反馈并修正之前阶段的设计。

2.4 SOA架构举例

    一个简单的SOA架构如下所示:

    采用SOA架构的特点: 软硬分离,降低开发难度;部署灵活,功能重新分配 ;更新升级快 ;易扩展维护

    SOA不是具体的技术实现,一种模板的软件架构

3 车载SOA架构的四问四答

 3.1 为什么车载领域需要SOA 

    传统车载软件(基于信号/ECU的架构)面临无法适应智能汽车发展的瓶颈:

硬件与软件紧耦合一个ECU(电子控制单元)的软件通常与特定的硬件绑定。更换或升级硬件,软件几乎需要重写。

功能孤岛:车身、动力、座舱、智驾等域之间难以通信和协作。例如,智驾系统想使用座舱的显示屏来展示信息,需要复杂且定制化的集成。

开发周期慢,无法升级:车辆功能在出厂时就已固化。增加一个新功能(如新的驾驶模式)需要改动多个ECU的软件,测试复杂,无法通过OTA轻松实现。

产业链协作困难:主机厂、Tier1(一级供应商)、Tier2、软件公司等各方基于不同的标准和平台开发,集成成本极高。

    车载 SOA 的出现,就是为了实现“软件定义汽车”,解决上述问题。

3.2 服务是什么?   

    服务是实现某种功能的函数或者方法

    服务是一个独立的功能单元,它封装了车辆的一项特定能力或资源,并可通过网络被访问。

   车载服务的例子:


CameraService
:提供获取摄像头图像流的能力。


NavigationService
:提供路径规划和导航计算的能力。


VehicleBodyService
:提供控制车门、车窗、空调的能力。


LocalizationService
:提供车辆当前位置和姿态的信息。


HMI_DisplayService
:提供在屏幕上绘制界面的能力。

   核心特征:

标准化访问:无论服务来自哪个供应商(博世、大陆、华为),只要遵循相同的接口标准,就能被统一访问。

位置透明:调用者不需要知道这个服务是运行在哪个域控制器(智驾域、座舱域、车身域)上,只需要通过网络请求即可。

功能代表:服务代表的是“能力”,而不是“信号”。例如,从“发送一个开窗信号”变为“调用
WindowControlService

MoveToPosition
方法”。

3.3 服务接口是什么

    就是服务模块与外界沟通时的信息出入口,车载服务接口 是服务功能的严格定义和约定,它明确规定了服务的名称、可调用的方法、可触发的事件以及传递的数据结构

    在车载领域,接口通常包含三个核心要素:

Methods:调用方可以主动调用的函数,并期望得到回复。例如,
NavigationService

CalculateRoute(起点, 终点)
方法。

Events / Fields:服务主动向外界推送的状态信息或通知。例如,
VehicleSpeedService
会持续发布
current_speed
这个字段,任何订阅了该字段的客户端都会在其变化时收到通知。

Data Types:在方法和事件中传递的复杂数据结构。例如,一个
GPSPosition
数据类型,包含经度、纬度、海拔等信息。

    主流技术:

SOME/IP 是车载领域实现 SOA 的核心中间件协议,它定义了服务发现、通信序列化等机制。

DDS 也在一些高性能实时场景(如自动驾驶)中使用。

接口通常用 ARXML 或 Franca IDL 等标准化的接口描述语言来定义。

3.4 为什么用SOA,SOA有哪些好处

    汽车领域采用SOA架构的一个主要原因是能够加快车辆与互联网的互联互通。

    车载 SOA 是实现“软件定义汽车”的基石,其好处是革命性的:

硬件与软件解耦:主机厂可以独立于硬件来开发上层应用软件。只要硬件提供了标准的服务接口(如
CameraService
),就可以自由选择或更换硬件供应商,实现了“硬件可插拔”。

支持高效的OTA升级:可以单独升级某个服务(如更新
NavigationService
的地图引擎),而无需刷新整个车辆系统,使得功能迭代和bug修复变得快速、安全。

加速创新和功能融合:可以快速地将不同域的服务组合起来,创造出新功能。例如,“露营模式” 可以这样实现:一个应用同时调用
BatteryManagementService
(管理电量)、
HVAC_Service
(维持空调)、
LightingService
(控制灯光)和
EntertainmentService
(播放音乐)。这在传统架构下几乎不可能快速实现。

提升开发效率,促进产业链分工

主机厂可以专注于用户体验和整体功能的定义与集成。

Tier1可以专注于提供高质量的、符合接口标准的硬件和底层服务。

软件公司可以基于标准接口开发创新的车载应用。

各方并行开发,最后通过服务接口进行“拼装”,极大缩短研发周期。

实现真正的长期价值:汽车在售出后,其功能和体验仍能通过OTA不断进化,从“一锤子买卖”转变为“持续提供价值的平台”,开创了新的商业模式。

从“信号导向”到“服务导向”的范式转变

方面 传统车载架构(基于信号) 车载 SOA 架构(基于服务)
核心单元 ECU 和 信号(如:VehicleSpeed = 60) 服务 和 接口(如:GetVehicleSpeed())
通信方式 静态的、广播式的 CAN/LIN 总线 动态的、面向连接的 车载以太网
耦合度 紧耦合,硬件/软件/功能绑定 松耦合,硬件、软件、功能分离
灵活性 低,功能固化,难以更改 高,支持OTA,功能可随时组合与更新
开发模式 垂直封闭,依赖特定供应商 水平开放,产业链分层协作

     总而言之,车载 SOA 不是为了技术而技术,它是汽车产业应对智能化、网联化浪潮的必然技术选择,是未来汽车成为“移动的超级智能终端”的软件架构核心。 

    

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容