当前位置: 首页 > news >正文

[Ethernet in CANoe]2--如何在CANoe中去仿真CP版本的SOME/IP通信

上篇文章(Ethernet in CANoe]1--SOME/IP arxml文件格式的区别)介绍了SOME/IP的两种类型的数据格式,根据作者目前的项目经验,目前在CANoe V18之前的版本,CP版本的arxml是最方便实现SOME/IP以太网仿真的。作者目前只有CANoe V17的license,所以本片文章是在CANoe 17上基于CP版本的arxml去做仿真模拟。

目录

1.创建带Ethernet的CANoe工程:

1.1 License需求:

1.2 增加以太网通道:

1.3 添加SOME/IP的arxml文件:

1.4 添加Eth的DLL文件:

2. 开启SOMEIP的通信仿真:

2.1 检查SOMEIP报文:

2.2 CAPL更新:


1.创建带Ethernet的CANoe工程:

1.1 License需求:

首先在工作的电脑上需要安装CANoe 17 SP5,然后需要CANoe pro 17和CANoe Option/Ethernet 17的license,如下图所示:

当然低于17版本的license也是可以实现SOME/IP仿真通信的,差别不大。

1.2 增加以太网通道:

本文是在已有的CANoe工程中去添加一路以太网通道,主要步骤如下所示:

在工具栏的"Hardware"中去选择"Channel Usage",然后在弹出的CANoe Options的窗口的"General"选项中去选择点击"Eth"的下拉框,选在一路Eth,然后点击"OK" 。

这样一路Eth就添加成功了,可以在simulation的界面看到新加的Ethernet的Networks,右击"Ethernet Networks",选择"Add...",然后添加"Ethernet1":

1.3 添加SOME/IP的arxml文件:

点击"Ethernet1"下方的"Databases",然后右击,选择"Import Wizard",然后选择对应的CP类型的arxml文件,点击"Open",最后在Avaliable nodes中将所有自动生成的节点转到右侧的Assigned nodes:

最后点击"Next"自动在Etherner通道生成arxml中包含的三个节点:

这个时候,带SOMEIP通信的CANoe工程就差最后一步了。

1.4 添加Eth的DLL文件:

CANoe自带了一些以太网相关的DLL文件,这些文件可以支持标准数据库的以太网的正常底层通信,对于SOMEIP的通信,需要添加如下的相关DLL(在CANoe的安装目录下去找到):“C:\Program Files\Vector CANoe 17\Exec32\CANoeILNL_AUTOSAR_Eth.dll” 和“C:\ProgramData\Vector\AddOn Packages\Vector AddOn\vModules\AsrPDUIL.vmodule”。

操作步骤如下:

在以太网通道上右击,然后选择"Assign Module to all Network Nodes";

然后在上述路径去选择添加CANoeILNL_AUTOSAR_Eth.dll和AsrPDUIL.vmodule,最后点击OK即可。

2. 开启SOMEIP的通信仿真:

2.1 检查SOMEIP报文:

上述Ethernet的CANoe工程设置完成后,记得先保存一下。 然后启动CANoe工程,在Trace窗口监控一下SOMEIP通信,来验证通信是否正常。可以看到SOMEIP报文如下图所示:

但是可以看到Trace窗口Source IP为172.16.3.61都是紫色的报文,点开一看都是offer service这种,真正的someip报文信号等有效信息都没有看过,这该如何操作呢?

2.2 CAPL更新:

在上述SOMEIP通信异常的情况下,我们需要在CAPL中去写点简单的代码来实现SOMEIP的正常通信,具体如下:

on start
{dword pev;dword pev1;dword pev2;dword pev3;pev = SomeIpGetProvidedObjectHandle( "Ethernet1::sif_774::ParkingFcnSettingSts" );SomeIPSetProperty(pev, "CycleTimeMs",100); pev1 = SomeIpGetProvidedObjectHandle( "Ethernet1::sif_776::AomCommandSts" );SomeIPSetProperty(pev1, "CycleTimeMs",50);pev2 = SomeIpGetProvidedObjectHandle( "Ethernet1::sif_775::DrivingFcnSettingSts" );SomeIPSetProperty(pev2, "CycleTimeMs",200); pev3 = SomeIpGetProvidedObjectHandle( "Ethernet1::sif_777::SDmapSDLaneInfoSts" );SomeIPSetProperty(pev3, "CycleTimeMs",50); 
}

编译后重新启动CANoe,然后再去Trace窗口去检查SOMEIP的通信:

具体的SOMEIP报文的结构表示的是啥意思呢,以及为什么要在CAPL中去更新这段代码,我们下篇文章在介绍,敬请期待!!!

(PS,对SOMEIP不甚了解的朋友可以参考我之前的记录笔记Ethernet 系列(12)-- 基础学习::SOME/IP)先行了解一下。

http://www.dtcms.com/a/568892.html

相关文章:

  • 优先队列(堆)
  • 基于 TCP 线程池服务器封装 HTTP 服务器:从协议解析到适配落地
  • xargs
  • 据库事务是数据库管理系统 ACID 四大特性
  • 宜昌市住房和城乡建设局网站wordpress后台慢
  • SSM基于HTML5的流浪动物领养平台yww0b(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 网站栏目分类网站开发市场
  • word转Pdf,在window正常,放在linux服务器上就转出来中文是空白
  • 攻防世界-Misc-pdf
  • 开启RN之旅——前端基础
  • 【LeetCode】99. 恢复二叉搜索树
  • 【rhcsa第一次作业】
  • 哪个网站做图找图片上海网络推广公司排名
  • 订单支付后库存不扣减,如何用RabbitMQ来优化?
  • Qt对话框设计
  • 解决 contents have differences only in line separators
  • 无锡建站方案深圳百度总部
  • Docker中安装 redis、rabbitmq、MySQL、es、 mongodb设置用户名密码
  • SAP EXCEL模板下载导入
  • 动态贝叶斯网络物联网应用方式
  • Oracle OCP认证:深度解析与实战指南
  • 帝国建设网站wordpress迅雷插件下载
  • HTTP 请求与数据交互全景指南:Request、GET、POST、JSON 及 curl
  • 如何进一步推动淘宝商品详情API的安全强化与生态协同创新?
  • Flutter | 基础环境配置和创建flutter项目
  • 58同城网站建设排名wordpress页面生成二维码
  • 怎么在子域名建立一个不同的网站怎么通过ip查看自己做的网站
  • UVa 11027 Palindromic Permutation
  • Python模板注入漏洞
  • 【SMTP】在线配置测试工具,如何配置接口?