跳转到内容

BUSMASTER 测试花样与报文发送次数

BUSMASTER 3.2.2.47 及以上版本可以在 CAN 和 LIN 的 Transmit Window 中,让报文 ID、负载位域或两者按规则变化,也可以通过 Send Count 控制一条报文总共发送多少次。测试花样、发送次数和周期彼此独立,因此既能持续扫值,也能只发送指定次数后自动停止。

简单来说,Test Pattern 决定“每次发送时 ID 或数据怎样变化”,Send Count 决定“这轮周期发送总共发多少次”,Repetition (ms) 决定“隔多久发一次”。三者可以单独使用,也可以组合使用。

  1. 打开 CAN -> Transmit Window;LIN 项目使用 LIN -> Transmit Window。
  2. 双击 [Add Message],选择数据库报文;也可以手动填写非数据库报文的 ID、通道、长度和类型。
  3. 先确认固定报文能够正常发送,再配置 Test Pattern。

下图中的示例使用复合花样、Send Count = 10 和 Repetition = 1000 ms:

测试花样、发送次数和周期

Test Pattern 提供以下选择:

类型 每次周期发送时的变化
Disabled ID 和负载保持当前值
ID Increment ID 按步进值递增,到最大值后回绕
ID Random ID 在最小值和最大值之间随机变化
Data Increment 指定负载位域按步进值递增,到最大值后回绕
Data Random 指定负载位域在最小值和最大值之间随机变化
四种 ID ... + Data ... ID 与负载生成器同时运行,各自保持独立状态

测试花样列表

选中发送行后,窗口下方会显示与花样对应的参数。

测试花样参数

  • ID Min:运行开始时使用的 ID。
  • ID Max:允许到达的最大 ID。
  • Step value:递增花样每次增加的数值;随机花样不使用该字段。

例如把 ID 设置为 0x100~0x10F、步进 1,周期发送的 ID 会从 0x100 递增到 0x10F,然后回到 0x100。

  • Data Min / Data Max:所选位域的数值范围。
  • Step value:递增花样每次增加的数值。
  • Start bit:位域起始位。
  • Bit width:位域宽度,可配置 1~64 bit。
  • Byte order:选择 Intel 或 Motorola。

例如 Start bit = 8、Bit width = 16、Intel、范围 0~255、步进 1,只会改变该 16 bit 位域;负载中的其他位继续使用当前发送模板。位域必须完整落在当前 DLC 内,数值也必须能由配置的位宽表示。

4. 配置周期和报文发送计数(Send Count)

Section titled “4. 配置周期和报文发送计数(Send Count)”
  1. 在 Repetition (ms) 中输入周期并勾选该列。
  2. 需要持续发送时,把 Send Count 设为 Infinite。
  3. 需要有限次数时,输入 1~65534。常用预设包括 10、100、1000 和 10000。

BUSMASTER 只统计成功提交的周期发送。达到有限次数后,该行会停止并自动取消 Repetition;再次勾选会从完整次数重新开始。手动点击 Send Message 或使用快捷键发送的一帧不会扣减周期次数。

Test Pattern 和 Send Count 不冲突:

  • 只设花样:按范围循环,直到手动停止。
  • 只设次数:固定 ID 和负载发送 N 次后停止。
  • 两者都设:花样每次推进,同时在第 N 次成功周期发送后停止。

例如 ID 范围为 0x100~0x1FF,但 Send Count = 10,本轮只发送前 10 个花样值。若花样范围先走完,则花样按自身规则回绕,直到累计次数达到 N。

  • CAN/CAN FD 会按标准帧或扩展帧范围验证 ID。RTR 帧没有负载,不能使用 Data 花样。
  • LIN 测试花样用于独立定时的 Master Write 行。Master Read 可以使用有限发送次数,但不生成负载花样。
  • LIN Slave Response 由外部主机触发,不使用有限周期次数或测试花样。
  • 被 LIN Schedule Table 接管的行由调度表控制时序,Send Count 会使用 Infinite;停止调度后再编辑独立周期设置。
  • 第一次使用时先设置较慢周期,并在独立接收端核对 ID、通道、DLC、负载顺序和实际帧数。
  • Motorola 位域的起始位含义与 Intel 不同;不确定时先用一个很小的范围观察字节变化。
  • 修改运行中某一行的有效花样参数会安全重启该行,并从配置的最小值开始;其他发送行保持各自状态。
  • 更改 DLC、帧类型或 RTR 后,如果原 Data 位域不再有效,应先修正位域,再重新启用周期发送。
  • 扫描范围或随机花样可能产生 ECU 未预期的报文。请在确认允许的测试总线上使用,不要直接在运行中的车辆或安全关键网络上盲扫。

要发送 10 帧 ID 递增、负载位域也递增的报文:

  1. 选择 ID Increment + Data Increment。
  2. 配置 ID 的 Min、Max、Step。
  3. 配置 Data 的 Min、Max、Step、Start bit、Bit width 和 Byte order。
  4. 设置 Send Count = 10。
  5. 设置周期并勾选 Repetition。
  6. 在独立接收端确认 10 帧后停止;下一轮再次勾选即可。

BUSMASTER 怎样只发送指定次数的报文?

Section titled “BUSMASTER 怎样只发送指定次数的报文?”

把 Send Count 设置为 1~65534,填写 Repetition (ms) 并勾选周期发送。达到指定次数后,BUSMASTER 会停止该行并自动取消 Repetition。如果只需要固定报文重复 N 次,可以保持 Test Pattern = Disabled。

测试花样必须和发送次数一起使用吗?

Section titled “测试花样必须和发送次数一起使用吗?”

不需要。测试花样与发送次数互不依赖:可以只改变 ID 或负载并持续发送,也可以只让固定报文发送 N 次,还可以让花样每次推进并在第 N 次发送后停止。

为什么重新勾选 Repetition 后又从完整次数开始?

Section titled “为什么重新勾选 Repetition 后又从完整次数开始?”

有限次数完成、手动停止或断开重连后,再次勾选 Repetition 会启动新一轮发送,Send Count 从完整配置值重新计数,递增花样也从配置的最小值开始。

手动点击 Send Message 会扣减发送次数吗?

Section titled “手动点击 Send Message 会扣减发送次数吗?”

不会。Send Count 只统计成功提交的周期发送;手动发送或快捷键触发的一帧不消耗本轮周期次数。


如需安装或升级 BUSMASTER,请前往下载中心获取当前正式版本与历史版本。