0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CANoe與虛擬機(jī)

北匯信息POLELINK ? 2022-12-15 10:32 ? 次閱讀

在汽車(chē)軟件的開(kāi)發(fā)周期中,基于POSIX標(biāo)準(zhǔn)的操作系統(tǒng)(如Linux)廣泛應(yīng)用于AUTOSAR Adaptive平臺(tái)的ECU原型開(kāi)發(fā)、算法或功能評(píng)估中。該領(lǐng)域的嵌入式軟件開(kāi)發(fā)人員通常傾向于在運(yùn)行Linux系統(tǒng)(如Ubuntu/Debian)的虛擬機(jī)中進(jìn)行開(kāi)發(fā),因?yàn)樗峁┝伺c嵌入式平臺(tái)相似的可訪問(wèn)的接口和組件。

Vector提供的CANoe軟件是進(jìn)行網(wǎng)絡(luò)/總線和ECU開(kāi)發(fā)、測(cè)試和分析的全面工具,支持總線網(wǎng)絡(luò)開(kāi)發(fā)從需求分析到系統(tǒng)實(shí)現(xiàn)的全過(guò)程,包括模型創(chuàng)建、仿真、測(cè)試、診斷及通信分析等。但和大多數(shù)網(wǎng)絡(luò)開(kāi)發(fā)工具一樣只適用于Windows操作系統(tǒng),因此開(kāi)發(fā)人員需要考慮如何實(shí)現(xiàn)Linux環(huán)境和CANoe工具之間的數(shù)據(jù)交互。

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

圖1:CANoe與被測(cè)軟件的虛擬化執(zhí)行環(huán)境

為了滿足用戶(hù)多樣化虛擬執(zhí)行環(huán)境的測(cè)試需求,除了CANoe以外,Vector還提供了專(zhuān)注于SIL測(cè)試的CANoe4SW,可以對(duì)軟件組件、軟件子系統(tǒng)以及整個(gè)軟件系統(tǒng)進(jìn)行開(kāi)發(fā),測(cè)試和分析。以及面向服務(wù)器版本的CANoe4SW SE(CANoe4SW Server Edition),支持Linux或Windows服務(wù)器環(huán)境運(yùn)行CANoe工程,支持Docker容器化運(yùn)行。

本文主要介紹CANoe與虛擬機(jī)通過(guò)以太網(wǎng)交互的幾種常用方法。

01

Shared Networking

共享意味著CANoe和被測(cè)應(yīng)用程序共享主機(jī)的TCP/IP協(xié)議棧,這種方式在使用WSL(Windows Subsystem for Linux)時(shí)最為便捷。WSL有WSL2和WSL1兩個(gè)版本,主要區(qū)別在于WSL2使用了真實(shí)的 Linux 內(nèi)核、支持完整的系統(tǒng)調(diào)用兼容性以及跨 Linux 和 Windows 操作系統(tǒng)的性能。

接下來(lái)以WSL2環(huán)境為例演示虛擬機(jī)與CANoe基于Shared Networking的通信配置過(guò)程。在CANoe端需要?jiǎng)?chuàng)建一個(gè)UDP通信節(jié)點(diǎn),將其TCP/IP Stack配置為使用操作系統(tǒng)的網(wǎng)絡(luò)協(xié)議棧,然后通過(guò)CAPL函數(shù)創(chuàng)建socket通過(guò)本地環(huán)回地址(127.0.0.1)實(shí)現(xiàn)UDP報(bào)文的發(fā)送和接收;在WSL2端無(wú)需特殊配置,可直接通過(guò)指令去監(jiān)聽(tīng)UDP報(bào)文并向CANoe發(fā)送UDP數(shù)據(jù)。通信過(guò)程如下圖。

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

圖2: CANoe與WSL2通信過(guò)程

這種方式配置簡(jiǎn)單,但是無(wú)法直接在CANoe的Trace窗口中顯示通信數(shù)據(jù),并且可能會(huì)受到主機(jī)上其他應(yīng)用程序的串?dāng)_,另外Windows防火墻也可能會(huì)抑制通信流量。

Shared Networking同樣也適用于其他的虛擬化工具,如VMware Workstation、Virtual Box等。只是需要一些額外配置,對(duì)于其他虛擬化環(huán)境更推薦使用后面介紹的方式。

02

Virtual Ethernet Link

該方式適用于運(yùn)行Linux虛擬機(jī)的各種虛擬化環(huán)境,如VMware Workstation 和Microsoft Hyper-V。接下來(lái)以VMware環(huán)境為例介紹其配置過(guò)程。

>

安裝Vector Network Driver

