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.
您好:
我选择了两块CAN芯片(SN65HVD231DR)在两个芯片之间进行通讯。MCU发送数据给CPU,CPU不回。
如图。
在红色的点,看CAN的通讯报文,发现有一些帧,非固定,会有一帧多次发送的现象。但是在黄色的点看CAN的通讯报文,不会出现一帧多次发送的情况。
请问这个问题是什么原因?如何解决?
芯片的距离不长。
在总线上看,是没有多次发送的情况的。只有经过了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这边也换了一个芯片试过,但是是同型号的。我再尝试下看看能不能换个其他型号的芯片。如果有想到其他的方法请给我留言~谢谢!