CAN传输和终端电阻


8

我一直在尝试使用PIC18F25K80单片机和MCP2551在它们之间进行通信来建立CAN网络。是否可以仅通过连接收发器的CANL,CANH将两条简单的电线用作CAN总线?我什至无法用两根线进行的设置传输数据!我应该以某种抵抗来终止他们吗?


尝试使用双绞线,最好使用屏蔽双绞线
Andy又名

如果总线长度较小,则可能会起作用,但最好使用端接。
斯旺南德

2
@Swanand:否。终止线路只是电阻器目的的一部分。另一部分是确保总线的被动状态。从这个意义上讲,它们就像集电极开路总线的上拉电阻。如果没有电阻,则无源状态是不确定的。
Olin Lathrop

Answers:


5

假设两个电路之间的公共电压为0V,或者在共模差电压内至少两个电路的0V之间存在差异。

为了正确传输CAN,您需要

  • CANH到CANH和CANL到CANL这两个节点之间的连续布线。不交叉,不短路,不开路。在较低的数据速率/非常短的电缆上,例如在实验室中以50kbaud传输几厘米时,双绞线不是绝对必要的。
  • 至少一个终端电阻,如果没有一个则根本无法工作。随着数据速率/电缆长度的增加,您实际上应该在两端分别设置一个正确的值120R。
  • 至少一个接收器以相同的数据速率(和其他位时序)运行以发送ACK脉冲,否则您将从第一条消息的发送器中得到无数次重复。
  • 所有节点之间的通用0V参考

我发现普通的0v对于提高速度非常重要。在我们使用的系统中,记录到的GND差仅为0.3v足以引起大量的消息错误。通过增加粗线来减少这种差异,减少了错误数量。
Rocketmagnet

5

CAN总线需要端接120欧姆。

在此处输入图片说明

我使用分接端接方法,在总线上最后一个设备的Vref引脚上使用一个低(10 nF)陶瓷电容器。它是MCP2551上的引脚5 。


1
电容接地的分流端接很好,但将该电容连接到MCP2551的Vref毫无意义。您正在寻找交流接地。充其量,它是一个电压源,它将与实际接地一样工作,但是该引脚的电流能力有限,并且不打算吸收瞬态电压。
Olin Lathrop 2013年

2
将分流的中间连接到Vref,并将电容器从中间连接到GND。
Rocketmagnet

我没有连接Vref引脚,并使用了120ohm res的标准端接,但仍然无法在板之间进行通信。
Arun Shekhar R
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.