历史上的今天
返回首页

历史上的今天

今天是:2024年08月22日(星期四)

正在发生

2018年08月22日 | CAN FD的全面升级

2018-08-22

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

 

一、更高的传输波特率

 

image.png?imageView2/2/w/550

 

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

 

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

 

二、更高效的数据段

 

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

 

image.png?imageView2/2/w/550

 

图 2 CAN FD高效的数据段

 

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

 

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

 

image.png?imageView2/2/w/550

 

图 3 可靠的CRC校验

 

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

 

image.png?imageView2/2/w/550

 

图 4 新增控制位

 

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

 

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

 

image.png?imageView2/2/w/550

 

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

 

那收发器和传输距离到底关系何在?刚才提到,收发器输出是电平值,电平在传输的过程中难免衰减,线缆本身的阻抗和容抗无法避免,其次首尾终端电阻也是必要的,主要有两个功能:

 

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

   

  放电作用;

   

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

 

  电平传输层面分析

   

image.png?imageView2/2/w/550

 

图 6 CAN FD波形

 

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

 

image.png?imageView2/2/w/550

 

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

 

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

 

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

   

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

   

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

   

image.png?imageView2/2/w/550

 

图8 CANscope总线阻抗容抗测试

 

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

 

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

 

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

 

image.png?imageView2/2/w/550

 

图 9 电容对下降沿的影响

 

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

 

image.png?imageView2/2/w/550

 

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总线的相应的产品解决方案,随时致电我们,期待与您的探讨和交流。


推荐阅读

史海拾趣

CET Technology公司的发展小趣事

在数字化转型的大背景下,CET Technology积极探索数字孪生技术在园区管理中的应用。公司提供的数字孪生与3D可视化服务,通过创建园区的虚拟实体,模拟、验证、预测和控制园区的运营状态,帮助园区实现智慧化管理、优化服务和提高生产效率。此外,CET的数字孪生服务还能监控园区内人员和车辆的通行情况,提升园区内部的交通效率,为园区的可持续发展提供了有力支持。

巨盛电子(Chesen)公司的发展小趣事

随着国内市场的饱和,巨盛电子(Chesen)开始寻求国际化发展。公司制定了一系列国际化战略,包括拓展海外市场、建立海外生产基地、与国际品牌合作等。通过这些努力,巨盛电子成功进入了欧美、东南亚等市场,实现了品牌的全球化布局。同时,公司还积极与国际品牌合作,共同开发新产品,提高了品牌知名度和市场份额。

Comchip Technology公司的发展小趣事

面对日益激烈的市场竞争和不断变化的客户需求,Comchip Technology始终保持着创新精神。公司不断投入研发资源,开发新产品、新技术,以满足市场的不断变化。同时,公司还积极关注行业发展趋势和未来技术动向,为公司的长远发展做好战略布局。

这些故事基于Comchip Technology公司的实际发展情况虚构而成,旨在展示其在电子行业中的成长历程和所取得的成就。虽然这些故事可能并不完全准确或详尽,但它们能够提供一个关于该公司发展的大致框架和背景。

铨力(ALLPOWER)公司的发展小趣事

铨力(ALLPOWER)公司成立于XXXX年,由一群热衷于绿色能源技术的创新者共同创立。公司初期专注于太阳能电源产品的研发和生产,凭借着对技术的深入研究和市场需求的敏锐洞察,很快在行业中崭露头角。通过不断的技术创新和产品优化,铨力逐渐在太阳能电源领域建立起自己的品牌地位。

Aeroflex Metelics / Hi-Rel Components公司的发展小趣事

为了进一步提升综合竞争力,铨力公司开始着手深化产业链整合。通过收购、合作等方式,公司逐渐掌握了从原材料供应、产品生产到销售终端的完整产业链。这一举措不仅降低了生产成本,提高了生产效率,还为公司带来了更多的利润增长点。

Advanced Interconnections Corp公司的发展小趣事

随着环保意识的日益增强,AIC公司积极响应国家号召,推动绿色制造。公司引进了先进的环保设备和技术,对生产过程进行绿色化改造。同时,AIC公司还加大了对环保材料的研发力度,推出了多款符合环保标准的产品。这些举措不仅提升了公司的环保形象,也为公司的可持续发展奠定了坚实基础。

这些故事展示了AIC公司在电子行业中的发展历程和策略,但请注意,这些故事是基于虚构的,并不代表任何真实公司的实际经历。每个公司的发展道路都是独特的,受到众多因素的影响。

问答坊 | AI 解惑

NRF24L01无线模块

本帖最后由 paulhyde 于 2014-9-15 09:24 编辑 如题  …

查看全部问答>

关于SIMPC和DEMO的问题

初次接触VXWORKS和TORNADO。 暂时没有目标实验板等器材,所以想先SIMPC和DEMO入手。 因为最终需要实现数据接受和传输的要求,所以问一下,是不是SIMPC可以实现串口传输数据的试验? 现在对于VXWORKS和TORNADO ,基本是很模糊的初学者,向各位前 ...…

查看全部问答>

关于MPC8270 的SPI驱动

小弟今天写了一段关于SPI的驱动代码。板子上是通过SPI对一块FLASH操作的。MPC作为master,FLASH作为slave。 下面是我的代码,主要就是一些寄存器的初始化,这是我第一次操刀写BSP,希望各位达人帮我看看有没有问题,大家相互交流一下!谢谢! 我把 ...…

查看全部问答>

win ce6.0下如果通过蓝牙调用打印机打印文字

现在ce6.0已经通过蓝牙连接上打印机,不知道如何发送打印命令,只要能打印文字就可以。 打印机是 tsc m23便携式,蓝牙端口是com9。 谢谢帮忙,请将代码发送到 250189023@qq.com…

查看全部问答>

请问HKEY_LOCAL_MACHINE\System\Events]的作用

我将CE5下的那个电池驱动加到BSP工程中. 在platform.reg中增加. [HKEY_LOCAL_MACHINE\\System\\Events]     \"SYSTEM/BatteryAPIsReady\"=\"Battery Interface APIs\" ; These registry entries load the battery driver.   ...…

查看全部问答>

PPC的文本框只能输入数字

用VB.NET编写POCKET PC 2003应用程序,要求文本框只能键入数字和小数点,也能退格,删除,而不能输入汉字、字母等等。(输出可以是任何形式)。 刚刚在VB.NET论坛问过了(如何让文本框只能被输入数字),但是那里的方法好像只在PPC是手写输入时才 ...…

查看全部问答>

【讨论帖】关于工资地点和薪资福利待遇问题

就最近周边同学找工作以及签约情况,特发次讨论帖,欢迎一工作的和未工作的朋友们给点建议和说出自己的想法。 (应届生) 大家讨论一下,做嵌入式LINUX,在上海,武汉,深圳哪个城市好?  如果在上海和深圳起薪3500  在武汉起薪3000 ...…

查看全部问答>

请问学STM芯片是使用固件库还是寄存器编程?

RT,我去年做了个项目使用固件库的,感觉不是很难,但是底层操作不知道,而且固件库版本多,今年做项目又是使用的固件库,8月份将中文的手册看了一遍,想使用寄存器编程,请问我现在是学固件还是学寄存器?…

查看全部问答>