你目前正在查看 应用笔记 | TSMaster快速入门篇(2)-报文回放

应用笔记 | TSMaster快速入门篇(2)-报文回放

overview前言
TSMaster 的数据回放默认支持 blf 格式(未来会增加对其他格式的支持)。如果需要分析其他数据格式的 log 文件,需要通过文件转换器从其他格式转成 blf 格式。

1.离线回放

离线回放也就是通常所说的查看记录报文。离线回放完全模拟接收报文的过程,用户可以到 Trace 窗口中直接查看报文记录。同样的,Trace 窗口的所有属性,比如过滤等都是有效的。

1.  离线回放基本步骤
选择总线回放→选择离线回放→选择回放文件→选择回放的时间范围→点击启动回放

2.  添加回放文件

1)从回放窗口添加

2)直接拖拽添加
在桌面上选择一个 Log 文件,拖拽进入 TSMaster 软件区域,放掉鼠标,TSMaster 即自动回放该报文,同时把该报文添加到报文回放管理窗口中。

3.  选择报文范围
因为 Trace 窗口一个屏幕最多一次呈现 9999 帧报文,因此,在分析记录文件的时候,需要合理选择报文范围。在新的版本中,将在报文回放模块中增加脚本模块,给报文回放分析提供更大的灵活性。

2.在线回放

1.  在线回放配置

在线回放又被通俗的称为“数据回灌总线”,为了给用户提供尽可能大的灵活性,提供了如下的配置界面:

如上配置界面,主要包含如下的配置参数:

1)是否自动启动在线回放

AutoStart:在设备连接之后就自动启动报文的回放。
Do not auto start:在设备连接之后并不立即启动报文回放,而由用户进入回放界面中自己启动。

2)输出次数选择

Output only once:只回放一次即可 Repetitive output mode: 循环回放报文记录

3)输出模式选择

Default:TimeStamp As Log File:基于 Log 文件中的时间戳进行报文回放。

Step: Pause after one message is sent:需要用户点击,一次只发送 Log 文件中的一帧报文。

Animated:Apply delay after one message is sent:不急于 Log 本身的时间戳,而是用户设置一个报文事件间隔,按照这个时间间隔进行报文的回放。如下所示:

就表示报文之间按照 10ms 的时间间隔进行回放。

4)启动时间模式选择

Immediately:Direct send the first message:用户选择回放报文过后,立即就开始回放报文。

As Log File: Send the first message on its timestamp: 根基 Log 文件的时间戳来确定从什么时间开始播放报文。比如如果 Log 文件中第一帧报文的时间戳是 15s,则连接设备过后,等到 15 过后才开始回放报文。

Delayed:send the first message after timeout:用户人为配置一个延迟时间。当连接设备过后,延迟设置的时间间隔后,开始回放报文。如下所示:

就表示用户启动报文播放过后,延迟 100ms 开始实际回放报文。

5)启动/暂停快捷键

让用户设置启动/暂停回放的快捷键,如上所示:用户按下键盘上的 S 键时,启动回放;用户按下键盘的 P 键时,暂停回放。

6)选择回放TX/RX报文

Send Tx messages: 回放中包含方向为发送的报文
Do not send Tx messages: 回访中不包含方向为发送的报文。

7)回放通道选择

为了给用户提供尽可能大灵活性,TSMaster 的回放模块提供了回放通道的映射。主要为了解决以下一些应用场景的问题:

1. 物理通道已经连接好,但是想灵活切换通道,如下图所示:

Log 报文中有通道 1 的数据,也有通道 2 的数据,最好理解的是通道 1 的数据在工具端对应的通道上播放。如果数据通道 2 的需要到 CAN 工具的通道 1 上面播放,数据通道 1需要到 CAN 工具的通道 2 上面播放,则需要用到映射,如下所示:
2. 实际通道数不够:在原始的 Log 报文中用到了 1,2,3,4,5 五个通道,但是目前手上只有 2 个通道,如下所示:
这种情况下,数据通道 3,4,5 的数据就没有通道播放了。如果基于通道映射的方式,用户可以选择数据通道到任意 CAN 工具的通道上播放,如下所示:
通道上述映射,就把数据通道 2,3,4 的数据映射到 CAN 工具的通道 2 上进行播放,把数据通道 1,5 的数据映射到 CAN 工具的通道 1 上进行播放。回放通道映射配置界面如下所示:

Source Channel:Log 文件中的数据通道。
Destination Channel:TSMaster 中 CAN 工具的数据通道。
如上所示的配置就表示:Log 文件中数据通道为 1 和 2 的数据在 CAN 工具的通道 1 中回放;数据通道为 3 的数据在 CAN 工具的通道 2 中回放。

3.应用案例介绍

1. 自动回放屏蔽报文

根据前面的介绍,自动回放报文提供了选择通道,选择回放 RX,TX 等机制。但是用户使用过程中,往往还需要选择性的回放一部分报文,或者选择性的屏蔽部分报文。因为回放报文数量可能会很多,因此,基于 ID 的回放过滤,目前没有做到在线回放模块里面。但是通过 TSMaster 的 C 脚本工具,用户一样可以基于 ID 屏蔽报文的在线回放的功能。

