UDS诊断概述(1)

1.诊断概述

      什么是诊断(Diagnostics)?在日常生活中我们理解的诊断一般都是医生与病人之间进行的活动,也就是医生从医学角度对人们的精神和体质状态作出的判断。中国传统的诊断方法有问诊,望诊等。相似的,车辆也有诊断功能,从而反映出车辆的状态以及故障等。

车辆诊断

    车辆诊断是一种允许在ECU的整个生命周期内对选定ECU信息或内存区域进行读取(有时写入)访问,并使用选定ECU功能的方法,当无法直接访问ECU或需耗费大量资源时,通常会使用车辆诊断。

车辆网络诊断

  • 诊断协议是ECU与诊断测试仪之间通信的必要条件。

  • 诊断协议示例:ISO 14230/ISO 15031/ISO 15765/ISO 14229...

  • 诊断协议定义了诊断请求/响应规则、ECU对请求的处理行为,以及请求/响应消息的内容

诊断规范历史

  • 1996年:ISO 9141-2 CARB数字信息交换要求

  • 1999年:ISO 14230 关键字协议2000(KWP2000)

  • 1999年:ISO/DIS 15765 基于KWP2000的CAN诊断

  • 2001年:ISO 15031 排放相关诊断通信

  • 2001年:ISO 15765 基于UDS的CAN诊断

  • 2006年:ISO 14229-1 统一诊断服务(UDS)

  • 2013/3月:ISO 14229-1 统一诊断服务(UDS)

2.UDS(统一诊断服务,Unified Diagnostic Services)

“UDS(统一诊断服务,Unified Diagnostic Services)是一种常见的汽车诊断通信协议,广泛应用于汽车电子控制单元(ECU)的诊断和维护。UDS协议的核心目的是通过车载诊断工具与汽车的ECU进行通信,获取汽车的故障码、读取传感器数据、进行软件编程等操作。UDS主要基于ISO 14229标准,在车辆诊断、故障排查以及控制模块的编程和配置等领域发挥着重要作用。”

UDS术语

  • Communication Services:通信服务

  • Standardized Data:标准化数据

  • UDS Standard:UDS标准

  • UDS Application:UDS应用

  • OEM specific data:OEM特定数据

  • Unified Diagnostic Services:统一诊断服务

UDS范围

ISO 14229/2013:统一诊断服务(UDS)

  1. -1 规范与要求
  2. -2 会话层服务
  3. -3 CAN实现的统一诊断服务(UDSonCAN)
  4. -4 FlexRay实现的统一诊断服务(UDSonFR)
  5. -5 IP实现的统一诊断服务(UDSonIP)
  6. -6 K线实现的统一诊断服务(UDSonK-Line)
  7. -7 LIN实现的统一诊断服务(UDSonLIN)

UDS的诊断应用

网络示例

OSI模型中的UDS

3.诊断服务概述

    服务类型包括诊断通信管理请求、数据请求、故障码请求、输入/输出控制、安全访问、重编程请求等。UDS 本质上是一系列的服务,共包含 6 大类 26 种。每种服务都有 自己独立的 ID,即 SID。上是一种 定向的通信,是一种交互协议(Request/Response),即诊断方(Tester)给 ECU 发送指定的请求数据(Request),这条数据中 需要包含 SID。

原则:定向通信,即定向呼唤应答机制,需要做到一问一答,非常类似于问诊。

Tester:诊断仪                  ECU:车载控制器 

  1.  如果是肯定的响应(Positive Response),回复[SID+0x40], 如请求 10,响应 50;请求 22,响应 62。 

  2. 如果是否定的响应(Negative Response),回复 7F+SID+NRC,回复的是一个声明。

拒绝请求的否定响应码(NRC)

如果 ECU 拒 绝了一个请求,它会回应一个 NRC。

NRC

描述

10

通用拒绝

11

服务不支持

12

子功能不支持

13

消息长度错误或格式无效

22

条件不满足

31

请求超出范围

7E

当前会话不支持子功能

7F

当前会话不支持服务

...

...

响应超时时间 P2 和 P2*

协议服务标识符范围

服务标识符

服务类型

定义标准

00 – 0F

OBD服务请求

ISO 15031-5

10 – 3E

ISO 14229-1服务请求

ISO 14229-1

3F

不适用

文档保留

40 – 4F

OBD服务响应

ISO 15031-5

50 – 7E

ISO 14229-1肯定响应

ISO 14229-1

7F

否定响应服务标识符

ISO 14229-1

80

不适用

ISO 14229-1保留

81 – 82

不适用

ISO 14230保留

83 – 88

ISO 14229-1服务请求

ISO 14229-1

89 – 9F

服务请求

未来扩展保留

A0 – B9

服务请求

车辆制造商定义

BA – BE

服务请求

系统供应商定义

BF

不适用

文档保留

C0

不适用

ISO 14229-1保留

C1 – C2

不适用

ISO 14230保留

C3 – C8

ISO 14229-1肯定响应

