书上说CAN通信不用寻址,那么每个节点的ID怎么制定??

[复制链接]
4064|17
 楼主| linux1 发表于 2010-7-12 22:08 | 显示全部楼层 |阅读模式
书上说CAN通信不用寻址,那么每个节点的ID怎么制定??
想实习去 发表于 2010-7-12 22:10 | 显示全部楼层
CAN只规定了底层的数据链路层,还需要自己规定应用层协议,即通讯协议。做得大一些,可以考虑DeviceNET 或 CANopen 协议。
yoyowodeai 发表于 2010-7-12 22:11 | 显示全部楼层
我也正做毕业设计,也考虑过这个问题 我的CAN网络有20个节点(其中一个为工控机,其余19个节点是相似的,均接到整流装置),每个节点有4种数据要处理,一为模数转换后发送到工控机的直流电流值;二为整流变压器的档位信号,也是要发送到工控机;三为接收工控机发过来的整流触发角的给定值,并通过RS-422总线发送到整流控制器;四是接收工控机发过来的变压器档位切换信号,并转发到档位切换模块。我想我可以自己定义标识符,比如32位表识符里前11位用来区分优先级,中间十位的前五位作接收方的标识符,后五位作发送方的标识符,其余11位用来区分上述的四种数据。当一个节点接收到工控机发来的数据后,通过识别标识符的后11位,看数据应该转发到哪里。当工控机接收到整流节点的数据时,通过识**16位来区分是哪个节点发过来的(16位里的前5位),是什么数据,是档位信号还是直流电流值信号。 这仅是小弟我的一些想法,也不知对不对,希望各位高手给个意见。
3B1105 发表于 2010-7-12 22:13 | 显示全部楼层
CAN的协议规定,标准帧的标识符是11位,每个数据都有自己的标识符,优先级当然是数值小的优先级高,数据该到哪里,应该是根据接收节点的验收码和屏蔽码确定的
bit6019 发表于 2010-7-12 22:15 | 显示全部楼层
思行合一 发表于 2010-7-12 22:19 | 显示全部楼层
只许工控机和各个整流节点之间的数据传输,而不需要19个整流节点之间的数据传输,所以我打算把工控机的CAN节点的屏蔽码设为全1,也就是每个标识符设为验收无关,这样工控机可以接受总线上的任何数据(因为总线上的数据要么是工控机发出的,要么是发给工控机),等工控机收到数据之后,通过判别标识符来识别是哪个节点发来的,是什么样的数据(这也是在编程时自己规定的)
huzixian 发表于 2010-7-12 22:20 | 显示全部楼层
高明!can协议里没有表示自己地址的地方,重来没想到这样表示自己的地址。
bit6019 发表于 2010-7-12 22:21 | 显示全部楼层
不过优先级和对方地址不是你想自己定义就自己定义的。你弄懂报文滤波没?要是另19个节点要互相通信的话,你的设想就有点麻烦了。
yoyowodeai 发表于 2010-7-12 22:21 | 显示全部楼层
我也想实现一台站台设备与多台区间台设备之间的CAN总线通信,这就须要车站设备能接收来自每个区间设备的信号,每个区间设备之间必须通过ID码的优先测级进行总线竞争,区间设备最多不大于40台,只须要用到11位ID里面的6位,车站设备将其屏蔽,是否就能实现区间设备优先级最高的首先发送,而车站设备能接收任一台发送的区间设备信号?我用的F040,你现在项目进行如何?关于WKINGW: 是否有关于报文滤波方面的资料,最好是关于F040的,谢谢!
米其林r 发表于 2010-7-12 22:24 | 显示全部楼层
LS的水平真高啊!学习中!
 楼主| linux1 发表于 2010-7-12 22:25 | 显示全部楼层
can can总线标识符可以设定接收某段之间的节点吗?
LPC300 发表于 2010-7-12 22:26 | 显示全部楼层
刚学习CAN总线,问大家一个问题,在CAN总线中的一个节点可以设置就接收某段标识符的节点信息吗!

例如11位的标识符,我就接收0110 0000 000  ~0110 1000 000之间标识符的节点
LPC300 发表于 2010-7-12 22:31 | 显示全部楼层
CAN协议的隐形与显性是什么意思了?发送的同时也在接收是什么意思?
手写识别 发表于 2010-7-12 22:33 | 显示全部楼层
隐形是1,显性是0,相与是0
windblue78 发表于 2010-7-13 10:09 | 显示全部楼层
学习了
loglibaoying 发表于 2010-7-14 08:23 | 显示全部楼层
节点的ID当然是自己定了 就像你给每个节点取名字一样 发送时候写上节点的名字相应节点就能收到数据 这里牵涉到报文滤波  看懂就行
无语凝咽 发表于 2010-7-14 12:22 | 显示全部楼层
ID的11位是不需要全部用的,部分位是用来当MAC地址来用的,参考device-net 协议请
6019赵文 发表于 2010-7-22 12:27 | 显示全部楼层
你用的是什么芯片,我用的atmel arm7  关键是对MID  MAM  MIFD进行设置
您需要登录后才可以回帖 登录 | 注册

本版积分规则

96

主题

455

帖子

0

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