CAN诊断常用服务详解

  1.诊断会话控制服务(DSC) SID=0x10

       1 .请求报文

  • 帧格式: 02 10 01 AA AA AA AA AA
  • 其中 10 为请求诊断会话控制ID
  • 01为诊断会话类型,也就是他的子功能
  • 00为保留 01位默认模式 02为编程模式 03为扩展模式(大部分服务在扩展模式下) 

        2.肯定响应报文

  • 帧格式:06 50 01 00 96 17 70 AA
  • 其中50为诊断会话控制肯定响应ID
  • 01为诊断会话类型(根据报文子功能类型进行改变)

        3.否定响应报文

  • 帧格式:03 7F 10 12 AA AA AA AA
  • 12为否定响应码
  • 0x12(子功能不支持)0x13(报文长度错误或格式非法)0x22(条件不满足,处于变编程状态)

2.电控单元复位(ECUR)SID=0x11  

    该服务可以有三种方式--硬件复位,点火钥匙复位,软件复位

    1.请求报文*

    帧格式:02 11 01 AA AA AA AA AA 

    11为电控单元复位SID

    01为复位类型子功能(01为硬件复位 02为点火位 03为软件复位)

    2.肯定响应报文

    帧格式:02 51 01 AA AA AA AA AA

    3.否定响应报文

    帧格式:03 7F 11 12 AA AA AA AA

    12为否定响应码

    否定响应码

        12子功能不支持

        13报文长度错误或格式非法

        22条件未满足

        33安全访问拒绝

3.安全访问(SA)SID:0x27

  帧格式:首先发送0x10服务子功能03进入扩展模式

  例:02 10 03 FF FF 00 00 00

  ECU返回肯定响应报文

  例:06 50 03 00 32 01 F4 AA

  解锁进入第一权限

  帧格式:02 27 01 FF FF 00 00 00

  ECU返回肯定响应报文

  例:06 67 01 00 00 00 00 AA

  解锁进入第二权限

  帧格式:06 27 02 03 13 F3 05 08

  ECU返回肯定响应报文

  例:06 67 02 AA AA AA AA AA

4.通信控制(CC)SID:0x28    

请求报文 

帧格式:03 28 00 01 AA AA AA AA

其中 00为子功能控制类型

00:允许接收和发送 

01:允许接收禁止发送

02:禁止接收允许发送

03:禁止接收和发送

其中01为通讯类型

01:常规应用报文

02:网络管理报文

03:常规应用报文和网络管理报文(常用)

肯定响应

帧格式:02 68 00 AA AA AA AA AA

否定响应

帧格式 :03 7F 28 12 AA AA AA AA

12为否定响应码

否定响应码:

0x12 子功能不支持

0x13 报文长度错误或格式非法

0x22 条件未满足

0X31 请求超出范围

5.诊断设备在线 SID:0x3E

客户端通过该服务维持和服务器在非默认模式下的链接

请求报文

帧格式 02 3E 80 AA AA AA AA AA

           02 3E 00 AA AA AA AA AA

3E为SID

80为是否需要返回肯定响应报文,若是00则需要返回肯定响应报文

肯定响应报文

02 7E 00 AA AA AA AA AA

否定响应报文

03 7F 3E 12 AA AA AA AA

12为否定响应码

否定响应码

12 子功能不支持

13 报文长度错误或格式非法

6.读取数据 SID:0x22

请求报文

03 22 F1 8C AA AA AA AA

F1 8C为数据标识符

可以携带多个数据标识符(F18C为ECU序列号)

读取数据肯定响应报文

第一帧

10 08 62 F1 8C 11 11 11

发送流控帧

30 00 00 AA AA AA AA  AA

连续帧

21 11 11 AA AA AA AA AA

读取数据否定响应

03 7F 22 12 AA AA AA AA

其中12为否定响应码

否定响应码

0x13 报文长度错误或格式非法

0x22 条件不满足

0x31所有DID都非法,DID数量超出限值

7.周期读取数据 SID:0x2A

注意:该服务的响应报文只能是单帧

请求数据

帧格式 04 2A 01 F2 E3 AA AA AA

可以请求多个周期数据标识符

F2 E3为周期数据标识符

01为传输模式

传输模式

00:iso保留

01:低速率发送

02:中速率发送

03:高速率发送

04:停止发送

05-FF : ISO保留

读取数据肯定响应

帧格式

01 6A AA AA AA AA AA AA

肯定响应后续

01 6A F2 E3 XX XX XX XX(x为数据)

读取数据否定响应

03 7F 2A 12 AA AA AA AA

12为否定响应码

否定响应码 

13 报文长度或格式非法

22 条件不满足

31 PDID非法

33 安全访问拒绝

8.写入数据(WDBI)SID:0X2E

写入数据请求报文

10 08 2E F1 8C XX XX XX(XX为数据)

F1 8C为数据的标识符

第二帧

21 XX XX AA AA AA AA AA

肯定响应报文

03 6E F1 8C AA AA AA AA

否定响应报文

03 7F 2E 13 AA AA AA AA

13为否定响应码

