详解CAN总线:CAN总线通信优先级机制

简介: 在详解CAN总线:CAN总线报文格式—数据帧文章中,讲解到仲裁段。仲裁段用于写明需要发送到目的CAN节点的地址、确定发送的帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准帧还是扩展帧。本篇文章将讲解仲裁段的另一个重要功能:通信优先级。

在详解CAN总线:CAN总线报文格式—数据帧文章中,讲解到仲裁段。仲裁段用于写明需要发送到目的CAN节点的地址、确定发送的帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准帧还是扩展帧。


本篇文章将讲解仲裁段的另一个重要功能:通信优先级。


在CAN总线空闲态,最先开始发送消息的单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁,连续输出显性电平最多的单元可继续发送。所以,帧ID值越小,优先级越高。


仲裁的过程如下图所示:


b1854ffb9cfa4904a587cefaeca3a728.png

8365af23f1d84d0b9e04e7438bf19ed4.png


1、数据帧和遥控帧的优先级

具有相同 ID 的数据帧和遥控帧在总线上竞争时,数据帧优先级高,因为数据帧仲裁段的最后一位(RTR)为显性位具有优先权,可继续发送。


数据帧和遥控帧的仲裁过程如下图所示:

5bc3dae127884715b63fe72430a6d1d2.png


2、标准格式和扩展格式的优先级

标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位优先级更高,优先发送。


标准格式和扩展格式的仲裁过程如下图所示:

9689920f0fcd4bd482f56dd4f5a19ab6.png


相关文章
交叉编译安装tslib
交叉编译安装tslib
308 0
|
监控 安全 数据安全/隐私保护
云通信短信服务安全事项
云通信短信服务安全事项
|
IDE 开发工具
【CAN总线】手把手教你学习CAN总线(一)
【CAN总线】手把手教你学习CAN总线(一)
|
架构师 中间件 API
微服务和 SOA 的 6 大核心区别,你都知道吗?
本文详解SOA与微服务的六大区别,帮助更好地理解和应用这两种架构,建议收藏。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
微服务和 SOA 的 6 大核心区别,你都知道吗?
|
XML 安全 前端开发
必知的技术知识:jinjia2基本用法
必知的技术知识:jinjia2基本用法
536 1
基于PSpice的BJT放大电路的仿真
下面是基于PSpice的BJT放大电路的仿真步骤: 1. 打开PSpice软件,创建新的仿真文件。 2. 选择“Place Part”工具,在库中选择BJT晶体管,将其放置在仿真电路中。 3. 选择“Place Part”工具,在库中选择电源,将其放置在仿真电路中。 4. 选择“Place Part”工具,在库中选择电阻,将其放置在仿真电路中。 5. 连接电源和地线。 6. 连接电阻和BJT晶体管,形成基本的放大电路。 7. 设置仿真参数,如电源电压、电阻值等。 8. 运行仿真,观察输出波形和电路性能参数。 9. 根据仿真结果进行电路优化和调整,如改变电阻值、改变电源电压等。 10. 保存仿真
549 0
|
安全 网络安全 网络虚拟化
路由器与交换机:Access/Trunk,Wan/Lan
路由器与交换机:Access/Trunk,Wan/Lan
1613 0
|
存储 程序员 芯片
虚拟地址和物理地址之间的区别
【4月更文挑战第12天】
1679 2
虚拟地址和物理地址之间的区别
|
存储 算法 C语言
快速查找C语言数组中的元素
快速查找C语言数组中的元素