随着ADAS、无人驾驶等技术在汽车领域的不断发展,汽车以太网作为其基础技术之一,越来越被行业重视和认同。汽车以太网相对传统汽车网络(CAN/CANFD、LIN、FlexRay)具有更复杂的OSI七层模型。为保证以太网通信设备之间的互操作性,验证车载以太网ECU标准和协议的一致性,OEM厂商要求控制器全面覆盖OPEN联盟的“OPEN Alliance Automotive Ethernet ECU Test Specification”规范。为降低软件和产品开发团队的测试成本,我们来介绍下“OPEN Alliance Automotive Ethernet ECU Test Specification”规范中的SOME/IP协议如何通过Vector CANoe工具进行测试开发。

首先来了解下SOME/IP定义和报文组成。

SOME/IP,即Scalabe service-Oriented MiddlewarE over IP protocol,是一种灵活的,基于IP协议的,面向服务的中间件。SOME/IP是一种专门运用于汽车领域的中间技术,主要用于控制报文通信。

l SOME/IP主要有以下特性:

l Serialization序列化;

l Remote Procedure Call(RPC)远程过程调用;

l Service Discovery服务发现;

l Publish/Subscribe发布/订阅;

l Segmentation of UDP Message UDP报文分段。

SOME/IP报文格式如下所示:

测试环境

那么如何对SOME/IP协议进行测试,需要具备怎样的测试环境呢?

SOME/IP测试的硬件环境主要有PC、VN5640和VT系统。PC执行测试软件包,VN5640作为网络接口卡进行以太网报文收发,VT供电系统对DUT进行供电。

测试硬件环境如下图所示:

SOME/IP的测试软件采用Vector公司的CANoe FULL版本(含Option Ethernet)。具有Ethernet Option的CANoe软件内部有Ethernet和SOME/IP模板工程。我们可在SOME/IP模板工程的基础上进行开发。

测试开发时,在CANoe软件中主要用到以下几个模块:

l Test Setup

通过Test菜单栏下的Test Setup新建测试环境,并在测试环境下面新建CAPL Test Module。在Test Module中新建can文件进行代码的编写。

l TCP/IP Stacks

在CANoe的Simulation菜单栏下选择TCP/IP Stacks,对测试节点的TCP/IP属性进行设置。主要设置测试节点的MAC地址、IP地址及掩码。

l Panel

CANoe的panel工具主要实现测试用例的选择和参数配置的界面化。用户可在参数配置界面输入DUT和Tester的配置信息,并保存成ini文件。同时,用户也可以从特定的ini文件中读取配置信息,并显示在Panel界面上。

l Network Node

Network Node模块用于链接can文件,在can文件中通过系统变量实现对Panel的操作控制,如导入/导出参数、全选/全不选测试用例组、选择某个或者某个测试用例。

l Program Node

Program Node可在CANoe软件的Measurement Setup窗口中添加在Logging模块之前,对logging数据进行操作控制。

测试内容

SOME/IP的测试内容主要分为2大部分:SOME/IP Server测试和ETS测试。

SOME/IP Server测试包含8大部分内容:

l Setup Verification:验证DUT是否具备最基本的offer报文发送和响应请求的能力

l Message Format:验证Service Discovery报文的报头格式

l Option Array:验证Service Discovery报文载荷中的Option Array格式

l Service Discovery Messages:验证各种Service Discovery报文及其功能

l Service Discovery Communication Behavior:验证DUT建立link后的各阶段的通信行为

l SOME/IP Basic Functionality:验证基本的功能定义如InstanceID预留值、MethodID最高位

l Specification of the SOME/IP on-wireformat:验证SOME/IP报文的在线格式

l RPC Protocol specification:验证RPC协议

ETS测试主要测试一些预定义好的服务功能及网络行为,包含如下method、event和field:

以上测试内容里面的具体测试用例可查看TC8规范文档“OPEN Alliance Automotive Ethernet ECU Test Specification”,SOME/IP Server测试共105条用例,ETS测试共144条用例。

测试执行时需要输入ECU英名名称,在参数设置界面输入测试配置参数信息,并在测试用例选择界面选择对应的测试用例,运行“Action”按钮即可。CANoe测试软件包通过程序控制会自动生成测试logging数据和html版的测试报告。如下图所示:

测试程序执行后会生成特定格式的html测试报告,通过转换工具可以快速转换为客户想要的Excel等格式,与测试用例相对应的测试数据(Log文件)也会逐条保存在指定路径下。

后记:

在国内的OEM中也有部分客户不使用SOME/IP去实现应用层服务通信,也可以参考用以上测试开发思路去开发测试用例。用CANoe中自带的Ethernet函数,创建基于UDP协议或者TCP协议的数据包收发,在TCP/IP层的Payload中解析用户自定义的数据格式即可。

