低速 CAN 总线偶尔无法正常通信,该如何诊断?
一、故障诊断
一辆2010款大众途锐车,搭载BHR发动机,累计行驶里程约为19万km,行驶中组合仪表上的多个故障灯(电动转向助力系统故障灯、ABS故障灯、前照灯照明距离调节故障灯及空气悬架系统故障灯等)突然点亮,且组合仪表背景灯熄灭,组合仪表右下角的蓄电池电量指示灯归零,同时还伴有空调鼓风机不工作、车窗玻璃无法升降等故障现象。故障现象仅能持续几秒钟,然后一切恢复正常,故障频率不高,也没有规律,有时好几天才出现1次,有时1天出现好几次。
二、故障诊断
用故障检测仪检测,发现网关中存储有多个控制单元无通信的故障代码(图1),且这些控制单元都连接在舒适CAN总线上,由此推断该车舒适CAN总线偶尔无法正常通信。
该车的舒适CAN总线为低速总线,数据传输速率为100 kbit/s,采用双绞线连接,分别传递CAN-H信号和CAN-L信号。CAN-H线和CAN-L线之间没有终端电阻,两者是彼此独立工作的。低速CAN总线支持单线模式,当CAN-H线或CAN-L线其中一条导线出现故障时,比如断路、对搭铁短路或对正极短路,系统仍然可以工作;当CAN-H线和CAN-L线相互短路时,两条CAN线上的信号电压是相同的,系统会关闭CAN-L线,只使用CAN-H线通信。
如图2所示,在不发送信号时(隐形状态),CAN-H线上的电压约为0 V,CAN-L线上的电压约为5 V;当发送信号时(显性状态),CAN-H线上的电压约为4 V,CAN-L线上的电压约为1 V。
低速CAN总线一般不容易出现无法通信的故障,毕竟CAN-H线和CAN-L线同时损坏的概率很低,还有一种可能是某个控制单元损坏,造成整个舒适CAN总线都无法通信,但具体是哪个控制单元损坏不得而知,首先得想办法采集故障出现时的数据。经过反复试车发现,在尽可能多地使用车上的电器设备(比如接通前照灯、雾灯、危险报警灯、音响和空调,反复按喇叭,以及反复升降车窗玻璃)时,故障出现的频率较高。
用pico示波器测得故障出现时舒适CAN总线的信号波形如图3所示,分析认为,CAN-H线和CAN-L线上在重复传递两组不同的电压波形,即CAN-H线在传递一组数据,与此同时CAN-L线在传递另一组完全不同的数据。用pico示波器诊断软件自带的串行译码功能对舒适CAN总线的信号波形进行译码(图4),发现CAN-H线上数据(蓝色波形)的ID为404,CAN-L线上数据(红色波形)的ID为408。由于每个ID只能对应一个控制单元,因此CAN-H线和CAN-L线上的信息是由2个控制单元分别发送的。
故障出现时CAN总线上仍能保持规律的电压波形,暂时排除线路存在问题的可能。这个故障很奇怪,由于某种原因造成CAN-H线和CAN-L线上发送的信息不一致,控制单元无法识别CAN总线上传递的信息,以致整条舒适CAN总线上的控制单元均暂时失去通信。由于没遇到过这种故障,只好仔细地分析波形,结果意外地发现舒适CAN总线偶尔处于单线模式(图5),有时是CAN-H线上的信息缺失,有时是CAN-L线上的信息缺失,另外还注意到,故障发生前会连续出现几次单线发送信息的情况。
真的有控制单元处于单线模式吗?再次用故障检测仪检测,发现前部车身控制单元、后部车身控制单元、组合仪表、网关及左后车门控制单元等中存储的故障代码“单线的舒适/便捷功能数据总线组,断路,静态”无法清除。读取网关中舒适CAN总线的通信数据流(图6),发现只有左后车门控制单元处于单线模式,其他控制单元均能正常通信。拆下左后车门内衬,测量左后车门控制单元与网关(该车的网关集成在组合仪表中)之间的舒适CAN总线是否导通,发现橙/棕色的CAN-H线断路了,“飞线”搭接左后车门控制单元与网关的CAN-H端子,所有故障代码均变为偶发状态,且舒适CAN总线的通信数据流也恢复正常,说明这就是故障原因。
顺着线路查找断路点,最终在驾驶人侧B柱下方发现问题,此处CAN-H线的接点进水腐蚀(图7),上面的3根线分别连接至网关、左后车门控制单元及驾驶人侧座椅控制单元,其中网关与驾驶人侧座椅控制单元的线路连接很牢固,而左后车门控制单元的线路只是稍微挨着一点,用手轻轻一拽就掉了,说明故障是由左后车门控制单元的CAN-H线虚接引起的。为验证推断的准确性,人为将左后车门控制单元的CAN-H线断开,用故障检测仪读取故障代码,发现仍然是之前的那几个控制单元记录舒适CAN总线处于单线模式的故障信息,同时还发现,每当升降左后车窗玻璃时,之前的故障现象就会出现。
三、故障排除
修复驾驶人侧B柱下方的CAN-H线接点后反复试车,故障未再出现,交车半个月后回访客户,车辆使用一切正常,故障排除。
四、故障总结
CAN总线使用两条导线传递信息,为了消除干扰,控制单元在接收信息时使用差分信号,即用CAN-H线的电压减去CAN-L线的电压,以此确保数据能够可靠传输。舒适CAN总线进入单线模式后,抗干扰能力和容错能力下降,在网络通信繁忙时容易出现工作不正常的情况。
更多修车案例、教学视频请关注官微:
低速 CAN 总线偶尔无法正常通信,该如何诊断?相关推荐
- 详解CAN总线:高速CAN总线和低速CAN总线的特性
目录 1.高速CAN总线 1.1.电气特性 1.2.终端电阻 1.3.总线长度 1.4.布线电缆 1.5.设备数量 2.低速CAN总线 2.1.电气特性 2.2.终端电阻 2.3.总线长度 2.4.布 ...
- 【STM32H7教程】第94章 STM32H7的SPI总线应用之双机通信(DMA方式)
完整教程下载地址:链接 第94章 STM32H7的SPI总线应用之双机通信(DMA方式) 本章节为大家讲解SPI DMA方式双机通信. 目录 94.1 初学者重要提示 94.2 SPI D ...
- STM32应用开发实践教程:基于 CAN 总线的多机通信应用开发
5.2.1 任务分析 本任务要求设计一个基于 CAN 总线的多机通信系统,该系统须具备交互多种类型数据(如 环境温度.环境湿度和光照强度等)的能力. 发送单元对待发数据进行编码,组建 CAN 数据帧, ...
- 「后端小伙伴来学前端了」Vue中利用全局事件总线实现组件之间通信
月亮啊月亮 你能照见南边,也能照见北边 照见她,你跟她说一声,就说我想她了. 前言 前一篇文章写了 vue 中利用 Props 实现组件之间的通信,那种方式是最简单也是最基础的组件之间的通信方式.父组 ...
- STM32应用开发实践教程:基于 RS-485 总线的多机通信应用开发
5.1.1 任务分析 本任务要求设计一个基于 RS-485 总线的多机通信系统,系统中有两台设备(理论上最多可 接入 32 台设备).其中一台设备作为主机,连接 OLED 显示屏:另一台设备作为从机, ...
- 台达ASDA-B3 CAN总线位置模式简单通信
初始化配置: 1. P1.001:设置0x0C, CANOpen模式 2. P3.000:设置CANID 3. P3.001:设置波特率 4. P1.044/P1.045:电子齿轮分子分母设置,一般分 ...
- 详解CAN总线:CAN总线通信优先级机制
目录 1.数据帧和遥控帧的优先级 2.标准格式和扩展格式的优先级 在详解CAN总线:CAN总线报文格式-数据帧文章中,讲解到仲裁段.仲裁段用于写明需要发送到目的CAN节点的地址.确定发送的帧类型(当前 ...
- 细说汽车电子通信总线之CAN 2.0 总线协议详解
引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...
- 细说汽车电子通信总线之LIN总线协议详解
内容提要 1. LIN总线概述 1.1 LIN总线特点及发展历史 1.2 LIN 总线协议的物理层(收发器) 2. LIN总线报文帧结构(Message Frame Structure)详解 2.1 ...
最新文章
- IBM Thinkpad T43-44U 升级到 2G 内存后少了 66M
- 机器学习之sklearn基础教程!
- SAP MM IV中的Duplicated Invoice Check功能的测试
- 【转】SAP中的FTP操作样例
- Oracle为什么装在XP系统,重装xp系统后oracle恢复方法
- C++:17---sizeof运算符
- 美国华裔科学家谈免疫系统真相!运动,心情胜过一切药品!
- 论文浅尝 | 基于知识图谱嵌入的 Bootstrapping 实体对齐方法
- 二进制权值计算 lsb_2020年二级计算机基础知识备考(第二章)
- 字符串算法 —— 两字符串相同的单词
- gvim 命令行粘贴_vim-如何在光标所在的行中粘贴?
- lecture7-序列模型及递归神经网络RNN
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第1节零基础快速入门SpringBoot2.0_3、快速创建SpringBoot应用之手工创建web应用...
- C++ string append方法的常用用法
- 学习笔记(10):每一道试题都是有解题密码(2018年下半年信息系统项目管理师试题讲解)-用这种简单方法破解这么难的试题,我也是醉了(试题21-25)...
- Arduino 控制 DS1302 时钟芯片
- office2021相对旧版本有哪些优势?
- STM32F429-Discovery 编译 uclinux
- 使用机器学习进行语言翻译:神经网络和seq2seq为何效果非凡?
- VueFastDev - 前端快速开发工具 (更新树形选择器)
热门文章
- 虚拟现实如何让学习成为全民化体验?
- 峰值,平均值,准峰值检波器
- 计算机的应用采用进位制,为什么计算机采用二进位制运算?
- 深度理解特斯拉自动驾驶解决方案 3:规划与控制
- photon多人在线_Photon Cloud网络多人游戏开发简介
- Git代码管理常用指令(Git+Gerrit)
- 当前目录下有一个文件名为 score1.txt 的文本文件,存放着某班学生的计算机课成绩,共有学号、平时成绩、期末成绩三列。请根据平时成绩占 40%,期末成绩占 60%的比例计算总评成绩。
- 2019年CS224N课程笔记-Lecture 13: Contextual Word Representations and Pretraining
- php excel导入数组,利用PHPExcel导入xlsx/xls,将xlsx、xls转换为数组
- linux ubuntu编码转换,Ubuntu中的文件编码转换