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

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

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

如何實(shí)現(xiàn)Linux環(huán)境和CANoe工具之間的數(shù)據(jù)交互

Vector維克多 ? 來源:Vector維克多 ? 作者:Vector China ? 2022-11-14 16:52 ? 次閱讀

在汽車軟件的開發(fā)周期中,基于POSIX標(biāo)準(zhǔn)的操作系統(tǒng)(如Linux)廣泛應(yīng)用于AUTOSAR Adaptive平臺的ECU原型開發(fā)、算法或功能評估中。

該領(lǐng)域的嵌入式軟件開發(fā)人員通常傾向于在運(yùn)行Linux系統(tǒng)(如Ubuntu/Debian)的虛擬機(jī)中進(jìn)行開發(fā),因?yàn)樗峁┝伺c嵌入式平臺相似的可訪問的接口和組件。

Vector提供的CANoe軟件是進(jìn)行網(wǎng)絡(luò)/總線和ECU開發(fā)、測試和分析的全面工具,支持總線網(wǎng)絡(luò)開發(fā)從需求分析到系統(tǒng)實(shí)現(xiàn)的全過程,包括模型創(chuàng)建、仿真、測試、診斷及通信分析等。

但和大多數(shù)網(wǎng)絡(luò)開發(fā)工具一樣只適用于Windows操作系統(tǒng),因此開發(fā)人員需要考慮如何實(shí)現(xiàn)Linux環(huán)境和CANoe工具之間的數(shù)據(jù)交互。

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

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

為了滿足用戶多樣化虛擬執(zhí)行環(huán)境的測試需求,除了CANoe以外,Vector還提供了專注于SIL測試的CANoe4SW,可以對軟件組件、軟件子系統(tǒng)以及整個軟件系統(tǒng)進(jìn)行開發(fā),測試和分析。

以及面向服務(wù)器版本的CANoe4SW SE(CANoe4SW Server Edition),支持Linux或Windows服務(wù)器環(huán)境運(yùn)行CANoe工程,支持Docker容器化運(yùn)行。

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

01

Shared Networking

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

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

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

圖2: CANoe與WSL2通信過程

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

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

02

Virtual Ethernet Link

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

安裝Vector Network Driver

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

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

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

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

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

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

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

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

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

圖4:配置橋接模式

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

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

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

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

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

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

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

圖6: CANoe與Ubuntu通信過程

03

TUN/TAP Server

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

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

圖7: TAP功能示意

主要配置過程如下。

配置TUN/TAP Server

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

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

圖8:TAP server配置

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

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

圖9: CenOS7中TAP server配置示例

CANoe中激活Virtual Link

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

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

圖10:CANoe中激活TAP server配置

CANoe中UDP通信配置

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

a1867160-63f4-11ed-8abf-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之間的通信,可以通過Ping指令或者UDP API去進(jìn)行驗(yàn)證,結(jié)果如下。

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

圖12: CANoe與TAP server通信過程






審核編輯:劉清

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

    關(guān)注

    10

    文章

    349

    瀏覽量

    21447
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    905

    瀏覽量

    28022
  • CANoe總線
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    926

原文標(biāo)題:CANoe與虛擬機(jī)

