今天遇到一个问题,需要计算一下CAN总线上,不同的波特率下,每秒钟最多能够传输多少帧数据,或者说,每帧数据需要耗时多少时间。一开始以为这个东西是很基础的确定性数据,百度上应该随便就能查得到,可是查了半天却毫无头绪,不知道是不是我的打开方式不对(^ O ^)。一怒之下,干脆自己来。
首先我们要确认几个输入参数,包括CAN总线的波特率,要传输的帧类型和帧格式,然后根据CAN协议规范,计算出该帧的bit数。我们用数据帧来做示例,详见图1。
最后综合起来,便得到我们想要的结果,其实很简单,如图2所示:
当然,如果你要计算远程帧的,那就用下面这张图就好:
好啦,就这么简单!
为了方便起见,我将上述的过程整理成了一个excel表格,只需要手工修改几个参数便可完成所有过程的自动计算,如下图: