首页 > 其他分享 >CANoe与虚拟机

CANoe与虚拟机

时间:2023-07-31 15:23:55浏览次数:50  
标签:TAP CANoe 虚拟机 配置 环回 Linux 适配器

“转载自维克多汽车技术(上海)有限公司,作者Vector China”

在汽车软件的开发周期中,基于POSIX标准的操作系统(如Linux)广泛应用于AUTOSAR Adaptive平台的ECU原型开发、算法或功能评估中。该领域的嵌入式软件开发人员通常倾向于在运行Linux系统(如Ubuntu/Debian)的虚拟机中进行开发,因为它提供了与嵌入式平台相似的可访问的接口和组件。

Vector提供的CANoe软件是进行网络/总线和ECU开发、测试和分析的全面工具,支持总线网络开发从需求分析到系统实现的全过程,包括模型创建、仿真、测试、诊断及通信分析等。但和大多数网络开发工具一样只适用于Windows操作系统,因此开发人员需要考虑如何实现Linux环境和CANoe工具之间的数据交互。

图1:CANoe与被测软件的虚拟化执行环境

为了满足用户多样化虚拟执行环境的测试需求,除了CANoe以外,Vector还提供了专注于SIL测试的CANoe4SW,可以对软件组件、软件子系统以及整个软件系统进行开发,测试和分析。以及面向服务器版本的CANoe4SW SE(CANoe4SW Server Edition),支持Linux或Windows服务器环境运行CANoe工程,支持Docker容器化运行。

本文主要介绍CANoe与虚拟机通过以太网交互的几种常用方法。

01/Shared Networking

共享意味着CANoe和被测应用程序共享主机的TCP/IP协议栈,这种方式在使用WSL(Windows Subsystem for Linux)时最为便捷。WSL有WSL2和WSL1两个版本,主要区别在于WSL2使用了真实的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。

接下来以WSL2环境为例演示虚拟机与CANoe基于Shared Networking的通信配置过程。在CANoe端需要创建一个UDP通信节点,将其TCP/IP Stack配置为使用操作系统的网络协议栈,然后通过CAPL函数创建socket通过本地环回地址(127.0.0.1)实现UDP报文的发送和接收;在WSL2端无需特殊配置,可直接通过指令去监听UDP报文并向CANoe发送UDP数据。通信过程如下图。

图2: CANoe与WSL2通信过程

这种方式配置简单,但是无法直接在CANoe的Trace窗口中显示通信数据,并且可能会受到主机上其他应用程序的串扰,另外Windows防火墙也可能会抑制通信流量。

Shared Networking同样也适用于其他的虚拟化工具,如VMware Workstation、Virtual Box等。只是需要一些额外配置,对于其他虚拟化环境更推荐使用后面介绍的方式。

02/Virtual Ethernet Link

该方式适用于运行Linux虚拟机的各种虚拟化环境,如VMware Workstation 和Microsoft Hyper-V。接下来以VMware环境为例介绍其配置过程。

> 安装Vector Network Driver

CANoe的安装路径下包含有该驱动的安装程序(参考路径:C:\Program Files\Vector CANoe 16.3.110\Installer Additional Components\Vector Network Driver),以管理员权限安装即可。

> 安装Microsoft环回适配器

在Window搜索栏中输入“hdwwiz”打开添加硬件配置选项,选择手动从列表中选择硬件安装,在硬件类型中选择“网络适配器”,在下一步中厂商选择“MicroSoft”,型号选择“Microsoft KM-TEST环回适配器”进行安装。

安装完成之后就可以在PC的网络连接中查看到Microsoft环回适配器了。

图3:安装环回适配器

> 将Microsoft环回适配器映射到VM

打开VMware Workstation,在编辑菜单下打开虚拟网络编辑器,选择VMnet0并将其桥接到Microsoft环回适配器。

图4:配置桥接模式

> 配置CANoe使用Microsoft环回适配器
CANoe界面,Hardware -> Network Hardware-> Ehernet channel-> Hardware Type中选择Microsoft环回适配器。

图5:配置使用网卡

所有配置完成之后,来自CANoe中的以太网数据就可以通过映射的以太网链路发送到VMware中,同样VMware中的以太网数据也可以发送给CANoe

以VMware中Ubuntu环境为例,验证CANoe与Ubuntu之间的通信链路,过程如下图。

图6: CANoe与Ubuntu通信过程

03/TUN/TAP Server

CANoe从15.0版本开始,新增了Virtual Link(TUN/TAP)功能,支持使用TUN/TAP设备驱动程序将VM虚拟的网络设备连接到CANoe进行仿真。这种模式的通信是双向的,并且CANoe支持工作在真实总线及仿真总线模式下。

图7: TAP功能示意

主要配置过程如下。

> 配置TUN/TAP Server

一是需要在本地Linux环境中编译TAP server,二是编译完成后需要在VM中创建虚拟的TAP设备,具体过程可以参考CANoe帮助文档的说明。

图8:TAP server配置

以VMware中CentOS7环境为例,演示下TAP server配置的具体过程:

图9: CenOS7中TAP server配置示例

