基于SOMEIP协议的SOA设计
2023-09-19周焕宇
高 越,高 健,周焕宇
基于SOMEIP协议的SOA设计
高 越,高 健,周焕宇
(沈阳东信创智科技有限公司,辽宁 沈阳 110000)
为了推进车载以太网和基于服务的架构(SOA)在车内的快速应用,论文结合实例介绍了基于模型的SOA功能架构开发流程及方法,同时绑定可伸缩的基于IP的中间件(SOMEIP)协议,进行基于服务以太网通信设计,对汽车SOA功能架构和以太网网络架构开发具有一定指导意义。
SOMEIP;基于服务的架构;以太网;架构;用例;服务接口
随着智能互联、自动驾驶、电动汽车及共享出行的发展,分布式模块化架构正在向区域和中央计算平台的架构方向演进,软件定义汽车是实现汽车新四化的推动力,软件开发必须快速、敏捷,以实现功能更新迭代,面向服务的架构(Service Oriented Architecture, SOA)开发可以满足以上所有需求,又因为SOA开发需要交互大量的结构化数据,百兆、千兆甚至是多G以太网又被引入到车内,二者结合使用,相辅相成,在国内外各大整车厂得到逐步落地。
1 SOA设计
SOA是一种软件架构开发方法,服务可以是黑盒形式,通过标准的服务接口向外提供服务;服务也是无状态的,可以被重复调用,可以被多次部署。SOA设计主要包括用例设计、交互时序设计、接口设计。
1.1 用例设计
功能设计通常采用“自上而下(Top-Down)”的正向开发思路,首先通过用户场景分析定义用例(Use Case),通过用例描述系统面向用户提供主要功能或服务[1]。
本文以汽车远程控制功能为例进行用例设计,用例设计遵循的原则为参与者(Actor)通过什么方法可以达到什么目标。如图1所示,参与者为用户,用户可以通过手机App远程控制座椅加热、控制空调、控制车窗、控制门锁等多个用例,而远程控制车窗又包含(Include)以下四个子用例:
1)用例1:一键开启车窗,用户通过手机App远程一键开启车窗,开合度至100%。
2)用例2:一键关闭车窗,用户通过手机App远程一键关闭车窗,开合度至0%,车窗关闭过程中,可能触发使能防夹,一旦防夹功能使能,需要提示用户,这里防夹功能使能用例是一键关闭用例的扩展。
3)用例3:车窗换气控制,用户通过手机App远程控制车窗,开合度可至任意位置。
4)用例4:车窗状态查询,用户通过手机App远程查询车窗状态及位置。
图1 汽车远程控制用例图
1.2 交互时序设计
功能实现通过时序图描述,主要包括参与者(paticipate)和每一步需要交互的信息,一个时序图可包括一个或者多个用例。
图2为远程一键关闭车窗时序图,对图分析可知,车身域控为车窗控制服务的提供者,手机App为车窗服务的消费者,而网关作为服务代理,将信号转换成服务,提供整车状态服务,其中包括车窗控制(Window Control)、服务依赖(Depen- dency)、整车状态(Vehicle State)服务。图3为使用PRREEvision工具定义的服务调用关系。
图2 远程一键关闭车窗时序图
图3 一键关闭车窗功能服务调用关系
1.3 服务接口定义
前面已经定义完服务角色及服务的调用关系,下面定义接口类型及相关数据类型,接口类型包括请求响应方法R&R Method,一般用于需要执行一段时间才会有效执行反馈的控制类指令;单方向通信方法F&F Method;域(Get, Set, Notify),其中通知(Notify)指令必须涵盖控制指令中所涵盖的所有状态[2];事件(Event)类型接口使用同上面的通知(Notify)指令。
按照之前的功能分析,Window Control服务需要定义一个R&R Method,输入参数为电动窗控制命令(Window CtrolCmd),输出参数为电动窗控制结果(Window CtrolRst),也需要定义一个通知(notify),参数内容为电动窗的位置和防夹状态(Window State);Vehicle State服务需要定义三个通知(notify),分别为Vehicle Speed、Gear Level和Ignition State。
以太网数据大多为结构化数据,数据定义必须层层分解到原始数据类型BaseType,图4以Window State数据为例说明数据类型定义。Window State为结构体数据类型,包含两个数据成员winPosition和winStatus,这两个数据成员也为结构体,分别包含前左、前右、后左和后右四个电动窗的位置和状态信息,基本数据类型都为uint8。
图4 结构体数据Window Control定义
2 SOMEIP协议设计
可伸缩的基于IP的中间件(Scalable Service Oriented Middleware over IP, SOMEIP)协议是欧洲主机厂宝马公司专门针对以太网及SOA的车内应用而开发的中间件协议,通过此中间件进行应用层和IP层的数据交互,实现了应用程序和操作系统之间的解耦。SOMEIP协议主要包括远程过程调用(Remote Process Call, RPC)、数据序列化、服务发现(Service Discovery, SD)、SOMEIP 传输协议(Transport Protocol, TP)等四部分内容[3]。
2.1 RPC协议定义
RPC协议定义主要是SOMEIP协议头(Header)的相关参数,如服务ID、方法/事件ID、协议版本、客户端ID,事件组(Event Group)及其ID等。这些数据定义原则是为不同域的服务划分范围,且确保唯一性。
2.2 数据序列化定义
数据序列化是指发送方将应用层的结构化的并行数据转化成串行数据发送到总线上的过程,接收方再将从总线上接收到的串行数据反序列化成并行数据交给应用层。
汽车开放系统架构(AUTomotive Open System ARchitecture, AUTOSAR)组织定义了转换器(Transformer)作为SOMEIP 序列化的软件模块。关键设置参数如下:
1)对齐(Alignment)应用于变长数据,如变长数组和变长字符串,为了方便读取内存数据,通过填充的方式使数据处于字节起始位置。对齐参数的定义主要和域控处理器系统相关,本文中车身域控和网关均为4 byte对齐。
2)字节序(Byte Order),为了和车外网兼容,字节序定义为Motorola Big Endian类型。
3)结构体、数组和变长字符串的数据长度域长度,本文全部定义为4 byte。
图5为结构体数据类型序列化示例,数据长度域长度为4 byte[4]。
图5 结构体数据序列化
2.3 服务发现
软件定义(Software Defined, SD)是一种特殊的服务,定义了服务的寻址信息和状态信息。服务端发布提供服务,客户端查找、订阅服务。通过此服务发现机制,可动态地建立通信链接,同时可开启、关闭服务,有效降低了总线带宽及算力资源。
服务器端和客户端的SOMEIP SD通信行为是不同的,但都包括四个阶段,每个阶段都需要定义相应的参数,图6为服务器端通信行为定义,初始化阶段(Initial Wait Phase)需要配置的时间参数为INITIAL_DELAY时间(最大和最小值之间的随机值);重复阶段(Repetition Phase)中参数REPETITIONS_BASE_DELAY为服务端发送offer service的基本时间,随着发送次数的增加,发送间隔时间倍增,最多发送次数为REPETIT- IONS_MAX;主阶段(Main Phase)中OfferCyclic Delay为服务端发送offer service的发布周期[5]。
图6 服务端状态转换及时间参数
SOMEIP SD相关参数定义可以参照表1,客户端和服务端的参数定义一致[6]。
表1 SOMEIP SD参数定义
参数数值/ms Initial_Delay_Min0 Initial_Delay_Max300 Repetition_Base_Delay30 Repetition_Max3 Cyclic_Offer_Delay1 000 TTL5 000 Request_Response_Delay_Min0 Request_Response_Delay_Max500
2.4 SOMEIP TP定义
SOMETP协议可以绑定用户数据报协议(User Data Protocol, UDP)传输数据。如果SOMEIP协议绑定UDP,且数据字节长度大于1 400 byte,则必须使用SOMEIP TP,将数据进行分片传输。SOMEIP TP的设计参数主要有两个,发送端发送连续两个数据包的时间间隔(Minimum Separation Time=1 ms)和接收端接收超时时间(RxTimeout Time=3 ms)。
2.5 仿真测试
最后,定义车载以太网一到四层的通信协议,比如物理层的通信速率和主从节点,数据链路层的虚拟局域网和MAC地址,网络层的IP地址和传输层的端口号等,所有数据及相关参数设计完成后,使用VECTOR公司的架构开发工具PREE- vision进行建模,可导出以太网SOA的ARXML,并将此ARXML导入VECTOR公司的仿真测试工具CANoe中进行仿真测试。在仿真时,可直接在Bus Statistic窗口下查看总线负载率,如图7所示。
图7 CANoe仿真总线负载
3 结论
本文结合实例介绍了SOA功能架构定义的流程和方法,以及如何基于SOMEIP协议进行SOA网络架构的相关参数设计。未来的电子电气架构,SOA将作为功能架构的主要开发方式,而以太网将作为整车网络的主干通信网络,国内主机厂正纷纷搭建以太网和SOA电子电气架构平台,提升市场竞争力。
[1] 袁仲楠.基于PREEvision的电子电气架构开发研究[J].电子测试,2020(3):55-57,130.
[2] 刘聪,陈敏.面向服务的电子电气架构研究与应用[J].北京汽车,2021(6):34-36,40.
[3] AUTOSAR Organization.AUTOSAR TR SOMEIP Example R4.2.1:637[S].Redmond:AUTOSAR Organ- ization,2014.
[4] AUTOSAR Organization.AUTOSAR PRS SOMEIP Protocol R20-11:696[S].Redmond:AUTOSAR Organ- ization,2020.
[5] AUTOSAR Organization.AUTOSAR TPS Manifest Specification R19-03:713[S].Redmond:AUTOSAR Organization,2019.
[6] 詹德凯,高越.基于PREEvision的SOA设计[J].汽车实用技术,2022,47(23):62-70.
SOA Design Based on SOMEIP Protocol
GAO Yue, GAO Jian, ZHOU Huanyu
( Shenyang Dotrust Technologies Company Limited, Shenyang 110000, China )
In order to promote the rapid application of on-board ethernet and service oriented architecture(SOA) in the vehicle, this paper introduces the development method and process of SOA functional architecture based on model combined with examples, and also, the design of service-oriented ethernet communication based on scalable service oriented middleware over IP(SOEMIP) protocol is bound, which has certain guiding significance for the development of automotive SOA functional architecture and ethernet network architecture.
SOMEIP;Service oriented architecture; Ethernet; Architecture; Use case; Service interface
U462.1
A
1671-7988(2023)17-71-05
10.16638/j.cnki.1671-7988.2023.017.012
高越(1982-),女,硕士,工程师,研究方向为汽车电子电气架构、汽车以太网、SOA,E-mail:01yue.gao @dotrustech.com。