打印
[CAN-bus/DeviceNet]

关于Can节点应答的问题!提个建议吧!!

[复制链接]
2236|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szunzer|  楼主 | 2011-4-7 14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有5个节点,id  分别是 1,2,3,4,5
使用 双滤波,正常模式(应答模式)
1号节点向5号节点发送数据,5号能接收到,可是将5号节点从总线上拿掉,1号再向5号节点发送 不提示失败
从1号节点向6号节点发送数据,因为总线上没有6号节点,应该提示错误吧!可是还不提示错误!
如果发送数据到一个掉线的节点或不存在的节点,我应该怎么做才能提示错误啊?

相关帖子

沙发
lnskngdc| | 2011-4-11 09:41 | 只看该作者
笨一点的方法,可以定时查询
某个节点回复报文,则在内存里置个标志位,定时器隔一段时间去查询并清空该标志位.
待到某个定时器中断的时候该标志位为0,则说明该节点掉线.
发送失败的情况,请参考错误寄存器的定义,只要有两个或两个以上的节点,就不会提示失败.

使用特权

评论回复
板凳
szunzer|  楼主 | 2011-4-12 12:49 | 只看该作者
谢谢建议!基本思路一致!

使用特权

评论回复
地板
hyhmh| | 2011-4-16 15:34 | 只看该作者
CAN内核的 “出错” 是在 MAC层, 并不是 应用层。 只要 总线上存在 2个节点同时这2个节点参数(波特率等)匹配一致,无论节点ID号是多少,一个节点都会对另一个节点确认(这个确认是物理波形上的与节点ID号无关)。

使用特权

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

本版积分规则

0

主题

3

帖子

1

粉丝