我知道CAN总线进行仲裁的方式。简而言之,标识符中有更多“0”的CAN节点ID赢得了在总线上传输的rite,而其余竞争节点后退。
但我没有找到how long的任何细节,退出的节点在重新尝试重新赢得总线之前等待。我查阅了一些资料,但仍然找不到答案。有实验证据证明这一点吗?
Bosch CAN
Introduction to the Controller Area Network
发布于 2016-04-18 17:42:58
在胜利帧已经被传输并且在CAN帧末尾的“间歇字段”中没有找到主导比特之后,可以自由地再试一次。
这里重要的部分是认识到每个CAN控制器监听每一个帧,即使它对它不感兴趣。这是实现碰撞避免而不是碰撞检测的方法。
发布于 2016-04-19 15:17:29
如博世CAN规范文件中所述,当总线空闲情况发生时(在总线上未发现主导位),所有CAN节点都可以开始发送挂起的帧。在帧间间隔的间歇期间,没有节点可以发送(可以发送过载帧,但不能发送数据或远程帧)。在此期间,CAN节点必须等待3个隐性位。所有节点都可以在此间歇时间段之后立即开始传输。
如果多个节点在中断期后立即开始,则最低标识符帧将赢得仲裁。如果来自不同节点的远程帧和数据帧(两者具有相同的标识符)开始,则数据帧将赢得仲裁。
发布于 2016-04-20 10:01:43
我同意上面的答案,但我希望对CAN总线时序进行更多的数学分析。我发现了一个很棒的讲稿:Time analysis of CAN messages 。第三章
https://stackoverflow.com/questions/36689307
复制相似问题