最近对CAN 信号时域延迟以及延时测量的讨论非常多,因此我想到了在CAN bus网络的不同位置来观察CAN总线信号延时。是不是在双绞线的任何位置,CAN信号结构都一样呢?信号都是同步的吗?
实际上,信号在CAN总线上传输时,不可避免会有时域延迟,这和双绞线的长度有关。当然也跟CAN信号的传输速率相关,不过传输速率接近光速,已经尽可能地减少延迟了。
试想一下,CAN信号从变速杆这个位置通过bus网络传输到同一网络下的其他控制模块。由于这些控制模块的位置各不相同,中间要经过接线盒、连接器、插头以及弯曲的电线等等,这是一段相当长的传输距离。这些都会对CAN信号的阻抗产生影响,而且CAN信号小电流传输时对细微的阻抗变化比较敏感,尽管CAN总线抗干扰能力很好。
CAN总线信号传输出现一些延时是正常的,只要这个延时在一定的标准范围之间即可。大多数情况下,都不会导致其他故障问题。但是,在CAN bus网络不同位置测量信号延时并进行分析是非常有帮助的!接下来我们就结合虹科Pico示波器、PicoScope软件的DeepMeasure深度测量功能以及EXCEL绘制CAN总线信号延时图形。
如图1所示,A和B通道是在变速杆测得的CAN高和CAN低信号,C和D通道是在FEM(车身前端模块)测得的CAN高和CAN低。为了减少噪音干扰,我们使用的是TA375高阻抗探头(10倍衰减),这有助于精确测量CAN总线信号延时。更多内容请浏览以下帖子:高阻抗探头TA375测CAN和FlexRay。
我还添加了数学通道A-B(紫色)和数学通道C-D(青色),这是变速杆和FEM处的差分信号波形。
图1.两个位置的CAN信号
将所有通道的零刻度线移动到同一位置,放大其中一个周期的一个字节波形,如图2所示。
图2
继续放大波形的上升沿位置,然后拖动时间标尺测得大约延时70纳秒,如图3所示。
图3
请记住,这辆车的CAN bus网络是正常的,图3中的信号延时在正常可接受范围内。但是,我们只测量了某个周期内一个CAN字节的上升沿波形。使用DeepMeasure功能,可以测出所有周期信号的开始时间和结束时间。更多关于DeepMeasure功能的介绍请浏览以下论坛帖子:【新功能】DeepMeasure深度测量
图4.DeepMeasure设置
如图4所示,我们对数学通道A-B使用DeepMeasure功能,仅在缓冲区18上测量,循环阈值设为1V,循环滞后量设为40mV。数学通道C-D也是一样的参数设置。以下有3点需要注意:
l 初始捕获波形时需要使用触发,因为各个通道是参考触发点定位的。我们在图1中A通道的上升沿设置了触发,阈值设为3V。
l DeepMeaure测量的是各个周期的开始时间和结束时间,而不是字节的,一个循环周期包含了显性字节和隐形字节。从前一个显性字节上升沿达到1V阈值开始(3.1ns),到下一个显性字节上升沿达到1V(10.0μs),这一段算作一个循环周期,如图5所示。
图5.循环周期
l 变速杆处(Shift Lever)和FEM处使用DeepMeasure测得的循环编号数量不一样。理论上应该是相同的循环周期数,但变速杆处有195个循环,FEM处有197个。如图6所示,这会是一个错误吗?
图6.循环编号数量不同
使用软件的放大功能观察两个差分通道波形,我们可以看到一直到循环周期140-143两个波形都是同步的。但是在循环144,出现了延时导致波形不同步,如图7所示。
图7.信号延时
将循环144放大如图8,我们发现数学通道C-D上有一个负的过冲差分信号,产生了额外的尖峰,数学通道A-B上没有这种情况出现。再次重申,这辆车的CAN网络是正常的,这里并不是一个故障,但确实体现了不同模块位置CAN信号的不同。如果遇到CAN bus网络有故障的汽车,我们可以用上述方法进行诊断分析。
图8.第144个循环出现尖峰干扰信号
这也提示我们需要将数学通道C-D的DeepMeasure参数设置进行修改,我们将阈值提高到1.3V,同时对D通道信号采用了6MHz的低通过滤。现在144之后的循环就同步了,如图9所示。
图9.修改循环阈值
现在确定两个DeepMeasure表格的循环编号数量是一样的,我们就可以将两个表格的数据都导出到EXCEL表格中,如图10所示。然后我们可以根据导出数据中的开始时间绘制折线图,比较两个不同位置的信号。
图10.导出数据
以下视频介绍了软件设置、导出到EXCEL和绘图的过程,欢迎下载观看:
图11中我将两个DeepMeasure表格测得的开始时间绘制成了折线图,可以看到两条折线图几乎是重合的,循环周期数是一样的。
图11.循环周期数相同
为了进行对比,我将之前两个表格循环周期数不同的数据也导出到EXCEL中。这个时候由于通道C-D上有尖峰干扰,阈值设置较低导致信号不同步,如图8所示。同样地,将两个表格数据中的开始时间绘制成折线图,如图12所示,可以看到出现两条折线出现分离不同步,不过不是很明显。
图12.循环周期数不同
为了更明显看到不同步现象,我们调整Y轴的量程,如图13所示。现在可以清楚地看到,大概在第148个循环处,两条折线明显分离。
图13.信号不同步
请注意,为了避免测试方法影响了信号观察和分析,建议我们注意以下几点:
1. 使用高阻抗TA499/TA375探头;
2. 确保接地良好,不要将测试线延长;
3. 尝试直接连接到ECU针脚上,尽可能不用引线,不要用刺针刺破线缆;
4. 避免电磁干扰,保持电池状态正常。
通常情况下,如果做到上述几点,是不需要采用低通滤波功能的,也不需要修改循环阈值。
DeepMeasure功能能够在多达一百万个波形周期内自动测量重要波形参数,可以轻松地对结果进行分类、分析并将其与波形显示相关联。相比使用缩放功能一个一个周期进行测量方便准确得多。
最后给大家分享一个马自达汽车CAN 总线案例,出现了非常多的通讯网络故障:以技会友。图14中揭示了这个马自达汽车同一CAN网络不同位置出现了灾难性的不同步通讯故障。图15根据DeepMeasure测得的数据,清晰地表明了两条折线出现分离。
图14.马自达通讯故障
图15.CAN循环周期出错,信号不同步