ISO 14229-1

C9 – DF

肯定响应

未来扩展保留

E0 – F9

肯定响应

车辆制造商定义

FA – FE

肯定响应

系统供应商定义

FF

不适用

保留

UDS的26种服务

子功能与标识符

► 多个UDS服务支持子功能(SF)

► 多个UDS服务支持数据标识符(DID),通过逻辑编号访问数据。

两种服务同时支持子功能和标识符:SID  SF RID

缩写

描述

SF

子功能

DID

数据标识符

RID

例程标识符

IOCP

输入输出控制参数

抑制肯定响应指示位(SPRMIB)

                                 SF的第7位值(SPRMIB)                         描述     

                                                     0                   →                 不抑制肯定响应         

                                                      1                   →                 抑制肯定响应

协议服务分类

  • 诊断管理功能单元

    • 示例:诊断会话控制(0x10)

    • 示例:ECU复位(0x11)

  • 数据传输功能单元

    • 示例:按标识符读取数据(0x22)

    • 示例:按标识符写入数据(0x2E)

  • 存储数据传输功能单元

    • 示例:读取DTC信息(0x19)

    • 示例:清除诊断信息(0x14)

  • 输入/输出控制功能单元

    • 示例:按标识符输入输出控制(0x2F)

  • 例程功能单元

    • 示例:例程控制(0x31)

  • 上传/下载功能单元

    • 示例:请求下载(0x34)

4.诊断会话控制

 诊断会话即10服务:10 包含 3 个子功能, 01 默认会话(Default),  02 编程会话( Programming),  03  扩展会话(Extende)

非默认会话受超时控制通过发送测试仪在线(0x3E)或其他请求保持会话激活

注意

    1.ECU上电是处于默认会话模式,如果您进入了一个 非默认会话的状态,一个定时器会运转,如果一段时间内没有请求, 那么到时间后,诊断退回到默认会话 01。当然,我们有一个$3E 的服务,可以使诊断保持在非默认的状态。

    2.默认会话模式不能切换到编程会话模式,需要通过扩展会话模式进行切换。

    3.编程会话模式也无法直接切换到扩展会话模式,需要通过默认会话模式切换。

会话超时时间 S3

由于网关等因素,S3客户端 < S3服务器

请求/响应格式

数据字节

参数名称

约束

十六进制值

助记符

#1

诊断会话控制请求服务ID

M

10

DSC

#2

子功能 = [诊断会话类型]

M

00-FF

LEV_DS_

十六进制

描述

约束

助记符

00

ISO保留

M

ISOSAERESRVD

01

默认会话

M

DS

02

编程会话

U

PRGS

03

扩展诊断会话

U

EXTDS

...

...

...

...

数据字节

参数名称

约束

十六进制值

助记符

#1

诊断会话控制响应服务ID

S

50

DSCPR

#2

诊断会话类型

M

00-FF

LEV_DS_

#3

会话参数记录[] #1 = [数据#1 : 数据#m]

C

00-FF : 00-FF

SPREC_DATA_1 : DATA_m

#n

C

支持的否定响应码(NRC)

描述

助记符

子功能不支持:当子功能参数不被支持时发送此NRC。

SFNS

消息长度错误或格式无效:当消息长度错误时发送此NRC。

IMLOIF

条件不满足:当诊断会话控制请求的条件不满足时返回此NRC。

CNC

服务支持的会话类型

服务

默认会话

非默认会话

诊断会话控制(0x10)

✔️

✔️

ECU复位(0x11)

✔️

✔️

安全访问(0x27)

不适用

✔️

通信控制(0x28)

不适用

✔️

传输电源(0x05)

✔️

✔️

访问传输参数(0x63)

不适用

✔️

安全数据传输(0x64)

不适用

✔️

控制DTC设置(0x65)

不适用

✔️

事件响应(0x66)

✔️

✔️

链路控制(0x87)

不适用

✔️

按标识符读取数据(0x22)

✔️

✔️

按地址读取内存(0x23)

✔️

✔️

按标识符读取缩放数据(0x24)

✔️

✔️

动态定义数据标识符(0x2C)

✔️

✔️

按标识符写入数据(0x2E)

✔️

✔️

按地址写入内存(0x3D)

✔️

✔️

清除诊断信息(0x14)

✔️

✔️

读取DTC信息(0x19)

✔️

✔️

例程控制(0x31)

✔️

✔️

请求下载(0x34)

不适用

✔️

请求上传(0x35)

不适用

✔️

传输数据(0x36)

不适用

✔️

请求传输退出(0x37)

不适用

✔️

注:

  • 部分服务需通过安全访问解锁,因此需要非默认会话。

  • 内存区域访问需通过安全访问解锁,因此需要非默认会话。

更多后续,敬请关注!

下期预告:

    UDS诊断概述(2)----- 27安全访问(Security Access)、22按标识符读取数据(Read Data By Identifier)、2E按标识符写入数据(Write Data By Identifier)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值