在汽車軟件的開發周期中,基于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通信過程
-
虛擬機
+關注
關注
1文章
908瀏覽量
28096 -
CANoe
+關注
關注
4文章
65瀏覽量
8619
發布評論請先 登錄
相關推薦
評論