[CAN-bus/DeviceNet] 请教一个can通讯的问题

[复制链接]
2875|4
 楼主| sinalpha 发表于 2007-9-4 11:05 | 显示全部楼层 |阅读模式
各位老大,小弟碰到一个can的问题:<br />两个节点通过CAN总线互连,用的都是sj1000的BasicCAN。程序里接收函数放在500us中断里,发送函数放在3.3ms中断里。两个can控制器的配置看不出有啥问题。单收或单发都可以,就是不能全双工互连,有时候连上察看两个CAN的接收,开始还能正常接收,过段时间就死了。分析不出来,那位老大比较清楚的,指导小弟一下。谢了!
桂电飞天鼠 发表于 2007-9-4 16:17 | 显示全部楼层

用的是定时中断接收?

为何不用本身的中断方式接收呢?
 楼主| sinalpha 发表于 2007-9-4 16:49 | 显示全部楼层

为啥会死掉

因为以前用DSP&nbsp;56807+sja1000做的时候用的定时中断,可以全双工通讯。现在换成at91的arm了,在vxworks上做的。不过以前的定时中断是20ms,现在是3.3ms。<br />好像can总线上数据冲突时会丢包,为啥会死掉呢?<br />
 楼主| sinalpha 发表于 2007-9-4 16:56 | 显示全部楼层

怎么实现互联

因为现在一个系统用的是arm+2个sja1000。一个系统2个can自己互连的时候,如果在2个can的发送子函数里面,当写完发送缓冲后加上一个延迟,2个can能成功互连。<br />但如果是两个系统,每个系统只用1个can来全双工互连,这个时候该怎么实现?<br />
wxj1952 发表于 2007-9-4 21:55 | 显示全部楼层

很简单

打开所有中断,当任何中断发生时,记录IR值、TXERR值、和RXERR值,然后令程序停止退出,以观察变量。原因便知。<br /><br />接上仿真器,看看程序死在哪里。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部