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

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

3天内不再提示

如何实现Linux环境和CANoe工具之间的数据交互

Vector维克多 来源:Vector维克多 作者:Vector China 2022-11-14 16:52 次阅读

在汽车软件的开发周期中,基于POSIX标准的操作系统(如Linux)广泛应用于AUTOSAR Adaptive平台的ECU原型开发、算法或功能评估中。

该领域的嵌入式软件开发人员通常倾向于在运行Linux系统(如Ubuntu/Debian)的虚拟机中进行开发,因为它提供了与嵌入式平台相似的可访问的接口和组件。

Vector提供的CANoe软件是进行网络/总线和ECU开发、测试和分析的全面工具,支持总线网络开发从需求分析到系统实现的全过程,包括模型创建、仿真、测试、诊断及通信分析等。

但和大多数网络开发工具一样只适用于Windows操作系统,因此开发人员需要考虑如何实现Linux环境和CANoe工具之间的数据交互。

9f96d05c-63f4-11ed-8abf-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数据。通信过程如下图。

9fb4f4ec-63f4-11ed-8abf-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 FilesVector CANoe 16.3.110Installer Additional ComponentsVector Network Driver),以管理员权限安装即可。

安装Microsoft环回适配器

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

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

9ff6bc7e-63f4-11ed-8abf-dac502259ad0.png

图3:安装环回适配器

将Microsoft环回适配器映射到VM

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

a01ad398-63f4-11ed-8abf-dac502259ad0.png

图4:配置桥接模式

配置CANoe使用Microsoft环回适配器

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

a05c47ec-63f4-11ed-8abf-dac502259ad0.png

图5:配置使用网卡

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

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

a0791e30-63f4-11ed-8abf-dac502259ad0.png

图6: CANoe与Ubuntu通信过程

03

TUN/TAP Server

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

a0d77a34-63f4-11ed-8abf-dac502259ad0.png

图7: TAP功能示意

主要配置过程如下。

配置TUN/TAP Server

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

a0fe3818-63f4-11ed-8abf-dac502259ad0.png

图8:TAP server配置

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

a125d54e-63f4-11ed-8abf-dac502259ad0.png

图9: CenOS7中TAP server配置示例

CANoe中激活Virtual Link

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

a155be3a-63f4-11ed-8abf-dac502259ad0.png

图10:CANoe中激活TAP server配置

CANoe中UDP通信配置

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

a1867160-63f4-11ed-8abf-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去进行验证,结果如下。

a1a56e44-63f4-11ed-8abf-dac502259ad0.png

图12: CANoe与TAP server通信过程






审核编辑:刘清

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

    关注

    10

    文章

    350

    浏览量

    21464
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28064
  • CANoe总线
    +关注

    关注

    0

    文章

    4

    浏览量

    928

