CAN笔记(8) 优先级

  • 1. 仲裁
  • 2. 数据帧和遥控帧的优先级
  • 3. 标准格式和扩展格式的优先级
  • 4. 优先级总结

1. 仲裁

  1. 在总线空闲态,最先开始发送消息的单元获得发送权(先到先得)

  2. 多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁
    连续输出显性电平 0 最多(ID小)的单元可继续发送

仲裁的过程:


2. 数据帧和遥控帧的优先级

具有相同 ID 的 数据帧 和 遥控帧 在总线上竞争时
仲裁段的最后一位 远程发送请求位RTR 为显性位的数据帧具有优先权,可继续发送

数据帧和遥控帧的仲裁过程:


3. 标准格式和扩展格式的优先级

标准格式 ID的数据帧 与 具有相同 ID 的 遥控帧 或者 扩展格式的数据帧 在总线上竞争时
标准遥控帧的 RTR 位为隐性位,扩展遥控帧的 SRR 位为隐性位,扩展数据帧的 SRR 位为隐性位
标准数据帧的 RTR 位为显性位的具有优先权,可继续发送

标准格式和扩展格式的仲裁过程:


4. 优先级总结

从上可得到:

  1. 在总线空闲态,最先开始发送消息的单元获得发送权(先到先得)

  2. 多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁

  3. 在具有相同 ID ,数据帧 > 遥控帧,标准帧 > 扩展帧

那么,标准遥控帧 和 扩展数据帧 之间的优先级呢?

标准遥控帧的 RTR 位虽然为隐性 1 ,但下一位控制段的 IDE 恒为显性 0
而此时的扩展数据帧 SRR 和下一位 IDE 皆恒为隐性 1

通过 RTRSRRIDE 的配合就可以知道在具有相同 ID 的情况下,优先级:
标准数据帧 > 标准遥控帧 > 扩展数据帧 > 扩展遥控帧

还有一种情况,基础ID相同,都是扩展帧,且扩展ID不同
那么此时就先比较扩展ID,ID小的优先


参考:
《CAN入门书》


相关推荐:
CAN笔记(7) CAN协议(二)
CAN笔记(6) CAN协议(一)
CAN笔记(5) 协议标准规格
CAN笔记(4) 协议基本概念
CAN笔记(3) 错误状态


谢谢!

CAN笔记(8) 优先级相关推荐

  1. python 学习笔记 运算符优先级(8)

    运算符的优先级如下: 运算符 描述 lambda Lambda表达式 or 布尔"或" and 布尔"与" not x 布尔"非" in,n ...

  2. QNX手册学习笔记------同优先级调度算法

    QNX作为一个微内核的实时操作系统,其进程没有优先级的概念,只有线程才有优先级的概念.QNX的优先级分为255个等级.每个等级可以有多个同优先级的线程准备执行,不同于UC/OS的每个优先级对应一个任务 ...

  3. 《恋上数据结构第1季》二叉堆实现优先级队列

    优先级队列(Priority Queue) 优先级队列简介 优先队列的底层实现 二叉堆实现优先级队列源码 测试代码 数据结构与算法笔记目录:<恋上数据结构> 笔记目录 想加深 Java 基 ...

  4. c语言怎么设置cpu优先级,线程优先级,设置,setPriority()方法

    package seday08.thread; /** * @author xingsir * 线程优先级 * 线程启动后纳入到线程调度,线程时刻处于被动获取CPU时间片而无法主动获取.我们可以通过调 ...

  5. PHP字符串运算结果,php字符运算

    二.PHP的运算符 PHP中有丰富的运算符集,它们中大部分直接来自于C语言.按照不同功能区分,运算符可以分为:算术运算符.字符串运算符.赋值运算符.位运算符.条件运算符,以及逻辑运算符等.当各种运算符 ...

  6. php数字运算符号,php运算符号

    php新手入门之PHP常用特殊运算符号 php新手入门之PHP常用特殊运算符号,尖锋网站长发布分享. 尖锋网常发布一些技术分享资料和文章.欢迎大家提供高质量的旅游生活养生问答. 注解符号: // 单行 ...

  7. php中或者符号,php中的或运算符号

    <从零开始学Swift>学习笔记(Day 10)--运算符是" +.-.*./ "吗? 原创文章,欢迎转载.转载请注明:关东升的博客 运算符是用于执行程序代码运算,会针 ...

  8. php slug,php 中的var

    PHP中global与$GLOBALS['']的区别 根据官方的解释是$GLOBALS['var'] 是外部的全局变量$var本身.global $var 是外部$var的同名引用或者指针.(错误:是 ...

  9. 2021-04-05 web前端CSS之权重,盒子边框内外边距

    视频学习:黑马程序员pink老师 笔记:层叠性 相同选择器给设置相同的样式--如果样式冲突,就近原则 样式不冲突,不会层叠 <!DOCTYPE html> <html lang=&q ...

  10. FreeRtos学习笔记(11)查找就绪任务中优先级最高任务原理刨析

    FreeRtos学习笔记(11)查找就绪任务中优先级最高任务原理刨析 怎么查找就绪任务中优先级最高的? tasks.c中声明了一个全局变量 uxTopReadyPriority,任务从其他状态进入就绪 ...

最新文章

  1. catia 安装打开闪退_win10catia r20应用程序无法正常启动的解决办法
  2. 世界上最遥远的距离是计算机不懂人类的时间
  3. DCASE 2020权威声学比赛:腾讯多媒体实验室斩获双项指标国内第一
  4. jni invalid jobject
  5. linux时间同步_如何在Ubuntu上使用FreeFileSync同步文件
  6. MIP 官方发布 v1稳定版本
  7. Dockerfile 中 配置安装 php 扩展
  8. 当TIME_WAIT状态的TCP正常挥手,收到SYN后…
  9. linux下ip层的一些概念
  10. 附件计算器中的MC、MR、MS、M+作用
  11. CSS之clearfix清除浮动
  12. 华为服务器SNMP协议怎么修改,华为迈普交换机、瑞斯康达SNMP协议配置方法
  13. MATLAB使用cic滤波器,基于Matlab的CIC滤波器设计
  14. 单片机实验(十一)单片机独立按键控制LED
  15. 小学校本课程计算机前言,《创意手工》三河小学校本课程——序言
  16. vue项目中样式重置 自动注入less
  17. sklearn+机器学习
  18. 准备好了吗?2021年的7大科技趋势
  19. 比越南妹划算 1元团购美女
  20. 人脸识别接口_DS-K5603-Z 海康威视人员通道人脸识别组件 1万人脸库 10.1英寸LCD触摸显示屏_DS-K5603-Z_DS-K5603-Z...

热门文章

  1. 艾伟:C# Design Patterns (1) - Factory Method
  2. 【kubernetes系列】master节点部署Pod处于Pending状态
  3. python实现字母的加密和解密 字典_python实现AES加密与解密
  4. UML类图(上):类、继承和实现
  5. Amoeba实现读写分离
  6. 关于安卓listview获得item中的控件问题
  7. ruby编程API阅读之BasicObject阅读
  8. 《Windows核心编程》学习笔记(7)– 详解线程
  9. 你不了解PHP的10件事情!
  10. 从一个表查询数据插入另一个表