CAN总线丢帧案例诊断经验
扫描二维码
随时随地手机看文章
一、现场通讯故障描述
用户现场为一煤安监控网络,节点包括一个主站设备、两个分站设备,主站设备对分站设备进行轮询式数据查询。故障出现时发现分站上传的数据出现缺失现象。致远电子工程师将专业工具——CANScope分析仪接入故障网络捕获数据,然后进行分析。现场情况如图1所示。
图1 现场测试图片
二、对故障通讯网络快速体检
监控系统上电工作后,记录一段时间数据,通过【报文帧统计功能】分析,此次测试样本为135个帧,成功报文119个,正确率为88.15%。错误帧类型主要包括CRC定界符错误、帧结束错误、应答定界符错误、数据场填充错误。使用CANScope分析仪轻松捕获到网络中的错误数据,如图2所示。
图2 报文帧统计结果
三、数据丢失分析
由于用户采取轮询的方式查询分站数据,存在固有的数据周期,通过【流量分析功能】可以发现,未丢数据的周期中,包含7条有效报文,如图3所示。
图3 未丢数据周期
丢数据的周期中出现了红色的错误帧,如图4所示。有效报文数量=周期报文总数7-错误帧数量。我们都知道在正常模式下CAN总线中出现错误帧后底层会实现自动重发,保证报文不会因为错误帧而丢失,然而在本网络中这一机制未能实现。通过检查软件,发现软件工程师在CAN控制器初始化代码中禁用了重发功能,导致错误帧不能重发。
图4 丢数据周期
四、错误帧分析
通过修改代码解决了数据重发的问题,但是网络中偶尔冒出的错误帧仍然是工程师的一块心病,错误重发机制的使能仅仅是治标不治本,那么究竟是什么原因导致CAN网络中出现错误帧呢?这就需要借助CANScope的信号质量分析功能。通过观察错误帧的波形我们发现,CAN信号上存在很严重的共模干扰,使得CAN_H和CAN_L上的单线波形畸变严重,如图5所示。
图5 波形分析
选取一条错误帧使用【FFT分析功能】进行分析可以看到该错误帧信号上的频域特性,其中在27KHz频点上存在很强的能量,幅值甚至达到了1.38V,如图6所示。我们知道CAN总线的显隐性电平的压差很小,1V左右的干扰很容易导致电平识别错误,出现错误帧。
图6 FFT分析
这一干扰是否具有统计特性呢,使用【干扰统计功能】针对所有样本数据做干扰频点强度排序,可以发现干扰最强的频点集中在27KHz附近,如图7所示。因此在CAN网络附近确实存在这样一个干扰源。经过工程师们的排查发现,这一干扰频率与开关电源的开关频率最吻合,由于所有CAN节点未做隔离导致电源串扰,引发错误帧。
图7 干扰统计
五、总结
使用致远电子的CANScope分析仪为何能够标本兼治地解决CAN网络通讯故障呢?
这是因为CANScope总线综合分析仪是一款综合性的CAN总线开发与测试的专业工具,集海量存储示波器、网络分析仪、误码率分析仪、协议分析仪及可靠性测试工具于一身,并把各种仪器有机的整合和关联;重新定义CAN总线的开发测试方法,可对CAN网络通信正确性、可靠性、合理性进行多角度全方位的评估;帮助用户快速定位故障节点,解决CAN总线应用的各种问题,是CAN总线开发测试的终极工具。