关于CAN总线仲裁场的一些问题

1:帧类型的区分

1,1标准对于帧类型的划分

ISO11898-1中将数据链路层的帧(准确的来说是DDL中的MAC子层帧),分为两种大格式(传统Class帧 和CAN_FD帧),划分依据是,帧结构的不同。

而两个大类同时又可以根据帧结构的不同(主要判断是ID的位数不同)同时可以划分为两个小类

base标准类和Extend和拓展类

(*1)CBFF(class base frame format)传统基础帧格式(根据功能(即相关标志位),又可分为远程请求帧,和数据帧)

(*2)CEFF(Class extend frame format)传统拓展帧格式根据功能(即相关标志位),又可分为远程请求帧,和数据帧)

(*3)FBFF(FD base frame format)FD帧的基础格式(FD格式没有远程帧)

(*4)FEFF(FD extend frame format)FD帧的拓展格式(FD格式没有远程帧)

1.2四种帧类型的仲裁场范围

(1.2.1)CBFF(class base frame format):

仲裁场范围 11bit 的ID+RTR。

这表明了:

(*1.1)CBFF类型的帧,当ID相同时,数据帧的优先级(因为RTR=0,是显性)>远程帧(因为RTR=1,是隐性)。

(*1.2)当CBFF远程帧ID,优先级>CBFF数据帧时,远程帧的优先级还是高

(*1.3)CBFF种的IDE是始终要保持显现=0,不参与仲裁

(1.2.2)CEFF(Class extend frame format):

仲裁场范围=前 11bit 的ID+SRR+IDE+扩展的11bit标志符+RTR

*1)ID前相同,CEFF数据帧优先级>CEFF远程请求帧。

*2)所有CEFF类型帧中SRR,IDE均需要=1,参与仲裁但是意义不大

(1.2.3)FBFF(FD base frame format):

仲裁段:11bit  ID+RRS,因为CANfd,不在支持远程帧,所以RRS一直会维持在显性, 

(1.2.4)FEFF(FD extend frame format)

仲裁段:11bit  ID+SRR(始终保持显性)+IDE(始终保持隐性)+18bit ID+RRS(由于没有远程帧,此位也保持显现)

1*)至于为什么 SRR也要保留一个位给它,且始终维持显现状态,这是为了兼容其他类型的帧,后面会详细简绍

段落小结

总结下来,就是传统帧,仲裁段总是从11bit ID开始,到RTR,中间不间断

                CAN_FD帧,仲裁段总是从11bit ID开始,到RRS,中间不间断

2:不同帧类型之间的仲裁优先级关系

2.1 CBFF与CEFF优先级的比较

 

前11bit ID相同的,传统标准数据帧与传统拓展数据帧+传统扩展远程帧,仲裁先开始11bit ID比较,相同,则继续比较 RTR位与SRR位,传统数据帧RTR位为显现0,传统拓展数据帧SRR始终=1。仲裁结束,相同前11 bit 的ID情况下,传统数据帧的优先级更高。

注意,上述情况下,是不需要仲裁到IDE位的。在IDE的前一位,就分出优先级了。

传统标准远程帧,与传统拓展数据帧+传统扩展远程帧的优先级,此时传统标准远程帧的RTR=1,SRR=1,于是比较下一位,传统标准远程帧的IDE=0,传统拓展数据帧+传统扩展远程帧的IDE=1。

此时,传统标准远程帧的优先级更高

段落小结:

总结如下;前11bitID相同情况下。

传统标准数据帧 > 传统标准远程帧 > 传统拓展数据帧 > 传统扩展远程帧

2.2 FBFF与FEFF之间的优先级关系

 当前11bit 的ID相同时,就会比较RRS和SRR,此两个标志位,因为CAN_FD中没有远程帧,FBFF,RRS=0, SRR=1

段落小结:

FBFF数据帧> >FEFF数据帧

引言:

关于标准帧和CANFD帧的优先级关系(前提是系统兼容传统CAN和CANfd,主要看收发器如TJA1445就兼容CAN和CAN_FD).

那么,如何判断相同ID(至少是前11bit ID相同情况下),传统CAN和CANFD的优先级关系?

因为上文我们已经理清楚了,传统CAN(四种类型,传统标准数据帧 > 传统标准远程帧 > 传统拓展数据帧 > 传统扩展远程帧)和CAN_FD(FBFF数据帧> >FEFF数据帧)。故我们只要比较传统帧中的最低优先级,和CAN_FD的最高优先级

2.3 传统扩展远程帧与FBFF数据帧的优先级

因为SRR=1,RRS=0,所以,当前11bit ID相同时,CAN_FD标准帧优先级更高。

那接下来,比较FEFF与,传统扩展远程帧优先级关系

 

可以看到,当ID相同时,一直仲裁到仲裁到CEFF最后一位,FEFF中的RRS=0,传统扩展远程帧 RTR为=1,故FEFF优先>传统扩展远程帧

再比较FBFF与传统拓展数据帧之间的优先级

 

当ID相同时,RRS>SRR,故FBFF优先级>传统拓展数据帧

FEFF与传统拓展数据帧优先级

 

 此时又有一个新的概念,仲裁段的概念,本身是为了兼容传统CAN和CAN_FD对,CAN_FD的仲裁段做出了,适当延伸。图17中标注的不是很清楚,其实是拓展到res,位的。

于是当总线上FEFF与传统拓展数据帧参与仲裁,FDF位之前的位全部相同,此时CEFF帧仲裁段结束,进入控制段,CEFF以为自己已经赢得仲裁,按照格式继续发送数据。但是FEFF此时还没有结束仲裁,他继续参与仲裁,FDF=01(固定的),此时CEFF的FDF(也就是之前的很多老资料中提及的R1保留位)固定=0.

故得出结论:CEFF数据帧优先级>FEFF

本段小结:

 目前能确定的仲裁优先级:FBFF>CEFF数据帧>FEFF>CEFF远程帧.

2.4 FBFF与CBFF远程帧之间的优先级关系

当高bit  ID相同时  RRS=0,CBFF是远程帧时RTR=1,

结论FBFF优先级>CBFF远程帧>CEFF数据帧>FEFF>CEFF远程帧

2.5,最后一步王者的较量 FBFF与CBFF的优先级

可以看到FBFF仲裁到FDF位时,仲裁失败,退出总线竞争

总的结论:

CBFF数据帧>FBFF>CBFF远程帧>CEFF数据帧>FEFF>CEFF远程帧

  • 20
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值