详解SOME/IP测试相关推荐

  1. 一篇文章带你详解 TCP/IP 协议(下)

    前面的第一二三章已在上篇讲解,还没看过的可以先看看:一篇文章带你详解 TCP/IP 协议(上) 本文继续讲解第四章. 四.网络层中的 IP 协议 IP(IPv4.IPv6)相当于 OSI 参考模型中的 ...

  2. 详解 TCP/IP 协议

    什么是TCP/IP协议 TCP/IP通信协议是目前最完整.最被广泛支持的通信协议,它可以让不同网络架构.不同操作系统的计算机之间通信,是Internet的标准通信协议. TCP的介绍 TCP也叫传输控 ...

  3. python search用法,Python-re中search()函数的用法详解(查找ip)

    1.首先来看一下search()和find()的区别 import re s1 = "2221155" #search 字符串第一次出现的位置 print(re.search(&q ...

  4. BAT 都在用的方法,详解 A/B 测试的那些坑!

    作者|蚂蚁金服人工智能部产品经理 范磊 本文首发|微信公众号 友盟数据服务 (ID:umengcom),转载请注明出处 If you are not running experiments,you a ...

  5. 数据训练营|BAT都在用的方法,详解A/B测试的那些坑!

    作者|蚂蚁金服人工智能部产品经理 范磊 本文首发|微信公众号 友盟数据服务 (ID:umengcom),转载请注明出处 If you are not running experiments,you a ...

  6. 详解公网Ip和私网ip

    为什么百度查到的ip和ipconfig查到的不一样:详解公网Ip和私网ip:详解网络分类ABC: 原创 逃离地球的小小呆 最后发布于2018-01-30 22:52:47 阅读数 38183 收藏 发 ...

  7. SAP PP 组合订单母子订单 详解及场景测试

    SAP PP 组合订单 详解及场景测试 欢迎关注公众号"SAP顾问之路"获取SAP PA官方教材及培训视频,加官方QQ群:316992290,笔者微信:long199485. 对于 ...

  8. DHCP原理及服务器搭建详解(固定IP地址,DHCP中继服务)

    DHCP原理及服务器搭建详解 一.引子: DHCP在网络中的作用非常重要,简单来说就像给每台服务器配身份证的机构,你有合格的身份才能做合格的事情,要不然连火车都坐不了.服务器只有被DHCP服务配置了I ...

  9. 一篇文章带你详解 TCP/IP 协议(上)

    本文篇幅也比较长,先来一张思维导图,带大家过一遍. 一图看完本文 一. 计算机网络体系结构分层 计算机网络体系结构分层 计算机网络体系结构分层 不难看出,TCP/IP 与 OSI 在分层模块上稍有区别 ...

最新文章

  1. UE中的自动化学习课程
  2. sql2000安装时报错的问题--实例挂起和267目录名无效
  3. SQL Server中的锁类型及用法(转载)
  4. 小学生家庭教育与学习心理
  5. 谨慎跟随初始目的不被关联问题带偏
  6. (视频+图文)机器学习入门系列-第3章 逻辑回归
  7. python3爬虫(6)爬虫代理的使用
  8. 全国计算机等级考试题库二级C操作题100套(第47套)
  9. Struts里面的配置笔记
  10. VNCServer在Linux下设置
  11. auth php rbac,php中比rbac更好的权限认证的方式auth认证类
  12. 谷歌浏览器:解决Chrome浏览器添加扩展程序报错无法从该网站添加应用、扩展程序和用户脚本
  13. 锤子t1android驱动,锤子坚果R1驱动
  14. 计算机运维机构管理制度,信息化机房运维管理制度
  15. 动态口令,动态密码生成(OTP)
  16. iOS 几种常用的 crash log 崩溃信息调试方法. (转载)
  17. 我的编程之路:从好玩到玩好
  18. 2023版软件测试学习路线图(超详细自学路线)
  19. 计算机江苏省二级时间,江苏计算机二级考试时间(江苏计算机二级考试时间2020)...
  20. 【计组 期末版】计算机组成原理笔记目录

热门文章

  1. DataTables如何重新加载数据
  2. UART/USB UART/USB你必须知道的
  3. 移动云计算的四大特点
  4. yapi 接口管理平台手册
  5. 联想G40-30进入PE鼠标键盘失灵解决方法
  6. 高通宣布苹果_苹果当时宣布的一切都过得很顺利
  7. 第十八章 ESP32的WebSocket服务器
  8. 51单片机之蜂鸣器弹钢琴
  9. EPICS S7nodave手册
  10. kml用什么软件打开?