否定响应码

0x13 报文长度错误或格式非法

0x22 条件不满足

0x31非法的DID 非法的DREC

0x33 安全访问拒绝

0x72 写入失败

9.清除诊断信息 SID:0x14 

帧格式 04 14 FF FF FF AA AA AA

将会返回一条否定响应报文

例 03 7F 14 78 AA AA AA AA

接下来就是肯定响应报文

例 01 54 AA AA AA AA AA AA

否定响应码

0x13 报文长度错误或格式非法

0x22 条件未满足:如果服务器内部禁止清除DTC,则返回此否定码

0x31 请求的数据内容超出数据范围

10.读取DTC信息 SID:0x19 

请求帧格式

03 19 01 FF 55 55 55 55

FF为DTC状态码

01为子功能

子功能定义:

01 通过状态码报告DTC数量

02 通过状态码读取DTC

03 报告DTC快照标识符

04 通过DTC报告DTC快照记录

06 通过DTC报告DTC扩展数据记录

0A 报告支持的DTC

04 06子功能使用方法

06 19 04 XX XX XX FF AA

其中xx为DTC 

FF为掩码

06 19 06 XX XX XX FF AA

使用方法和04子功能一样

读取DTC肯定响应报文(子功能=01)

帧格式

05 59 24 01 XX XX AA AA

24为下机位自定义

01表示DTC遵循的格式属于哪个协议

XX XX为DTC的确认方式

读取DTC肯定响应报文(子功能=02)

第一帧

10 0B 59 02 24 XX1 XX1 XX1(XX1为DTC)

第二帧

21 YY1 XX2 XX2 XX2 YY2 AA AA

YY1为DTC1的故障状态码

三个XX2为DTC2

  YY2为DTC2的故障状态码

读取DTC否定响应报文

03 7F 19 13 AA AA AA AA

13为否定响应码

 否定响应码

12 子功能不支持

13 报文长度错误或格式非法

31 请求的数据内容超出数值范围(1.非法的DTC状态码,2.无效的DTC数量)

11.写入数据服务SID 0x2E  

客户端通过该服务可以改写服务器中指定数据标识符对应的数据

第一帧

帧格式 10 08 2E F1 8C XX XX XX

2E 请求报文SID

F1 8C为数据标识符

第二帧

帧格式 21 XX XX AA AA AA AA AA

XX为数据

写入肯定响应报文

帧格式 03 6E F1 8C AA AA AA AA

F1 8C为数据标识符

写入数据否定响应报文

帧格式 03 7F 2E 13 AA AA AA AA

13为否定响应码

否定响应码

0x13 报文长度错误或格式非法

0x22 条件不满足

0x31 请求的数据内容超出数值范围(1.非法的DID或者服务器不支持向该DID写入数据,2.非法的DREC)

0X33 安全访问失败,该诊断服务仅次于编程模式

0x72 写入失败

11.输入输出控制 SID=0x2F

注意事项:请求报文一次只包含一个DID

              2.执行该服务前请先解锁

帧格式:

            05 2F 10 80 03 07 AA AA 

注:1080为io DID

03为输入输出控制参数ControLOption

07为子功能

输入输出参数控制参数定义

00 该值只是服务器客户端不再控制输入信号

03 请求吧服务器RAM中输入的信号、内部参数或者输出信号值修正为controLOption参数中定义的值

2F 10 80  03 07

2F  10 80 00 

肯定响应报文

04 6F 00~FF 00~FF 00 AA AA AA

00为例程ID

AA:注意当子功能为03时,此处将携带数据,例如返回例程停止时出口参数灯。具体情况视例程ID而定

输入输出否定响应报文

03 7F 2F 12 AA AA AA AA

12为否定响应码

否定响应码

0x13 报文长度错误或格式非法

0x22条件未满足

0x31DID不支持

0x33 安全访问拒绝

12.例程控制服务SID=0x31

例程控制用于更新软件

请求帧格式

帧格式

04 31 01 FF 00 55 55 55

01为子功能

FF 00为例程ID

子功能定义数值

00保留

01启动例程

02停止例程

03请求例程结束

其他保留

例程控制肯定响应报文

帧格式

04 71 01 FF 00 AA AA AA

FF 00为例程ID

例程控制否定响应报文

帧格式

03 7F 10 12 AA AA AA AA

10为例程控制SID

12为否定响应码

否定响应码

0x12 子功能不支持

0x13 报文长度错误或格式非法

0x22条件未满足

0x24请求顺序错误:必须先启动例程才可停止例程

0x31例程ID不支持

0x33安全访问拒绝

13.DTC设置控制 SID=85

诊断仪使用控制DTC设置服务停止或恢复ECU内部的诊断故障码设置功能

请求帧格式

02 85 01 AA AA AA AA AA

01为子功能

子功能:

01: ON/使能 ECU依照正常操作条件恢复诊断故障码的设置功能

02:OFF/禁止 停止诊断故障码的设置功能

否定响应码:

12:不支持子功能

13:不正确的消息长度或无效的格式

22:条件不正确

  • 9
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭大根

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值