资讯详情

UDS基础

白话学习又一篇。Vector 官方自制 UDS Protocol.官方自制UDS Protocol_哔哩哔哩_bilibili

1. 什么是UDS

UDS是unified diagnostic service的缩写。

标准是ISO 14229 Road vehicles-Unified diagnostic Services (UDS),定义了服务用法、服务用法和标准化数据,以及一些OEM定义数据。

2. UDS在OSI的适用标准

总线通信协议也随着控制器数量的增加而发展。ISO 14229-2013还增加了UDS定义应用于各总线, 比如CAN,LIN, K-linel, Ethernet.

UDS在OSI模型标准

请求是tester发给ECU端,是一个SID(service identifier),就是所说的XX服务,根据具体内容,以后添加数据;

肯定响应,postive respond由SID 后面加数据。

否定响应,negative respond由7F SID NRC(1 byte)

4. 学习一些名词

4.1 subfunction和data identifier (DID)

UDS服务支持subfunction请求及响应。

请求格式:SID SF 数据

响应格式:SID 40 SF 数据;

有的UDS服务不支持subfunction, 支持DID (Data identifier)

请求格式:SID DID 数据

响应格式:SID 40 DID 数据;

有两种服务支持这两种服务feature:

31-例程控制服务,2F - IO控制服务;

在subfunction最后一个字节,第七个字节,是对抑制位的肯定反应,suppressive positive response message indication bit

0: positive answer- no suppressed

1: positive answer- suppressed

4.2 否定响应NRC

不同的NRC代表不同的原因, 例如,不支持服务, 或者subfunction不支持,请求超出范围等。

当tester给ECU发送请求时,ECU要在P2server如果在处理其他任务时不能给出响应,现在就给出响应P2server内给出pending然后在P2server*在时间内做出反应。

5. UDS服务

UDS包含26个服务 ,以下重点介绍6个。

与10服务相关的三个NRC:

7F:serviceNotSupportedInActiveSession 不支持当前会话

7E:subFunctionNotSupportedInActiveSession 不支持当前子功能

31: requestOutOfRange

Session 会话分哪几个? Default sesssion, 02 programming session, 03 Extended Session

10服务做的Session state handling:

Power on就进入default session, 1002或1003可进入非默认会话,1001跳回默认会话,S3 timer 如果你想保持非默认会话的状态,你也会回到默认会话。tester要一直发送3E

ECU在一般状态处于locked状态,比如2E write, 2F I/O control, reprogramming services,这些受保护的服务,ECU只能在解状态下执行。

6.2 27解锁服务

若要提供受保护的服务,ECU先解锁,再解锁:通过tester发送seed,计算key, 进行比对

安全状态可以有好几个等级;要跳回lock有具体的状态方法,如上下电等。

请求格式:22 DID(2 byte)

响应格式:62 DID data

14229-1-2013 推荐使用附录CDID

请求格式:2E DID data

响应格式:6E DID

以下是与故障存储相关的服务 。

记录故障代码:diagnostic trouble code DTC, 它可以反映故障的位置和原因,以及与排放、未来和安全相关的法律相关的故障。

许多标准都是正确的DTC的定义,

UDS:对DTC定义三个字节

WWH-OBD in ISO 27145-2: root DTC (2 byte) FTB (1 byte)

OBD II: DTC (2 byte)

J1939-73: SPN+FMI

19服务有28个subfunction, 下面介绍4个:

1902: 通过DTC的状态码读取DTC

1904: 读取DTC的快照数据 ,一些环境数据,比如发动机转速、水温等(14229里是snapshot, 在Autosar里是冻结帧)

1906: 获取DTC存储时的扩展数据,一些老化计数器,等

190A:获取ECU全部的DTC,即使没有产生,也都被读取

根据DTC的状态码读取DTC

请求格式:19+02+SM(statusMask)

回复格式:59+02+SAM(statusAvailabilityMask)(DTC+status)

读取ECU支持的所有的DTC

请求格式:19+0A

回复格式:59+0A+SAM+DTC+status

请求格式:14+三个字节,如果是FFFFFF,是全部DTC;也可以按组清除DTC

回复格式:54

标签: ar03ftb5230精密电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台