如何降低CAN-bus总线通讯的延迟问题

        图 2 传输延迟错误

由于 ACK 界定符被前面的应答场严重压缩,导致被某个节点识别为显性(原本是隐性),所以这个识别错误的节点后面发出了错误帧,进行全局通知,让发送节点重新发送。

       CANScope分析仪可以提供传输延迟测量的功能,可以进行单帧的延迟测量,也可以进行所有波形的延时统计。如图3所示,可以通过延迟测量出导线的等效长度,即最大延迟÷5ns/m,并给出该波特率下最长等效传输距离。

如何降低CAN-bus总线通讯的延迟问题

       图 3 CANScope传输延迟测量功能

CAN/CAN FD信号延时分析

       通过延时上限可以了解到,我们需要严格的控制总线上各个部分造成的延时时间,确保延时时间总和在一定范围内。接下来,以CAN FD为例,了解一下造成延时的具体原因。

       如图4所示,CAN FD网络上两节点之间通信过程中,CAN FD报文首先从节点A控制器发出,经过隔离器件、CAN FD收发器发送到总线上,再通过一段距离的传输依次达到节点B的CAN FD收发器、隔离器件,CAN FD控制器,最后又节点B发出ACK显性应答位,重复上述过程到达节点A。很明显,整个过程中,会影响信号传输延迟的因素有:CAN FD控制器、隔离方式、收发器循环延时、线缆传播。

如何降低CAN-bus总线通讯的延迟问题

 

图 4 总线节点通讯结构

CAN FD控制器延时

CAN FD控制器造成的延时可以从两方面分析:

软件延时:在应用进程中,主CPU将数据从CAN FD控制器中读写耗费的时间;

控制器延时:CAN FD控制器实现串行化信息所耗费的时间。

这个过程中与主控制器、CAN FD控制器、接口芯片等有关,通常情况下,延时在纳秒级以下,可以忽略不计。

隔离方式造成的延时

为了增加信号传输的可靠性,通常都会在CAN FD底层硬件设计中添加隔离设计。隔离器件的添加,带来一定的延时并影响CANFD系统容许的线缆长度。不同的隔离方式,延时效果也不同。

常用的解决方案有光耦+CAN FD收发器,如图5所示。图中光耦6N137具有典型的单向延时60ns,加上全部信号双向传输会造成240ns延时。

如何降低CAN-bus总线通讯的延迟问题