szunzer 发表于 2011-4-7 14:44

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

有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号无关)。
页: [1]
查看完整版本: 关于Can节点应答的问题!提个建议吧!!