[CAN-bus/DeviceNet] 关于Can节点应答的问题!提个建议吧!!

[复制链接]
3049|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

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