打印
[CAN-bus/DeviceNet]

can总线错误处理

[复制链接]
4427|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guxingke_8|  楼主 | 2010-7-29 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想请教一下各位,我用的是89s52+sja1000+tja1050,中断中允许总线错误(IR.7),数据溢出错误(IR.3),以及错误中断IR.2 ,接收中断,发送中断,在检测到总线错误,数据溢出错误,以及错误中断中都有重新初始化SJA1000的芯片,可是还是有设置刚开始正常工作,几个月后,或者是一年,有时候会有节点会一直收不到数据,重新上电一下就好,请问一下,这有可能是什么问题?

相关帖子

沙发
guxingke_8|  楼主 | 2010-7-30 08:42 | 只看该作者
没有人回答,我自己顶一下

使用特权

评论回复
板凳
guxingke_8|  楼主 | 2010-7-30 08:43 | 只看该作者
我的系统是用在电梯控制中的,节点差不多有10个左右,用的扩展帧格式

使用特权

评论回复
地板
lnskngdc| | 2010-8-1 22:57 | 只看该作者
不重新复位的情况下,因为物理条件干扰或者不稳定,sja1000的错误寄存器会检测出很多错误,当错误数超过255时,会使总线关闭,此时sja1000不能接收和发送总线上的数据,可以人为检测,当错误超过某值后清空错误寄存器,但是这只是治标不治本的解决办法.
最根本的方法就是做好抗干扰,使用阻抗小的电缆,通讯速率要统一,尽量保持在3%以内(规约要求5%以内).

使用特权

评论回复
5
guxingke_8|  楼主 | 2010-8-2 09:19 | 只看该作者
不知道你说的做好抗干扰是指什么,我目前做到的是用屏蔽双绞线+终端电阻,我现在的系统中在检测到总线错误,数据溢出错误,以及错误中断中都有重新初始化SJA1000的芯片,
电缆的电阻也足够小的
通讯速率肯定是一样的呀!

使用特权

评论回复
6
guxingke_8|  楼主 | 2010-8-2 09:30 | 只看该作者
重新初始化芯片和重新上电对SJA1000来说应该是一样的吧!

使用特权

评论回复
7
lnskngdc| | 2010-8-4 21:33 | 只看该作者
重新初始化芯片和重新上电对SJA1000来说应该是一样的吧!
guxingke_8 发表于 2010-8-2 09:30

重新上电就是硬复位.
初始化就是软复位.
结果是差不多的,难道你准备运行一段时间自动重启?

使用特权

评论回复
8
guxingke_8|  楼主 | 2010-8-5 08:27 | 只看该作者
是的,不知道楼上的有什么好办法可以消除错误!谢谢了

使用特权

评论回复
9
lnskngdc| | 2010-8-5 18:17 | 只看该作者
我在4楼写了啊,经常去检查错误寄存器,如果超过某个值就清空错误寄存器或者重新初始化sja1000.

使用特权

评论回复
10
guxingke_8|  楼主 | 2010-8-6 08:28 | 只看该作者
嗯,我现在是如果有发现某些错误就重新初始化一下SJA1000,而不是清空错误寄丰器。和你的办法也差不多,对了,楼上的你的产品是用在什么场合,抗干扰除了你说的"通讯速率要统一,尽量保持在3%以内(规约要求5%以内)."这个是什么意思?通讯的波特率不是都要设置成一样的才行吗?还有你们的产品是用在什么地方的,如果可以在总线上加磁环的话,抗干扰的效果也挺明显的。

使用特权

评论回复
11
xlsbz| | 2010-8-8 11:15 | 只看该作者
1# guxingke_8

你是在CAN中断里面重新启动呢?

还是在主循环中重新启动?

使用特权

评论回复
12
guxingke_8|  楼主 | 2010-8-13 08:15 | 只看该作者
在主循环里重新启动

使用特权

评论回复
13
bhsdlmj| | 2010-8-14 08:41 | 只看该作者
能确定 启动成功了么?

能确定 启动的正确么?

使用特权

评论回复
14
ddd110| | 2010-10-15 20:57 | 只看该作者
我也遇到这样的类似问题。不知怎么解决。

使用特权

评论回复
15
myic200610| | 2012-10-24 00:55 | 只看该作者
学习了

使用特权

评论回复
16
sjz2008| | 2012-10-26 20:28 | 只看该作者
受益。大拿继续顶起啊

使用特权

评论回复
17
crystal_f| | 2013-1-5 23:10 | 只看该作者
guxingke_8 发表于 2010-8-13 08:15
在主循环里重新启动

我也遇到相似的问题,Can总线节点增多,有些节点就会接收不到数据。请问,你说的重启是对芯片重新初始化吗?

使用特权

评论回复
18
fuzhoulzp| | 2013-1-7 17:50 | 只看该作者
学习了,CAN总线挺好用的,最近越来越受欢迎了,改天玩玩新塘的ARM,上面也有CAN总线外设

使用特权

评论回复
19
lvyisu123| | 2013-1-22 16:35 | 只看该作者
你好,我想向你请教下can总线的相关知识。
1.消极错误节点在消极报错后是如何工作的,他接收到什么信号后进入间歇场,从而开始下一帧的发送或接收?
2.在间歇场的第一位和第二位如果出现显性,则总线进入超载,我想问这两个为是哪个节点发送到总线上来的?如果第三位出现显性位,总线又会以他为帧起始,这个为又是谁决定的?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

0

粉丝