CAN总线通讯出错?检查您的采样点是否设置正确

1.CAN网络简介

CAN的中文是控制局域网(Controller Area Network),与1986年由德国Bosch公司为汽车开发的网络技术,主要用于汽车的检测和控制,目的是为了适应汽车“减少线束数量”和“通过多个网络进行大量数据的高速传输”的需求。

2.CAN网络特点

CAN网络的特点主要有以下几点:

  1. 节点之间采用多主通信的方式

  2. 采用短帧结构,数据帧为8个字节,实时性高

  3. 报文ID值越小,优先级越高

  4. 具有非破坏性的总线仲裁处理机制

  5. 有可靠的CRC校验方式,传输过程中出错率极低

  6. 具有自动重发机制

  7. 节点严重错误时,具有自动脱离总线的功能

  8. 最远通信距离可达10km(速率在5kbps一下)

  9. 通信速率最高可达1MB/s(此时通讯距离最远40m)

  10. 实际节点数可大110个

  11. 成本低

3.CAN物理层结构

CAN网络的物理层组成如图1所示。CAN总线有两条传输线路,为CAN_H和CAN_L,在总线两端通常需要连接终端电阻,阻值为100-130 Ω。CAN网络采用差分电平传输数据,在ISO11898(高速CAN)中,CAN_H显性状态电压约为3.5V,隐性状态电压约为2.5V,CAN_L在显性和隐性状态下的电压则分别为1.5V和2.5V。在CAN总线上可以有许多个节点(ISO建议最大32个节点,实际最大节点数可根据收发器的负载能力进行调节),每个节点包括Host主机,CAN控制器和CAN收发器。CAN收发器主要实现二进制码流与差分信号之间的转换,CAN控制器的作用主要是用于处理来自Host主机的数据并传给CAN收发器。

图片

图1 CAN网络物理层结构图

4.CAN通信原理

CAN网络采用异步通信的方式,因此需要根据波特率进行采样,采样原理如图2所示。红色箭头则表示采样点的位置,图示采样得到数据则为“1010 1010”。

图片

图2 CAN通信采样原理图

说到采样点,就需要引入位时间的概念。位时间是指每传输一位数据需要的时间,即位时间=1/波特率。一个位时间可以分为同步段、传播段、相位缓冲段1和相位缓冲段2,某个位时间每个段的时间份额如图3所示。

图片

图3 某个位时间的时间份额组成

CAN通信中常见的采样点以及相关的参数如表1所示。不同的波特率时间对应的采样点以及位时间的份额可能不同。以波特率为500k为例,一个位时间被分成了16个时间份额,采用点在第14个时间份额。

表1  CAN通信中常见采样参数

图片

这里有一个问题,为什么CAN通信中,要波特率和采样点要设置成一样的呢?画个图就能一目了然。如图4所示,假设采样点提前20%,那么采样的数据就会为“0101 1010”,和之前(图2)的数据第五位就不相同了。因此,如果采样点不同,就会造成数据传输错误,传输的数据越多,累积的错误数据位就越多。所以,在进行CAN通信时,一定要将各节点的波特率和采样点设置成相同的。

图片

图4 采样点提前20%的采样示意图

5.软件中采样点的设置

5.1在PCAN-View软件中

1、打开PCAN-View软件便会有如下界面

图片

我们可以看到在connect对话框中有连接选项和以下设置界面,在设置界面我们可以设置时钟频率、波特率、总线时序等,以及在“Filter setting”栏中我们可以设置过滤器条件,用于过滤报文(标准帧/拓展帧,过滤条件为报文ID范围)。

2、点击“Bus Timing Register”选项框后面的三角形箭头,选择“Manage Bit rates”,进入Manage Bit rates对话框

图片

图片

3、选择“Add”,便可在右端对话框中输入自己想要的参数,包括标题、预分频、时间段等参数,根据我们输入的参数在下方的对话框中会实时显示对应的波特率、采样点、时间量等信息,以便于我们完成对采样点等信息的设置。

图片

最后点击“OK”完成对采样点的设置。(在之后我们若是想要改变采样点,我们可以点击工具栏中的连接按钮,重新进入连接界面(“connect”界面))。

5.2 在PEAK-Explorer 5中设置采样点

1、打开PEAK-Explorer 5,点击菜单栏中的“Tool”,在下拉菜单栏中选择“Nets Configuration”,进入PCAN Nets Configuration对话框

图片

2、在PCAN Nets Configuration对话框中USB菜单栏下的Internet选项上单击鼠标右键,选择“New Net”,进入“Net Properties”对话框,在这你可以设置网络名称、时钟频率、波特率等信息。

图片

3、点击波特率栏后的三个点,进入Manage Bit rates对话框,后续采样点的设置操作同PCAN-View中相同,这里便不再赘述。

图片

以上便是通过PCAN-View和PEAK Explorer 5两个软件完成对采样点的设置,这两个软件对采样点的设置可以与波特率计算工具配合使用,可以实现更简洁的工作方式,提高工作效率。

6.波特率计算工具的使用

6.1选择你的波特率类型

图片

如上图,可选择三种波特率类型,其分别为CAN、CAN FD、SJA-1000三种类型。CAN Bit Rate类型是用于实现对用CAN作控制器的FPGA实现的设备的波特率仲裁类型,比如PCAN-miniPCIe。

图片

CAN FD Bit Rate同CAN Bit Rate类似,唯一区别在于CAN FD Bit Rate是针对用CAN FD作控制器,比如PCAN-PCI Express FD。

图片

SJA-1000 Bit Rate类型是被用于产自飞利浦、有着8MHz的时钟频率、基于SJA-1000 CAN控制器的设备,比如PCAN-USB。

6.2 输入波特率和偏移量

图片

如图有两个键入框,在第一个键入框中输入要查询的波特率和它的单位;在第二个键入框中输入允许的偏移量(可选可不选),如若选择“Allow bit rate deviation”,那么就要考虑输入一个偏移度(容忍量),并且这近似的值将被列在结果中。如果没进行勾选,仅有波特率的匹配值被给出,而没有偏移量。

6.3 选择输入频率、采样点和位时间

图片

如图,第一栏是让你选择一个频率去限制时钟频率,这将被用于计算波特率(至少选择一个频率)。第二栏是输入采样点范围(可选可不选),输入采样点范围是用于过滤采样结果,如果不进行勾选,将得到所有采样点结果。第三栏是选择位时间范围(可选可不选),与第二栏功能类似,区别在于第三栏是基于位时间范围来过滤所得结果。如果不进行勾选,将得到所有位时间结果。

6.4 点击开始计算,得出所要结果

图片

在结果中我们可看到,上面的框中显示我们已选择的设置,下面的框中显示计算结果。另外就是在整个流程中我们并没用到的按键,其对应的功能分别如下

图片

不同设备之间要实现准确无误的通信,波特率匹配是很重要的条件。波特率计算工具将简化这一计算过程,避免了繁琐而又复杂的公式计算,熟练掌握这一工具的使用,将大大提高我们的工作效率,降低人工计算的错误率。

如需更多帮助,欢迎访问:www.hongchesys.com

  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值