CAN FD与CAN网络共存的解决方案

作者:广州虹科电子科技有限公司 发布时间:2020-03-23
分享到
随着总线技术在汽车电子领域越来越广泛和深入地应用,特别是自动驾驶技术的迅速发展,汽车电子对总线带宽和数据传输速率的要求也越来越高,传统CAN(1 Mbit/s,8 Bytes Payload)已难以满足日益增加的需求。

2012年,Bosch发布了新的CAN FD标准(CAN with Flexible Data Rate),CAN FD继承了CAN的绝大多数特性,如同样的物理层,双线串行通信协议,基于非破坏性仲裁技术,分布式实时控制,可靠的错误处理和检测机制等;同时CAN FD弥补了CAN在总线带宽和数据长度方面的不足。2015年6月30日,国际标准化组织(ISO)已经正式认可CAN FD,并且无反对票地通过ISO 11898-1作为国际标准草案。


CAN FD简介

1.CAN FD的报文结构

CAN FD的报文结构如图1所示,CAN FD在控制场中新引入了3 bit。


图1  CAN FD的报文结构

1)EDL位(Extended Data Length),原CAN数据帧中的保留位, 该位功能为:隐性表示CAN FD 报文(采用新的 DLC 编码和 CRC 算法);显性表示CAN报文。

2)BRS位(Bit Rate Switch),该位功能为:隐性表示转换可变速率;显性表示不转换速率。

3)ESI位(Error State Indicator),该位的功能为:隐性表示发送节点处于被动错误状态(Error Passive);显性表示发送节点处于主动错误状态(Error Active)。

另外,CAN FD采用新的DLC编码方式,控制场由4 bit组成了数据长度码(DLC),DLC包含了扩展的有效数据长度;有效数据长度可能为12、16、20、24、32、48和64 Byte,如图2所示。


图2  CAN FD的DLC编码方式


2.CAN FD提高通信速率的方法及优势

CAN FD提高通信速率主要是两种方法(图3):一是提高波特率;二是提高有效载荷。

基于背景所述以及上文关于报文结构和提高通信速率方法的说明,我们总结出一些CAN FD的优势:①该协议能够支持更高的速率,可以更快地刷写ECU;②在单个数据帧内传送率可达64 Byte,避免了经常发生的数据分拆传输的状况;③对汽车行业而言,CAN-FD协议显得非常重要,CAN线束和其他物理层元件可重新再利用;④更高的带宽,在电动车以及今后的动力CAN上应用更有优势;上层应用层架构不需要改变,在原来基础上扩展即可。


图3  CAN FD提高通信速率的方法


CAN与CAN FD通信的问题

因为受制于产品的稳定性考验和改造成本等问题,无法快速全面普及CAN FD。另外,在2012年底提出CAN FD,到2015年中成为ISO CAN FD,即目前市场上大部分厂家都还是在用传统的CAN2.0,有一小部分厂家用非ISO标准的CAN FD,一部分用ISO标准的CAN FD。

这样我们都会遇到一个问题:传统CAN与CAN FD共存的网络中,如何解决彼此通信?

首先,我们来看一下主要会存在哪些问题:共存网络中,如何解决通信速率和数据长度不同的冲突?如何解决非ISO CAN FD与ISO CAN FD设备的通信问题?共存网络中,如何解决某几个设备之间交叉通信的问题,多个切换的问题?如何解决一个设备需要同时与CAN FD节点和传统CAN节点通信的切换问题?如何解决测试平台共用的问题?(如针对非通信状态下的疲劳测试、寿命测试、环境测试及共用平台等)如何对CAN FD产品做测试?


CAN与CAN FD通信问题的解决方法

1.解决通信速率和数据长度不同的问题

在这个问题里面,又会分成如下几种情况:

1)传统CAN节点以1 Mbit/s 传输数据到CAN FD:解决方法是可以直接通过,因为CAN FD是向下兼容CAN2.0的。

2)CAN  FD设备以8 Mbit/s传输数据到传统CAN:解决方法是采用可编程CAN FD路由器,先将传统CAN FD的速率自动降为1 Mbit/s再转出去。

3)传统CAN节点向 CAN FD节点传输8 Byte的数据:解决方法是可以直接通过,因为CAN FD是向下兼容CAN2.0的。

4)CAN FD节点向传统CAN 节点传输64 Byte的数据:解决方法是采用可编程CAN FD路由器,预先编程并下载到路由器,CAN FD的数据通过路由器后可以按照预先设置的程序将数据做拆包等处理再转成8 Byte转发出去给传统CAN设备。

2.解决非ISO CAN FD与ISO CAN FD设备的通信问题

非ISO CAN FD与 ISO CAN FD的共同点在于:传输速率一致,数据长度一致;区别在于:后者引入了一个3 bit的填充位计数器以及额外的校验位。另外,CRC计算值也不同,所以两者是不兼容的。因此CiA建议所有的CAN FD应用需注明ISO CAN FD或non-ISO CAN FD。

从2012年年底到2015年年中之前有很多厂家已经开发了CAN FD产品,但是那个是非ISO标准的CAN FD产品,并且已经有少部分产品在市场流通。而这些非ISO产品的供应商也没法完全收回或者销毁原有产品,所以这些供应商仍然需要解决这个问题。解决方法是采用可编程CAN FD路由器,实现两种CAN FD机制的转换。

3.解决多设备切换时的通信问题

未来的CAN网络,较长时间内都会存在着传统CAN与CAN FD并存的情况。部分亟需解决速率问题的节点会率先采用CAN FD技术。其他对实时要求不高的节点仍然会保存原有技术并存在着。

那么在一个共存网络中,就需要解决某几个设备之间交叉通信的问题,多个切换的问题,以及一个设备需要同时与CAN FD节点和传统CAN节点通信的切换问题。

如图4所示,一个网络中只有EMS与ABS是用CAN FD的,解决方法其实也是用CAN FD的网关;如果是EMS和ABS通信,PCAN-Router FD网关这个时候只要对CAN FD之间的数据1:1转发即可;如果是EMS或者ABS与其他ECU通信,那么这时PCAN-Router FD网关就需要将CAN FD数据切换为传统CAN再转发。


图4  多设备切换的通信问题

4.解决测试平台共用的问题

CAN FD节点在进行环境测试、疲劳测试及寿命测试等的情况下,只需要测试设备本身的性能,而与通信速率/字节数无关,因此,这几类测试可以沿用传统CAN设备的测试平台。

而CAN FD通信性能的测试、兼容性测试等涉及通信机制本身,因此这类测试需要用新的CAN FD测试工具。

一个完整的测试需要同时满足以上所有测试条件,因此存在两种测试平台的交互。解决方法也是采用Router FD可以将同一个待测的CAN FD设备连入不同的测试平台中,最终完成各项测试任务。

5.如何测试CAN FD产品

关于CAN FD节点的测试,应该主要包括如下测试:

1)CAN FD报文测试(收发机制)。这个可以使用一些工具供应商提供的CAN FD总线测试工具,如德国PEAK公司的PCAN-USB FD硬件+PCAN-Explorer6软件或者其他公司的类似产品。

2)CAN FD互操作性测试。互操作性测试由于涉及各个不同厂家产品之间的测试,这个测试目前大部分都是通过CiA实验室来做的。

3)CAN FD网络模拟故障测试。它可以使用一些工具供应商提供的CAN FD总线测试工具来测试,如德国PEAK公司的PCAN-Diag FD或者其他公司的类似产品。

4)OEM要求的其他测试,根据实际要求来选择测试工具,或者委托第三方。


 CAN FD测试工具简介

 CAN FD测试工具如图5所示。PCAN-Router FD是一个两路的可编程的CAN FD的网关,可以完美地解决上述“CAN与CAN FD通信问题的解决方法”中1~4的CAN和CAN FD之间的转换问题。


图5  CAN FD测试工具概览


PCAN-USB FD硬件是一路CAN FD转USB接口的CAN FD接口卡,可以将CAN FD和CAN数据通过USB传输到电脑上;结合软件PCAN-Explorer6,可以做CAN FD通信机制方面的测试;PCAN-Explorer6软件也支持DBC文件,后期还将支持XML文件,可以用于分析CAN FD报文所携带的信号,创建图形面板,生成信号的历史曲线等。

PCAN-Diag FD是一个手持式的CAN/CAN FD诊断仪,具有监控CAN/CAN FD网络通信、测试终端电阻、总线负载、总线电压等功能,也能作为一个小型的示波器使用,特别适用于现场检测和排除总线故障。


总结

本文总结的CAN与CAN FD之间通信的问题,在未来很长一段时间内都会存在。因此,相信我们提出的解决方案,无论是对主机厂,还是对零部件供应商,都具有实用价值。 


收藏
赞一下
0