电路笔记(通信):CAN 仲裁机制(Arbitration Mechanism) 位级监视&线与特性&先占先得&非破坏性仲裁

CAN总线机制

位级监视(bit monitoring)

位级监视(bit monitoring) :在 CAN 总线通信 中,在每一位发送时进行实时总线监控

  • CAN 总线采用 "广播+总线监控" 的方式传输数据。在发送每一位的同时,发送器会实时监控总线上的电平,以确保:

    • 自己发送的位和总线上的实际电平一致;
    • 在多主节点争用总线(仲裁)时,能根据优先级判断输赢。 如果一个节点发送隐性位,但看到总线是显性位,说明有更高优先级的节点正在发送 ------ 此时必须停止发送(仲裁失败)

线与特性(Wired-AND)

仲裁机制

一、先占先得规则(Bus Access Rule)

  1. 总线使用原则:

    • 若当前有设备正在发送 数据帧遥控帧 ,则其他设备 不能同时发送 数据帧或遥控帧。
    • 其他设备可以发送 错误帧过载帧 来中断当前通信(具有破坏性)。
  2. 总线空闲判断标准:

    • 当检测到 连续11个隐性电平(逻辑1) 时,认为总线处于空闲状态。
    • 只有在总线空闲时,设备才可以开始发送数据帧或遥控帧。
  3. 总线活跃状态下的行为:

    • 一旦有设备开始发送数据帧/遥控帧,总线进入活跃状态。
    • 活跃状态下不会出现连续11个隐性电平,因此其他设备不会尝试发送。
    • 若其他设备在此期间有发送需求,则需等待总线变为空闲后才能尝试发送。
  4. 类比操作系统调度算法:

    • 此机制类似于操作系统的 先来先服务(FCFS)调度算法,即谁先请求总线使用权,谁就优先获得发送权。

二、非破坏性仲裁机制(Non-destructive Arbitration)

当多个设备同时发起发送请求时,CAN总线通过以下机制进行仲裁:

  1. 仲裁依据:

    • 根据 报文标识符(ID) 进行仲裁。
    • ID号越小,优先级越高。
    • 高优先级的设备赢得仲裁,继续发送;低优先级的设备停止发送,转为接收模式。
  2. 仲裁过程特点:

    • 非破坏性:仲裁过程中不会损坏高优先级设备的数据帧。
    • 所有参与仲裁的设备在发送仲裁段的同时监听总线电平。瑞萨电子的《CAN入门书》中给出了非破坏性仲裁的工作原理图:
相关推荐
左左右右左右摇晃2 分钟前
Java笔记 —— 值传递与“引用传递”
java·开发语言·笔记
ljt27249606616 分钟前
Flutter笔记--事件处理
笔记·flutter
飞鸟真人22 分钟前
使用netty4写一个UDP的echo服务(笔记)
笔记
sprite_雪碧37 分钟前
笔记:考研机试 —— 进制转换类问题
笔记·考研
ysa05103040 分钟前
运用map优化多次查询【Kadomatsu 子序列】
数据结构·c++·笔记·算法
苦瓜小生1 小时前
【黑马点评学习笔记 | 实战篇 】| 10-用户签到+UV统计
笔记·后端·学习
24白菜头1 小时前
第十五届蓝桥杯C&C++大学B组
数据结构·c++·笔记·学习·算法·leetcode·蓝桥杯
qcwl661 小时前
深入理解Linux进程与内存 学习笔记#3
linux·笔记·学习
-Springer-1 小时前
STM32 学习 —— 个人学习笔记10-1(I2C 通信协议及 MPU6050 简介 & 软件 I2C 读写 MPU6050)
笔记·stm32·学习
小陈phd1 小时前
多模态大模型学习笔记(二十二)——大模型微调全解:从全量调参到LoRA的参数高效训练实战
笔记·学习