> CANoe中激活Virtual Link

CANoe中打开Option页面,激活virtual link并选择TAP server映射的网络。

图10:CANoe中激活TAP server配置

> CANoe中UDP通信配置

CANoe中创建一个UDP通信节点,配置其TCP/IP stack信息。

图11:TCP/IP stack配置

所有配置完成后,运行CANoe就可以在write窗口查看到“Tap Server Discovery on 192.168.24.255:33000”及“Connected to Tap Server 192.168.24.131:35802”的信息,表明CANoe与TAP server端的配置已经完成并建立了连接。为了验证虚拟机与CANoe之间的通信,可以通过Ping指令或者UDP API去进行验证,结果如下。

图12: CANoe与TAP server通信过程

标签:TAP,CANoe,虚拟机,配置,环回,Linux,适配器
From: https://www.cnblogs.com/trinitytec/p/17593506.html

相关文章

  • 【Zookeeper】基于3台linux虚拟机搭建zookeeper集群
    环境和版本说明环境说明:操作系统:Win11202322H2CPU:13代i6内存:64G虚拟机:VMTool17CenterOs版本:7.9镜像:CentOS-7-x86_64-Minimal-2009_2.isoZookeeper版本:3.5.101.进入官方下载CenterOs7.9官网地址:www.centos.org/download/这里还是建议有条件的用用魔法啥的。根据个人环境选择......
  • 关于云平台虚拟机核心组件 libvirt 热迁移流程及关键参数介绍 | 龙蜥技术
    编者按:libvirt是用于管理虚拟机的开源项目,是各大基于OpenStack二次开发的云平台管理底层qemu-kvm虚拟机的核心组件,而热迁移作为虚拟机管理中较为常用的功能,其在稳定性和效率关乎云平台的整体使用体验。今天,浪潮数据云计算高级研发工程师李世东带大家了解虚拟机热迁移在libv......
  • 如何复制文件到 Hyper-V 虚拟机上
    想要实现复制文件到虚拟机上,主要是需要在Hyper-V主机上打开增强会话模式如果Hyper-V主机运行的是Windows10或Windows8.1,则默认情况下,增强会话模式处于打开状态,因此你可以跳过此步骤并转到下一部分。但是,如果主机运行的是WindowsServer2016或WindowsServer2012......
  • 如何用 Java 写一个 Java 虚拟机
    github项目链接https://github.com/FranzHaidnor/haidnorJVMhaidnorJVM使用Java17编写的Java虚拟机意义纸上得来终觉浅,绝知此事要躬行。只学习JVM机制和理论,很多时候任然觉得缺乏那种大彻大悟之感使用简单的方式实现JVM,用于学习理解JVM运行原理主要技术选型J......
  • java——虚拟机、线程
    java虚拟机:是一台想象中的机器,有自己想象的硬件(处理器、堆栈、寄存器等)以及相应的指令系统。生命周期:当执行java程序时,虚拟机开始运行,程序结束虚拟机停止。同一台计算机每多运行一个程序,就会多运行一个虚拟机。虚拟机开始于main()方法。java虚拟机的体系结构:......
  • 虚拟机安装liunx
    1.打开虚拟机,文件-新建虚拟机 2.下一步,选择iso操作系统,我下的是centos7 3.下一步,完成安装后,打开即可4.根据提示选择磁盘,时间,以及十分安装源 ......
  • 虚拟机 NAT网络拓扑
    摘要目的:介绍虚拟机linux的NAT网络结构虚拟机网络结构分析:实际上,主机是开设了一个网卡,即vmnet8,这个网卡为主机开了一个虚拟网络而这个网卡也就是虚拟网络的出口,虚拟网络通过这个网卡实现网络地址转换要求,vmnet8和linux虚拟机在一个网段,也就是前面三位要相同具体地可......
  • 查看虚拟机网络ip信息:vmnet8的ip
    摘要目的:查看虚拟机虚拟网络的ip,网关等(也可以设置)查看/设置主机虚拟网络1.VMWare查看首先点击虚拟网络编辑器然后点击更改设置然后就可以设置了虚拟网络的子网了点击DHCP设置有起始和结束的IP设置设置网关如下当然也可以用另一种方式查看2.主机查看查......
  • 虚拟机安装教程
    一、虚拟机相关安装1)、下载虚拟机与镜像软件虚拟机安装包:链接:https://pan.baidu.com/s/1MP0p5fvIorvFqnsoEStddA提取码:4qqtLinux镜像安装包:链接:https://pan.baidu.com/s/1wW1_3NboaF11hZPKytcHog提取码:dn2m(2)、示范环境本机环境:windows7旗舰版64位内存:8GB1......
  • VMware安装与创建Ubuntu虚拟机
    一、VMware16下载与激活下载&激活\(\to\)https://www.ghxi.com/vmware15.html这里下载VMware_16.2.5-20904516_Setup.exe,安装,勾选增强型键盘驱动程序,其他按默认安装即可。二、创建Ubuntu虚拟机01镜像下载清华源下载ubuntu-23.04-desktop-amd64.iso02VMware创建虚......