CAN诊断

CAN诊断


ECU自检

每个ECU都有自己故障检测功能,基本上每个ECU都有一块EEPROM,可存储自身故障信息,一般会上传至网关的EEPROM,并以诊断故障码(DTC:Diagnose Trouble Code)的形式存储。


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

一般诊断请求(发起, 就是我们常说的Request)的输入格式: 710 02 10 01
CAN诊断_第1张图片

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

  • 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 诊断会话服务发起后,收到的肯定回应。
CAN诊断_第2张图片

否定回应:
即您刚刚输入的诊断命令, 目标对方(网关或某节点)因为某些原因,未成功收到或者未做处理就被打回了, 看到7f否定回应码就知道是否定回应了,7f否定回应码。
如下:10 诊断会话服务发起后,收到的否定回应:
CAN诊断_第3张图片
否定回应的原因是: 22条件不符合.
其实还有很多其他的原因会导致吃闭门羹, 常用的有:

  • 11 服务不支持
  • 12 子功能不支持
  • 13 报文长度错误
  • 31 请求超出范围…..

dbc文件

dbc(database communication)文件,就是将某条can总线上发送和接收到的原始信号(各种16进制码)映射成人类可以看懂的英文信号。


can工具

1、
配套硬件: PCAN-USB
配套软件: PCAN-Explorer 5 (或PCAN-View).
PCAN-View 免费是只能收发和发送原始报文, 无法导入dbc文件
PCAN-Explorer 5支持导入dbc文件,支持信号画图表和VBScript宏等等
2、
配套硬件: neoVI_FIRE2
配套软件: Vehicle Spy 3

共同点:
can信号接收区:叫Receiver 或Message,业界简称都是Rx。
can信号发送区:叫Transmit 或叫Tx Panel,业界简称都是Tx。
信号帧:即包含了多种can信号的报文帧。
帧ID:为了区别各个信号帧,分别给个信号帧定义的一个ID,即FrameID。
信号代号:其实应该叫信号帧代号, 一个信号代号对应一个帧ID。
帧内容:信号帧的实际内容, 其实就是信号帧里的各种信号数据。
发送区信号值设定:发送信号前都可以设置信号值后再发送出去。

不同点:

配套硬件 配套软件 license 数量 总价格 配置
PCAN-USB PCAN-Explorer 5 可多台电脑复用 2100~2773(RMB)(不含软件) 1路CAN
neoVI Fire2 Vehicle Spy 3 可多台电脑复用 约5.6W(RMB)(软件+硬件) 8路CAN 4路LIN

文章参考和摘录自如下文章:
CAN诊断浅谈 + 如何用CAN工具进行诊断
波特率, dbc文件详解, 常用can工具介绍与对比

你可能感兴趣的:(Automotive,electronics)