can总线(五)

目录

[资源分配规则1 - 先占先得:](#资源分配规则1 - 先占先得:)

[资源分配规则2 - 非破坏性仲裁:](#资源分配规则2 - 非破坏性仲裁:)

非破坏性仲裁过程:

数据帧和遥控帧的优先级:

标准格式和扩展格式的优先级:

​编辑标准遥控和扩展格式的优先级:


CAN总线只有一对差分信号线,同一时间只能有一个设备操作总线发送数据,若多个设备同时有发送需求,该如何分配总线资源?

解决问题的思路:制定资源分配规则,依次满足多个设备的发送需求,确保同一时间只有一个设备操作总线

资源分配规则1 - 先占先得:

·若当前已经有设备正在操作总线发送数据帧/遥控帧,则其他任何设备不能再同时发送数据帧/遥控帧(可以发送错误帧/过载帧破坏当前数据)

·任何设备检测到连续11个隐性电平,即认为总线空闲,只有在总线空闲时,设备才能发送数据帧/遥控帧

·一旦有设备正在发送数据帧/遥控帧,总线就会变为活跃状态,必然不会出现连续11个隐性电平,其他设备自然也不会破坏当前发送

·若总线活跃状态其他设备有发送需求,则需要等待总线变为空闲,才能执行发送需求

资源分配规则2 - 非破坏性仲裁:

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

·实现非破坏性仲裁需要两个要求:

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

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

非破坏性仲裁过程:

数据位从前到后依次比较,出现差异且数据位为1的设备仲裁失利

1和2同时发送0;总线电平0;1和2回读0;正常发送,继续下一位

1和2同时发送1;总线电平1;1和2回读1;正常发送,继续下一位

1发送0,2发送1;总线电平0(线与);1回读0,2回读0;2发送1但回读到0知道有其他设备在抢用总线,于是仲裁失利,变为接收状态工作

1发送1,2发送0;总线电平0(线与);1回读0,2回读0;1发送1但回读到0知道有其他设备在抢用总线,于是仲裁失利,变为接收状态工作

数据帧和遥控帧的优先级:

数据帧和遥控帧ID号一样时,数据帧的优先级高于遥控帧

因为仲裁阶段包括RTR位,数据帧的RTR为0,遥控帧的RTR为1

标准格式和扩展格式的优先级:

标准格式11位ID号和扩展格式29位ID号的高11位一样时,标准格式的优先级高于扩展格式(SRR必须始终为1,以保证此要求)

因为标志数据帧的RTR为0,扩展数据帧的SRR为1

标准遥控和扩展格式的优先级:

因为两者的仲裁阶段都一样,但是后面的IDE位不一样,虽然说标准遥控帧已经过了仲裁阶段,但是扩展数据帧还没有,所以还可以仲裁,标准遥控帧IDE为0,扩展数据帧为1,所以标准遥控帧先执行

相关推荐
深圳市尚想信息技术有限公司1 小时前
TM52F1376海速芯HITENX Flash-8位MCU单片机,多通道ADC + 段码显示一体化主控芯片
单片机·嵌入式硬件·mcu·flask·芯片·控制器
硅基手札2 小时前
【I2C 技术系列 08】I2C 控制器寄存器与 IP 架构
驱动开发·stm32·单片机·嵌入式硬件·mcu·架构·计算机外设
新晨单片机设计2 小时前
S027A-基于STM32单片机模拟电梯控制系统【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·模拟电梯
endeavor122 小时前
CAN总线
stm32·单片机·can
SKH.3 小时前
Linux驱动-led、beep
linux·运维·单片机
老王爱玩车3 小时前
预处理详解
c语言·开发语言·学习
2601_950790683 小时前
国产单片机厂家推荐:英锐恩8位MCU系列、外设资源与应用选型对照
单片机
学逆向的4 小时前
C 控制台指令
c语言·开发语言·网络安全
沫璃染墨4 小时前
从零入门数据结构与算法(一):复杂度分析——从算法效率到时间与空间复杂度
c语言·开发语言·数据结构·笔记·算法·飞书