历史上的今天
返回首页

历史上的今天

今天是:2025年05月22日(星期四)

正在发生

2019年05月22日 | 技术文章—CAN FD升级要如何避免与CAN总线的冲突?

2019-05-22 来源:EEWORLD

随着新能源汽车的发展,需要传输的数据量也逐渐增加,很多车厂都在考虑使用CAN FD来替代CAN实现数据量传输的提速。那么如何稳定地升级到CAN FD呢?本文为您解答。

 

一、CAN FD与CAN的主要区别

 

 

图1  CAN帧基本格式

 

 

图 2  CAN FD帧基本格式

 

如图1、图2所示分别是CAN帧和CAN FD帧的基本格式,区别主要分为两大点:

 

  1. BRS(可变速率)

 

CAN FD的传输速率分为两个频段,从BRS位开始到CRC校验之前这一段是可变速率段,这一段的波特率可以进行加速,理论最高可达到5Mbit/s,而其他位置则和CAN2.0一样,最高速率可达到1Mbit/s。

 

  1. 数据场长度增加BRS

 

CAN FD对数据场的长度做了扩充,从CAN的8字节增加到CAN FD的64字节。如图3所示,当DLC小于8字节时和CAN一样是线性增长,当大于8字节时是非线性增长。

 

 

图3  DLC编码方式

 

二、CAN FD的升级与CAN是否有冲突?

 

由于使用CAN FD网络时,需要ECU和CAN控制器、收发器均支持CAN FD通讯。所以当CAN网络中某些节点升级为CAN FD时,车辆上CAN与CAN FD处于共存的情况,因为普通的CAN节点无法正常解析CAN FD报文,节点就会一直报错,出现大量错误报文,导致总线通讯异常。

 

说明: C:UserslvxiaolingDesktop本周文章20周CANFD的升级要如何避免与CAN总线的冲突?图4.jpg?imageView2/2/w/550

 

图 4  CAN与CAN FD报文的波形对比

 

如图三所示,可以看到CAN FD的传输速率是5Mbit/s,而CAN的传输速率为500Kbit/s,我们在平常使用上位机软件解析CAN报文的时候需要设置对应的波特率,否则报文就无法解析。那么用一种简单的方式来理解,对于CAN节点来说,它的波特率是500K,那么5M的波特率与它不匹配,所以不能被正常解析,该节点就会报错,导致CAN FD报文一直无法正常发送,干扰总线的正常运行。

 

三、CAN FD升级的解决方案

 

针对CAN FD升级的情况,一般有三种解决方案。

 

  1. CAN节点忽略CAN FD报文

 

支持CAN2.0的ECU忽略CAN FD报文,不对其进行识别,这样虽然无法对CAN FD报文进行解析处理,但是也不会将其识别为错误帧,总线可以保证正常通讯。因为CAN FD是向下兼容CAN的,所以所有的CAN节点和CAN FD节点对于CAN报文都可以正常通讯,但是CAN FD的报文只能在支持CAN FD的ECU之间进行传输。由于只能保证CAN FD节点可以正常接收所有类型的CAN报文,CAN节点无法接收解析CAN FD报文,所以该解决方案仅可作为临时使用。

 

  1. 全部节点升级为CAN FD

 

将所有网络上所有的节点都替换成CAN FD,由于CAN FD可以向下兼容CAN,此时的网络既可以进行CAN报文收发也可以进行CAN FD报文收发。但是由于整体网络全部更新替换,成本较高,所以使用率很低。

 

  1. 利用CAN网桥进行CAN FD与CAN的转换

 

    在原有的CAN网络上通过CAN网桥与新的CAN FD节点进行连接,将传统的CAN总线网络通过协议转换与CAN FD网络进行融合,快速实现CAN设备的升级。工作原理如图5所示,当接收到CAN FD报文的时候,CAN网桥会采用直转、合并、拆分三种方式实现传统CAN的8字节长度和CAN FD的64字节长度的互相转换,无损还原原有数据。

 

 

总结:

 

对于CAN FD的升级,如果不是全部节点都进行升级,那么为了避免与CAN总线的冲突,相对来说,使用CAN网桥作为转换来完成是更好的方法。工程师可以不用在意如何完成CAN与CAN FD报文之间的转换,可以将工作重心放到产品功能的实现上,这样对于产品的快速更迭,抢占市场会更加有帮助。


CAN
推荐阅读

史海拾趣

EOS POWER INDIA Pvt公司的发展小趣事

EOS一直将质量管理作为公司发展的核心。公司建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。EOS还引入了先进的质量检测设备和方法,确保每一件产品都符合高标准的质量要求。此外,公司还定期对员工进行质量培训,提高员工的质量意识和操作技能。这些措施使得EOS的产品在市场上赢得了良好的口碑和信誉。

Dolphin Interconnect Solutions Asa公司的发展小趣事

