EDA365电子论坛网
标题: CAN FD协议及其与CAN2.0的异同- [打印本页]
作者: infinigo 时间: 2022-11-21 16:50
标题: CAN FD协议及其与CAN2.0的异同-
本帖最后由 Heaven_1 于 2022-11-23 14:35 编辑
# r) T3 X; X. ^* J: L. Q8 Z) P; p+ e) u, @, \: M' g1 ?+ P
1. CANFD的来历
我们知道了, CAN2.0数据段只有8byte,最高速率为 1Mbit/s,通常使用的是 500k,随着功能的逐渐增多,各 ECU 之间的信息交互也越多,导致总线负载持续走高;CAN 报文中只有约 40~50%的带宽用于实际数据传输;响应机制受车内布线的物理特性限制,例如 CAN 控制器中的 ACK 生成延迟;收发器传播延迟;导线延迟等,然而随着汽车功能越来越多,CAN总线的局限性也逐渐暴露:
为了解决上诉CAN总线的局限性,对其进行升级时必不可少的,从而有了CAN FD,其全称为CAN with Flexible Data rate。2011年,开始CAN FD协议的开发,2015年ISO11898-1进行了修订,将CAN FD加入其中。
CAN与CAN-FD性能对比:
6 g5 q5 O% c9 j+ Z3 S
: a) g( W' H9 L* p. ]: Y2 t" H
2. CANFD与CAN的协议异同
在完全理解了CAN协议后,我们只需要对比CANFD与其的不同就可以比较简单的熟悉CANFD协议,那相对于CAN,CAN FD有什么不同呢?
7 Q H8 p5 w* s" d% l, C# {0 Q) Q
J' c1 m( @& K$ P! g6 U(1)传输速率不同。
CAN FD的速率可变,从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,最高速率可达到8Mbps(下图的蓝色部分)。其他部分与CAN相同。
(2)数据长度不同。
CAN FD支持的最大数据长度为64byte。
(3)帧格式不同。
CanFD新增了FDF、BRS、ESI位:
FDF:表示 CAN 报文还是 CAN-FD 报文;BRS:表示位速率转换,该位隐性时,速率可变(即 BSR 到 CRC 使用转换速率传输),该位为显性时,以正常的 CAN-FD 总线速率传输(恒定速率);ESI:表示发送节点状态。
(4)ID长度不同。CAN FD标准帧ID长度可扩展至12bit,CAN的标准帧ID为11bit。
3. CANFD帧结构解析
CAN FD节点可以正常收发CAN报文,但CAN节点不能正确收发CAN FD报文,因为其帧格式不一致。
CAN FD的帧结构是什么呢?
与CAN一样,CAN FD一共具有,帧起始SOF,仲裁段,控制段,数据域,CRC域,ACK域,帧结束,共七个部分组成。

% f- R$ N0 _3 R6 @2 u; k5 Y; t; H" P& ?+ L
3.1 帧起始
CAN与CANFD使用相同的SOF标志位来标志报文的起始。帧起始由1个显性位构成,标志着报文的开始,并在总线上起着同步作用。
% |1 M2 O9 ?5 `* e: D" p+ B
1 P6 K4 y7 v, I2 b8 q( Y# w
3.2.仲裁域
与CAN不同,CAN FD取消了对远程帧的支持,用RRS位替换了RTR位,为常显性。IDE用于区分标准帧和扩展帧。

' X& u2 H& x9 u$ W
4 e4 G0 o- \) E: y' y2 O, v3.3 控制域
CANFD与CAN有着相同的IDE,res,DLC位。同时增加了FDF、BRS、ESI三个bit位。FDF为隐性时,表示为CAN FD报文;
BRS为为速率转换开发,当其隐性时,速率可变,当其显性时,以正常的CAN-FD总线速率传输(恒定速率);
ESI用于表示错误状态,主动错误发送显性位,被动错误发送隐性位。

$ w8 [$ \: a, b) F+ \( s6 i- ?9 g- a
3.4 数据域
CAN FD兼容CAN的数据格式,同时最大还能支持12, 16, 20, 24, 32, 48, 64byte。
$ L; k B9 I7 n. C
* c. X% ]1 b0 ]
3.5 CRC
CAN FD对CRC算法进行了改进,CRC对填充位也加入了计算。在校验和部分为避免有连续位超过6个,就确定在第一位以及以后每4位添加一个填充位加以分割,这个填充位的值是上一位的反码,作为格式检查,如果填充位不是上一位的反码,就作出错处理。CAN FD的CRC场扩展到了21位。
; h" t( d5 u" i3 w3 h- M! S- \! A
7 o4 T5 g7 B+ |# B: X5 v6 }. d4 z
3.6 ACK
ACK紧跟着CRC结束标识位。不同的是,CAN FD支持2bits的ACK的识别。
1 p1 c$ M) a% N5 x) ~& O9 S
. f- V3 @* T0 |/ U$ w, N' |
3.7 帧结尾
与CAN一样,CAN FD的帧结尾也为连续7位的隐性位。
' N9 ~; i8 w, _1 }" z
作者: hdubsgyd 时间: 2022-11-21 17:32
速率会更加快吧。1 I/ [" ?/ s$ |& v2 d! M
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) |
Powered by Discuz! X3.2 |