1.CAN FD发展的背景介绍
随着总线技术在汽车电子领域越来越广泛和深入的应用,特别是自动驾驶技术的迅速发展,汽车电子对总线宽度和数据传输速率的要求也越来也高,传统CAN(1MBit/s,8Bytes 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作为国际标准草案。
2.CAN FD简介
2.1CAN FD的报文结构
CAN FD在控制场中新引入了三个位:
-
EDL位(Extended Data Length),原CAN数据帧中的保留位r, 该位功能为:
隐性: 表示 CAN FD 报文 (采用新的 DLC 编码和 CRC 算法
显性: 表示 CAN 报文 -
BRS位(Bit Rate Switch):该位功能为:
隐性:表示转换可变速率
显性:表示不转换速率 -
ESI位(Error State Indicator):该位的功能为:
隐性:表示发送节点处于被动错误状态(Error Passive)
显性:表示发送节点处于主动错误状态(Error Active)
另外,CAN FD采用新的DLC编码方式,控制场有四个位组成了数据长度码(DLC),DLC包含了扩展的有效数据长度;有效数据长度可能为12,16,20,24,32,48和64个字节,如图2所示。
2.2CAN FD提高通信速率的方法
CAN FD提高通信速率主要是两种方法:一是提高波特率;二是提高有效载荷。
2.3CAN FD的优势
基于背景所述以及如上关于报文结构和提高通信速率的方法的说明,我们可以总结出一些CAN FD的优势:
- 该协议能够支持更高的速率,可以更快的刷写ECU;
- 在单个数据帧内传送率可达64字节,避免了经常发生的数据分拆传输的状况;
- 对汽车行业而言,CAN-FD协议显得非常重要,CAN线束和其它物理层面元件可重新再利用;
- 更高的带宽,在电动车以及今后的动力CAN上应用更有优势
- 上层应用层架构不需要改变,在原来基础上扩展即可。
3. 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产品做测试?
4. CAN与CAN FD通信问题的解决方法
4.1 解决通讯速率和数据长度不同的问题
这个问题里面,又会分成如下几种情况:
- 传统CAN节点以1Mbit/s 传输数据到 CAN FD:解决方法是可以直接通过,因为CAN FD是向下兼容CAN2.0的。
- CAN FD设备以8Mbit/s传输数据到传统CAN:解决方法是采用可编程CAN FD路由器:先将传统CAN FD的速率自动降为1Mbit/s再转出去。
- 传统CAN节点向 CAN FD节点传输8字节的数据:解决方法是可以直接通过,因为CAN FD是向下兼容CAN2.0的。
- CAN FD节点向传统CAN 节点传输64字节的数据:解决方法是采用可编程CAN FD路由器:预先编程并下载到路由器,CAN
FD的数据通过路由器后可以按照预先设置的程序将数据做拆包等处理再转成8字节转发出去给传统CAN设备。
4.2 解决非ISO CAN FD与ISO CAN FD设备的通讯问题
非ISO CAN FD与 ISO CAN FD的共同点在于:传输速率一致,数据长度一致;区别在于:后者引入了一个3位的填充位计数器以及额外的校验位,另外,CRC计算值也不同。所以两者是不兼容的。因此CiA建议所有的CAN FD应用需注明ISO CAN FD或non-ISO CAN FD。
2012年底到2015年中之前有很多厂家已经开发了CAN FD产品,但是那个是非ISO标准的CAN FD产品,并且已经有少部分产品已经在市场流通。而这些非ISO产品的供应商也没法完全收回或者销毁原有产品,所以这些供应商仍然需要解决这个问题。
解决方法是采用可编程CAN FD路由器,实现两种CAN FD机制的转换。
4.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设备连入不同的测试平台中,最终完成各项测试任务。
4.5 如何测试CAN FD产品?
关于CAN FD节点的测试,应该主要包括如下测试:
- CAN FD报文测试(收发机制),这个可以使用一些工具供应商提供的CAN FD总线测试工具,如德国PEAK公司的PCAN-USB
FD硬件+PCAN-Explorer6软件或者其它公司的类似产品。 - CAN FD互操作性测试,互操作性测试由于涉及到各个厂家产品之间的测试,目前大部分这个测试都是通过CiA实验室来做的。
- CAN FD网络模拟故障测试,这个可以使用一些工具供应商提供的CAN FD总线测试工具来测试,如德国PEAK公司的PCAN-Diag FD或者其它公司的类似产品。
- OEM要求的其它测试,根据实际要求来选择测试工具,或者委托第三方。
5. CAN FD测试工具简介
5.1 PCAN-Router FD
PCAN-Router FD是一个两路的可编程的CAN FD的网关,可以完美的解决4.1—4.4的CAN和CAN FD之间的转换问题。
5.2 PCAN-USB FD硬件+PCAN-Explorer6软件
PCAN-USB FD硬件是一路CAN FD转USB接口的CAN FD接口卡,可以将CAN FD和CAN数据通过USB传输到电脑上;结合软件PCAN-Explorer6,可以做CAN FD通信机制方面的测试;PCAN-Explorer6软件也支持DBC文件,后期还将支持XML文件,可以用于分析CAN FD报文所携带的信号,创建图形面板,生成信号的历史曲线等。
5.3 PCAN-Diag FD
PCAN-Diag FD是一个手持式的CAN/CAN FD诊断仪,具有监控CAN/CAN FD网络通信,测试终端电阻,总线负载,总线电压等功能,也能做为一个小型的示波器使用,特别适用于现场检测和排除总线故障。
5.4 PCAN-Router Pro FD
PCAN-Rouer Pro FD是1个6路的可编程的CAN FD网关,可以解决CAN和CAN FD之间的转换问题,也可以作为CAN/CAN FD记录仪使用。
6. 总结
本文总结的CAN与CAN FD之间通信的问题,在未来很长一段时间内都会存在。因此,相信我们提出的解决方案,不管是对主机厂还是零部件供应商,应该都很有实用价值。