原文标题:CANoe与虚拟机

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CanoE和TC3x7应用套件之间建立通信,如何实现通过串行通信从CanoE收到的数据帧?

    我想在 CanoE 和 TC3x7 应用套件之间建立通信。 我希望开发板打印它通过串行通信从 CanoE 收到的数据帧。 我该怎么做? 我是初学者,请帮忙。
    发表于 01-31 06:36

    CANoe:网络和ECU开发、测试和分析的专业工具

    CANoe是网络和ECU开发、测试和分析的专业工具,支持从需求分析到系统实现的整个系统的开发过程。CANoe丰富的功能和配置选项被OEM和供应商的网络设计工程师、开发工程师和测试工程师
    发表于 10-09 17:42

    CANoe怎么实现数据采集

    请教一下各位,当CANoe和ECU相连时,ECU会发出很多数据,这些数据变化很快,怎么将发出来的数据采集下来,用什么程序实现,请帮帮忙!
    发表于 03-29 11:35

    如何实现单片机和电脑之间的信息交互

    如何实现单片机和电脑之间的信息交互?怎样实现单片机串口调试助手发送的数据显示在数码管上?
    发表于 09-28 07:13

    基于Linux的RFID交互系统的设计与实现

    为了让射频识别的用户可以根据各自的权限进行相应的操作,本文提出了一款基于Linux的RFID交互系统的设计实现方案。该系统的ID识别模块通过串口与安装了Linux系统的计算机进行通信,
    发表于 10-10 14:39 67次下载
    基于<b class='flag-5'>Linux</b>的RFID<b class='flag-5'>交互</b>系统的设计与<b class='flag-5'>实现</b>

    CANOE教程之CANOE的使用手册免费下载

    本文档的主要内容详细介绍的是CANOE教程之CANOE的使用手册免费下载1 CANoe是进行网络和ECU开发、测试和分析的全面工具,支持总线网络开发从需求分析到系统
    发表于 11-07 08:00 259次下载
    <b class='flag-5'>CANOE</b>教程之<b class='flag-5'>CANOE</b>的使用手册免费下载

    嵌入式Linux开发环境搭建-5-Windows环境下相关工具的使用

    嵌入式Linux开发环境搭建-6-Windows/Linux环境下相关工具的使用一、Windows工具
    发表于 11-01 17:37 13次下载
    嵌入式<b class='flag-5'>Linux</b>开发<b class='flag-5'>环境</b>搭建-5-Windows<b class='flag-5'>环境</b>下相关<b class='flag-5'>工具</b>的使用

    如何快速上手CANoe总线设计与开发

    汽车电子在整车研发中占据非常重要的地位,汽车内部涉及到ECU之间的总线通信变得越来越复杂。而CANoe就是开发测试分析整个ECU网络和单个ECU通信而设计的总线通信分析工具,从概念设计到测试验证,再到批量生产,
    的头像 发表于 07-25 16:09 2634次阅读

    CANoe软件的介绍

    CANoe是德国Vector公司的针对汽车电子行业的总线分析工具,现在我用CANoe7.6版本进行介绍,其他版本功能基本差不多。
    的头像 发表于 02-17 13:53 8269次阅读
    <b class='flag-5'>CANoe</b>软件的介绍

    如何实现OPC DA Server和MQTT Broker之间数据交互

    作为工业领域重要的通信协议,OPC DA常用于现场控制系统/设备之间数据交互;作为物联网协议,MQTT常用于物联网平台数据的采集。本文主要介绍如何
    的头像 发表于 03-23 10:08 1227次阅读
    如何<b class='flag-5'>实现</b>OPC DA Server和MQTT Broker<b class='flag-5'>之间</b>的<b class='flag-5'>数据</b><b class='flag-5'>交互</b>?

    浅谈CANoe实现SOA仿真测试

    本文介绍怎么通过我们CANoe工具实现SOA的相关功能。CANoe Communication Setup功能为实现SOA模型的
    的头像 发表于 08-01 14:17 1675次阅读
    浅谈<b class='flag-5'>CANoe</b><b class='flag-5'>实现</b>SOA仿真测试

    CANoe集成解决方案

    本文介绍CANoe集成解决方案,搭配测试管理平台,实现测试项目的集中管理。用于监控管理CANoe工程,采集、仿真CANoe报文数据等。
    的头像 发表于 08-04 14:49 947次阅读
    <b class='flag-5'>CANoe</b>集成解决方案

    CANOE工具使用教程

    CANOE可谓是常用的总线测试工具之一,不管是总线开发工程师还是测试工程师,甚至是驻场工程师,都对它很熟悉。 天正好闲来有空,趁此机会,来分享一波CANOE的基本使用操作。其整体的框图如下所示,详细
    的头像 发表于 07-18 10:33 5408次阅读
    <b class='flag-5'>CANOE</b><b class='flag-5'>工具</b>使用教程

    基于Linux的RFID交互系统的设计实现方案

    电子发烧友网站提供《基于Linux的RFID交互系统的设计实现方案.pdf》资料免费下载
    发表于 10-23 10:32 0次下载
    基于<b class='flag-5'>Linux</b>的RFID<b class='flag-5'>交互</b>系统的设计<b class='flag-5'>实现</b>方案

    PLC之间的IO交互怎么实现

    在工业自动化领域,可编程逻辑控制器(PLC)作为核心控制设备,其重要性不言而喻。PLC之间的IO交互实现自动化生产线高效、稳定运行的关键环节。本文将详细探讨PLC之间IO
    的头像 发表于 06-17 11:09 1509次阅读