新手求助,为何单个节点异常会导致can总线崩溃 点击:5144 | 回复:3



vega_mylove

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 1回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2015年2月04日
发表于:2015-02-05 10:09:04
楼主

家里有一款产品   使用can通讯  距离在3~5KM  通讯速率10K   主机采用250+SJA1000   分机(20个,并且优先权一致)采用250加MC68HC908通讯  分机只于主机通讯,分机间不相互通讯  经常会出现一个问题  单个节点的250故障后  会使得整个总线通讯异常     正常来说 can通讯是不应该这样的   我后来查看了程序   发现程序中用远程帧来传输数据(用识别符作为数据)  而且程序中没有使能总线关闭中断  以上是目前我可以得知的条件,由此我想出了两种导致此问题的可能

1:若三号分机250异常,那么分机在给主机发信息后无法得到主机在应答间隙给其反馈的信息发送成功位。这种情况下三号分机可能会继续尝试发送信息,而且由于分机间优先权相同,其他节点无法获得总线仲裁  这些节点无法返回信息给主机   造成总线瘫痪。

2:会不会错误帧影响了其余节点的通讯数据 造成总线瘫痪。(这个情况我不太有把握  这是提出来大家讨论下)


如果是第一种情况造成的总线瘫痪   我是不是只需要使能总线关闭中断就行   当他错误计数达到255时  自动脱离总线  其余分机就可以正常工作了。 

本人初次接触can网络   希望各路大神指点   谢谢了





乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2015-02-05 13:20:08
1楼

总线通信,一个是轮询(常用工业总线都是如此),另一个就是主动点对点通信,前者刷新速度较慢(就是不管该站有没有数据变化都需要周期通信扫描),而后者刷新速度快(只是数据变化的进行通信,数据没有变化的不会通信),但是当其中一个站通信异常时就会霸占总线不再释放,而该站确实异常,这样导致整个系统失联崩溃!

改用轮询即可

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2015-02-07 11:46:04
2楼

去阿莫论坛吧,那里专业做CAN的比较多。

Iain

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2015年2月27日
发表于:2015-02-27 15:14:05
3楼

总线中故障的节点如果发送不成功的话,会多次尝试发送,此时发出的帧数据基本都属于错误帧,这些错误帧会对正常总线造成致命干扰,所以要打开总线关闭中断,吧发送错误帧的设备自动关闭掉


热门招聘
相关主题

官方公众号

智造工程师