問題描述:
CANoe的測試環境如下:
在Ethernet1總線上,通過VN5620連接了PCU(實物);
使用VtestStudio(VTS)開發,并且生成了三個測試腳本(vtt文件),分別為:
04_offcheck.vtt?/ 11_server.vtt? / 12_serevent.vtt?
利用腳本,模擬PIU給PCU發送或者接受信號,來測試PCU的信號通訊;
加載到canoe環境中后,VTS會將三個腳本自動關聯到TCP/IP的stack中:
在CANoe的TCPIP的協議棧中,04_offcheck /11_server /12_serevent 都需要設置不同的ip地址,但是我模擬PIU和PCU交互仿真的測試工程中,三個協議棧,都要填寫相同的PIU的ip地址:192.168.178.57,那就會出現ip重復的問題,怎么解決呢?
問題深刻理解:
在我的測試場景中,我需要在 CANoe 中運行三個測試用例(04_offcheck、11_server 和 12_serevent),分別對應不同的 vtt 文件(測試表文件),并且每個測試用例都需要測試?PIU和 PCU以太網層級的信號通信。問題在于,PIU的 IP 地址在所有測試用例中都設置為 192.168.178.57,而我選擇了 Individual TCP/IP stack(獨立的 TCP/IP 協議棧),也就是ECU1對應的04_offcheck /11_server /12_serevent 三個節點,都共用了192.168.178.57,這可能導致 IP 地址沖突的問題。
以下是問題的分析和解決方案。
問題分析
-
IP 地址沖突的原因:Individual TCP/IP stack:在 CANoe 中選擇 Individual TCP/IP stack 意味著每個 CANoe 實例(或每個測試用例)使用獨立的 TCP/IP 協議棧。每個協議棧會綁定到指定的 IP 地址(例如 PIU 的 192.168.178.57)。
-
IP 重復問題:如果多個測試用例(04_offcheck、11_server 和 12_serevent)同時運行,并且都將 PIU的 IP 地址設置為 192.168.178.57,CANoe 會嘗試在同一網絡接口上綁定相同的 IP 地址。由于 IP 地址在同一網絡中必須唯一,這會導致 IP 地址沖突,CANoe 可能會報錯或無法正常通信。
測試用例的網絡配置:
-
PIU的 IP 地址:192.168.178.57,在所有測試用例中都相同。
-
PCU 的 IP 地址:每個測試用例需要設置不同的 IP 地址(例如 PCU CP 2、PCU CP 1 等),但 PIU的 IP 地址是固定的。
-
網絡接口:所有測試用例可能使用相同的物理網絡接口(例如 Ethernet 1),這加劇了 IP 地址沖突的可能性。
協議棧選擇的影響:
-
Individual TCP/IP stack:每個測試用例的協議棧是獨立的,CANoe 會為每個測試用例分配一個獨立的網絡棧。如果多個測試用例同時運行并綁定到相同的 IP 地址(192.168.178.57),會發生沖突。
-
Use shared CANoe TCP/IP stack:所有測試用例共享一個 TCP/IP 協議棧,PIU的 IP 地址只綁定一次,理論上可以避免沖突,但共享協議棧可能導致測試用例之間的網絡行為相互干擾。
-
No TCP/IP stack, use OS:使用操作系統的網絡棧,IP 地址沖突問題由操作系統處理,但 CANoe 無法控制網絡行為,不適合我的測試需求。
解決方案
為了解決 IP 地址沖突問題,同時滿足我的測試需求(模擬 PIU和 PCU 的信號通信,PIU的 IP 地址固定為 192.168.178.57),可以從以下幾個方面入手:
使用共享 TCP/IP 協議棧
-
方法:
-
在 CANoe 的 TCP/IP Stack Selection 中,將所有測試用例(04_offcheck、11_server 和 12_serevent)的協議棧設置為 Use shared CANoe TCP/IP stack。
-
這樣,CANoe 會為所有測試用例共享一個 TCP/IP 協議棧,PIU的 IP 地址 192.168.178.57 只綁定一次,避免了 IP 地址沖突。
-
-
優點:
-
避免了 IP 地址沖突,因為 PIU 的 IP 地址只綁定一次。
-
共享協議棧減少了資源占用,適合同時運行多個測試用例。
-
-
缺點:
-
共享協議棧可能導致測試用例之間的網絡行為相互干擾(例如一個測試用例的網絡延遲可能影響其他用例)。
-
網絡仿真的靈活性低于獨立協議棧。
-
經驗教訓:
-
在 CANoe 多測試用例測試中,應根據測試需求選擇合適的 TCP/IP 協議棧設置。
-
如果需要固定 IP 地址,優先考慮共享協議棧或分時運行,避免沖突。
-
提前規劃網絡接口和 IP 地址分配,可以有效減少類似問題。