0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CANoe与虚拟机

北汇信息POLELINK 2022-12-15 10:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

e65f06d8-7bfc-11ed-b116-dac502259ad0.png

图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数据。通信过程如下图。

e67b3ccc-7bfc-11ed-b116-dac502259ad0.png

图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环回适配器了。

e698deb2-7bfc-11ed-b116-dac502259ad0.png

图3:安装环回适配器

>

将Microsoft环回适配器映射到VM

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

e6c085fc-7bfc-11ed-b116-dac502259ad0.png

图4:配置桥接模式

>

配置CANoe使用Microsoft环回适配器

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

e6d13da2-7bfc-11ed-b116-dac502259ad0.png

图5:配置使用网卡

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

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

e6deae06-7bfc-11ed-b116-dac502259ad0.png

图6: CANoe与Ubuntu通信过程

03

TUN/TAP Server

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

e6ff0c46-7bfc-11ed-b116-dac502259ad0.png

图7: TAP功能示意

主要配置过程如下。

>

配置TUN/TAP Server

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

e71297f2-7bfc-11ed-b116-dac502259ad0.png

图8:TAP server配置

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

e73d81c4-7bfc-11ed-b116-dac502259ad0.png

图9: CenOS7中TAP server配置示例

>

CANoe中激活Virtual Link

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

e7596b28-7bfc-11ed-b116-dac502259ad0.png

图10:CANoe中激活TAP server配置

>

CANoe中UDP通信配置

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

e777bd44-7bfc-11ed-b116-dac502259ad0.png

图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去进行验证,结果如下。

e78fb57a-7bfc-11ed-b116-dac502259ad0.png

