Part Number:TMS320F28075
最近在使用CAN实现两块DSP之间的通讯(一个主机,一个从机。主机给从机每隔1s发送一次数据,从机收到数据后会进入CAN中断,来读取数据并返回一个数据给主机。主机受到数据后也会进入相应中断里来接受数据)
但实测发现有以下两个问题:
1.发送频率。程序里是每隔1s通过调用ti的数据发送指令,来控制主机给从机发送数据。这样发送数据的频率应该很低。但通过示波器可以看到在1s间隔期间,总线上依然能读取到高频的数据传输信号。也就是发送一个数据后,就一直在自动发送了?
2.刚开始主机发给从机的数据,从机可以在中断中正确收到。但是多测试几次就发现,从机不再进入读取数据的中断了,自然也不会给主机返回数据。然而,主机那边,还是一直在发送数据,并且一直能读取到从机发送过来的数据。示波器观测CAN的传输线信号,会同时读取到主机发给从机的MSGID以及从机回给主机的MSGID。但通过旗标可以看到从机并未进入CAN在中断,自然也不会给主机发送数据。请问这种情况可能是什么原因呢?
3.在CAN的控制寄存器中,有一个自动重发配置位Disable Automatic Retransmission默认是使能的。是否有可能是因为从机一直在尝试重新发送数据?这种情况下,虽然没有进入从机的CAN中断来发送数据,但从机却通过这个Automatic Retransmission来实现重复发送数据了?
Katherine Wang:
已为您联系TI资深工程师,一旦得到回复会立刻回复给您
,
Katherine Wang:
user4425193 说:总线上依然能读取到高频的数据传输信号
1. 如果主机每 1 秒传输一帧,您应该只会看到这种现象。如果不看波形,我很难说出那些“高频的数据传输信号”是什么。请捕获这些信号并将其附到帖子上。波形看起来应该像您在 www.ti.com/lit/SPRACQ3 中看到的那样干净。有关一般调试提示,请参阅 www.ti.com/lit/SPRACE5。2. 通信工作正常的事实最初告诉我没有硬件问题。如果您有 CAN 总线分析仪,您可以比使用示波器更好地了解总线活动。我无法告诉您为什么从机中的中断例程没有被执行,尤其是当主机继续发送正确的数据时。您需要将 CCS 调试器连接到从机并进行分析。3. 自动重发适用于仲裁丢失的情况。如果网络中只有两个节点,并且从机仅在收到来自主机的帧后才响应,则不存在仲裁丢失的可能性。