CAN笔记(8) 优先级

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_32618327/article/details/100524152


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) 错误状态


谢谢!

猜你喜欢

转载自blog.csdn.net/qq_32618327/article/details/100524152