OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4144|回复: 0

[CAN BUS]CAN分析仪(或其他CAN设备)的最大接收能力测试方法---CAN 接收压力测试(每秒最大接收帧数)

[复制链接]

1

主题

5

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2020-8-27
在线时间
2 小时
发表于 2020-8-29 21:43:17 | 显示全部楼层 |阅读模式

CAN通讯设备,尤其对于CAN适配器(各种USB/网络/PCIe转CAN设备)CAN记录仪、分析仪的一个很重要的指标就是每秒CAN帧的最大接收数量。这个指标关系到一个设备在高负载网络是否存在丢帧的情况,如何测试每秒接收帧数也就成了评估一个CAN设备的性能的关键。


本测试方案适用于绝大多数CAN接收设备,本文以ZLG的USB CAN盒和开源USB-CAN CANable为例进行测试。

测试设备:
  • 待测CAN设备,注意必须具备CAN帧数据导出或计数功能,以及必须支持只听模式
  • 一台CAN发送设备,能正常发CAN帧,具备自动重复功能(按协议实现标准的CAN控制器都支持)
  • 逻辑分析仪一台,用于抓CAN波形,并导出数据统计总线上实际发送的CAN帧数量。
测试原理:
  • 如何产生最大总线负载:利用CAN控制器的自动重发机制,由控制器硬件进行重复发送。
    • 在最大1000K比特率下测试。
    • 将待测接收设备设置为只听模式,再用发送设备发送一帧数据。
    • 只听模式下接收设备不会对任何CAN帧发送ACK。
    • 发送设备未收到ACK将持续重复发送,直到发送超时。(超时时间一般由软件设定或有一个默认值,或无限重发)
  • 如何统计实际发生的帧数:用逻辑分析仪(或有其他类似设备)抓取总线或CAN收发器RX/TX波形。导出数据统计报文总数。
测试示例:

这次测试CANable为待测接收设备,ZLG USB-CAN为发送设备,用salese logic 16逻辑分析仪抓包统计

打开CANable

打开上位机cangaroo,设置比特率1000K,打开只听模式


打开ZLG USB-CAN

同样为1000K比特率



设置逻辑分析仪

将逻辑分析仪ch0接到CANable 的收发器CAN-RX pin上。

设置好CAN 1000K协议解析

10M采样率,ch0下降沿触发,采样5S

发送数据

通过ZLG CAN-test,发送一个8字节的数据帧(也可以用远程帧,每秒帧数会达到最大,但实际意义不大)

点击发送后,由于CANable为只听模式,没有节点做应答,超时时间到后显示发送失败。

这个时候查看逻辑分析仪,大概抓取了1.7s的数据波形。(ZLG USB-CANde的默认发送超时就是这个时间)

抓取总帧数

从波形可以看到,在这1.7S内,总线已经达到理论最大负载。帧间隔时间只有11us,每隔0.13ms就有一帧数据。


具体有多少帧数据,我们需要导出来看一下。

在Analyzers里面CAN协议设置选项中,将数据导出为csv文件。

打开csv文件,拉到最后,可以看到统计的包数量为0-1287,共1288帧,耗时1.67s

这个数据就是实际发生的CAN帧总数了,如果待测设备也能收到这么多数据,那就说明在最大负载率下没有丢失数据。

实际接收帧数

我们再从cangaroo中导出CANable接收到的数据

然后用notepad++打开导出的文件,通过行号,可以看出导出的帧数。

前面有7行需要减去,最后是1295行:共计接收到1288帧,那么CANable的成绩是相当不错的,做到了1帧不丢。

最后用同样的方式发送远程帧测试,CANable每秒最大的接收能力测试出来是15200帧左右,这个成绩相当猛了。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-5-29 03:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表