UDS(统一诊断服务)分为6大类的服务信息表格:

UDS(统一诊断服务)分为6大类的服务信息表格:

一、ISO-14229标准基本知识

(1) 服务ID(SID,Service Identifier)

ISO-14229标准定义了25种不同的诊断服务,为区分具体的诊断服务,使用1个字节的服务ID作为服务的唯一识别码。当我们想表达一个具体的诊断服务时,有时候直接说出它的服务ID比起全称会更加简洁有效。表1所示是ISO-14229标准定义的诊断服务汇总列表。当然,并不是所有的诊断服务需要支持,标注有*符号为常用诊断服务。

UDS诊断服务汇总


诊断和通信管理服务 (Diagnostic and Communication Management Services)

服务 ID服务名称服务描述
0x10诊断会话控制服务Tester 请求控制与某个 ECU 的诊断会话
0x11ECU 复位服务Tester 强制对 ECU 执行复位
0x27安全访问服务Tester 请求控制某个 ECU 受安全保护的功能
0x28设备控制服务Tester 向 ECU 提供设备控制
0x3E测试仪呈现服务Tester 请求控制某个 ECU 发送定时参数
0x83访问时间参数服务Tester 请求控制某个 ECU 发送时间参数
0x84访问下载数据传输服务Tester 请求控制某个 ECU 发送下载数据传输
0x85访问上传数据传输服务Tester 请求控制某个 ECU 发送上传数据传输
0x86访问传输数据服务Tester 请求控制某个 ECU 发送传输数据
0x87访问传输数据服务Tester 请求控制通信波特率参数

数据传输服务 (Data Transfer Services)

服务 ID服务名称服务描述
0x22读取数据服务Tester 请求读取数据标识识别码请求的当前值
0x23读取内存服务Tester 请求读取在存储器中的数据的当前值
0x24读取标识信息服务Tester 请求读取数据标识请求的定标信息
0x2A周期数据传输服务Tester 请求控制某个 ECU 发送周期数据
0x2B动态数据传输服务Tester 请求发送以 0x22 请求的标识符
0x2C动态数据传输服务Tester 请求发送以 0x22 请求的数据

存储数据传输服务 (Stored Data Transfer Services)

服务 ID服务名称服务描述
0x3D写内存服务Tester 请求写入存储器中的某个值
0x3E写内存服务Tester 请求写入存储器中的某个值

例程控制服务 (Routine Control Services)

服务 ID服务名称服务描述
0x31例程控制服务Tester 请求启动、停止例程或请求例程的执行结果

上传下载服务 (Upload and Download Services)

服务 ID服务名称服务描述
0x34请求上传服务Tester 请求传输数据至 ECU
0x35请求下载服务Tester 请求传输数据至 ECU
0x36请求上传数据传输服务Tester 请求传输上传数据
0x37请求下载数据传输服务Tester 请求传输下载数据

(2) 子功能(Sub-function)

有些诊断服务支持子功能,以细分为更具体的服务类型。比如,0x11服务用于ECU复位,子功能01和03可分别解释为硬件复位和软件复位。前面提到的表1中标注了$符号的服务表示支持子功能。值得注意的是,当子功能所占的1字节最高位(正响应抑制位)置1时,其正响应不需要回复。

(3) 参数(Parameter)

用于描述诊断服务的额外信息(如Data Identifier),多见于子功能不支持的服务,但子功能支持的服务不一定都有参数信息。

(4) 寻址模式(Addressing Type)

Tester发送Request的目标ECU地址根据以下方式指定:

物理寻址(Physical Address):即一对一通信,用于Tester已知需要诊断的ECU;

功能寻址(Functional Address):即一对多通信,用于Tester向所有ECU请求诊断服务。

(5) 负响应码(Negative Response Code)

当请求服务执行失败时,ECU向Tester反馈的失败原因代号,简称NRC。表2列出了常见的负响应码

表2 常见负响应码

Hex Value负响应代码 (Negative Response Code)
10General Reject 一般拒绝
11Service Not Supported 服务不受支持
12Sub-function Not Supported 子功能不受支持
13Incorrect Message Length 消息长度不正确
14Response Too Long 响应过长
21Busy Repeat Request 繁忙重复请求
22Conditions Not Correct 条件不正确
24Request Sequence Error 请求顺序错误
26Failure Prevents Execution of Requested Action 故障防止执行所请求的操作
31Request Out of Range 请求超出范围
33Security Access Denied  安全访问被拒绝
35Invalid Key  密钥无效
36Exceed Number of Attempts 尝试次数超限
37Required Time Delay Not Expired 所需时间延迟未过
72General Programming Failure 一般编程故障
78Request Correctly Received-Response Pending  请求正确接收 - 响应待定
7ESub-function Not Supported in Active Session 活动会话中不支持子功能
7FService Not Supported in Active Session  活动会话中不支持服务
92Voltage Too High 电压过高
93Voltage Too Low 电压过低

二、诊断数据分析

(1) 报文基本格式

诊断报文格式的主要区分于服务是否带子功能,如表3所示。明显的规律是正响应报文的SID字段在其请求报文的SID基础上增加了0x40,而负响应帧都含有0x7F和NRC负响应码。

是否带子功能报文类型格式
请求帧<SID> + <Sub-Function> + <Parameter>
正响应帧<SID+0x40> + <Sub-Function> + <Parameter>
负响应帧<0x7F> + <SID> + <NRC>
请求帧<SID> + <Parameter>
正响应帧<SID+0x40> + <Parameter>
负响应帧<0x7F> + <SID> + <NRC>

表3 报文基本格式

(2)多帧报文传输

当报文超过8个字节时,则需要将报文拆分成多帧,依次使用首帧、流控帧和连续帧进行传输,该部分知识可参考ISO-15765标准定义的传输层协议内容。

(3) 响应机制总结

ECU主要根据诊断服务请求报文<SID> + <Sub-Function> + <Parameter>各字段进行响应动作:

①物理寻址模式时,ECU处理请求报文的一般过程如图4所示(含正负响应过程)。只有当所有处理流程顺利执行时,ECU才会回复正响应;否则,ECU回复含有负响应码的错误。

②功能寻址模式时,多数情况下,ECU只回复正响应,负响应不予回复。

更具体的响应机制请见于本文最后的查阅附表总结,限于篇幅,这里不再逐个解释。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

aFakeProgramer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值