码迷,mamicode.com
首页 > 其他好文 > 详细

can诊断

时间:2018-07-30 11:27:08      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:支持   col   认证   网络   color   设备   异常   相关   编程   

某ECU节点故障: 也就是你的车上的某个智能硬件不work或者不好用, 比如空调这个设备无法调节温度了.

某条CAN总线故障:比如Body CAN整条CAN总线都不work了, 那整条CAN总线上的智能硬件(ECU节点)会功能不好用,
比如语音控制打开天窗, 没效果了, 必须要手动用硬件打开天窗

CAN网关除故障了到处都发出报警提示音,因为很多ECU节点都丢失了

1、什么是ECU自检呢?

每个ECU都有自己故障检测功能 基本上每个ECU都有一块EEPROM(可读性可编程存储器),可存储以上
故障信息一般会传至网关的EEPROM,并以诊断故障码的形式存储


2、什么又是CAN诊断呢?

顾名思义即对CAN网络各个节点,各CAN总线,网关的故障查验与修复

查验包括:诊断故障码查询

修复包括:重新对ECU写入新的配置值

诊断请求(发起)服务_Request

710 02 10 01 00 00 00 00 00

帧id :710
数据长度:2位(2字节)
数据:10 01 10:诊断会话发起服务 01:默认会话

常用的诊断请求(发起)服务列表:

10: 诊断会话请求服务

必须先发起诊断会话, 不然无法进行其他诊断服务发起服务.

 也就是说只要诊断, 必须先用10服务, 发起诊断会话session,

 类似于先建立握手,

常用如:710 02 10 01 (10代表诊断会话发起服务, 01代表默认会话功能)

2E: 写入配置请求服务 --对某个ECU写入配置项数据,就是重新标定

简单点说: 对某个ECU写入配置项数据, 就是常听说的重新标定.

常用如:710 07 2E C0 01 01 03 22 FF (C0 01是一个DID数据标识符, 代表某ECU节点的多个参数, 01 03 22 FF代表ECU里的以上多个参数应该设定的值), 

11: 网关复位刷新请求服务 --写入ECU配置值后,必须对网关刷新复位,不然这个值可能不会立马生效

一般如果用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 诊断会话服务发起后, 收到的肯定回应,

718 06 50 01 00 32 01 F4 00
718:帧id
50:10+40 10:诊断会话发起服务 40;肯定回应偏移量
01:默认会话

否定回应即您刚刚输入的诊断命令, 目标对方(网关或某节点)因为某些原因,未成功收到或者未做处理就被打回了,
可以理解成吃了闭门羹.

例如回应:718 03 7f 10 22 00 00 00 00

看到7f否定回应码就知道吃闭门羹了, 所有吃闭门羹的都是7f否定回应码

718:帧id
03:数据长度3字节
7f:否定回应码
10:诊断会话服务
22:条件不符合
00 00 00 00:是自动填充以凑够8字节

以上的吃闭门羹的原因是: 22条件不符合.

其实还有很多其他的原因会导致吃闭门羹, 常用的有:

11 服务不支持

12 子功能不支持

13 报文长度错误

31 请求超出范围.....

can诊断

标签:支持   col   认证   网络   color   设备   异常   相关   编程   

原文地址:https://www.cnblogs.com/litao201403/p/9388776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!