如何实现CAN-SOME/IP通信路由测试

news2024/11/24 6:39:47

区别于基于UDP的车内通信路由,基于SOME/IP协议的路由增加了服务发现(Service Discovery)和服务发布(Service Publish),那对于测试工程师来说,怎么实现CAN-SOME/IP路由的测试呢?

01 认识路由实现方式

首先要了解基于SOME/IP协议的路由设计原则,如果功能实现在Ethernet节点,则Ethernet节点为server,网关为client,如果功能实现在CAN节点,则网关为server,Ethernet节点为client,由网关实现Ethernet节点与CAN节点之间的路由。包括两种路由方式:报文路由和信号路由。

图片

那么,CAN报文和SOME/IP报文怎么实现对应呢,举个例子:

在以下示例中,通过SOME/IP header中的ServiceID和MethodID可以关联到指定的CAN报文。

图片

其中:

A代表ServiceID

B代表BusID

C代表CAN MessageID

E用来区分Method,或Event/Notifier 消息

报文路由:CAN报文的payload映射为服务接口的payload。网关实现CAN和SOME/IP协议之间的报文路由,不改变数据内容和数据长度。

图片

信号路由:服务接口中的参数映射为CAN报文中的信号。网关实现不同数据类型之间的转换。

图片

02 了解测试内容

报文路由不涉及信号内容解析,测试输入时可以不加载数据库文件也能完成测试,但是信号路由涉及SOME/IP接口参数的序列化和反序列化,需要加载数据库进行测试。

常见测试点

通信路由主要测试点包括:检查目标网段、报文类型、MessageID、payload length、payload是否正确,路由延迟时间等是否满足要求。

逆向测试的测试点主要有:payload length大于或小于预期,无效ID等

稳定性相关的测试点主要有:高负载,反复上下电,反复休眠等

以CAN-->SOME/IP 报文路由为例,已知某路由信息,测试Payload一致性。

路由信息

源网段(CAN)

目标网段(SOME/IP)

MessageID:0x100

DLC:8

ServiceID:0x0001

MessageType:Notification

EventgroupID:0x0001

NotificationID:0x8100

测试步骤

Step1:检查网关是否Offer ServiceID 0x0001

Step2:Tester模拟客户端,订阅ServiceID为0x0001,EventgroupID为0x0001的事件组,检查网关是否回复对应的SubscribeACK

Step3:在源网段模拟发送CAN报文,ID为0x100,data为01 02 03 04 05 06 07 08,检查是否接收到对应的SOME/IP报文

Step4:检查接收的payload与发送的payload是否一致

03 自动化测试解决方案

测试环境

搭建的测试环境要能与DUT建立通信,能控制DUT上下电和唤醒。可以参考以下的测试拓扑来监控DUT的通信,同时仿真Tester节点,模拟CAN和Ethernet节点与DUT进行通信。该套测试系统由CANoe测试软件、VT板卡、VN 5650,VN 16XX,程控电源和DUT组成。

图片

测试脚本

在上述测试步骤中,Tester需要模拟CAN节点和SOME/IP服务客户端,测试脚本的开发可基于CAPL语言和Vector提供的SomeIP_IL.dll文件,分为以下几个步骤来实现 。

❶ 在TCP/IP Stack中,给Tester设置IP/MAC地址

❷ 模拟发送CAN报文

❸调用SomeIpOpenLocalApplicationEndpoint函数,创建一个Endpoint

❹ 调用SomeIpCreateConsumedServiceInstance函数,指定ServiceID和InstanceID

❺ 调用SomeIpAddConsumedEventGroup函数,指定EventgroupID

❻ 调用SomeIpCreateFieldConsumer函数,指定NotificationID,以及当接收到此Notification报文时的回调

❼ 创建回调函数,当接收到Notification报文时,比对payload是否一致

回调函数触发后,数据解析方法示例:

图片

测试结果

CANoe监控报文以及数据处理结果展示:

图片

通过调用SomeIP_IL.dll文件,可以实现Tester与网关之间的服务发现过程,以及服务接口的接收和调用,进一步达到测试的目的。

SOME/IP-->CAN路由的测试原理与上面相似,调用dll文件中的函数,实现模拟服务端的行为,信号路由的测试通过导入SOME/IP和CAN数据库文件,可以实现自动化测试。

以上就是我们给大家分享的CAN-SOME/IP路由测试的相关内容了,任何疑问或是自动化测试需求,都可以随时联系我们噢,感谢大家的阅读~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开放式耳机的类型有哪些?开放式耳机有什么优点?本文章为你讲解

伴随着开放式耳机越来越受大家欢迎,很多人还不知道开放式耳机是什么,有哪些好用的,有哪些优点,就直接入手了,结果踩雷了!面对这些常见问题,我来跟大家一一讲解开放式耳机热门问题。 1.开放式耳…

【C#】并行编程实战:同步原语(3)

在第4章中讨论了并行编程的潜在问题,其中之一就是同步开销。当将工作分解为多个工作项并由任务处理时,就需要同步每个线程的结果。线程局部存储和分区局部存储,某种程度上可以解决同步问题。但是,当数据共享时,就需要用…

浅谈企业能源管理系统在水泥企业的设计与应用

安科瑞 华楠 摘要: 水泥企业是我国高能耗行业之一,一直是政府推进节能减排工作的控制对象。建立企业能源管理系统,实现从能源因素采集、过程监控、能耗管理控制全过程的自动化、科学化管理。加大能源的合理化使用,减少能源消耗,对…

UE初级-C++基础-1.类库简介及目录结构

