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