CANoe基礎:數據Replay及錄制操作

來源 | 開心果Need Car


對于經常排查bug的同學來說,Replay(回放)數據并不陌生。很多時候,受限于資源,排查問題的工程師,不能獲取到問題車輛。所以,為了更好的模擬整車問題時的通信工況,將車輛問題時的數據(log)在小臺架上replay就是一個不錯的選擇。本文,基于CANoe,分享Replay的基本操作步驟。


1、CANoe Replay操作配置步驟

(一)Replay blocks配置

1、Simulation->Simulation Setup->在需要回放的Network(eg:CAN Network)中添加Replay blocks

CANoe基礎:數據Replay及錄制操作的圖1

2、Replay blocks添加完成,如下所示:

CANoe基礎:數據Replay及錄制操作的圖2

(二)Replay配置

1、基本配置設置

CANoe基礎:數據Replay及錄制操作的圖3

2、Channel Mapping配置

這里的Source通道是指錄取的log中,要回放數據的Channel。eg:錄取數據為A.log,其中目標Network在Channel 2,此處的Target選擇CAN2。

CANoe基礎:數據Replay及錄制操作的圖4

3、CAN options設置

一般CAN Options無需做改動,如下所示:

CANoe基礎:數據Replay及錄制操作的圖5

(三)Databases和Channels配置

1、Databases選擇

為了便于信號的識別,Databases選擇對應Network的通信矩陣。

2、Channels選擇

這里的Channel選擇要與log(eg:*.blf)中Network Channel保持一致,此處為CAN2。

對應設置如下所示:

CANoe基礎:數據Replay及錄制操作的圖6

(四)回放數據過濾設置

1、右擊Replay blocks虛擬線->Insert Filter

CANoe基礎:數據Replay及錄制操作的圖7

2、過濾模塊添加如下所示

CANoe基礎:數據Replay及錄制操作的圖8

3、過濾配置

右擊添加的過濾模塊->Configuration...

CANoe基礎:數據Replay及錄制操作的圖9

4、選擇過濾節點(Nodes)

本文使用過濾節點方式進行過濾設置,eg:過濾VDDM的發送報文(Transmitted messages)。這里選擇Stop filter,即:不回放log中VDDM的發送數據。

CANoe基礎:數據Replay及錄制操作的圖10

提示:回放數據的目的,讓整車其他節點的報文發送給目標節點,同時,過濾掉log中目標節點的發送報文,讓目標節點真實的發送報文。


2、數據回放

(一)啟動回放

單擊啟動按鈕,開始回放數據

CANoe基礎:數據Replay及錄制操作的圖11

如果有未關聯的Channel,需要Deactive Unmapped,操作:Deactive Unmapped->OK

CANoe基礎:數據Replay及錄制操作的圖12

Deactive Unmapped以后,未關聯的Channel變成灰色,不再使用,如下所示:

CANoe基礎:數據Replay及錄制操作的圖13

數據流如下:

其中VDDM節點真實發送的數據,由CANoe接收(Rx),其他節點數據,由CANoe發送(Tx)給VDDM節點。

CANoe基礎:數據Replay及錄制操作的圖14


3、操作注意點

1、需要回放數據的目標板確認物理連接正確(eg:供電是否正常、總線連接是否正常等);

2、回放數據開始階段,由于節點需要喚醒,可能存在錯誤幀,屬于正常現象。如果不可用,可以重新給目標板上電。

4、Flexray總線replay配置操作

(一)配置Fr對應的Replay blocks

配置如下所示:

CANoe基礎:數據Replay及錄制操作的圖15

(二)Replay配置

1、General界面配置

General界面配置與CAN總線類似,如下所示:

CANoe基礎:數據Replay及錄制操作的圖16

2、Channel Mapping配置

CANoe基礎:數據Replay及錄制操作的圖17

3、Flexray Option配置

注意:這里取消目標節點VDDM和VectorSimulationNode的勾選,如下所示:

CANoe基礎:數據Replay及錄制操作的圖18

4、Flexray喚醒配置

為了確保目標板的Flexray能被喚醒,可以在Hardware中進行如下配置:

CANoe基礎:數據Replay及錄制操作的圖19

(三)Flexray回放操作問題

目前在實現Flexray的回放時,回放的數據流中,其他節點發空幀(NULL Frame),目前還不能確認配置操作哪里設置不對,或者存在怎樣沖突,示意如下:

CANoe基礎:數據Replay及錄制操作的圖20

針對此問題的措施:

(1)措施一

關閉Flexray回放操作,使用IG模擬其他節點的NM發送,喚醒目標板的Flexray。

(2)措施二

回放原始錄制的log數據,單獨將Flexray總線數據重新錄制。具體操作步驟如下:

1、選擇需要過濾的Flexray Channel并回放原始log數據,過濾"Chn"如下所示:

CANoe基礎:數據Replay及錄制操作的圖21

2、保存過濾后的Flexray Channel數據,操作:右擊Trace界面->Import/Export->Export...

CANoe基礎:數據Replay及錄制操作的圖22

3、選擇文件的具體保存路徑->Save

CANoe基礎:數據Replay及錄制操作的圖23

4、在Flexray的Replay blocks中,重新加載錄制后的Fr數據

CANoe基礎:數據Replay及錄制操作的圖24

5、重新Replay

提示:上述措施一、措施二如果均無效,參考措施三中的Flexray數據重新錄制和Replay操作。

(3)措施三(測試有效)

參考下一小節

5、Flexray數據重新錄制及回放

(一)數據錄制

1、加載原始log數據(*.blf)

Analysis->Measurement Setup->切換至Offline模式,加載原始log數據。

CANoe基礎:數據Replay及錄制操作的圖25

2、數據錄制過濾(Filter)設置

右擊->Insert Event Filter->Flexray

CANoe基礎:數據Replay及錄制操作的圖26

3、設置Flexray的過濾規則

CANoe基礎:數據Replay及錄制操作的圖27

從通信矩陣中選擇要過濾的節點(eg:VDDM),選擇VDDM的所有發送報文,即:回放數據時,VDDM節點的所有外發報文不回放,由真實節點發送。之后Apply->OK

CANoe基礎:數據Replay及錄制操作的圖28

過濾添加完成如下:

CANoe基礎:數據Replay及錄制操作的圖29

4、設置數據保存路徑,如下所示

CANoe基礎:數據Replay及錄制操作的圖30

5、開始錄制Flexray數據

單機回放,開始錄制數據。

CANoe基礎:數據Replay及錄制操作的圖31

6、重新添加Flexray的數據,如下所示

CANoe基礎:數據Replay及錄制操作的圖32

7、切換回Online模式

CANoe基礎:數據Replay及錄制操作的圖33

(二)數據回放

單擊啟動按鈕,數據開始回放。VDDM節點數據由真實控制器發送(CANoe Rx),其他節點數據由CANoe通過數據log仿真發送(Tx),如下所示:


CANoe基礎:數據Replay及錄制操作的圖34



登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

2
2