在CANoe的安裝路徑下包含有該驅(qū)動(dòng)的安裝程序(參考路徑:C:\Program Files\Vector CANoe 16.3.110\Installer Additional Components\Vector Network Driver),以管理員權(quán)限安裝即可。

>

安裝Microsoft環(huán)回適配器

在Window搜索欄中輸入“hdwwiz”打開(kāi)添加硬件配置選項(xiàng),選擇手動(dòng)從列表中選擇硬件安裝,在硬件類(lèi)型中選擇“網(wǎng)絡(luò)適配器”,在下一步中廠商選擇“MicroSoft”,型號(hào)選擇“Microsoft KM-TEST環(huán)回適配器”進(jìn)行安裝。

安裝完成之后就可以在PC的網(wǎng)絡(luò)連接中查看到Microsoft環(huán)回適配器了。

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

圖3:安裝環(huán)回適配器

>

將Microsoft環(huán)回適配器映射到VM

打開(kāi)VMware Workstation,在編輯菜單下打開(kāi)虛擬網(wǎng)絡(luò)編輯器,選擇VMnet0并將其橋接到Microsoft環(huán)回適配器。

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

圖4:配置橋接模式

>

配置CANoe使用Microsoft環(huán)回適配器

在CANoe界面,Hardware -> Network Hardware-> Ehernet channel-> Hardware Type中選擇Microsoft環(huán)回適配器。

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

圖5:配置使用網(wǎng)卡

所有配置完成之后,來(lái)自CANoe中的以太網(wǎng)數(shù)據(jù)就可以通過(guò)映射的以太網(wǎng)鏈路發(fā)送到VMware中,同樣VMware中的以太網(wǎng)數(shù)據(jù)也可以發(fā)送給CANoe。

以VMware中Ubuntu環(huán)境為例,驗(yàn)證CANoe與Ubuntu之間的通信鏈路,過(guò)程如下圖。

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

圖6: CANoe與Ubuntu通信過(guò)程

03

TUN/TAP Server

CANoe從15.0版本開(kāi)始,新增了Virtual Link(TUN/TAP)功能,支持使用TUN/TAP設(shè)備驅(qū)動(dòng)程序?qū)M虛擬的網(wǎng)絡(luò)設(shè)備連接到CANoe進(jìn)行仿真。這種模式的通信是雙向的,并且CANoe支持工作在真實(shí)總線及仿真總線模式下。

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

圖7: TAP功能示意

主要配置過(guò)程如下。

>

配置TUN/TAP Server

一是需要在本地Linux環(huán)境中編譯TAP server,二是編譯完成后需要在VM中創(chuàng)建虛擬的TAP設(shè)備,具體過(guò)程可以參考CANoe幫助文檔的說(shuō)明。

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

圖8:TAP server配置

以VMware中CentOS7環(huán)境為例,演示下TAP server配置的具體過(guò)程:

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

圖9: CenOS7中TAP server配置示例

>

CANoe中激活Virtual Link

在CANoe中打開(kāi)Option頁(yè)面,激活virtual link并選擇TAP server映射的網(wǎng)絡(luò)。

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

圖10:CANoe中激活TAP server配置

>

CANoe中UDP通信配置

在CANoe中創(chuàng)建一個(gè)UDP通信節(jié)點(diǎn),配置其TCP/IP stack信息

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

圖11:TCP/IP stack配置

所有配置完成后,運(yùn)行CANoe就可以在write窗口查看到“Tap Server Discovery on 192.168.24.255:33000”及“Connected to Tap Server 192.168.24.131:35802”的信息,表明CANoe與TAP server端的配置已經(jīng)完成并建立了連接。為了驗(yàn)證虛擬機(jī)與CANoe之間的通信,可以通過(guò)Ping指令或者UDP API去進(jìn)行驗(yàn)證,結(jié)果如下。

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

