CAN FD的波特率到底能跑多快?
众所周知,CAN FD是基于CAN 2.0的升级版协议,为了满足汽车电子日益增长的高带宽和高传输速率的要求,CAN FD主要升级了以下几个方面:
本文引用地址:http://www.amcfsurvey.com/article/201808/391080.htm一、更高的传输波特率
图 1 可变数据段波特率结构
CANFD速率包含两个段的速率,一个是仲裁段和ACK段,沿用CAN2.0的规范,最高速率为1Mbit/s,中间的数据段是可以加速的,标称可以达到5Mbit/s,甚至更高。
二、更高效的数据段
对于汽车电子来说,对车辆动力系统、地盘以及主被动系统来说,加长的数据段避免了数据非必要的拆分,大大提升了CAN帧的传输效率。
图 2 CAN FD高效的数据段
三、更可靠的CRC校验和额外的控制位
在传统的CAN 2.0中,由于填充规则会对CRC产生干扰,在CAN FD中升级了算法,将填充位加入多项式的运算,主要作为格式检查,考虑数据长度变化的区间很大,CRC也根据区间会生成两种校验算法,当帧长小于210位,使用CRC_17,当帧长小于1023位,使用CRC_21位算法。
图 3 可靠的CRC校验
另外在CAN FD中利用了部分保留标志位,新增三种控制位,包括EDL(是否是CANFD帧)、BRS(是否可变速率)以及ESI(错误状态),丰富帧内的有用信息。
图 4 新增控制位
接下来我们回到正题,升级后的CAN FD到底能跑多快呢?直接讲参数很肤浅的,我们要分析......那我们就用一个问题开始,大家都知道CAN 2.0最高速率可以到1M,但是为什么汽车电子高速CAN只跑到500K呢?
对于CAN总线的传输速率来讲,传输距离和传输速率是成反比的,一般来说传输距离(m)=(50000/波特率kbps)*0.8,如图 5所示。
图5 传输距离和传输速率的关系
那收发器和传输距离到底关系何在?刚才提到,收发器输出是电平值,电平在传输的过程中难免衰减,线缆本身的阻抗和容抗无法避免,其次首尾终端电阻也是必要的,主要有两个功能:
首尾120欧姆终端电阻,保证阻抗连续性(防止电信号反射);
放电作用;
针对终端电阻放电作用,我们下面从两个层面分析:
电平传输层面分析
图 6 CAN FD波形
我们先来看一个CANFD分解波形,其中是由显隐性电平构成的,其中上升沿是由CAN收发器芯片本身驱动的。当显性电平转变为隐形电平的时候,需要终端电阻放电,所以下降沿是我们的终端电阻放电的造成的。
图 7 负载电阻与差分幅值的关系
如果下降沿缓慢是什么原因导致?
检查收发器外围电路是否存在容性较大的器件(不影响电路正常工作的情况下拆除),重新测试波形是否正常;
检查线缆的参数,每米容抗是否在正常范围内,正常线缆电容在40-70pF/m,容抗太大,建议更换线缆;
增加终端电阻放电,建议采用专业设备测试网络阻抗容抗做正确匹配。
图8 CANscope总线阻抗容抗测试
四、总线网络数据能否正确传输层面
阻抗太大,电压幅值压降太大,传输距离大大降低。现象就是在手牵手的网络拓扑中,当然差分辅幅值最好不要低于1.3V,防止在强干扰的环境下,导致收发器无法识别或误识别总线信号。
容抗也是影响下降沿的重要因素,如果下降沿太缓慢会导致位宽拉长,导致收发器错误识别,导致0/1的翻转,CAN总线是错误重发的机制,会一直重发,直到这一帧被正确接收。
图 9 电容对下降沿的影响
同样的我们回到阻抗和容抗的匹配是如何影响CAN FD的传输速率的呢,接下来我们用实测证明:
图 10 稳定时间140ns
前面我也提到5M数据速率时,位时间是200ns,,实际传输过程中,一位时间包含了上升沿、下降沿以及数据稳定时间,如图 15所示,数据稳定时间按是140ns,那其中上升沿和下降沿占了60ns,理想情况下,上升沿和下降沿完全对称,其中上升沿时间是30ns,按照边沿极限值12%计算,实际算出来的位时间=30/(12/100)=250ns,那么相对应的传输波特率就=1/250ns=4M波特率,所以实际5M波特率也就是在测试使用,如果按照7%的边沿时间为安全值来计算,实际的位时间=30/(7/100)约等于42ns,相对应的传输波特率=1/42ns约等于2.3M,所以想要实际在工况下稳定可靠传输,数据端波特率在2M左右比较合理。
综上所述,影响CAN FD到底能传输多快影响的因素非常多,也是我们大多数工程师在实际CAN总线开发的过程中会忽略的问题,如果需要CAN总线的相应的产品解决方案,随时致电我们,期待与您的探讨和交流。
评论