为了加快市场拓展和技术创新,Dolphin Interconnect Solutions ASA积极寻求与其他公司的战略合作。例如,公司与StarGen公司进行了换股合并,共同开发Express产品。这一合作不仅为Dolphin带来了先进的技术和人才,还进一步拓宽了公司的产品线,提高了市场竞争力。

GAIA Converter Inc公司的发展小趣事

在江苏扬州,一家名为锋鸣电子的公司于2008年成立,起初专注于电子元器件的代工生产。面对激烈的市场竞争,公司创始人李伟决定走技术创新之路。2012年,锋鸣电子成功研发出新一代高灵敏度蜂鸣器,该产品在噪音控制和响应速度上实现了显著突破,迅速获得了国内外市场的认可。此后,公司不断加大研发投入,逐步拓展产品线,成为电子蜂鸣器领域的佼佼者。

Afero公司的发展小趣事

Afero公司成立于XXXX年,当时的市场中物联网平台技术正处于探索和发展阶段。Afero的创始团队凭借对物联网技术的深刻理解和前瞻性的视野,决定专注于物联网平台即服务(PaaS)的研发。他们投入大量资源,成功开发出一种具有创新性的物联网平台,该平台在安全性、易用性和可扩展性等方面表现出色,吸引了业界的广泛关注。

永丰盈(CST)公司的发展小趣事

作为一家有社会责任感的企业,CST始终关注环境保护和社会公益事业。公司严格执行环保法规,积极推广绿色生产理念,努力减少生产过程中的污染排放。此外,CST还积极参与社会公益活动,为当地的教育、文化等事业做出了积极贡献。这些举措进一步提升了CST的企业形象和社会声誉。

Allied Controls Incorporated公司的发展小趣事

品质是CST的生命线。为了确保产品质量的稳定性和可靠性,公司建立了完善的质量管理体系,严格执行ISO9001质量体系及ISO14001环境体系。同时,公司还注重员工的培训和教育,提高员工的质量意识和操作技能。这些措施使得CST的产品质量得到了客户的广泛认可。

问答坊 | AI 解惑

大家帮忙看一下quartus中一些警告,谢谢了!!!

倒数第三行的警告大家可以不看,已经解决掉了, 大家帮忙看看其他的警告,谢谢了…

查看全部问答>

(高价)(高价)(高价)诚激高手开发:sock5全自动代理自助管理系统,有技术者加QQ详谈,99040008

(高价)(高价)(高价)诚激高手开发:sock5全自动代理自助管理系统,有技术者加QQ详谈,99040008…

查看全部问答>

救命啦,中文乱码怎么解决啊?~

用。NET 开发的程序在WINCE5.1上中文显示的全是方框,有没有遇到过啊,怎么解决啊。…

查看全部问答>

pb 4.2 实现注册表永久保存数据!

我在pb 4.2 中修改 platform.reg 如下: ; HIVE BOOT SECTION [HKEY_LOCAL_MACHINE\\init\\BootVars]         \"SYSTEMHIVE\"=\"Documents and Settings\\\\system.hv\"         \"PROFILEDIR\"=\"Doc ...…

查看全部问答>

STM8的EEPROM读写速度挺快的啊

STM8的EEPROM读写速度挺快的啊,经测试发现并没像datasheet说的那样一个字节6.6ms, 下载 (49.52 KB) 2010-10-9 11:08 我是单字节写的,似乎写N个字节都是6点几个ms,我是用示波器测得的 下载 (27.15 K ...…

查看全部问答>

通讯接收

请教各位,我用基于MODBUS协议实现单片机和pc机通讯,单片机中断接收,查询发送,以下是我的中断程序,我的想法是先接收完所有的数据再进行处理(包括地址判断,读寄存器等然后再发送),这样的话我接收的数据就定下来了,比如程序中只接受8个字节 ...…

查看全部问答>

TI Sitara入门资料分享7-AM335X家族介绍TI Sitara官方资料汇总

用于基于 ARM® Cortex™-A8 和 ARM9™ Sitara™ 的微控制器 (MPU) 的软件和工具软件开发套件 (SDK) - TI SDK 为您选择的平台提供主要软件组件和文档。SDK 可在 TI.com 上免费下载,同时随附 TI 评估模块 (EVM) 和开发套件提 ...…

查看全部问答>

求freescale k40标准板的例程,本人新人,在此向各位前辈求助!!

freescale k40标准板的例程,本人新人,在此向各位前辈求助!!…

查看全部问答>

如何用verilog写一句等待按键释放语句?

如何用verilog写一句等待按键释放语句?…

查看全部问答>

关于MSP430默认时钟延时定时的问题

MSP430关于延时时间的问题。 #include /* * main.c */ void main(void) {         WDTCTL = WDTPW + WDTHOLD;         unsigned int i;         unsigned char j;   ...…

查看全部问答>