[讨论] 请教一个CAN错误的问题

ppsh   2012-7-23 17:58 楼主
CAN2.0B中应答错误将使得发送方不停的发送,直到接收到应答信号或者进入bus 0ff
那么其他错误呢。比如CRC错误,接收端如果在主动错误时判断出现一个CRC错误然后在应答位发送错误帧,发送端是否因此判断应答不正确而重新发送。但是在被动错误时,六个隐形电平是不是让主机认为已经发送成功了?
位错误的处理是否也是先发送错误帧再重新发送数据帧,直到发送正确 ?
还有一点就是,如果主机判断出错,重新发送数据,那么从机会不会造成邮箱溢出?

回复评论 (6)

为什么说:“CAN2.0B中应答错误将使得发送方不停的发送”?

我记得应答错误将使发送方产生中断,至于发送方是否要不停的发送,这取决于发送方的软件。
点赞  2012-7-24 09:49
发送不正确,自动重发。这个是固化到CAN模块里了吧。
我跑例程时没有处理错误,要是只有一个节点就是发送直到进入bus0ff模式。
点赞  2012-7-24 13:02
楼主你是对的。

我重新读了一遍bosch的CAN协议;我的理解是发送错误CAN就自动重发,CRC错误会导致error frames 所以也会导致也会重发,如果CRC错误,那数据不会放入MAILBOX中,只有没有错误的数据会放入mailbox中,也就不会有溢出.

[ 本帖最后由 hlx3012 于 2012-7-24 15:34 编辑 ]
点赞  2012-7-24 15:32

回复 4楼 hlx3012 的帖子

谢谢了。
点赞  2012-7-25 14:51


下面是CAN 2.0b的协议楼主有兴趣可以看一下。
点赞  2012-7-25 17:12

回复 4楼 hlx3012 的帖子

如果出现帧错误,相隔多少时间重发?
点赞  2012-8-17 15:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复