CAN诊断浅谈 如何用CAN工具进行诊断
转:https://mp.weixin.qq.com/s/bcuoUQfkfyx6rtbgw-Z_BQ
引言:
从之前的课程我们了解到, 车上的智能硬件设备太多, 即ECU节点太多, 这些节点通过CAN总线外加汽车网关, 组成了整车CAN网络. 当车辆某个节点, 或者某条CAN总线出故障甚至网关出故障了, 会有什么现象呢?
某ECU节点故障: 也就是你的车上的某个智能硬件不work或者不好用, 比如空调这个设备无法调节温度了.
某条CAN总线故障:比如BCAN整条CAN总线都不work了, 那整条CAN总线上的智能硬件(ECU节点)会功能不好用, 比如语音控制打开天窗, 没效果了, 必须要手动用硬件打开天窗.
CAN网关除故障了: 嘴哥还没碰见过...., 但肯定是更加严重的, 比如到处都发出报警提示音, 因为很多ECU节点都丢失了.
但以上一般是不会有生命危险的,动力系统一般还可用, 车窗啥的单独的硬件按钮调节.
这时候你把车开去4s店维修:
如果是4s店的维修工人, 一般是会帮您读取下诊断故障码,然后发现某项ECU的参数不对, 然后跟您说重新刷了下软件或更换了整个智能硬件. 这就是CAN诊断最通俗的解释了.
什么是ECU自检与诊断故障码
ECU自检:每个ECU都有自己故障检测功能, 基本上每个ECU都有一块EEPROM(可读性可编程存储器),可存储自身故障信息,但是以上故障信息一般会上传至网关的EEPROM,并以诊断故障码(DTC:Diagnose Trouble Code)的形式存储.
什么是CAN诊断
CAN诊断, 即对CAN网络各节点, 各CAN总线, 网关的故障查验与修复.
查验包括: 诊断故障码查询
修复包括: 重新对ECU写入新的配置值
CAN诊断的发起条件
需要通过Diag CAN才能进行诊断.
一般是将直接将CAN硬件工具(诊断仪, PCAN-USB, Vehicle SPY3, CANoe...)的CAN-High, CAN-Low直接接到Diag 诊断CAN上, 然后通过诊断仪, PCAN-Explorer, Vehicle SPY3, CANoe等软件发送CAN诊断输入!
也有通过Tbox进行本地诊断或远程诊断的, 因为Tbox是诊断CAN总线上的唯一节点.
一般 什么人会用到诊断
① 4s店的维修人员, 他们一般只需要做读取故障码(19服务), ECU参数写入服务(2E服务), ECU参数读取服务(22服务)
② Tbox开发测试, 网关开发测试人员, 由于Tbox可发起本地诊断与远程诊断, 网关负责诊断信号转发, 所以都需要测试诊断.
③ 车厂的电子电气研发部门研发人员.....
CAN诊断标准介绍
统一诊断服务(UDS:Unified Diagnostic Services), 即IOS-14229标准, 绝大大部分汽车厂商用的诊断服务,诊断命令都大同小异, 唯一可能不同的是各厂商某些数据标识符(DID)及程序标识符不一致.
统一诊断服务(UDS)规定了以下诊断发起的服务, 诊断回应规范等:
诊断请求(发起)服务_Request
注: 以下都是16进制数字,本应该加上0x前缀.
一般诊断请求(发起, 就是我们常说的Request)的输入格式: 710 02 10 01
常用的诊断请求(发起)服务列表:
10: 诊断会话请求服务
必须先发起诊断会话, 不然无法进行其他诊断服务发起服务.
也就是说只要诊断, 必须先用10服务, 发起诊断会话session,
类似于先建立握手,
常用如:710 02 10 01 (10代表诊断会话发起服务, 01代表默认会话功能)
2E: 写入配置请求服务
简单点说: 对某个ECU写入配置项数据, 就是常听说的重新标定.
常用如:710 07 2E C0 01 01 03 22 FF (C0 01是一个DID数据标识符, 代表某ECU节点的多个参数, 01 03 22 FF代表ECU里的以上多个参数应该设定的值),
11: 网关复位刷新请求服务
一般如果用2E写入ECU配置值值后, 必须对网关刷新复位, 不然这个值可能不会立马生效.
常用如: 710 02 11 01 (代表向所有的ECU发起硬复位请求)
27: 安全访问认证请求服务
一般如果需要涉及2E写入ECU配置项等服务时, 必须通过网关的安全认证, 不然无权限修改, 你可以理解成, 没成功申请到27安全访问的话, 你的CAN网络权限是只读的, 不可写.
常用如:710 02 27 03 (代表向网关发起安全认证的请求)
22: 读取配置请求服务
简单点说: 读取某个ECU配置项信息
常用如:710 03 22 C0 01 (代表读取C0 01 这个数据标识符里的多项参数值)
19: 读取故障码请求服务
读取正常CAN网络的故障信息, 一般有ECU节点丢失(比如ECU节点松动脱落或者烧坏了等), 电压过高过低, CAN总线异常(即Bus Off)等...这些故障会记录在一串超长故障码(DTC)列表里.
常用如:710 03 19 02 0C (代表读取整个CAN网络的当前已生效的故障码)
14: 清除故障码请求服务
清除所有ECU的诊断故障码, 包括故障码相关的快照等,
如果CAN网络有故障, 其会源源不断的反馈以上故障,
即使清除后也会立马再发出.
常用如:710 04 14 FF FF FF (代表清除所有ECU上的诊断故障码(包括故障码相关的快照等.))
诊断回应_Responding
任何一轮诊断输入后, 都会有诊断回应帧, 一般是帧ID是:718
但是分为肯定回应及否定回应.
肯定回应:
即您刚才输入的诊断命令,目标对方(网关或某节点)已经收到并做了处理返回.
比如以下是: 10 诊断会话服务发起后, 收到的肯定回应,
如下示例:
否定回应:
即您刚刚输入的诊断命令, 目标对方(网关或某节点)因为某些原因,未成功收到或者未做处理就被打回了, 可以理解成吃了闭门羹.
看到7f否定回应码就知道吃闭门羹了, 所有吃闭门羹的都是7f否定回应码.
比如以下是: 10 诊断会话服务发起后, 收到的否定回应:
以上的吃闭门羹的原因是: 22条件不符合.
其实还有很多其他的原因会导致吃闭门羹, 常用的有:
11 服务不支持
12 子功能不支持
13 报文长度错误
31 请求超出范围.....
实例
用PCAN-USB 读取诊断故障码(19服务)
1. 发起诊断会话10服务01默认会话功能并成功收到肯定回应
710 02 10 01
2. 发起诊断故障码查询服务19服务02按故障掩码查询方式功能0C已经确认的诊断故障代码
710 03 19 02 0C
3. PCAN-Explorer端的输入如下:
即每10ms一轮的故障码查询服务.
点击ok后, 就到以下页面,
诊断请求, 请看Transmit消息发送去的710帧,
诊断回应结果, 请看Receive消息接收区的718帧.
具体数据比较长, PCAN-Explorer这里只显示了:
10 73 59 02 FF C1 40 87 这8个字节, 其实不止的,
通过其他的CAN工具(支持超过8个的多字节显示)读取出:
10 73 59 02 FF C1 40 87 2F C1 64 87 2F D0 01 87 2F D1 40 87 2F C1 55 87 2F C1 98 87 2F C2 45 87 2F C1 51 87 2F D2 64 87 2F C1 21 87 2F C1 26 87 2F C1 28 87 2F C1 00 87 2F C1 01 87 2F C1 02 87 2F D0 08 87 2F C2 93 87 2F 91 65 17 2F 91 67 17 2F 40 42 54 2F 05 64 1C 2F 05 89 1C 2F 08 26 1C 2F D0 03 87 2F C2 36 87 2F D0 09 87 2F 91 6A 17 2F C1 27 87
10代表超长字节
73代表数据长度, 共73个字节
59代表发起的19服务+40的偏移量
FF代表之前故障(之前有问题, 但是现在故障已经不存在了)
2F是当前故障(现在还没好,故障还存在)
以上FF和2F共28次出现, 代表了28个故障信息,
比如FF C1 40 87就是一条"之前故障".
具体是什么故障, 要看C1 40 87的文档定义了,个人认为每个厂商的定义可能不一样.
以上只是嘴哥的浅谈CAN诊断.
有需要详细了解CAN诊断的朋友可以看看下面这批文章, 这偏文章写的超级赞, 算是CAN诊断里写的最通俗易懂的一篇文章了.
https://wenku.baidu.com/view/f2c2cc6afd0a79563c1e72d7.html?from=search
这是网友分享的众泰公司的诊断需求说明书.
学好了诊断, 您应该就可以进行tbox测试了, 及部分的网关测试, 也会模拟发送各种信号了. 诊断算是CAN教程里边最简单的课程了, 嘴哥不骗人, 因为嘴哥已经实现了诊断的自动化测试.
而且CAN诊断是统一标准, 各个公司都用UDS统一诊断服务, 大同小异的!
祝您成功!
CAN诊断浅谈 如何用CAN工具进行诊断相关推荐
- 嘴哥有料系列-can工具1:CAN诊断浅谈 + 如何用CAN工具进行诊断
原文章:https://mp.weixin.qq.com/s/bcuoUQfkfyx6rtbgw-Z_BQ 引言: 从之前的课程我们了解到, 车上的智能硬件设备太多, 即ECU节点太多, 这些节点通过 ...
- 浅谈计算机实用教学工具应用的体会,浅谈计算机常用工具软件教学心得.doc
浅谈计算机常用工具软件教学心得 浅谈计算机常用工具软件教学心得 摘 要:随着计算机技术的普及,社会对掌握计算机技术的人才不断提出新的要求,人们所需要掌握的计算机技术也越来越多.<计算机常用工具软 ...
- 教师教学常用计算机软件,浅谈《计算机常用工具软件》的教学心得
摘 要:随着计算机技术的普及,社会对掌握计算机技术的人才不断提出新的要求,人们所需要掌握的计算机技术也越来越多.<计算机常用工具软件>具有实践性.应用性.灵活性等特点,旨在培养职高学生能够 ...
- 【安全工具】浅谈编写Java代码审计工具
介绍 笔者是大四学生,初涉安全的萌新,如果文章有错误之处还请大佬指出! 最初考虑采用纯正则等方式匹配,但这种方式过于严格,程序员编写的代码有各种可能的组合 于是尝试自行实现Java词法分析和语法分析, ...
- 浅谈敏捷开发scrum工具leangoo(三)
之前两篇有说到敏捷开发及Scrum的一些概念及实施,现在再来记录下我们在敏捷开发实施中使用的一些工具,主要说下leangoo 工具不是敏捷开发及Scrum的必须品,但有了工具,可以让敏捷开发更好的实施 ...
- 浅谈代码自动构建工具
一些小想法: 新加入到一家公司,继续我的棋牌游戏开发生涯.该公司和大多数公司一样,大力发展地方棋牌. 地方棋牌开发的要求就是:快.准.狠! 怎么做到这些要求呢?我的想法就是用工具解放劳动力! 换句话, ...
- 浅谈前端项目打包工具webpack和gulp
webpack:一个模块打包工具(更适合单页面spa模块开发) Webpack更侧重于模块打包,把开发中的所有资源(图片.js文件.css文件等)看成模块.Webpack是通过loader(加载器)和 ...
- shell浅谈之七文本处理工具grep、sed、awk
一.简介 Bash Shell提供了功能强大的文件处理工具:sed(流编辑器stream editor)和awk,都可使用正则表达式进行模式匹配.而grep又有助于理解sed和awk. 二.grep命 ...
- 浅谈ABB机器人(工具坐标,工件坐标,有效载荷)
工具坐标(tool): 使tcl坐标偏移到工具上,例如焊接工作,使机器人工作点切入焊枪点上 mass:工具的重量 xyz:偏移距离的大小 验证:通过手动模式,切换至自定义工具,重定向 工件坐标(wob ...
最新文章
- select2 使用
- jmap 文件解析_[Java基础] 使用JMAP dump及分析dump文件
- 中方:开展科技合作应秉持开放、合作、包容心态
- think python 2ed_Think Python 2ed 笔记(二)
- python三维图怎么显示_如何在python中绘制多个回归3D图
- 视频教程-19年录制Zookeeper、Dubbo视频教程 微服务教程分布式教程 SpringBoot教程整合-Java
- 电子商务网站PPT选择服务器,第8章 电子商务系统规划与建设课件.ppt
- 一直用破解软件?可以试试学生优惠!
- CGGame资源(转)
- moments音标_moment 是什么意思_moment 的翻译_音标_读音_用法_例句_爱词霸在线词典...
- Python自动锁屏--window系统
- 财经365热点:当阿里巴巴不再讲“中台”
- java怎么判断文件大小_java判断文件大小
- python绘制三角函数图像
- c语言代码查错软件,Ubuntu下面的C语言代码检查工具 Splint
- 字符串之正则表达式匹配
- html和js画圣诞树图片,基于JS2Image实现圣诞树代码,
- 剪映 for Mac(全能好用的视频编辑工具)
- 热死了?总决赛从未出现1-3逆转 马刺已摸到总冠军
- linux 发邮件给用户,Linux学习之给指定用户发邮件
热门文章
- 通过路径图比较BOSS直聘,智联招聘,拉勾的登录功能
- dialer(dialer接口是什么意思)
- 中文垂直搜索引擎、行业搜索引擎大全
- 4、Lctech Pi(F1C200S)linux5.7.1移植在RAM运行修改默认调试串口为uart1(CherryPi,Mangopi,F1C100S)
- 网络对抗技术——网络嗅探与欺骗(第三部分)
- Can not construct instance of com.h.dog.entity.Message: no int/Int-argument constructor/factory meth
- VM308 WAService.js:2 Component “pages/gouwuche/gouwuche“ does not have a meth
- Intellij IDEA 丢失 Project Structure 问题
- 深圳软件测试培训:软件测试技术及工具
- 《程序员健康指南》作者Joe Kutner:在运动中工作