0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN FD的波特率到底能跑多快?

AGk5_ZLG_zhiyua 来源:未知 作者:王淳 2018-09-17 10:01 次阅读

本文导读

众所周知CAN FD是CAN 2.0的升级协议,也是汽车电子行业未来发展的主要趋势,那CAN FD到底能跑多快呢?

众所周知,CAN FD是基于CAN 2.0的升级版协议,为了满足汽车电子日益增长的高带宽和高传输速率的要求,CAN FD主要升级了以下几个方面:

1、更高的传输波特率

图1 可变数据段波特率结构

CAN FD速率包含两个段的速率,其中仲裁段和ACK段沿用CAN2.0的规范,最高速率为1Mbit/s,中间的数据段是可以加速的,标称可以达到5Mbit/s,甚至更高。

2、更高效的数据段

对于汽车电子来说,对车辆动力系统、底盘以及主被动系统来说,加长的数据段避免了数据非必要的拆分,大大提升了CAN帧的传输效率。

图2 CAN FD高效的数据段

3、更可靠的CRC校验和额外的控制位

在传统的CAN 2.0中,由于填充规则会对CRC产生干扰,在CAN FD中升级了算法,将填充位加入多项式的运算,主要作为格式检查,考虑数据长度变化的区间很大,CRC也根据区间会生成两种校验算法,当帧长小于210位,使用CRC_17,当帧长小于1023位,使用CRC_21位算法。

图3 可靠的CRC校验

另外在CAN FD中利用了部分保留标志位,新增三种控制位,包括EDL(是否是CAN FD帧)、BRS(是否可变速率)以及ESI(错误状态),丰富帧内的有用信息

图4 新增控制位

接下来我们回到正题,升级后的CAN FD到底能跑多快呢?那就用一个问题开始,大家都知道CAN 2.0最高速率可以到1M,但是为什么汽车电子高速CAN只跑到500K呢?

对于CAN总线的传输速率来讲,传输距离和传输速率是成反比的,一般来说传输距离(m)=(50000/波特率kbps)*0.8,如图5所示。

图5 传输距离和传输速率的关系

实际在总线传输的过程中,只有在实际应用环境下稳定传输才是重中之重,所以1M波特率在汽车电子会很难,接下来就如何实现高速率的稳定传输因素做以下浅析。

首先是CAN收发器,收发器的功能是将逻辑值转换为电平值,但电平在传输的过程中难免衰减,传输线缆本身的阻抗和容抗无法避免,尤其是首位终端电阻(基于手牵手拓扑),主要有两个功能:

  • 首尾120欧姆终端电阻,保证阻抗连续性(防止电信号反射);

  • 放电作用。

针对终端电阻放电作用,我们下面从两个层面分析:

一、电平传输层面分析

图6 CAN FD波形

我们先来看一个CAN FD分解波形,其中是由显隐性电平构成的,其中上升沿是由CAN收发器芯片本身驱动的。当显性电平转变为隐形电平的时候,需要终端电阻放电,所以下降沿是我们的终端电阻放电的造成的。

图7 负载电阻与差分幅值的关系

如果下降沿缓慢是什么原因导致?

1、检查收发器外围电路是否存在容性较大的器件(不影响电路正常工作的情况下拆除),重新测试波形是否正常;

2、检查线缆的参数,每米容抗是否在正常范围内,正常线缆电容在40-70pF/m,容抗太大,建议更换线缆;

3、增加终端电阻放电,建议采用专业设备测试网络阻抗容抗做正确匹配。

图8 CANscope总线阻抗容抗测试

二、总线网络数据能否正确传输层面

阻抗太大,电压幅值压降太大,传输距离大大降低。现象就是在手牵手的网络拓扑中,当然差分幅值最好不要低于1.3V,防止在强干扰的环境下,导致收发器无法识别或误识别总线信号

容抗也是影响下降沿的重要因素,如果下降沿太缓慢会导致位宽拉长,导致收发器错误识别,导致0/1的翻转,CAN总线是错误重发的机制,会一直重发,直到这一帧被正确接收。

图9 电容对下降沿的影响

同样的我们回到阻抗和容抗的匹配是如何影响CAN FD的传输速率的呢,接下来我们用实测证明:

图10 稳定时间140ns

