打印
[CAN-bus/DeviceNet]

多节点问题

[复制链接]
2622|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fatRonaldo|  楼主 | 2007-7-4 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在要做个中位机通过RS232与PC机通讯,通过CAN总线与3个一样的下位机通讯,中位机发送给下位机的信息,可以通过验收码可以选择将信息发送给下位机1、2、3,但是如果1、2、3回答的话,上位机如何区分是那个下位机发送的呢?
是不是一定要通过通信协议来加一帧编号才能处理?
谢谢!

相关帖子

沙发
jdwang| | 2007-7-5 09:28 | 只看该作者

通讯协议

在下位机的8个字节的数据码中,要安排源地址,这样上位机就能知道是那个节点发来的数据,具体如何安排,你自己要设计一个简单的通讯协议,在你自己的CAN系统中,个节点都要尊守此协议.

使用特权

评论回复
板凳
mobile3000| | 2007-7-26 22:58 | 只看该作者

CAN的每个报文本身就带ID的,不需要在数据域中加地址

使用特权

评论回复
地板
jdwang| | 2007-7-27 06:17 | 只看该作者

CAN报文的ID

CAN报文的ID是接收方的标识符,发送方的源地址还是应该在数据码中反映出来。

使用特权

评论回复
5
太阳之母| | 2007-7-29 03:51 | 只看该作者

嘿嘿

4楼说的不对吧?
报文ID是由发送方发送的,接收方可以“有选择地”接收部分节点或所有节点发送的报文。对于LZ的这个问题,中位机就是选择接受所有下位机的报文,这可以通过适当设置屏蔽码来实现。受到报文以后,通过报文的ID就可以知道是哪个下位机发的了(当然各个下位机的报文ID应该设置成不一样的)。

使用特权

评论回复
6
cocorocky| | 2010-10-10 16:58 | 只看该作者
不知楼主这个东西搞出来了吗?
能否学习下???xuxiaoqiang0807@163.com

使用特权

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

本版积分规则

7

主题

25

帖子

1

粉丝