圖12: CANoe與TAP server通信過(guò)程

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    899

    瀏覽量

    27978
  • CANoe
    +關(guān)注

    關(guān)注

    4

    文章

    64

    瀏覽量

    8594
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    虛擬機(jī)數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致XenServer虛擬機(jī)不可用的數(shù)據(jù)恢復(fù)案例

    虛擬機(jī)數(shù)據(jù)恢復(fù)環(huán)境: 某品牌服務(wù)器通過(guò)同品牌某型號(hào)的RAID卡,將4塊STAT硬盤(pán)為一組RAID10陣列。上層部署XenServer虛擬化平臺(tái),虛擬機(jī)安裝Windows Server系統(tǒng),每臺(tái)
    的頭像 發(fā)表于 10-21 14:17 ?74次閱讀
    <b class='flag-5'>虛擬機(jī)</b>數(shù)據(jù)恢復(fù)—異常斷電導(dǎo)致XenServer<b class='flag-5'>虛擬機(jī)</b>不可用的數(shù)據(jù)恢復(fù)案例

    虛擬化數(shù)據(jù)恢復(fù)—EXSI虛擬機(jī)誤還原快照如何恢復(fù)數(shù)據(jù)?

    虛擬化技術(shù)原理是將硬件虛擬化供不同的虛擬機(jī)使用,一臺(tái)物理機(jī)上可以有多臺(tái)虛擬機(jī)。人為誤操作或者物理機(jī)故障會(huì)導(dǎo)致上層
    的頭像 發(fā)表于 09-09 11:56 ?256次閱讀
    <b class='flag-5'>虛擬</b>化數(shù)據(jù)恢復(fù)—EXSI<b class='flag-5'>虛擬機(jī)</b>誤還原快照如何恢復(fù)數(shù)據(jù)?

    什么是虛擬機(jī)?什么是虛擬化?

    在日新月異的科技世界中,虛擬化技術(shù)如同一座橋梁,連接著現(xiàn)實(shí)與數(shù)字的鴻溝,為我們打開(kāi)了全新的計(jì)算維度。虛擬機(jī),這一概念,自其誕生以來(lái),就以其獨(dú)特的魅力和強(qiáng)大的功能,深深地影響了軟件開(kāi)發(fā)、系統(tǒng)測(cè)試和云計(jì)算等多個(gè)領(lǐng)域。即使目前你還不了解它的應(yīng)用,你應(yīng)該也聽(tīng)過(guò)
    的頭像 發(fā)表于 09-04 14:55 ?538次閱讀

    虛擬機(jī)數(shù)據(jù)恢復(fù)—KVM虛擬機(jī)被誤刪除的數(shù)據(jù)恢復(fù)案例

    虛擬機(jī)數(shù)據(jù)恢復(fù)環(huán)境: Linux操作系統(tǒng)服務(wù)器,EXT4文件系統(tǒng)。服務(wù)器中有數(shù)臺(tái)KVM虛擬機(jī)虛擬機(jī)1:主數(shù)據(jù)庫(kù)服務(wù)器 虛擬磁盤(pán):系統(tǒng)盤(pán)(qcow2)+數(shù)據(jù)盤(pán)(raw)
    的頭像 發(fā)表于 08-07 13:33 ?295次閱讀
    <b class='flag-5'>虛擬機(jī)</b>數(shù)據(jù)恢復(fù)—KVM<b class='flag-5'>虛擬機(jī)</b>被誤刪除的數(shù)據(jù)恢復(fù)案例

    什么是虛擬機(jī)?虛擬機(jī)真的那么好用嗎?

    在日新月異的科技世界中,虛擬化技術(shù)如同一座橋梁,連接著現(xiàn)實(shí)與數(shù)字的鴻溝,為我們打開(kāi)了全新的計(jì)算維度。虛擬機(jī),這一概念,自其誕生以來(lái),就以其獨(dú)特的魅力和強(qiáng)大的功能,深深地影響了軟件開(kāi)發(fā)、系統(tǒng)測(cè)試和云
    的頭像 發(fā)表于 07-06 08:05 ?463次閱讀
    什么是<b class='flag-5'>虛擬機(jī)</b>?<b class='flag-5'>虛擬機(jī)</b>真的那么好用嗎?

    虛擬化數(shù)據(jù)恢復(fù)—虛擬機(jī)誤還原快照的數(shù)據(jù)恢復(fù)案例

    有一臺(tái)虛擬機(jī)是由物理機(jī)遷移到ESXI上面的,遷移完成后為該虛擬機(jī)做了一個(gè)快照。虛擬機(jī)上運(yùn)行了一個(gè)SQL Server數(shù)據(jù)庫(kù),記錄了5年左右的數(shù)據(jù)。 該ESXI上共有二十幾臺(tái)
    的頭像 發(fā)表于 05-11 11:07 ?437次閱讀

    虛擬機(jī)ubuntu怎么聯(lián)網(wǎng)

    虛擬機(jī)ubuntu怎么聯(lián)網(wǎng)? 虛擬機(jī)(Virtual Machine)是運(yùn)行在物理機(jī)(Host Machine)上的虛擬操作系統(tǒng)環(huán)境。在虛擬機(jī)
    的頭像 發(fā)表于 12-27 16:51 ?878次閱讀

    虛擬機(jī)怎么進(jìn)入root用戶(hù)

    進(jìn)入虛擬機(jī)的root用戶(hù),需要通過(guò)以下步驟完成。首先,我們需要明確一點(diǎn),root用戶(hù)是Linux系統(tǒng)下的超級(jí)管理員,具有最高權(quán)限。 第一步:打開(kāi)虛擬機(jī) 首先,要確保已經(jīng)安裝了虛擬機(jī)軟件,并啟動(dòng)
    的頭像 發(fā)表于 11-23 10:51 ?1.6w次閱讀

    怎么安裝linux虛擬機(jī)

    在計(jì)算機(jī)領(lǐng)域,虛擬機(jī)是一種軟件程序,它允許在主操作系統(tǒng)上運(yùn)行多個(gè)虛擬操作系統(tǒng)。Linux虛擬機(jī)在開(kāi)發(fā)、測(cè)試和學(xué)習(xí)等環(huán)境中得到廣泛應(yīng)用。本文將詳細(xì)介紹如何安裝Linux虛擬機(jī),并提供一個(gè)
    的頭像 發(fā)表于 11-23 10:50 ?1002次閱讀

    Docker與虛擬機(jī)的區(qū)別

    Docker和虛擬機(jī)是兩種不同的虛擬化技術(shù),它們?cè)趯?shí)現(xiàn)方式、資源消耗、運(yùn)行性能等方面存在許多差異。本文將會(huì)詳細(xì)介紹它們的區(qū)別。 一、實(shí)現(xiàn)方式 1.1 虛擬機(jī) 虛擬機(jī)是通過(guò)在物理主機(jī)上模
    的頭像 發(fā)表于 11-23 09:37 ?8522次閱讀

    虛擬機(jī)如何運(yùn)行c程序

    虛擬機(jī)(Virtual Machine,VM)是一種模擬了物理計(jì)算機(jī)的軟件,可以在計(jì)算機(jī)上創(chuàng)建虛擬的硬件平臺(tái),使得用戶(hù)可以在其中運(yùn)行操作系統(tǒng)和應(yīng)用程序。在虛擬機(jī)中運(yùn)行C程序需要進(jìn)行多個(gè)步驟,下面將給
    的頭像 發(fā)表于 11-17 10:14 ?4444次閱讀

    vm虛擬機(jī)linux系統(tǒng)怎么編程

    虛擬機(jī)中編程Linux系統(tǒng)是學(xué)習(xí)和探索計(jì)算機(jī)科學(xué)的一個(gè)重要方面。使用虛擬機(jī)可以在主機(jī)上模擬出一個(gè)或多個(gè)獨(dú)立的計(jì)算環(huán)境,我們可以在其中安裝和運(yùn)行不同的操作系統(tǒng)。通過(guò)創(chuàng)建虛擬機(jī),我們可以在
    的頭像 發(fā)表于 11-17 10:10 ?1686次閱讀

    虛擬機(jī)linux怎么編寫(xiě)程序

    虛擬機(jī)Linux上編寫(xiě)程序是一項(xiàng)非常常見(jiàn)且有用的任務(wù)。無(wú)論是開(kāi)發(fā)一個(gè)簡(jiǎn)單的腳本、一個(gè)Web應(yīng)用程序還是一個(gè)復(fù)雜的軟件項(xiàng)目,Linux提供了強(qiáng)大的工具和環(huán)境來(lái)幫助你進(jìn)行編程。本文將詳細(xì)介紹如何在
    的頭像 發(fā)表于 11-17 10:08 ?1512次閱讀

    linux虛擬機(jī)使用教程

    引言:Linux虛擬機(jī)是一種方便且常用的技術(shù),它允許用戶(hù)在現(xiàn)有操作系統(tǒng)的基礎(chǔ)上創(chuàng)建和運(yùn)行另一個(gè)獨(dú)立的操作系統(tǒng)。在本篇文章中,我們將提供一份詳盡的教程,幫助你了解如何安裝、配置和使用Linux虛擬機(jī)
    的頭像 發(fā)表于 11-17 10:06 ?1174次閱讀

    linux虛擬機(jī)系統(tǒng)基本指令

    Linux虛擬機(jī)系統(tǒng)是一種通過(guò)虛擬化技術(shù)在物理服務(wù)器上部署多個(gè)獨(dú)立的虛擬機(jī)實(shí)例的操作系統(tǒng)。它可以幫助用戶(hù)更有效地利用硬件資源,并方便地部署和管理多個(gè)操作系統(tǒng)環(huán)境。本文將介紹一些常用的Linux
    的頭像 發(fā)表于 11-17 10:04 ?1394次閱讀