CAN诊断学习

汽车CAN总线有动力总成PCAN,底盘控制CCAN,整车控制BCAN,娱乐ECAN,诊断DCAN五种。

CAN诊断,即是对CAN网络中各节点,各CAN总线,网关的故障进行检查与修复。

统一诊断服务(UDS),即ISO-14229标准,是绝大多数汽车厂商使用的诊断服务。

10:诊断会话请求服务

一般的诊断请求的输入格式为:710 02 10 01

帧ID为710,帧数据长度为8,数据长度为02,数据内容为10 01,其中10代表诊断会话发起服务,01表示默认会话

必须先发起诊断会话,类似于先建立握手。

2E:写入配置请求服务

对某个ECU写入配置项数据,也就是重新标定

常用帧格式:710 07 2E C0 01 01 03 22 FF

数据长度07,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上的诊断故障码(包括故障码相关的快照等.))

诊断回应

肯定回应:718 06 50 01 00 32 01 F4 00

在ISO-14229中规定,ECU的诊断响应ID=ECU诊断请求ID+0x008;响应服务的ID=请求服务的ID+0x40

否定服务:718 03 7F 10 22 00 00 00 00

其中7F为否定码  22表示为否定原因条件不符合

其他原因:11服务不支持,12子功能不支持,13报文长度错误,31请求超出范围

例子:

诊断读取故障码:

7E1 03 19 02 FF 00 00 00 00

回应:

7E9 07 59 02 FF C1 21 20 DB

读取故障码19服务有01,02,04,06,0A等子服务,在01子服务中,第四个数据字节代表需要读取哪种状态的DTC,其中FF表示读取所有Bit置1位的DTC

响应服务59中,C1 21 20为DTC的内容,分为高位字节C1,中位字节21,低位字节20,DB表示这个DTC的状态。

在高位字节的8Bit中,又分为三个编码集合,first编码集合:Bit7-Bit6;second:Bit5-Bit4;third:Bit3-Bit0

first编码集合有00动力系统P,01底盘系统C,10车身系统B,11网络系统U

分析DTC信息C1 21 20 DB:

分解为二进制:1100 0001    0010 0001    0010 0000    1101 1011

可知是网络出了问题,即通信故障,与ABS通信丢失。

DB表示的DTC状态可根据状态位描述得到:DTC出现错误,且在当前驾驶循环下被确认

Bit 0            Test Failed                                                          DTC最近的一次诊断结果为失败

Bit 1            Test Failed This Operation Cycle                       在当前驾驶循环中处于故障状态

Bit 2            pending DTC                                                      在当前或者前一个驾驶循环DTC处于故障状态

Bit 3            Confirmed DTC                                                  DTC已经被确认

Bit 4            Test Not Completed Since Last Clear                自上一次清除故障码后测试没有完成

Bit 5            Test Failed Since Last Clear                              自上一次清除故障码后测试结果为失败

Bit 6            Test Not Completed This Operation Cycle        在当前驾驶循环中测试没有完成

Bit 7            Warning Indicator requested                             与DTC相关的报警指示请求

原文地址:https://www.cnblogs.com/shinedaisiki/p/9815992.html

时间: 2024-10-18 05:26:50

CAN诊断学习的相关文章

Oracle DBA面试突击题

