APP下载

车载以太网SOME/IP协议及一致性测试系统研究

2023-07-10曹丽平徐维刘敏

汽车电器 2023年6期

曹丽平 徐维 刘敏

【摘  要】随着汽车网联化、智能化、电动化的快速发展,车载以太网已成为新型网络架构中的骨干网络。对汽车而言,汽车的自主度越高,系统故障导致的后果也将变得越来越严重,并且国内车载以太网技术处于发展的初期,为保证这些系统安全可靠地运行,车载以太网协议一致性测试显得尤为重要。SOME/IP属于车载以太网架构中应用层和传输层之间的中间件,对于SOME/IP而言,它是面向服务的通信。SOME/IP协议一致性测试包括SOME/IP Server测试及SOME/IP ETS测试,测试结果表明,该测试系统能够有效检测出DUT在服务请求及服务应答过程中的错误,为供应商及主机厂完善产品协议规范提供帮助。

【关键词】车载以太网;协议一致性;SOME/IP;面向服务

中图分类号:U463.6    文献标志码:A    文章编号:1003-8639( 2023 )06-0055-04

Research on Conformance Testing System for Protocols in Automotive Ethernet SOME/IP

CAO Li-ping,XU Wei,LIU Min

(China Automotive Engineering Research Institute Co.,Ltd.,Chongqing 401120,China)

【Abstract】With the rapid development of automobile networking,intelligence and electrification,vehicle Ethernet has become the backbone network in the new network architecture. For cars,the higher the autonomy of the car,the more serious the consequences of system failures will become,and the domestic vehicle Ethernet technology is in the early stage of development. To ensure the safe and reliable operation of these systems,it is particularly important to test the consistency of on-board Ethernet protocol. SOME/IP belongs to the middleware between the application layer and the transmission layer in the vehicle Ethernet architecture. For SOME/IP,it is service-oriented communication. SOME/IP protocol conformance test includes SOME/IP Server test and SOME/IP ETS test,and the test results show that,the test system can effectively detect errors of DUT in the process of service request and service response,and provide help for suppliers and OEMs to improve product protocol specifications.

【Key words】vehicle Ethernet;protocol conformance test;SOME/IP;service oriented

随着汽车电动化、智能化、网联化的快速发展,对传统汽车电子电气系统提出了新的需求和挑战。智能座舱、智能驾驶等技术在车上大规模的应用,使得车内电子电气系统变得越来越复杂,所需的控制器数目和算力也呈几何倍数增长。各系统的融合带来了高带宽、高速率的通信需求,传统的CAN(FD)总线已不能完全满足。车载以太网新型网络通信技术的引入,已使这一融合变为部分现实,车载以太网将成为车载网络未来发展的趋势。

本文主要研究车载以太网应用层SOME/IP协议一致性测试。文中首先介绍SOME/IP的基本内容,包括消息格式、序列化及通信机制,其次介绍SOME/IP SD的消息格式及工作机制,最后基于协议标准介绍一种协议一致性的测试方案。测试用例内容参考OPEN ALLIANCE TC8 3.0,保证测试的标准性和通用性。测试系统以思博伦公司的C50为硬件基础,TTworkbench为软件支撑,选用SOME/IP测试套件完成整个测试。

1  SOME/IP协议

1.1  SOME/IP概述

1)服务(Service)是什么?服务是一个离散的功能单元,可远程访问并独立执行和更新。对于SOME/IP而言,它的通信过程不再是面向信号的,是在接收方有需求的时候才发送。这种通信实现的方式是,当某个ECU需要调用并实现其他ECU上的服务时,前ECU扮演Client的角色,后ECU就扮演Server的角色,而SOME/IP就是实现这种远程服务调用的接口。

2)服务接口(Service Interface)是什么?接口:能够被其它模块调用的与应用程序之间使用的标准的API接口;服务接口:服务与外界进行联系的接口,服務接口(Method、Event和Field)本身与底层通信技术无关。

3)SOME/IP是干什么的?解决服务提供方与服务消费方之间的网络通信问题,SOME/IP报文打包了服务接口的内容。

4)SOME/IP主要功能?远程调用(RPC)——基本的通信机制;序列化——定义数据表达方式;服务发现(SD)——服务发现,发布/订阅处理。