原文链接:UE5 C教程(一、基本结构)_skycol的博客-CSDN博客 原文链接:UE4C学习篇(一)_卡西莫多说的博客-CSDN博客 一.类库简介 虚幻API由三部分组成,分别是Runtime, Developer utilitiew&#…

门票售罄+酒店满房+营收创新高 原拓·非遗嘉年华战报来袭

7月2日,原拓非遗文化嘉年华首站在北京圆满落幕。作为原拓酒店创立的品牌活动IP,原拓非遗文化嘉年华携手非遗传承人、艺术创作者、文创品牌等志同道合的伙伴,在酒店空间呈现丰富体验,通过 DIY 工作坊、创意市集等方式,让…

【机器人模拟-02】 模拟移动机器人设置里程计

一、说明 在本教程中,我将向您展示如何设置移动机器人的测程。本教程是“机器人模拟”指南中的第二个教程。测量位移是仿真中的重要内容,设置测程的官方教程在此页面上,但我将逐步引导您完成整个过程。 您可以在此处获取此项目的完整代码。让我们开始吧! 二、ROS 2 中的里程…

MySQL查询数据库、表以及表行数所占内存大小

前言 在开发中我们想知道某个数据库,或者某个数据表的内存大小,那么怎么查询呢?下面通过简单示例一一介绍,希望对您有所帮助。 某表每行所占字节数 SELECT TABLE_NAME , CONCAT((DATA_LENGTH + INDEX_LENGTH), 字节) AS 每行占用字节数 FROM information_schema.TAB…

高并发的哲学原理(六)-- 拆分网络单点(下):SDN 如何替代百万人民币的负载均衡硬件

上一篇文章的末尾,我们利用负载均衡器打造了一个五万 QPS 的系统,本篇文章我们就来了解一下负载均衡技术的发展历程,并一起用 SDN(软件定义网络)技术打造出一个能够扛住 200Gbps 的负载均衡集群。 负载均衡发展史 F5 …

备战秋招 | 笔试强训4

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、有以下程序&#xff0c;程序运行后的输出结果是&#xff08;&#xff09; #include<iostream> #include<cstdio> using namespace std; int main() {int m0123, n123;printf(&quo…

【LeetCode: 931. 下降路径最小和 | 暴力递归=>记忆化搜索=>动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

中国8K摄像机厂家加入国际广电设备制造商协会IABM

近日&#xff0c;BOSMA博冠正式成为国际广电设备制造商协会IABM会员&#xff0c;标志着中国8K摄像机厂家BOSMA博冠在广播电视超高清前端采集领域受到全球广电权威机构认可&#xff0c;进一步推动国产品牌在全球市场竞争中提升品牌知名度、加强行业影响力。 IABM创立于1976年&am…

【Unity面试篇】Unity 面试题总结甄选 |C#基础篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点&#xff1a;&#x1f431;‍&#x1f3cd;2023年Unity面试题大全&#xff0c;共十万字面试题总结【收藏一篇足够面试&#xff0c;持续更新】为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新…

android更换开机动画

android11 路径&#xff1a;device / {vendor-name} / {platform-name} / {device-name} / system / bootanimation.zip 例&#xff1a;android \ device \ softwinner \ ceres \ ceres-b6 \ system \ bootanimation.zip android13 路径&#xff1a;device / softwinner / {PRO…

2023年最全最新的学习课程合集

WEB前端入门&#xff1a;从零开始做网站。 完成所有课堂练习就可以做出自己的作品&#xff0c;并掌握数据库和了解开源项目。 这些课程涵盖了HTML、CSS和JavaScript等前端技术&#xff0c;以及与之相关的设计原则和最佳实践。 前端课程的目标是培养学生在网页开发方面的技能…

uniCloud

uniCloud 一、介绍1.新建项目2.初识云函数 二、数据库1.在云控制台操作数据库2.通过云函数对数据库进行操作&#xff08;1&#xff09;查询&#xff08;2&#xff09;修改&#xff08;3&#xff09;删除 3.客户端操作4.JQL语法 三、云函数四、云对象五、云存储六、uni-id七、扩…

2023年7月深圳软考中级系统集成项目管理工程师报名

系统集成项目管理工程师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职…

EasyCVR接口调用正常,但快照不显示是什么原因?

有用户反馈&#xff0c;现场部署了EasyCVR v3.1版本&#xff0c;将设备通过国标GB28181协议接入到平台&#xff0c;但是页面没有显示出快照&#xff0c;请求我们协助排查。 针对用户的反馈&#xff0c;我们立即排查。排查后发现&#xff0c;视频播放是正常的&#xff0c;调用接…

玩转字符串函数与字符函数——【C语言】

在C语言的学习中&#xff0c;我们经常会遇到字符串&#xff0c;对它的处理也是数不胜数&#xff0c;但是我们没有很好的处理办法&#xff0c;字符串只能放在字符数组或常量字符串中通过自定义函数去使用处理。而现在我将带领大家学习C语言函数库中专门处理字符串的函数。 这些…

超高性能MCU发布,为开发人员提供了高效的工具链

近日嵌入式开发软件和服务的全球领导者IAR与业界领先的半导体器件供应商兆易创新(GigaDevice)宣布&#xff0c;联合推出最新版本IAR Embedded Workbench for Arm 9.40已经全面支持兆易创新的GD32H737/757/759系列超高性能MCU微控制器&#xff0c;这为**ERP系统**开发人员提供了…

Java 注解使用

一、注解简介 注解是那些插入到源代码中使用其他工具可以对其进行处理的标签。这些工具可以在源码层次上进行操作&#xff0c;或者可以处理编译器在其中放置了注解的类文件。 注解不会改变程序的编译方式。Java编译器对于包含注解和不包含注解的代码会生成相同的虚拟机指令。 为…