打印
[CAN-bus/DeviceNet]

节点是如何判断总线处于空闲状态的?

[复制链接]
6181|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”的),该标志位提示总线空闲,否则提示总线忙,不能发送。
我不知道你还需要了解什么?

使用特权

评论回复
5
xlsbz|  楼主 | 2010-1-21 16:11 | 只看该作者
我还是有些糊涂啊!

多谢解答。

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

那么比如说1个帧 有8个字节的数据。我让这8个字节全是隐性的。也就是64个连续的隐性位啦!:P

使用特权

评论回复
6
ejack| | 2010-1-22 23:11 | 只看该作者
已经开始的帧接收流程,按照帧格式予以接收以及错误检测。:)

使用特权

评论回复
7
xzq1019| | 2010-2-25 21:06 | 只看该作者
我的疑问和四楼一样,还请高人解答啊~

使用特权

评论回复
8
ejack| | 2010-2-28 06:55 | 只看该作者
都已经开始接收了,还不知道总线是否空闲!!!???

使用特权

评论回复
9
lxlfriend| | 2010-3-15 16:26 | 只看该作者
我还是有些糊涂啊!

多谢解答。

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

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


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

具体参考CAN协议基础

使用特权

评论回复
10
zhangyellowleaf| | 2014-3-5 17:13 | 只看该作者
我怎么得到一个连续的隐性状态呢

使用特权

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

本版积分规则

190

主题

1614

帖子

4

粉丝