[CAN-bus/DeviceNet] 关于仲裁

[复制链接]
3480|6
 楼主| YUTYSUNLI 发表于 2008-12-12 16:48 | 显示全部楼层 |阅读模式
我知道在几个站同时发送时,ID值大的将退出发送,退出以后等网络空闲时再竞争。我想问一下,退出以后是自动发送呢,还是需要软件再重新发送?
lnskngdc 发表于 2008-12-12 18:21 | 显示全部楼层

zid

CAN总线自动仲裁,退出以后自动重发发送,这个是可选的
王敬 发表于 2008-12-16 13:06 | 显示全部楼层

2楼

如果CAN&nbsp;总线没有使用优先级,当所有的站点的ID都一样时,其中有两个站点在发送数据,这样会出现什么情况?<br />
xhtxzxw 发表于 2008-12-16 20:54 | 显示全部楼层

嘿嘿

发完ID,大家都一样,那就继续在后面的&quot;位&quot;上做仲裁好了!哪怕一直到开始发数据了发的位还是一样也没关系,继续在数据部分PK,如果数据发完了,发现数据也是一样的,在网络没有干扰的情况下,后面的CRC位当然也是一样的了,那没的说,都发送成功了,而且大家还都以为这个帧是自己发的呢!嘿嘿<br /><br />如果数据之前的位都一样,但数据不一样,数据实际上也被用于总线竞争了!<br />在同一个位序上,发显性位的节点赢得总线(它发了显性位也收到显性位,没有出错,继续发呀,TNND),发隐性位的节点丢失总线(它发了隐性位却收到显性位,认为是出错了,只好退出,TNND).<br />
松鼠的大树 发表于 2009-1-15 17:39 | 显示全部楼层

xhtxzxw:我喜欢你的特长

人才啊!!!
went 发表于 2009-9-17 14:46 | 显示全部楼层
厉害!
ejack 发表于 2009-9-18 22:30 | 显示全部楼层
按照规范来说,只有ID域用于总线仲裁。
不过实际使用中,确实如4L所说,数据域在“事实上”也参与了仲裁。不过其结果是不定的,极端情况下可能导致错误接收应答位而误判为发送完成。
设计人员有义务保障总线ID域在同一时刻的唯一性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

19

帖子

1

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