➢ 基本思路:
把需要屏蔽的 ID 的报文发送到虚拟通道上,这样这些报文就不会真实回放到物理通道上。

➢ 操作步骤详解:
1. 在 TSMaster 硬件配置中,增加一路通道,并选择该通道为虚拟通道,如下所示:

2. 新建脚本模块,取名为 OnlineRelayFilter。创建后脚本如下:
3. 新建 CAN 报文 PreTX 事件(该事件在报文发送到总线上之前被调用)。如果要屏蔽 ID = 0x1B00000E 的报文,则创建该报文的 PreTX 事件,如下所示:
4. 选中该事件,修改该报文数据的发送通道为通道编号 2(0,1,2),也就是通道 3
5. 点击运行脚本,如下:
6. 此时再点击在线回放,就可以看到 0x1B00000E 报文被发送到了虚拟通道 3,其他报文发送到物理通道 1 和 2,通过这种方式实现了对在线报文的过滤。依次类推,对需要过滤的报文通过在脚本中添加 Pre_TX 事件就可以达到想要的效果。

4.释疑

1. Blf 文件(文件名带空格)无法加载

当把 blf 加载到 TSMaster 回放(离线/在线)模块中,发生加载错误,系统消息如下所示:

原因:blf 文件名中间不能有空格。如上图所示,修改文件名称为 TSMaster.blf,则加载成功,如下所示:

2. 想按照采集的时间回放报文
如果想按照采集时间戳回放报文,请选择在线回放。离线回放主要用于查看报文,要求就是回放速度越快越好。如果想按照采集的时序回放报文,则直接采用在线回放的方式,具体的设置见在线回放章节。

3. 总线回放按钮为什么是灰色(不使能状态)
在总线连接工作状态,不能进行报文记录的回放。需要点击 Stop 按钮,停止工作状态,BusReplay 才能变成使能状态,允许用户添加回放的报文。

4. 为什么 TSMaster 连接设备后立即往总线发送报文?
TSMaster 提供了在线回放数据的功能,为了支持用户挂上总线就开始回放的需求,在回放设置中添加了一个连接总线过后自动回放的功能,如下图所示:

首先,通过如下步骤进入在线回放配置界面:

配置界面中,选择在启动设备瞬间是否自动启动报文回放,如下所示:

如果选择 do not auto start,则连接设备的时候不会自动播放报文。

5. 回放提示通道错误失败

在线回放中,报文播放了一段时间就提示播放失败,通道错误,错误情况如下所示:

触发原因:通道映射错误。

Log 报文中的数据通道没有正确的映射到 CAN 工具的通道上。比如上面报的错误,Log 文件中使用了数据通道 2,数据通道 2 映射到了 TSMaster 中的 CAN 工具的通道 2,但是实际上 TSMaster 中没有配置 CAN 通道 2,就造成发送失败。具体通道映射,见前序章节:在线回放配置->回放通道选择

解决办法:在进入在线回放配置界面,配置通道映射。如下所示:
如上所示,Desination Channel 中实际上不存在通道 2,因此,把 Source Channel =2 的通道也配置到 Destination Channel = 1 上。再次启动回放,不再出现此错误。

6. 在线回放直接错误帧
如果用户回放的时候,总线直接错误帧。很可能的情况是,在 Log 文件中,不同的数据通道中有同样 ID 的报文,结果播放的时候,这些报文在同一条 CAN 总线上面通过不同的通道播放出来,造成帧 ID 冲突,引起错误帧进而无法正常的回放数据。

7. 在线回放卡死
在线回放如果出现卡死情况,请检查是否使用了虚拟通道。有些电脑平台上虚拟通道支持有些问题,碰到这种情况,用户尽量避免使用虚拟通道。或者插上实物通道进行报文的在线回放。

8. 为什么出现回放数据跟三方工具对不上的情况
情况描述:
通过在线回放数据,监测信号值,发现总线报文上有信号值比如信号 A 值,跟第三方监测工具(如 OE)上解析的 A 值不一致。比如 TSMaster 上 A 值为 0.0,OE 上解析的 A 值为 0.3.

原因分析:
经过分析后,发现回放的 blf 文件中包含来自两个通道的数据(Channel1 和Channel2),两个 Channel 中有同样 ID 的报文(比如都包含信号 A 的报文),而且来自通道 2 中的报文值全部为 0,因此,回放的时候,从通道 2 中解析出来的信号 A 值就全部为0。造成用户错误的把通道 2 中的值跟第三方工具解析出来的值进行比较。

解决办法:
因为通道 2 中的信号值不是有效数据,回放过程中屏蔽掉通道 2 的回放即可。如下所示:

Tips:
用户如果分析数据信号如果发现疑问点,请注意报文的通道,时间戳,这样数据才有可比性。

9. CAN 通道已就绪,软件在线回放失败
情况描述:
载入 blf 文件,报文里面只有通道 1 的报文,但是回放还是失败,错误提示如下:

原因分析:
在线回放是把记录的报文反向回灌回物理总线上。本次案例中 Blf 文件记录的报文是fd 报文,但是硬件是普通 CAN(classic CAN),因此造成在线回放失败。

解决办法:
更换支持 FDCAN 的硬件,如果硬件已经支持,则把该硬件工作模式设置为 FDCAN 模式。然后重新回放即可。

发表回复