CAN升级到CAN FD势在必行,如何实现CAN与CAN FD组网通信?
对于新能源车而言,随着局域网内节点,电控单元的功能以及节点间交互信号增多,CAN总线的局限性越来越突出,主要体现在:文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
1、节点以及交互信号增加,势必导致CAN网络总线负载过高,容易导致总线出错,例如低优先级的报文,由于仲裁等待时间较长,引起发送周期偏差大,导致接收节点报故障;节点多容易造成总线的分布电容大,导致位域的下降沿较缓,显性电平切换至隐性电平所需的时间增长。对信号而言就会缩短隐性电平时间,容易导致位错误,引起错误帧。文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
2、节点增多,导致CAN线缆长度增加,线缆中信号反射、抖动和线路延迟增大,容易导致总线出现错误帧。文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
3、电控单元的功能增多,势必导致软件占的存储空间更大,这意味着电控单元的软件升级时间也势必延长,影响用户体验。文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
在这样的背景下,将CAN升级到CAN FD势在必行,CAN FD速率最高可达8Mbps,但是出于成本和时间考虑,实际上局域网不可能所有节点同时升级到CAN FD,这样就带来了一个问题——CAN与CAN FD共存。文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
CAN与CAN FD是否可以正常组网通信?文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
根据CAN FD协议,其兼容CAN2.0,意味支持在协议层面,CAN与CAN FD是可以共存与一个网络的,只不过CAN FD节点可以接收CAN报文,而CAN节点不能接收CAN FD报文,如图1所示。文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
图1 CAN FD与CAN文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
但是直接将CAN节点与CAN FD节点简单相连的话,将会导致CAN节点持续发错误帧,网络无法正常通信。文章源自线束工程师之家-https://www.suncve.com/network-communication-between-can-and-can-fd/
如何保证混合网络中各节点正常通信呢?
其实也很简单,在保持CAN节点的主芯片,硬件线路不变的情况下就可以实现,怎么实现呢?只需要将原有的CAN收发器替换成带有CAN FD shield功能的即可,如图2所示。
图2 将原CAN收发器替换成带有CAN FD shield功能的收发器
其实现原理如下:
在拥有三个节点的局域网内,其中两个为CAN FD节点,一个为CAN节点,其中CAN节点使用的收发器具有CAN FD shield功能,如图3所示。
图3 三节点局域网
首先ECU1开始发送CAN FD报文,当CAN节点的物理层检测到FDF = 1(意味着收到的报文为FD报文)时,带有CAN FD shield功能的收发器将CAN节点的接收引脚强制拉低,如图4所示。
图4 CAN节点简单到FDF=1后,将RX强制拉低
同时CAN节点发送错误帧(6个显性位+错误标识符),但是该错误帧不会体现至总线上,会被收发器阻塞,因此不会影响局域网内其他节点的CAN FD报文正常收发,如图5所示。
图5 CAN节点发送错误帧,被收发器阻塞
最后当CAN节点检测到一个隐性位后,将CAN节点的RX引脚释放,并且发送7个连续的隐性位,总线进行重新同步,准备下一次的发送,如图6所示。
图6 CAN节点释放RX引脚,总线重新同步
最后CAN与CAN FD混合组网除了在CAN节点使用带有CANFD shield功能的收发器外,CAN与CAN FD报文的仲裁段的速率必须是500Kbps,这样CAN FD节点才能正常接收 CAN报文。
推荐阅读: