欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在一篇文章中了解以太网和 CANoe 的配置情况

最编程 2024-03-11 12:20:25
...

1 概述


以太网在视频数据传输、宽带骨干网络、IP诊断(DoIP)以及电动汽车与充电站之间的通信等领域特别有用。Ethernet.Option扩展 CANoe 以包括对以太网网络的支持,允许使用接口硬件,例如VN5600系列以太网接口或PC上可用的以太网接口,还扩展了CANoe,以包括特定的协议,如SOME/IP,SOME/IP-SD,IP,TCP,UDP,TSN / AVB等等。

VN5600 系列以太网接口专为仿真和测量目的而设计,具有特定优势,例如高时间戳分辨率、与其他vector总线接口同步、点对点连接监控和拓扑精确的仿真。VN5600还支持特定于汽车的物理层,例如 100BASE-T1 (OABR) 和 1000BASE-T1这样就可以直接访问物理层。

网络异常,图片无法展示
|

图1:CANoe .以太网配置,用于在“跟踪”窗口中模拟和分析信号

CANoe可以模拟多个以太网节点的。每个网络节点在这里都由其自己的 TCP/IP 堆栈表示。这确保了与真实节点对应的通信行为。此外,通过对以太网数据包进行有针对性的伪造,可以测试可重现的嵌入式实现,并提高其对协议错误的鲁棒性。通过支持汽车领域典型的数据库格式(AUTOSAR ARKML和Fibex)和协议(SOME/IP,DoIP等),用户可以直接访问应用信号。这大大支持并简化了通信和应用程序数据的分析。

连同VN5600系列以太网接口,CANoe .Ethernet也适用于测量网关到其他车辆网络的信号转换中的延迟时间。例如,这样就可以跟踪整个车辆的诊断信息,并检查其一致性。以太网协议第2层(数据链路层)上的错误不仅可以可靠地检测和显示,还可以被激发。


网络异常,图片无法展示
|

  • 图 2:以太网数据包生成器和以太网交互式生成器用于方便地创建和发送以太网帧,无需编程


下面具体聊聊在CANoe工程的实操和编程。

2 新建CANoe工程

新建一个普通Demon(ETH工程)

网络异常,图片无法展示
|

网络异常,图片无法展示
|

配置Vector Channel

在Option中配置1路以太网(其余无所谓)

网络异常,图片无法展示
|

配置HardWare

在AccessMode中,VN56x0设备使用Channel-Base Mode(新驱动中体现,旧驱动则默认为Channel-Base Mode)

网络异常,图片无法展示
|

在Device Configuration中使用Direct Connection模式

具体的Channel模式(Master/Slave)则视DUT而定

网络异常,图片无法展示
|

配置IP/Stack

在Simulation中配置V56x0的TCP/IP工作信息

网络异常,图片无法展示
|

网络异常,图片无法展示
|

配置8021 Vlan信息

网络异常,图片无法展示
|

配置TCP/IP信息

需要注意的是如果控制器支持普通多路信息则需要分别配置IP信息(如下图),

网络异常,图片无法展示
|

普通信息

网络异常,图片无法展示
|


带Vlan的信息

编写仿真脚本

新建CAPL节点后需要单独配置其IP/Stack属性,具体方式为沿用CANoe硬件设置即可

网络异常,图片无法展示
|

网络异常,图片无法展示
|

以一个TCP握手为例,代码如下

// An highlighted block

on key 'i'
{
 
 dword gClientSocket;       // The client socket
 IP_Endpoint localEndpoint;
 IP_Endpoint remoteEndpoint;
 char IPV4_DesADD[16]= "172.16.6.4";
 dword Port_Des=51001;
 
 /**************配置信息******************/
 remoteEndpoint.ParseEndpointFromString( IPV4_DesADD );
 remoteEndpoint.PortNumber = Port_Des;//@sysvar::ChatClient1::ServerPortNumber;
 localEndpoint = IP_Endpoint(172.16.6.2:0);
 
 /**************开启本地Socket端口******************/
 gClientSocket = TcpOpen( localEndpoint );
 
 /**************开始连接******************/
 TcpConnect( gClientSocket, remoteEndpoint );
 
 
}


测试结果

543e82ff80d4b009fa65f40ca09da48d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

推荐阅读