摘要:CAN-bus总线在轨道交通、医疗设备等行业得到广泛应用,但工程师们经常会遇到信号传输延迟的问题困扰。本文将针对传输延迟问题,进行详细分析,并给出一些可行的解决方案。
由于CAN-bus总线的实时性强、抗干扰能力强等特点,在轨道交通、汽车电子等行业得到广泛的应用。伴随着技术的升级和CAN节点的增加,CAN协议提供的8字节数据传输以及最高1Mbps的波特率已经不能满足工程师的应用需求。针对此现象,CiA协议联合各大车厂,制定出新一代的CAN FD协议,其主要的内容就是将一帧的数据段由8字节提升到64字节,同时可以提升数据段的波特率,以缩短通讯时间。
在一些行业中,对实时性要求很高,例如CAN通信在轨道交通制动系统中的应用,如果CAN-bus总线通讯出现了延迟,会严重影响轨道交通安全,造成列车运行瘫痪,甚至危及人身安全。那么,如何评估CAN网络延时情况以及如何降低CAN/CAN FD通讯延迟,保证通讯稳定呢?接下来,做详细介绍。
CAN-bus总线采用多主通信模式、非破坏式总线仲裁机制。发送节点在发送报文时,在发完CRC校验场之后,会发出长度为2个位的ACK段,如图1所示。当接收节点正确接收到有效报文时,就会在应答间隙(ACK SLOT)向发送节点发送一个“显性”位来作为回应。发送节点检测到总线呈现显性状态,便认为成功发送报文。如果发送节点没有检测到有效的显性位,则认为总线错误。所以,CAN FD信号延迟的最大时限是确保发送节点在应答间隙内接收到有效的应答信号。
图1 ACK应答
以1Mbit/s波特率为例,在单次采样模式下,当采样率为75%时,应保证在750ns内,发送节点能够采集到接收节点发出的显性位,否则会出现总线错误。即,延时总和时间≤位时间x采样点百分比。
工程师们在开发设计CAN底层硬件时,需要结合应用场景充分考虑延迟带来的影响。那么,工程师如何快速评估CAN网络的延时情况?如图2所示,是CANScope分析仪抓取的,由于传输延迟导致的错误波形。
图2 传输延迟错误
由于ACK界定符被前面的应答场严重压缩,导致被某个节点识别为显性(原本是隐性),所以这个识别错误的节点后面发出了错误帧,进行全局通知,让发送节点重新发送。
CANScope分析仪可以提供传输延迟测量的功能,可以进行单帧的延迟测量,也可以进行所有波形的延时统计。如图3所示,可以通过延迟测量出导线的等效长度,即最大延迟÷5ns/m,并给出该波特率下最长等效传输距离。
图3 CANScope传输延迟测量功能
通过延时上限可以了解到,我们需要严格的控制总线上各个部分造成的延时时间,确保延时时间总和在一定范围内。接下来,以CAN FD为例,了解一下造成延时的具体原因。
如图4所示,CAN FD网络上两节点之间通信过程中,CAN FD报文首先从节点A控制器发出,经过隔离器件、CAN FD收发器发送到总线上,再通过一段距离的传输依次达到节点B的CAN FD收发器、隔离器件,CAN FD控制器,最后又节点B发出ACK显性应答位,重复上述过程到达节点A。很明显,整个过程中,会影响信号传输延迟的因素有:CAN FD控制器、隔离方式、收发器循环延时、线缆传播。
图4总线节点通讯结构
CAN FD控制器造成的延时可以从两方面分析:
l 软件延时:在应用进程中,主CPU将数据从CAN FD控制器中读写耗费的时间;
l 控制器延时:CAN FD控制器实现串行化信息所耗费的时间。
这个过程中与主控制器、CAN FD控制器、接口芯片等有关,通常情况下,延时在纳秒级以下,可以忽略不计。
为了增加信号传输的可靠性,通常都会在CAN FD底层硬件设计中添加隔离设计。隔离器件的添加,带来一定的延时并影响CANFD系统容许的线缆长度。不同的隔离方式,延时效果也不同。