TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS570 can总线与其他设备can节点之间的通信问题

TMS570中的can节点通信需要设置相应的Messagebox,那如果跟别的设备can通信的话如何知道应该使用哪个messagebox呢?和多个其他设备进行can通信的话发送和接收可以使用同一个messagebox吗?

就是不太明白这个messagebox应该如何配置,还请指点~

regards,

yong

Ken Wang:

Hi Yong,

   如果TMS570和其他设备通过CAN总线通信的话,选择哪个messagebox无所谓,关键是被选中的messagebox需要设置位输出,同时该messagebox对应的CAN message的ID必须和你需要通信的CAN设备的ID一致,不然通信建立不起来。

    如果和多个设备通信的话,我们一般还是建议你选择不同的messagebox,然后每个messagebox对应发送或者是接收,以及不同的ID。如果你要使用同一个messagebox的话,会比较麻烦,需要你不停的改变CAN的设置(发送和接收的切换以及不同ID的切换)。

Ken Wang

yong zhang2:

回复 Ken Wang:

感谢您的回复,那这个message的ID在TMS570中是个什么参数呢?在哪里设置呢?

Ken Wang:

回复 yong zhang2:

Hi Yong

你可以在CAN模块的初始化函数里面设置。即设置canREG1->IFxARB,或者是在HALCOGEN的CAN配置界面里面设置。同时我刚在另外一个帖子里面上传了一个CNA的例程,你可以下载下来看看,参考一下。

Ken

yong zhang2:

回复 Ken Wang:

如果将can总线接收mask设置成00000000,既不按ID进行屏蔽,那么可以收到其他节点不同ID的消息,那么接收到的can帧的ID从哪里可以得到呢?

Regards

yong

yong zhang2:

回复 Ken Wang:

感谢二位的回复,另外有个问题,如果使用有个Message Objects分两次发送不同的数据,这个间隔时间是多少才不会影响第二次发送呢?我试用的后发现如果紧接着用这个messagebox发送另一个数据,接收端则接收不到第二次的数据,但单步调试的时候是可以的,所以想的是会不会是间隔时间太短的原因。

Jay:

回复 yong zhang2:

Hi yong,

对于你这种情况,建议使用FIFO来发送和接收数据。

把要发送的数据全都写入发送FIFO后再开始发送。

接收端FIFO接收完所有数据后再依次读取。

Regards,

Jay

bo xiao2:

回复 Ken Wang:

你好,请问这几句都是什么意思?我也需要读收到的ID

zhangjie zhangjie:

回复 Ken Wang:

请问这个设置加在哪里呢?接收数据后?我在接收时加的,会造成通信一次无应答一次正常。

赞(0)
未经允许不得转载:TI中文支持网 » TMS570 can总线与其他设备can节点之间的通信问题
分享到: 更多 (0)