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



默认 最新
当前暂无评论,小编等你评论哦!
点赞 1 评论 收藏
关注