[CAN-bus/DeviceNet] 节点是如何判断总线处于空闲状态的?

[复制链接]
7441|9
 楼主| xlsbz 发表于 2010-1-21 09:16 | 显示全部楼层 |阅读模式
这个问题据说比较难,谁能解释一下?

多谢!
lnskngdc 发表于 2010-1-21 11:24 | 显示全部楼层
控制器监测到总线上有连续11个隐性位,就判断总线是空闲的。
 楼主| xlsbz 发表于 2010-1-21 15:16 | 显示全部楼层
2# lnskngdc

你的解释好像属于书面解释啊 ,我看的有点糊涂。

比如说有节点A和节点B,那么节点A如何判断节点B没正在发数据?
lnskngdc 发表于 2010-1-21 16:03 | 显示全部楼层
上面说的是物理层
控制器总是在监听总线上的数据,这个是can控制器内核自动做的,不需要人为参与。
数据链路层的理解就是:判断CAN控制器的BusBusy控制位,如果它检测到总线上连续11个隐性位(在一个完整的CAN帧里是不会有连续11个“1”的),该标志位提示总线空闲,否则提示总线忙,不能发送。
我不知道你还需要了解什么?
 楼主| xlsbz 发表于 2010-1-21 16:11 | 显示全部楼层
我还是有些糊涂啊!

多谢解答。

你说到“总线上连续11个隐性位”。

那么比如说1个帧 有8个字节的数据。我让这8个字节全是隐性的。也就是64个连续的隐性位啦!:P
ejack 发表于 2010-1-22 23:11 | 显示全部楼层
已经开始的帧接收流程,按照帧格式予以接收以及错误检测。:)
xzq1019 发表于 2010-2-25 21:06 | 显示全部楼层
我的疑问和四楼一样,还请高人解答啊~
ejack 发表于 2010-2-28 06:55 | 显示全部楼层
都已经开始接收了,还不知道总线是否空闲!!!???
lxlfriend 发表于 2010-3-15 16:26 | 显示全部楼层
我还是有些糊涂啊!

多谢解答。

你说到“总线上连续11个隐性位”。

那么比如说1个帧 有8个字节的数据。我让这8个字节全是隐性的。也就是64个连续的隐性位啦!:P ...
xlsbz 发表于 2010-1-21 16:11


can协议用填充位来防治此情况。
数据中有连续5个相同电平,会自动填充一个相反电平。 此相反电平称为“填充位”

具体参考CAN协议基础
zhangyellowleaf 发表于 2014-3-5 17:13 | 显示全部楼层
我怎么得到一个连续的隐性状态呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

1614

帖子

4

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