打印
[CAN-bus/DeviceNet]

周立功的CAN模块干扰问题

[复制链接]
4152|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wzj983|  楼主 | 2011-12-9 16:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
实验配置:

1 、下位机采用飞思卡尔s12的芯片收发CAN数据,收发器用的是TJA1050

2、上位机采用周立功的canalyst-II,CANPro协议分析平台

3、还有一个监测节点。

实验目的:

上位机和下位机互发互收并正常响应。

实验现象:

下位机发送几次后进入“死机”状态,但是上位机还是一直在接收数据。

实验问题展示:

1、将飞思卡尔芯片仿真运行,进入假死状态后,“停止”运行,发现程序似乎是陷在CAN_ERR(用PE 生成的CAN错误处理子程序)中了。

2、在CAN_SEND(can发送子程序)中设置断点,程序运行不到此处。

3、上位机接收的数据帧是下位机进入“假死”之前的最后一帧。

4、用示波器挂在总线上,发现总线上确实有数据在传输,但波形不是特别整齐。

5、去掉周立功模块,总线上的数据整齐,重新仿真下位机表现正常(数据被检测节点接收)。

初步推断:

1、周立功模块干扰较大,但其自身对CAN数据的纠错能力较强

2、周立功模块接收成功,但是下位机由于总线干扰严重,认为发送失败,进入canERR子程序,命令can收发器进入自动重发模式。

后续解决办法:
将CAN_ERR子程序里添加清除错误,返回,程序也可正常运行。

后续发现:
将周立功模块设置为只听模式这种干扰也会消失,但是只听模式是不能发送的。
打开周立功模块,发现其电源设计部分没有采用稳压电路或电源芯片,仅仅使用了隔离电源模块,怀疑这是干扰产生的原因。

由于本人对CAN收发的机制不是特别清楚,所以不知道这样设计(改写CAN_ERR子程序)对不对,是否违背了CAN总线应用机制,另外想知道分析的周立功模块产生这种干扰的原因对不对。

相关帖子

沙发
hyhmh| | 2011-12-20 15:10 | 只看该作者
不一定是工具引起的.
也有可能 S12 MCU关于CAN的配置参数 没有达到较佳的状态.

使用特权

评论回复
板凳
JobShare| | 2011-12-22 11:17 | 只看该作者
:)

使用特权

评论回复
地板
dami| | 2011-12-24 23:04 | 只看该作者
自用过CAN以来还没出现过死机之类的现象。不知道是我运气好还是。。。。CAN总线用。隔离模块是可以的,不需要什么稳压,但要加比较大的电容。》22UF 最好47UF,104也是要的。

使用特权

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

本版积分规则

0

主题

2

帖子

1

粉丝