前面我也提到5M数据速率时,位时间是200ns,实际传输过程中,一位时间包含了上升沿、下降沿以及数据稳定时间,如图10所示,数据稳定时间按是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总线的相应产品解决方案,欢迎添加微信号:zlgmcu-888,期待与您的探讨和交流。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 阻抗
    +关注

    关注

    17

    文章

    893

    浏览量

    45358
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2464

    浏览量

    459139
  • crc
    crc
    +关注

    关注

    0

    文章

    191

    浏览量

    29186

原文标题:CAN FD的波特率到底能跑多快?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    can波特率计算

    can波特率其实并不难计算,这里给出了can波特率的简单计算,并给出了实例STM32的CAN波特率
    发表于 12-14 17:02 1.1w次阅读
    <b class='flag-5'>can</b><b class='flag-5'>波特率</b>计算

    CAN FD波特率到底能跑多快

    众所周知,CAN FD是基于CAN 2.0的升级版协议,为了满足汽车电子日益增长的高带宽和高传输速率的要求,CAN FD主要升级了以下几个方
    的头像 发表于 08-22 17:55 1.3w次阅读

    使用cubemx设置CAN波特率与实际测得的波特率不一致的原因?

    使用cubemx设置CAN波特率与实际测得的波特率不一致。
    发表于 03-26 07:06

    #硬声创作季 #CAN #PLC 总线设计的波特率应该如何选择?

    CAN波特率波特率发生器
    学习电子知识
    发布于 :2022年11月02日 20:00:29

    CAN怎么设置CAN波特率

    1. 波特率计算原理说明:本文档主要解决基于SJA1000T 独立CAN控制器的接口卡编程时波特率设置问题.1.1SJA1000T CAN控制器的
    发表于 11-23 14:37

    实现CAN的高速超远程传输--CAN波特率转换器BTL-CAN

    CAN总线可以在5Kbps波特率时传输最远10Km、在10Kbps波特率时传输最远5Km、在100Kbps波特率时传输最远500m,增加波特率
    发表于 03-24 14:28

    请问STM32的CAN波特率怎么计算?

    请教STM32的CAN波特率如何计算?按照手册上是Tbs1 = Tqx(TS1[3:0] + 1)Tbs1 = Tqx(TS1[2:0] + 1) Tq= (BRP[9:0] + 1)xTpclk
    发表于 05-17 02:44

    非标准CAN波特率的计算

    影响CAN总线稳定的因素有很多,其中波特率是一项非常重要的指标,很多工程师在选择波特率时非常头疼。今天我们就来说说该如何快速解决特殊波特率计算的问题。
    发表于 07-29 08:00

    CAN FD波特率到底能跑多快看了就知道

    众所周知,CAN FD是基于CAN 2.0的升级版协议,为了满足汽车电子日益增长的高带宽和高传输速率的要求,CAN FD主要升级了以下几个方
    发表于 08-04 07:45

    STM32的CAN波特率计算公式

    %波特率计算公式:波特率 = 频率/(CAN_BS1+CAN_BS2+1)/CAN_Prescaler采样点计算方式:smp = (1+CAN
    发表于 08-20 07:51

    CAN波特率的计算

    车辆使用的250K 的波特率,使用STM32制作的控制板中的CAN波特率的计算波特率=APB1Clock/(1+CAN_BS1+CAN_BS
    发表于 08-20 08:11

    STM32的CAN波特率计算 精选资料分享

    波特率=APB1Clock/(1+CAN_BS1+CAN_BS2)/CAN_Prescaler(PS:CAN_SJW表示重新同步跳跃宽度,不参与波特
    发表于 08-23 06:10

    S32K148如何更改CAN FD波特率

    我将 S32_SDK_S32K1xx_RTM_4.0.3 中的 flexcan_encrypted_s32k148用于 S32K148EVB,我需要以 1000 kbps 的波特率发送 CAN
    发表于 03-17 08:45

    CAN通信波特率设置

    CAN通信波特率设置 LM3S2000、LM3S5000、LM3S8000系列CPU内部有1~3路CAN控制器,通过对CAN位定时寄存器CANBIT及
    发表于 04-06 18:00 24次下载

    CAN通信波特率不对会怎样?

    CAN通信波特率不对会怎样?  CAN通信是一种流行的通信协议,它广泛应用于许多现代车辆的系统中。CAN通信协议通过处理器之间的数据交换,实现车辆的控制。
    的头像 发表于 10-11 17:19 1251次阅读