当前位置: 首页 > article >正文

汽车免拆诊断案例 | 2016 款宾利GT车仪表盘上的多个故障灯点亮

故障现象

一辆2016款宾利欧陆GT车,搭载CYCB发动机,累计行驶里程约为4.5万km。据车主反映,发动机偶尔无法起动,仪表盘上的多个故障灯点亮(图1)。此外,刮水器、电动车窗及空调等电器设备功能失效。

图1 仪表盘上的多个故障灯点亮

故障诊断

接车后,用故障诊断仪(ODIS)检测,在网关内存储有多个控制单元无通信的故障代码(图2),初步判断车辆数据通信总线存在故障。

图2 网关存储的故障代码

查看故障诊断仪对系统测试结果,动力系统CAN总线上的发动机控制模块、变速器控制单元、ABS控制模块和安全气囊控制单元均能够正常通信,信息娱乐系统CAN总线上的音响放大器、无线电导航系统控制单元等也能够正常通信(图3)。

图3 故障诊断仪对系统测试结果

根据上述检查,判断动力系统CAN总线和信息娱乐系统CAN总线工作正常,舒适系统CAN总线存在故障,推断可能的故障原因有:舒适系统CAN总线线路故障;舒适系统CAN总线上的控制单元损坏。

查阅相关电路得知,网关集成在仪表盘控制单元(J285)内,并将各个总线系统传递的信息进行翻译转换,满足各个总线系统的通信需求。舒适系统CAN总线上共连接了16个控制单元,通过总线系统分线器TV26 连接至仪表盘控制单元(表1)。

表1 连接至舒适系统CAN总线上的控制单元

对读得的故障代码进行分析,发现舒适系统CAN 总线上的所有控制单元均无法通信。若CAN总线线路损坏,则直接会导致此故障现象,优先检查舒适系统CAN总线线路。断开蓄电池负极接线柱,用万用表测量舒适系统CAN总线的CAN-L线与CAN-H线之间的电阻,正常,且对车身搭铁、电源无短路情况。连接示波器测量舒适系统CAN总线的信号波形,测得的信号波形如图4所示。

图4 测得的舒适系统CAN总线信号波形

对波形进行分析,舒适CAN-L隐性电压为5.0 V,显性电压约为1.2 V;舒适CAN-H隐性电压为0 V,显性电压约为3.7 V,说明舒适系统CAN总线工作电压正常,也侧面验证了CAN总线线路正常。

将波形放大,能够看到CAN总线上一直有信号传输,并且每个信号传输的时间间隔仅为170 μs,CAN总线系统被完全占用。使用示波器软件内的串行译码功能对舒适系统CAN总线进行译码(图5),发现每个CAN信号波形都相同,并且串行译码信息也相同。

图5 对舒适系统CAN总线进行译码

通过串行译码信息发现CAN总线上的波形由同一个控制单元地址码ID(340)发送,但是信息并不完整,而且相同的CAN 信息重复多次发送。

通过串行译码信息不能直接判断出是哪个控制单元在发送错误的CAN信号,由于没有车辆原厂数据与串行译码得出的信息数据进行对比,但可以通过串行译码功能评估CAN总线信号的报文和数据帧是否正常。若是正确信息,则会标记为黑色;若是错误或无效信息,则会标记为红色。根据上述检查,推断某个控制单元一直发送错误的CAN信号占用了舒适系统CAN总线。那究竟是哪个控制单元一直发送错误信号呢?

由表1可知,舒适系统CAN总线上共连接了16个控制单元,通过总线系统分线器TV26连接至仪表盘控制单元,能在舒适系统CAN总线上发送信息的一定在这16 个控制单元内,那么一直发送错误CAN信号的控制单元应为这16个控制单元中的一个。想要判断出哪个控制单元损坏,最直接的方法是依次断开这16个控制单元的供电,使其不再发送错误的CAN信号。依次拔下各控制单元的供电熔丝,当拔下右后车窗升降器控制单元的供电熔丝(图6)后,舒适系统CAN总线的信号波形和串行译码信息恢复正常。

图6 右后车窗升降器控制单元的供电熔丝

故障排除

更换右后车窗升降器控制单元(图7),反复试车,上述故障现象消失,至此故障排除。

图7 右后车窗升降器控制单元

故障总结

CAN总线故障复杂多样,诊断起来难度通常较大。本案例中,右后车窗升降器控制单元重复发送同一个错误信号,占用整条CAN线通信,致使其他模块无法工作。而这一点,仅使用万用表测平均电压无法发现,仅观察CAN波形也无法判断。使用Picoscope7,则可一键实现串行译码,错误报文自动标注,问题一目了然,大大提升了诊断效率!

作者:上海永达汽车集团有限公司 张非凡


http://www.kler.cn/a/326141.html

相关文章:

  • 【Docker】在 Ubuntu 上安装 Docker 的详细指南
  • 通过shell脚本分析部署nginx网络服务
  • 学习大数据DAY61 宽表加工
  • Mac os 系统上如何开启远程登录的 ssh 22 端口
  • RabbitMQ教程:发布/订阅模式(Publish/Subscribe)(三)
  • Java putIfAbsent() 详解
  • 使用TensorFlow实现一个简单的神经网络:从入门到精通
  • 动手学深度学习(李沐)PyTorch 第 3 章 线性神经网络
  • TiDB 性能测试的几个优化点
  • Leetcode热题100-438 找出字符串中所有字母异位数
  • R语言非参数回归预测摩托车事故、收入数据:局部回归、核回归、LOESS可视化...
  • 408算法题leetcode--第19天
  • java通过webhook给飞书发送群消息
  • PTA L1-080 乘法口诀数列
  • C语言线程编程深度解析
  • Elasticsearch UNASSIGNED 怎么修复
  • OJ在线评测系统 后端 用策略模式优化判题机架构
  • MySQL基础篇 - 约束
  • Eclipse Memory Analyzer (MAT)提示No java virtual machine was found ...解决办法
  • Altium Designer脚本的执行方式
  • 【漏洞复现】VEXUS多语言货币交易所存在未授权访问漏洞
  • centos已安装python3.7环境,还行单独安装python3.10环境,如何安装,具体步骤
  • 进程、线程、协程详解:并发编程的三大武器
  • websocket初识
  • 数据集-目标检测系列-兔子检测数据集 rabbit >> DataBall
  • 中国资产“超级星期四”之后,腰部中概股或成增长“黑马”