CAN总线如何保证优先级低的数据有机会发送出去?

前言:这段时间因为项目需要接触了CAN通讯相关的知识点,和朋友讨论过程中对方问到怎么判断ID的优先级,印象中CAN通讯是有个通讯优先级仲裁机制的,但是一时间答不上来,查阅网友相关文章做了个总结,欢迎支持不对的地方。。。

进入内容前须知:低电平(0)为显性电平,高电平(1)为隐性电平

(1)通讯优先级/总线仲裁

我们在学习CAN通讯的时候,CAN通讯报文格式中有包含"仲裁段"这一说法,通讯优先级(或总线仲裁)依赖于该段各个位的电平组成(即通过比较电位获取优先级)

在CAN总线空闲态,最先开始发送消息的单元获得发送权。多个单元同时开始发送时,各发送单元从仲裁段的第一位开始进行仲裁,连续输出显性电平(0)最多的单元可继续发送。所以,帧ID值越小,优先级越高。

仲裁的过程如下图所示:

1、数据帧和遥控帧的优先级

具有相同 ID 的数据帧和遥控帧在总线上竞争时,数据帧优先级高,因为数据帧仲裁段的最后一位(RTR)为显性位具有优先权,可继续发送。

数据帧和遥控帧的仲裁过程如下图所示:

2、标准格式和扩展格式的优先级

标准格式 ID 与具有相同 ID 的遥控帧或者扩展格式的数据帧在总线上竞争时,标准格式的 RTR 位为显性位优先级更高,优先发送。

标准格式和扩展格式的仲裁过程如下图所示:

3.总结

优先级排序如下:

相同ID: 数据帧>遥控帧,标准格式>扩展格式

(本文仅作为个人笔记分享,无抄袭意图,可参考以下原文)





CAN通讯怎么决定ID的优先级 - 搜索结果 - 知乎
CAN总线如何保证优先级低的数据有机会发送出去? - 知乎 (zhihu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值