This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

SN65HVD231: CAN帧重复发送

Part Number: SN65HVD231

您好:

我选择了两块CAN芯片(SN65HVD231DR)在两个芯片之间进行通讯。MCU发送数据给CPU,CPU不回。

 如图。

在红色的点,看CAN的通讯报文,发现有一些帧,非固定,会有一帧多次发送的现象。但是在黄色的点看CAN的通讯报文,不会出现一帧多次发送的情况。

请问这个问题是什么原因?如何解决?

  • CAN芯片2到CPU的距离很长吗?

    一帧多次发送,我想是因为通讯数据有误,所以会自动重发,保证通讯正确。

    一帧多次发送,有错误报文吗?

  • 芯片的距离不长。

    在总线上看,是没有多次发送的情况的。只有经过了CAN芯片2后连着CPU端的报文出现了重复发送问题。

    没有错误的报文,比如重复发了三次,报文都是一样的。

  • 您好,CAN收发器的职责很简单:它所要做的就是获取 TXD 上的内容并将其置于 CAN 总线上。 然后,它接收 CAN 总线上的任何数据并将其放置在 RXD 引脚上。CAN2目前是多次发送,是因为它在TXD端接收到了数据。所以我怀疑不是收发器的问题。是不是CAN控制器的设置问题。

    CAN控制器的职责:设置 CAN 帧,然后通过 TXD 引脚将其发送到 CAN 收发器。 然后,如果它看到 CAN 帧返回到 RXD 引脚,它将对该帧进行解码,并将其转换为 MCU 可以理解的数据。

  • Hi,针对问题我再进一步描述一下。

    图中的CAN芯片是您说的收发器。

    目前是MCU发,CPU是只接收,不回复。且黄色的位置(总线),报文不会重复发送。我理解的CAN控制器应该是MCU内部的一个模块(是这样吗?还是我弄错了)

    按照我的理解,我认为MCU的CAN控制器是没问题的,否则总线上应该也是会重复发送?

  • 是的,您没理解错,SN65HVD231是收发器,也就是架构图里的CAN1和2, 控制器是MCU的一个模块。

    总线上看不到重复发送,那么CAN2多次发送的数据不是从总线上获取的吗?确实是个很奇怪的现象。

    CAN2更换一片试试呢?

  • 谢谢您的回复。

    CAN2多次发送的数据是从总线上获取的,没有其他的途径了。CAN2这边也换了一个芯片试过,但是是同型号的。我再尝试下看看能不能换个其他型号的芯片。如果有想到其他的方法请给我留言~谢谢!

  • CAN2多次发送的数据是从总线上获取的,没有其他的途径了

    是的。好我这边也再看看这个问题,然后有任何思路都会给您答复。

  • Hi,我这边发现问题了,是这个监控报文的CANtool只能接在CANH和CANL上(黄色点处),接在其他地方可能就会导致一些问题。

  • 您好,非常感谢您的反馈。后续有其他问题,我们再讨论。

x 出现错误。请重试或与管理员联系。