详解 CAN 总线:CAN 总线通信优先级机制
对汽车电子技术、CAN 通信技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~
在详解CAN总线:CAN总线报文格式—数据帧文章中,讲解到仲裁段。仲裁段用于写明需要发送到目的 CAN 节点的地址、确定发送的帧类型(当前发送的是数据帧还是遥控帧),并确定发送的帧格式是标准帧还是扩展帧。
本篇文章将讲解仲裁段的另一个重要功能:通信优先级。
在 CAN 总线空闲态,最先开始发送消息的单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁,连续输出显性电平最多的单元可继续发送。所以,帧 ID 值越小,优先级越高。
仲裁的过程如下图所示:
1、数据帧和遥控帧的优先级
具有相同 ID 的数据帧和遥控帧在总线上竞争时,数据帧优先级高,因为数据帧仲裁段的最后一位(RTR)为显性位具有优先权,可继续发送。
数据帧和遥控帧的仲裁过程如下图所示:
2、标准格式和扩展格式的优先级
标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位优先级更高,优先发送。
标准格式和扩展格式的仲裁过程如下图所示:
版权声明: 本文为 InfoQ 作者【不脱发的程序猿】的原创文章。
原文链接:【http://xie.infoq.cn/article/4e43e2b10e7ca46e8d225cf20】。文章转载请联系作者。
评论