CAN笔记(8) 优先级
1. 仲裁
-  在总线空闲态,最先开始发送消息的单元获得发送权(先到先得) 
-  多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁 
 连续输出显性电平 0 最多(ID小)的单元可继续发送
仲裁的过程:
 
2. 数据帧和遥控帧的优先级
具有相同 ID 的 数据帧 和 遥控帧 在总线上竞争时
 仲裁段的最后一位 远程发送请求位RTR 为显性位的数据帧具有优先权,可继续发送
数据帧和遥控帧的仲裁过程:
 
3. 标准格式和扩展格式的优先级
标准格式 ID的数据帧 与 具有相同 ID 的 遥控帧 或者 扩展格式的数据帧 在总线上竞争时
 标准遥控帧的 RTR 位为隐性位,扩展遥控帧的 SRR 位为隐性位,扩展数据帧的 SRR 位为隐性位
 标准数据帧的 RTR 位为显性位的具有优先权,可继续发送
标准格式和扩展格式的仲裁过程:
 
4. 优先级总结
从上可得到:
-  在总线空闲态,最先开始发送消息的单元获得发送权(先到先得) 
-  多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁 
-  在具有相同 ID ,数据帧 > 遥控帧,标准帧 > 扩展帧 
那么,标准遥控帧 和 扩展数据帧 之间的优先级呢?
标准遥控帧的 RTR 位虽然为隐性 1 ,但下一位控制段的 IDE 恒为显性 0
 而此时的扩展数据帧 SRR 和下一位 IDE 皆恒为隐性 1
通过 RTR、SRR、IDE 的配合就可以知道在具有相同 ID 的情况下,优先级:
 标准数据帧 > 标准遥控帧 > 扩展数据帧 > 扩展遥控帧
还有一种情况,基础ID相同,都是扩展帧,且扩展ID不同
 那么此时就先比较扩展ID,ID小的优先
参考:
 《CAN入门书》
相关推荐:
 CAN笔记(7) CAN协议(二)
 CAN笔记(6) CAN协议(一)
 CAN笔记(5) 协议标准规格
 CAN笔记(4) 协议基本概念
 CAN笔记(3) 错误状态
谢谢!
转载:https://blog.csdn.net/qq_32618327/article/details/100524152