一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答:Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以分为三小类. 以Nest Loop为例: 传统的Nest Loop连接: 针对In.Exists优化的Semi Nest Loop: 专门针对Not In.Not Exists优化的Anti Nest Loop. Semi/Anti *** Join这几种也叫半连接. (可以补充一下这三个连接的不同之

学习机的发展历程

回顾学习机的发展历程,可谓是青山依旧在,几度夕阳红.自2000年第一台学习机的问世,至2003年达到一个小高潮,直到07和08年才逐渐成熟完善,之后又开始回落,并在一定的时间内,学习机市场陷入沉寂. 直到09年12月的一天,学YO专业数理化学习机的研制成功,标志着学习机由第一代的复读机顺次经历点读机.ELP(英语学习机)发展到现在的第四代——专业学习机.暨此,沉闷多时的学习机市场再度焕发出强劲的生命力,引来新一轮的购机热潮.还记得那时的复读机,只能播放磁带,在播放过程中偶尔有没听清楚的,按一下重

人工智能,不仅仅是医学艺术

作为最常见的传统X放射影像沿用至今,胸部X光片历史悠久,在全世界范围内以数十亿的速度拍摄成像,为患者提供图像诊断依据. 然而在英国的朴茨茅斯医院,竟存在超过23000张胸部X光片图像未被阅读,其中大多数为急诊科的胸部及腹部X光片,未经放射科医生或临床医师审查. 事实上,放射科医生数量的增长速度远低于影像的读片需求量.医疗数据中有超过90%来自医学影像,据统计,美国医学影像数据的年增长率为63%,而放射科医生数量的年增长率仅为2%.由于专业放射科医生的短缺,造成大量X光片成像积压,诊断报告生成缓慢

[机器学习]第六、七周记录

这篇记录的内容来自于Andrew Ng教授在coursera网站上的授课. 1.不要浪费大量的时间在获得样本上.实际上,太多的样本数并不会使学习算法更加的优秀.要尝试调整你的系数: 1.使用更少的特征. 2.增加多项式. 3.调整$\lambda$. 2.诊断学习算法: 1.将样本打乱,并将其中一部分作为训练样本,剩下的作为测试样本,来判断是否出现了过拟合. 2.将样本划分为三类:训练集,交叉验证(cross validation,cv)集,测试集.对于线性回归,训练集来得出相应次数下的thet

STL笔记(5)条款49:学习破解有关STL的编译器诊断信息

STL笔记(5)条款49:学习破解有关STL的编译器诊断信息 条款49:学习破解有关STL的编译器诊断信息 用一个特定的大小定义一个vector是完全合法的, vector<int> v(10);    // 建立一个大小为10的vector 而string在很多方面像vector,所以你可能希望可以这么做: string s(10);        // 常识建立一个大小为10的string 这不能编译.string没有带有一个int实参的构造函数.我的一个STL平台像这样告诉我那一点: e

自动诊断档案库(ADR)学习

(1)ADR概述 Oracle 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的一个增强,其核心组件为自动诊断库(Automatic Diagnostic Repository--ADR). 在Oracle 11g之前,Oracle的各类跟踪文件.日志文件等诊断信息的存储位置并不统一.Oracle 11g中,在基于FDI的基础架构之上,Oracle开始统一规划这些文件的存储. ADR的路径被称为ADR BASE(ADR基目录),由初始化参

《性能测试诊断分析与优化》学习总结(二)

LR场景设计 在Controller中新建场景,可以选择手工场景(Manual Scenario)和 面向目标场景(Goal-Oriented Scenario)两种方式创建场景. 其实,在我们真实的项目中,选择手工场景比较多,所以下面是通过学习这本书的一些心得: 1.创建手工场景 当录制完脚本并完善好脚本后,下一个步骤就是设计运行场景,而整个的场景调度设计是非常关键的,创建可精确模拟用户压力行为的手工场景的关键点在于指定压力和时间.如指定场景运行的时间长度,多少虚拟用户(并发)参与这次测试执行

《性能测试诊断分析与优化》学习总结(一)

我始终坚信,一本好书,可以改变人的一生,成功一定有方法,失败一定有原因,而我个人认为,失败的最大原因是学习不够.不断学习,活到老,学到老. 作为软件测试人员来说,或多或少都会对性能测试有点感兴趣,我个人认为,软件性能与软件功能的最大兴趣在于从用户体检的角度,感受软件的质量度量,如响应时间.准确性.成功率等. 性能测试的目标是通过制定性能测试策略.性能测试计划.执行性能测试,并对性能问题进行定位分析和优化.影响软件系统的性能主要因素包括:硬件设施.网络.操作系统.并发用户数.数据库数据量.中间件等

jmeter学习 -性能监控诊断

用户响应时间 = 服务器响应时间 + 网路时间 服务器响应时间:从服务器接收到请求到该请求的响应处理完毕,并把对应的数据全部发往客户端. 客户端的响应时间就是服务端的响应时间加上网路损耗时间. 系统性能分析思路: 我们不能只关注部署在系统上的应用可不可用,访问慢等问题,更应该系统的分析我们的应用在什么样的负载条件下,系统上运行了多少应用,系统的资源分配是否合理,系统是否超负荷运行,能否优化系统的资源来让系统和应用程序耦合度更高. 我们会从以下几块分析: 整体系统的CPU 利用率 我们首先要了解系