datasheet

技术文章—CAN FD升级要如何避免与CAN总线的冲突?

2019-05-22来源: EEWORLD关键字:CAN

随着新能源汽车的发展,需要传输的数据量也逐渐增加,很多车厂都在考虑使用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

 

图 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

编辑:muyan 引用地址:http://www.eeworld.com.cn/qcdz/ic462530.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:华虹宏力:功率半导体拥抱电动汽车“芯”机遇的两大要诀
下一篇:CAN/RS-485总线的终端电阻应如何设置?

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

简化HEV 48V系统的隔离CAN、电源接口

48V汽车应用中对隔离的需求持续增长。这是一种紧凑、高效、稳健、低噪声的方法,可通过CAN接口隔离48 V系统。为今天的汽车设计是一种平衡行为。在满足日益严格的排放标准和为越来越多的车载系统和小工具提供动力之间,需为当今的车辆提供高功率,以获得高效率。为实现效率和功率的融合,工程师更加依赖于将48V电力运行与传统燃气发动机相结合的系统,如混合动力电动汽车(HEV)。这种方法可确保车辆满足严格的二氧化碳(CO2)排放标准,同时还可改进性能和驱动质量。虽然关于双电池汽车系统本身已有很多说法,但我关注的是这些组合式12和48V系统中的一个关键且有时被忽视的组件:电流隔离。电流隔离用于抵抗接地噪声,并在与其连接的48V系统中接地断开或故障
发表于 2019-06-19
简化HEV 48V系统的隔离CAN、电源接口

STM32CubeMX开发stm32f103rbt6 CAN例程(二)

1、STM32CubeMX配置    2、生成代码查看  3、编写代码程序下载:http://download.csdn.net/download/white_loong/101374684、使用CAN分析仪测试(波特率125K)问题:程序CAN收发同时打开例如:1、main() {     HAL_CAN_Receive_IT();     HAL_CAN_Transmit_IT(); }  HAL_CAN_RxCpltCallback() { 
发表于 2019-06-18
STM32CubeMX开发stm32f103rbt6 CAN例程(二)

stm32f407之CAN控制器(操作寄存器)

首先简单介绍一下CAN总线,关于CAN总线是谁发明的,CAN总线的历史,CAN总线的发展,CAN总线的应用场合,这些,通通不说。这里只是以我个人理解,简单说说CAN通信。CAN总线的端点没有地址(除非自己在帧里定义地址),CAN总线通信不用地址,用标识符,不是单独的谁发给谁,而是,你总是发送给整个网络。然后每个节点都有过滤器,对网络上的传播的帧的标识符进行过滤,自己想要什么样的帧,可以设置自己的过滤器,接收相关的帧信息。如果两个节点同时发送怎么办?这个不用我们担心,CAN控制器会自己仲裁,让高优先级的帧先发。 然后我们可以了解一下stm32的CAN控制器。如上图所示,stm32有两个can控制器,can1(主
发表于 2019-06-18
stm32f407之CAN控制器(操作寄存器)

技术文章—简化HEV 48-V系统的隔离CAN、电源接口

48V汽车应用中对隔离的需求持续增长。这是一种紧凑、高效、稳健、低噪声的方法,可通过CAN接口隔离48 V系统。 为今天的汽车设计是一种平衡行为。在满足日益严格的排放标准和为越来越多的车载系统和小工具提供动力之间,需为当今的车辆提供高功率,以获得高效率。 为实现效率和功率的融合,工程师更加依赖于将48V电力运行与传统燃气发动机相结合的系统,如混合动力电动汽车(HEV)。这种方法可确保车辆满足严格的二氧化碳(CO2)排放标准,同时还可改进性能和驱动质量。 虽然关于双电池汽车系统本身已有很多说法,但我关注的是这些组合式12和48V系统中的一个关键且有时被忽视的组件:电流隔离。电流隔离用于抵抗接地噪声,并在
发表于 2019-06-18
技术文章—简化HEV 48-V系统的隔离CAN、电源接口

stm32F4 hal库之CAN通信的实现

目标:通过can总线,用stm32的CAN模块实现对电机驱动发送指令,从而实现对电机的控制。硬件设计:①收发芯片的功能:把单片机送来的信号通过收发芯片的转换从而实现信号的具体传输。②120欧终端电阻:主要是为了防止信号的干扰,一般来说,终端设备的CAN_H和CAN_L也要加上120欧终端电阻。软件设计基本知识:其实各种通信方式的本质都是一样的,均分为两个部分;①波特率:以何种速度来通信②具体准则:发送端和接收端对发送来的数据的解释。特色:CAN工作于4种模式;类似于手机的飞行模式,正常模式,待机状态,是一种感觉。CAN常用的工作模式是(1)回环模式:也就是自己发,自己收。(2)正常工作模式,也就是用于正常的接收,发送。一.公共部分
发表于 2019-06-18
stm32F4 hal库之CAN通信的实现

STM32F042 基于CubeMX HAL库CAN的配置

首先说说使用时候的两个坑。(1)要使能Swap PA9/10 –>PA11/12,这个时候PA11和PA12引脚才能出现。(2)我第一步用的是回环模式。大致是这样的。 While{SendCanMessage();} Can_interrupt{HAL_CAN_Receive_IT(hcan,CAN_FIFO0);} 却发现只能中断一次不能返回了。原因,配置好CAN后状态为HAL_CAN_STATE_READY。 设置为接收,状态为HAL_CAN_STATE_BUSY_RX0。接收到数据一般会在继续设置为接收。这样一直可以接收。 发送时状态
发表于 2019-06-17
STM32F042 基于CubeMX HAL库CAN的配置

小广播

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved