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

TMS320C280049 CAN ID冲突问题

在调试TMS320C280049 CAN 时,系统中有12个节点,如果12个节点都用254作为源地址,255作为目的地址互相之间发送can数据帧时,经常会出现ID冲突,某些节点的CAN就会出现错误,不收发数据。

但是如果用一个小的数字,比如说用0作为源地址,互相发送can帧时ID冲突的可能性就很小。

这12个节点除了ID域相同外,数据都不相同。

另外,TMS320C280049的“Auto-Bus-On”在出现ID冲突后也不管用。

Susan Yang:CAN总线是通过数据包ID而非节点地址来收发数据的,即CAN总线上的节点没有固定的地址,取而代之的是每个节点都需要通过软件配置一个ID表(在该节点的验收滤波器单元中),如果总线上的数据包的ID号在该节点的ID表中存在,则数据包成功通过该节点的验收滤波器单元的验收,并将被送到上层软件处理单元并进行相应的数据处理,否则,该数据包被丢弃。

您现在是多个节点同时收发数据?

“这12个节点除了ID域相同外,数据都不相同。” 能否详细说明一下?谢谢

在调试TMS320C280049 CAN 时,系统中有12个节点,如果12个节点都用254作为源地址,255作为目的地址互相之间发送can数据帧时,经常会出现ID冲突,某些节点的CAN就会出现错误,不收发数据。

但是如果用一个小的数字,比如说用0作为源地址,互相发送can帧时ID冲突的可能性就很小。

这12个节点除了ID域相同外,数据都不相同。

另外,TMS320C280049的“Auto-Bus-On”在出现ID冲突后也不管用。

zhaoheng li:

回复 Susan Yang:

我的意思就是每个can数据帧包括ID域(即仲裁域)和数据域,数据域各不相同,ID域相同,我在ID域中又划分了源地址和目的地址,是扩展帧。
例如0x0767fff3,是仲裁域,表示是从地址254发到255的,假设10秒时间内每个节点都用这个ID域给总线发送can数据帧(假设20毫秒发一次),就会引起冲突,某些节点出错后就不收发数据了。
但是例如同样的规则,如果仲裁域变成0x0767f923,表示是从地址64发到255的,冲突的概率就大大降低。

赞(1)
未经允许不得转载:TI中文支持网 » TMS320C280049 CAN ID冲突问题
分享到: 更多 (0)