文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CanoE和TC3x7應(yīng)用套件之間建立通信,如何實(shí)現(xiàn)通過串行通信從CanoE收到的數(shù)據(jù)幀?

    我想在 CanoE 和 TC3x7 應(yīng)用套件之間建立通信。 我希望開發(fā)板打印它通過串行通信從 CanoE 收到的數(shù)據(jù)幀。 我該怎么做? 我是初學(xué)者,請幫忙。
    發(fā)表于 01-31 06:36

    CANoe:網(wǎng)絡(luò)和ECU開發(fā)、測試和分析的專業(yè)工具

    CANoe是網(wǎng)絡(luò)和ECU開發(fā)、測試和分析的專業(yè)工具,支持從需求分析到系統(tǒng)實(shí)現(xiàn)的整個系統(tǒng)的開發(fā)過程。CANoe豐富的功能和配置選項(xiàng)被OEM和供應(yīng)商的網(wǎng)絡(luò)設(shè)計(jì)工程師、開發(fā)工程師和測試工程師
    發(fā)表于 10-09 17:42

    CANoe怎么實(shí)現(xiàn)數(shù)據(jù)采集

    請教一下各位,當(dāng)CANoe和ECU相連時,ECU會發(fā)出很多數(shù)據(jù),這些數(shù)據(jù)變化很快,怎么將發(fā)出來的數(shù)據(jù)采集下來,用什么程序實(shí)現(xiàn),請幫幫忙!
    發(fā)表于 03-29 11:35

    使用canoe能回放can通道0的數(shù)據(jù)嗎(原始數(shù)據(jù)里的通道是0)?

    使用canoe回放can通道0的數(shù)據(jù),在trace中看不到報(bào)文,是vector工具不支持can0通道嗎?手動將0更改為1,在trace中可以看到報(bào)文信息。
    發(fā)表于 09-06 16:47

    如何實(shí)現(xiàn)單片機(jī)和電腦之間的信息交互

    如何實(shí)現(xiàn)單片機(jī)和電腦之間的信息交互?怎樣實(shí)現(xiàn)單片機(jī)串口調(diào)試助手發(fā)送的數(shù)據(jù)顯示在數(shù)碼管上?
    發(fā)表于 09-28 07:13

    基于Linux的RFID交互系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    為了讓射頻識別的用戶可以根據(jù)各自的權(quán)限進(jìn)行相應(yīng)的操作,本文提出了一款基于Linux的RFID交互系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方案。該系統(tǒng)的ID識別模塊通過串口與安裝了Linux系統(tǒng)的計(jì)算機(jī)進(jìn)行通信,
    發(fā)表于 10-10 14:39 ?67次下載
    基于<b class='flag-5'>Linux</b>的RFID<b class='flag-5'>交互</b>系統(tǒng)的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    CANOE教程之CANOE的使用手冊免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是CANOE教程之CANOE的使用手冊免費(fèi)下載1 CANoe是進(jìn)行網(wǎng)絡(luò)和ECU開發(fā)、測試和分析的全面工具,支持總線網(wǎng)絡(luò)開發(fā)從需求分析到系統(tǒng)
    發(fā)表于 11-07 08:00 ?259次下載
    <b class='flag-5'>CANOE</b>教程之<b class='flag-5'>CANOE</b>的使用手冊免費(fèi)下載

    嵌入式Linux開發(fā)環(huán)境搭建-5-Windows環(huán)境下相關(guān)工具的使用

    嵌入式Linux開發(fā)環(huán)境搭建-6-Windows/Linux環(huán)境下相關(guān)工具的使用一、Windows工具
    發(fā)表于 11-01 17:37 ?13次下載
    嵌入式<b class='flag-5'>Linux</b>開發(fā)<b class='flag-5'>環(huán)境</b>搭建-5-Windows<b class='flag-5'>環(huán)境</b>下相關(guān)<b class='flag-5'>工具</b>的使用

    如何快速上手CANoe總線設(shè)計(jì)與開發(fā)

    汽車電子在整車研發(fā)中占據(jù)非常重要的地位,汽車內(nèi)部涉及到ECU之間的總線通信變得越來越復(fù)雜。而CANoe就是開發(fā)測試分析整個ECU網(wǎng)絡(luò)和單個ECU通信而設(shè)計(jì)的總線通信分析工具,從概念設(shè)計(jì)到測試驗(yàn)證,再到批量生產(chǎn),
    的頭像 發(fā)表于 07-25 16:09 ?2615次閱讀

    如何實(shí)現(xiàn)OPC DA Server和MQTT Broker之間數(shù)據(jù)交互?

    作為工業(yè)領(lǐng)域重要的通信協(xié)議,OPC DA常用于現(xiàn)場控制系統(tǒng)/設(shè)備之間數(shù)據(jù)交互;作為物聯(lián)網(wǎng)協(xié)議,MQTT常用于物聯(lián)網(wǎng)平臺數(shù)據(jù)的采集。本文主要介紹如何
    的頭像 發(fā)表于 03-23 10:08 ?1207次閱讀
    如何<b class='flag-5'>實(shí)現(xiàn)</b>OPC DA Server和MQTT Broker<b class='flag-5'>之間</b>的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>交互</b>?

    淺談CANoe實(shí)現(xiàn)SOA仿真測試

    本文介紹怎么通過我們CANoe工具實(shí)現(xiàn)SOA的相關(guān)功能。CANoe Communication Setup功能為實(shí)現(xiàn)SOA模型的
    的頭像 發(fā)表于 08-01 14:17 ?1657次閱讀
    淺談<b class='flag-5'>CANoe</b><b class='flag-5'>實(shí)現(xiàn)</b>SOA仿真測試

    CANoe集成解決方案

    本文介紹CANoe集成解決方案,搭配測試管理平臺,實(shí)現(xiàn)測試項(xiàng)目的集中管理。用于監(jiān)控管理CANoe工程,采集、仿真CANoe報(bào)文數(shù)據(jù)等。
    的頭像 發(fā)表于 08-04 14:49 ?931次閱讀
    <b class='flag-5'>CANoe</b>集成解決方案

    CANOE工具使用教程

    CANOE可謂是常用的總線測試工具之一,不管是總線開發(fā)工程師還是測試工程師,甚至是駐場工程師,都對它很熟悉。 天正好閑來有空,趁此機(jī)會,來分享一波CANOE的基本使用操作。其整體的框圖如下所示,詳細(xì)
    的頭像 發(fā)表于 07-18 10:33 ?5325次閱讀
    <b class='flag-5'>CANOE</b><b class='flag-5'>工具</b>使用教程

    基于Linux的RFID交互系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方案

    電子發(fā)燒友網(wǎng)站提供《基于Linux的RFID交互系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)方案.pdf》資料免費(fèi)下載
    發(fā)表于 10-23 10:32 ?0次下載
    基于<b class='flag-5'>Linux</b>的RFID<b class='flag-5'>交互</b>系統(tǒng)的設(shè)計(jì)<b class='flag-5'>實(shí)現(xiàn)</b>方案

    PLC之間的IO交互怎么實(shí)現(xiàn)

    在工業(yè)自動化領(lǐng)域,可編程邏輯控制器(PLC)作為核心控制設(shè)備,其重要性不言而喻。PLC之間的IO交互實(shí)現(xiàn)自動化生產(chǎn)線高效、穩(wěn)定運(yùn)行的關(guān)鍵環(huán)節(jié)。本文將詳細(xì)探討PLC之間IO
    的頭像 發(fā)表于 06-17 11:09 ?1394次閱讀