CAN仲裁问题

CAN仲裁问题

CAN总线同一时间只能有一个设备操作总线发送数据,当多个设备同时发送需求,则会根据资源分配规则,一次满足多个设备的发送需求,确保同一时间只有一条设备操作总线。

CAN总线有两种资源分配规则:先占先得、非破坏者性仲裁

先占先得:若当前已经有设备正在操作总线发送数据帧/遥控帧,则其他任何设备不能再同时发送数据帧/遥控帧,任何设备检测到连续11个隐性电平,即认为总线空闲,只有在总线空闲时,设备才能发送数据帧/遥控帧。若总线活跃状态其他设备有发送需求,则需要等待总线变为空闲,才能执行发送需求。

非破坏性仲裁:若多个设备的发送需求同时到来或因等待而同时到来,则CAN总线协议会根据ID号(仲裁段)进行非破坏性仲裁,ID号小的(优先级高)取到总线控制权,ID号大的(优先级低)仲裁失利后将转入接收状态,等待下一次总线空闲时再尝试发送。

CAN总线非破坏性仲裁的两个要求

线与特性:总线上任何一个设备发送显性电平0时,总线就会呈现显性电平0状态,只有当所有设备都发送隐性电平1时,总线才呈现隐性电平1状态,即:0 & X & X = 0,1 & 1 & 1 = 1

回读机制:每个设备发出一个数据位后,都会读回总线当前的电平状态,以确认自己发出的电平是否被真实的发送出去了,根据线与特性,发出0读回必然是0,发出1读回不一定是1

CAN总线为什么ID号小的优先级高

可以从仲裁过程推理出来,ID号越小,其二进制数据的1出现的就越晚,ID号越大,1就出现的越早,ID号出现差异,且发出数据1的仲裁失利,所以ID号出现的越早,就越容易仲裁失利,ID号1出现的越晚,仲裁就会更晚失利。

那位填充会不会影响仲裁呢?答案是不会,因为找不到两个ID,在A比B小的情况下,加上位填充后,A会比B低。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值