首页
学习
活动
专区
工具
TVP
发布

【Car路里学堂·每日技术】CAN与CAN FD组网通信的实现

对于新能源车而言,随着局域网内节点,电控单元的功能以及节点间交互信号增多,CAN总线的局限性越来越突出,主要体现在:

1、节点以及交互信号增加,势必导致CAN网络总线负载过高,容易导致总线出错,例如低优先级的报文,由于仲裁等待时间较长,引起发送周期偏差大,导致接收节点报故障;节点多容易造成总线的分布电容大,导致位域的下降沿较缓,显性电平切换至隐性电平所需的时间增长。对信号而言就会缩短隐性电平时间,容易导致位错误,引起错误帧。

2、节点增多,导致CAN线缆长度增加,线缆中信号反射、抖动和线路延迟增大,容易导致总线出现错误帧。

3、电控单元的功能增多,势必导致软件占的存储空间更大,这意味着电控单元的软件升级时间也势必延长,影响用户体验。

在这样的背景下,将CAN升级到CAN FD势在必行,CAN FD速率最高可达8Mbps,但是出于成本和时间考虑,实际上局域网不可能所有节点同时升级到CAN FD,这样就带来了一个问题——CAN与CAN FD共存。

CAN与CAN FD是否可以正常组网通信?

根据CAN FD协议,其兼容CAN2.0,意味支持在协议层面,CAN与CAN FD是可以共存与一个网络的,只不过CAN FD节点可以接收CAN报文,而CAN节点不能接收CAN FD报文,如图1所示。

图1 CAN FD与CAN

但是直接将CAN节点与CAN FD节点简单相连的话,将会导致CAN节点持续发错误帧,网络无法正常通信。

如何保证混合网络中各节点正常通信呢?

其实也很简单,在保持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报文。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210225A04UPQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券