1.2  SOME/IP消息格式(图1)

1)Service ID:服务的唯一识别号,每个服务都被分配了一个唯一的Service ID。

2)Method ID:服务包含了一系列的方法(Method)、事件(Event)和字段(Field),均有唯一的1个Method ID,其中0—32767为方法(包括Method、Field.Getter以及Field.Setter),32768—65535为事件(包括Event和Field.Notify)。

3)Length:除Message ID和Length字段之外的所有数据长度。

4)Client ID:用来识别一个具体的客户端,在整车范围内,Client ID必须是唯一的。

5)Session ID:可以用来识别来自同一客户端的多次请求。

6)Protocol Version:SOME/IP的版本,目前为1。

7)Interface Version:主版本号,用来识别服务接口,由用户定义。比如,当服务增加了新的功能或者发生变更,用户可以定义新的版本号,而客户端或者服务端可以通过这个版本号来自动判断兼容性。

8)Message Type:用来识别不同的消息类,其消息类型详见表1。

9)Return Code:用来指示请求是否被成功处理了,其消息类型详见表2。

1.3  SOME/IP序列化

序列化是将数据结构或对象依据事先定义好的规格转换成二进制串的过程;反序列化是将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程。根据传输对象的不同数据类型,有不同的序列化规则。

1)基本数据类型的序列化。SOME/IP支持的基本数据类型见表3。例:unit32类型数据0x12345678的序列化,见表4。

2)结构体的序列化。将结构体的数据元素顺序排序,然后将各个元素依次进行序列化,可增加Length Field来指示结构体中数据元素的字节长度,而嵌套的结构体,也同样需要增加Length Field。结构体的序列化如图2所示。

3)字符串的序列化。①格式为BOM+数据+结束语(固定长度)。例:Member 1为utf8 18byte,“车载ETH”(E8BDA6,E8BDBD,45,54,48);Member 1为utf16LE 18byte,“序列化ABCA”(5E8F,5217,5316,0041,0042,0043)。字符串的序列化(固定长度)如图3所示。②格式为BOM+数据+结束语(动态长度)。例:Member 1为“浪费”(E6B5AA,E8B4B9);Member 2为“badguy”(62,61,64,67,75,79)。字符串的序列化(动态长度)如图4所示。

4)数组的序列化。数组是相同类型数据的集合,依据数组元素的顺序排列,并进行序列化。

5)联合体的序列化。图5为联合体的序列化(动态长度)。

1.4  SOME/IP通信机制

SOME/IP是实现远程服务调用的接口,服务接口有Method、Event和Field。

有响应的方法(Method with response):客户端发送请求消息(Request)调用某一方法,服务端通过响应消息(Response)将结果返回給客户端。

无响应的方法(Method fire & forget):客户端发送请求消息(Request)调用某一方法,服务端不回复响应。

Event——事件。Client端订阅1个服务,Server端发布该服务。

Field——字段。字段是客户端可以远程访问的服务端中的变量。客户端可以通过远程调用Getter方法获取Field的值,也可以通过远程调用Setter方法设置Field的值。另外,和Event相似,当客户端订阅了某个事件组,若事件组中包含的Field发生了变化,服务端会主动通过Notification消息通知客户端。

1.5  SOME/IP SD消息格式

SOME/IP-SD[4]可以被当做SOME/IP的一种特殊服务,提供了ECU之间服务交互的方法与标准,对Payload里的内容进行定义和实现。

1)报文格式——Event Entry(图6)。Reboot Flag:重启/上电时至1,直到Session ID完成1~0xFFFF的1个循环之后,并再次以0x0001开头,置0;Unicast Flag:是否支持单播接收;Length:包含Length以后的所有长度;Type:报文格式;Options:Option1排在Array里第几个;Of opt 1:Option1的数目;Service ID:需要查找或公布的服务;Instant ID:服务实例ID;Major Version:服务的主版本号;TTL:发现服务时的搜索时间,提供服务时的有效时间;Minor Version:服务的次版本号。

2)报文格式——Eventgroup Entry(图7)。Initial Data Requested Flag:在服务端发送的OFFER中,如果Explicit Initial Data Control Flag置位,那么客户端可通过置位Initial Data Requested Flag来显示请求初始数据,这样服务端会立即发送初始数据;Counter:用于区分来自同一订阅者对同一事件组的不同订阅,如果没有使用,填0;Eventgroup ID:事件组ID,包含若干Event和Field的逻辑分组。

3)报文格式——IPv4 Endpoint Option(图8)。服务端在发送OFFER Entry时使用IPv4 Endpoint Option来指定提供服务的端点地址以及发送Event的源地址;客户端在发送Subscribe Entry时使用IPv4 Endpoint Option来指定Event的接收地址。

4)报文格式——IPv4 Multicast Option(图9)。服务端发送SubscribeAck时,如果发送Event的目标地址为组播地址,那么应携带IPv4 Multicast Option。

2  SOME/IP一致性测试

2.1  测试内容

1)SOME/IP Server测试。依赖DUT自身的SOME/IP应用功能,我们会在其中抽取一些典型的服务和方法,用来验证一些比较基础的内容,比如报文格式、基本的RPC和SD机制等。在测试中,测试系统Tester仿真客户端发送的请求,并接收DUT的响应;当触发应用产生了特定行为时,部分测试可能需要其他特殊手段,例如,当请求了订阅,需要触发DUT发送Event时,不要触发某种条件,如仿真I/O输入,或者开发1个测试用的软件接口。SOME/IP Server测试集见表5。

2)SOME/IP ETS测试(表6)。突破被测控制器自身应用的限制,能够弥补上面提到的Server测试在覆盖度方面的不足。简而言之,TC8定义了一个服务,称为ETS(Enhanced Testability Service)。ETS中包含的各种Method、Event、Field等覆盖SOME/IP所支持的全部数据类型,并包含了一些特殊的Method,比如ResetInterface(用于重启ETS服务)等;被测控制器集成了ETS后,我们能够对SOME/IP以及SOME/IP-SD进行充分而且全面的验证。

2.2   SOME/IP一致性测试实现

本文对车载以太网SOME/IP协议一致性测试平台选用的是Sprient的C50硬件系统及TTworkbench软件系统,SOME/IP测试环境如图10所示。

1)连接测试端口(图11),根据被测设备的端口类型,将要测试的以太网通信端口接到C50的测试端口上,当前C50包含16个测试端口。

2)通过SSH进入C50的系统内部进行测试端口的IP地址配置等操作,通常使用的软件有Xshell、Putty、SSH等,本测试系统使用Putty进入C50系统内部进行配置测试端口参数。C50内部系统配置如图12所示。

3)打开TTworkbench,选择测试包并加载,配置测试参数,开始测试执行。TTworkbench测试环境配置如图13所示。

2.3  測试结果分析

测试Log用wireshark软件打开,以SOMEIP_ETS_005_ checkByteOrder为例,C50创建一个带有UINT8和UINT16参数的SOME/IP报文,发送TC8 ETS矩阵里checkByteOrder Method请求,并检查DUT回复的参数是否和矩阵保持一致。checkByteOrder Method请求与回复如图14、图15所示。

3  结论

本文是针对车载以太网SOME/IP一致性测试提出的针对性测试方案,该测试系统提供的测试集覆盖了TC8 3.0的所有测试用例。通过对被测件进行实际测试,验证了测试系统的有效性,测试实例及结果证明:该测试系统能够完全按照TC8测试用例流程来执行测试,能有效检测出被测件在SOME/IP通信过程中的基础格式问题及协议栈自身应用问题,能够帮助供应商及主机厂完善产品协议。

参考文献:

[1] 张弛,吴志红,朱元,等. 基于AUTOSAR标准的ETH基础通信及SOME/IP通信实现[J]. 信息通信,2020(2):7-12.

[2] 赵刚. 基于车载以太网的协议研究[D]. 天津:河北工业大学,2015.

[3] 张春霞,李旭东,徐涛. 浅谈面向服务架构(SOA)的核心理念[J]. 计算机系统应用,2010,19(6):251-256.

[4] 李志涛,姬志博,耿伟峰. 车载以太网SOME/IP测试的研究与分析[J]. 汽车电器,2022(6):95-98.

(编辑  凌  波)