OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2589|回复: 0

CAN仲裁域碰到数据域会不会有问题?

[复制链接]

17

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2020-1-15
在线时间
39 小时
发表于 2020-2-27 10:28:49 | 显示全部楼层 |阅读模式
1金钱


我理解的仲裁,3个NODE同时发,ID最小的那个会赢得仲裁

NODE1     32F         011    0010    1111        第二个退出仲裁

NODE2     33F         011    0011    1111        最先退出仲裁

NODE2     32D        011    0010    1101        赢得仲裁

-----------------------------------------------------------------------------------------------------------

这是同时发送的情况,仲裁很好理解,那么如果不是同时发送呢


一个NODE想要发送,条件是总线空闲,也就是11个bit  的逻辑1.

仲裁域11bit ,数据域有64bit最大,那么如果NODE1的数据域包含了11个逻辑1,会不会被NODE2认为是总线空闲?

总线被误认为空闲后,NODE2发出仲裁域数据,假设特别巧,正好NODE1的数据域里面的数据和NODE2的仲裁ID相同,那么NODE2岂不是以为自己赢得了仲裁?


如下:
NODE2的仲裁ID是011    0011    1111,NODE1的数据域中包含了111   1111   1111   011    0011    1111

NODE1先发送,因为NODE1占了总线,NODE2等待总线空闲,注意下面的红色部分,会不会让NODE2误认为总线空闲?


NODE1    【仲裁域】-----略-------【数据域-----111   1111   1111                   011    0011    1111】----------略------------

NODE2                  准备发送-------------------------总线看上去空闲------------NODE2仲裁ID和NODE1的数据恰好一致  


这时候是不是就会出错了?



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-25 22:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表