图12: CANoe与TAP server通信过程

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 虚拟机
    +关注

    关注

    1

    文章

    968

    浏览量

    30172
  • CANoe
    +关注

    关注

    4

    文章

    80

    浏览量

    9535
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因及解决措施

    内容:蜂鸟e203在虚拟机unbuntu上面验证时报错的可能原因 现象: 解决措施: 蜂鸟e203在虚拟机unbuntu上面验证时不要重复输入命令: make install make compile SIM=iverilog 只需输入一遍
    发表于 10-24 08:27

    搭建自己的ubuntu系统之创建ubuntu虚拟机

    打开VMware软件,点击创建新的虚拟机。进入以下界面:选择自定义,点击“下一步”。选择对应VMware版本的兼容性,版本可在帮助->关于VMware Workstation中
    发表于 09-25 09:39

    中软国际鸿云虚拟机安装指南

    鸿蒙电脑作为新一代分布式计算平台,凭借其卓越的多端协同能力和智能化特性,为高效办公提供了新选择。针对专业软件兼容性这一核心痛点,中软国际的鸿云虚拟机解决方案提供了务实的技术路径。作为专为鸿蒙生态打造
    的头像 发表于 06-23 16:31 2802次阅读

    TECS OpenStack资源池虚拟机网络二层地址无法互通的问题处理

    某运营商TECS OpenStack使用主机overlay SDN方案组网,运维人员在创建虚拟机测试虚拟机网络状态时发现问题:在其中一台主机上创建两台同网段虚拟机虚拟机之间二层地址无
    的头像 发表于 06-12 09:28 681次阅读
    TECS OpenStack资源池<b class='flag-5'>虚拟机</b>网络二层地址无法互通的问题处理

    hyper 备份,Hyper备份:虚拟机备份与恢复

    的解决方案。今天就为大家介绍Hyper备份:虚拟机备份与恢复。    在虚拟化环境中,备份和恢复虚拟机是确保数据安全和业务连续性的关键操作。Hyper-V提供了多种备份和恢复方法,帮助用户灵活地管理
    的头像 发表于 02-08 09:53 1412次阅读
    hyper 备份,Hyper备份:<b class='flag-5'>虚拟机</b>备份与恢复

    hyper-v虚拟机,为何需要用hyper-v虚拟机

    随着科技的飞速发展,各类任务与数据量急剧攀升,批量管理恰似航行在信息海洋中的坚固灯塔,照亮高效管理的航道。今天小编给大家分享为何需要用hyper-v虚拟机。 使用Hyper-V虚拟机的主要原因包括
    的头像 发表于 02-07 13:37 750次阅读
    hyper-v<b class='flag-5'>虚拟机</b>,为何需要用hyper-v<b class='flag-5'>虚拟机</b>?

    hyper v 上网,Hyper-V上网:虚拟机网络配置

    大家介绍Hyper-V上网:虚拟机网络配置。    在Hyper-V环境中,正确配置虚拟机的网络设置是确保虚拟机能够正常访问外部网络的关键。以下是详细的Hyper-V虚拟机网络配置指南
    的头像 发表于 02-06 10:29 4121次阅读
    hyper v 上网,Hyper-V上网:<b class='flag-5'>虚拟机</b>网络配置

    hyper cpu,Hyper CPU优化:提升虚拟机性能

    :提升虚拟机性能。    在虚拟化环境中,CPU性能优化对于提升虚拟机的整体性能至关重要。Hyper-V提供了多种工具和策略,帮助用户根据虚拟机的工作负载需求合理分配和优化CPU资源。
    的头像 发表于 02-06 10:25 1550次阅读
    hyper cpu,Hyper CPU优化:提升<b class='flag-5'>虚拟机</b>性能

    hyper-v 备份,hyper-v怎样进行虚拟机的创建

    虚拟机技术打破了传统计算机的限制,为我们带来了全新的计算机模式。今天给大家介绍hyper-v怎样进行虚拟机的创建?    hyper-v怎样进行虚拟机的创建?    使用PowerShell启用,以
    的头像 发表于 02-05 14:54 794次阅读
    hyper-v 备份,hyper-v怎样进行<b class='flag-5'>虚拟机</b>的创建

    hyper v 删除,怎么样删除hyper-v中的虚拟机

    对于任何追求卓越运营的企业而言,批量管理如同精密时钟的核心齿轮,精准地调控着各项业务的有序运转。今天小编要带来怎么样删除hyper-v中的虚拟机。    要删除Hyper-V中的虚拟机,可以按照以下
    的头像 发表于 02-05 13:39 1506次阅读
    hyper v 删除,怎么样删除hyper-v中的<b class='flag-5'>虚拟机</b>?

    hyper 内存,Hyper内存:如何监控与优化hyper-v虚拟机的内存使用

    :如何监控与优化hyper-v虚拟机的内存使用。    在虚拟化环境中,合理监控和优化Hyper-V虚拟机的内存使用对于提升性能和资源利用率至关重要。本文将详细介绍如何监控Hyper-V虚拟机
    的头像 发表于 01-24 14:15 1672次阅读
    hyper 内存,Hyper内存:如何监控与优化hyper-v<b class='flag-5'>虚拟机</b>的内存使用

    hyper内存条,hyper-v 添加虚拟机还需要硬盘吗

    在计算机技术的浩瀚星空中,虚拟机犹如一颗璀璨的明星,散发着独特的光芒。今天给大家介绍hyper-v添加虚拟机还需要硬盘吗?    hyper-v添加虚拟机还需要硬盘吗?    Hyper-V是
    的头像 发表于 01-24 14:01 695次阅读
    hyper内存条,hyper-v 添加<b class='flag-5'>虚拟机</b>还需要硬盘吗

    vSAN数据恢复—异常断电导致虚拟机无法启动的vSAN数据恢复案例

    异常断电导致vSAN存储上层虚拟机无法启动。
    的头像 发表于 01-08 13:18 696次阅读
    vSAN数据恢复—异常断电导致<b class='flag-5'>虚拟机</b>无法启动的vSAN数据恢复案例

    Ubuntu系统的虚拟机安装步骤 如何在Ubuntu系统上编译软件

    Ubuntu系统上安装虚拟机的步骤 在Ubuntu系统上安装虚拟机是一个相对简单的过程,通常可以通过安装VirtualBox或KVM等虚拟化软件来实现。以下是使用VirtualBox在Ubuntu
    的头像 发表于 12-12 14:36 1859次阅读

    Hyper-V创建虚拟机配置IP等网络配置原理(Linux、Windows为例)

    大家知道Windows系统里面内置了Hyper-V管理器,用来创建和管理本地虚拟机环境。今天我创建了两台虚拟机,一台是CentOS7.9(Linux),另一台是Windows 11,然后发现
    的头像 发表于 12-09 10:24 5581次阅读
    Hyper-V创建<b class='flag-5'>虚拟机</b>配置IP等网络配置原理(Linux、Windows为例)