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

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

 

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

测试设备:

  1. 待测CAN设备,注意必须具备CAN帧数据导出或计数功能,以及必须支持只听模式
  2. 一台CAN发送设备,能正常发CAN帧,具备自动重复功能(按协议实现标准的CAN控制器都支持)
  3. 逻辑分析仪一台,用于抓CAN波形,并导出数据统计总线上实际发送的CAN帧数量。

测试原理:

  1. 如何产生最大总线负载:利用CAN控制器的自动重发机制,由控制器硬件进行重复发送。
    1. 在最大1000K比特率下测试。
    2. 将待测接收设备设置为只听模式,再用发送设备发送一帧数据。
    3. 只听模式下接收设备不会对任何CAN帧发送ACK。
    4. 发送设备未收到ACK将持续重复发送,直到发送超时。(超时时间一般由软件设定或有一个默认值,或无限重发)
  2. 如何统计实际发生的帧数:用逻辑分析仪(或有其他类似设备)抓取总线或CAN收发器RX/TX波形。导出数据统计报文总数。

测试示例:

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

打开CANable

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

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

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

 

打开ZLG USB-CAN

同样为1000K比特率

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

 

 

设置逻辑分析仪

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

设置好CAN 1000K协议解析

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

10M采样率,ch0下降沿触发,采样5S[CAN BUS]CAN分析仪(或其他CAN设备)的最大接收能力测试方法---CAN 接收压力测试(每秒最大接收帧数)_第5张图片

发送数据

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

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

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

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

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

抓取总帧数

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

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

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

 

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

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

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

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

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

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

实际接收帧数

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(CAN,物联网)