BMS测试学习-UDS诊断【02】

一、UDS诊断的基础定义

1.什么是UDS

UDS(Unified Diagnostic Services)是统一诊断服务。

诊断协议是汽车行业诊断通信的需求规范,由ISO-14229系列标准定义。在开放系统互连(OSI)基本参考模型中规定了各类物理层通信对应部分的UDS诊断协议。例如,CAN通信(ISO 11898-1、ISO 11898-2和ISO 11898-3)在应用层的UDS诊断协议是ISO 14229-1和ISO 14229-3。

应用层服务:通常指诊断服务,执行车载服务器的测试,检测,监控,诊断等功能。

2.什么是UDS诊断

UDS诊断是一种定向通讯的交互协议(Request/Response),由诊断方(tester)发送服务请求,ECU返回相应。

UDS诊断单元包括6个诊断单元,一共有26中服务;每种服务有自己的SID(Service Identifier)。

SID:诊断服务ID。

肯定响应(positive responds):首字节回复:SID+0x40(例如:请求0x10,响应0x50;请求0x22,响应0x62)

否定响应(negative responds):首字节回复:0xFF,第二字节回复:已询问的SID(表示该ID已拒绝访问),第三字节回复NRC(否定响应码:代表我否定你的依据)

Addressing information寻址信息:寻址信息包含了源地址(Source Address)和目标地址(Target Address),表明这条信息是由谁发给谁的,类似于收件人和发件人。

二、UDS诊断的重点服务

1.诊断会话(Diagnostic Session Control

包含三个子功能:默认会话(Default),编程会话(Programming),扩展会话(Extended)。

设置会话原因:由于进入者不同的权限,设置了三种不同的会话模式。默认会话可操作服务最少。编程会话可以实现程序烧录。

下图表示实现各功能可以解锁的服务

 下边介绍个例子,来解释一下报文的组成部分:请求(Request):02 10 02 xx xx xx xx xx

02:表示该应用层包含两个字节;10:表示进入诊断模式控制(SID号),02:子功能,进入编程会话。

响应回复:02 50 02 xx xx xx xx xx;应用层2个字节+肯定回复+子功能

肯定响应:03 7F 10 7E xx xx xx xx;应用层3字节+否定响应+SID+子功能

2.安全访问

为什么会有安全访问的模块:由于整车端的数据不希望开放给客户端,所以需要对其保密。在我们读取数据之前需要进行解锁。

解锁请求:$27+子服务+钥匙

第一轮:

tester发送请求指令:(27 01);ECU会返回:67+01+AA+BB+CC+DD;其中,AA-DD就是种子。

第二轮:

tester根据种子计算出k1,发送请求,子服务是02;tester发送:27+02+[k1]给ECU;ECU根据种子计算出k2,并且检查k1,k2是否一致。若是一致,解锁成功。

安全检验算法:一个核心,三个主体

三个主体分别为:ECU读取的SN,seed,执行次数

一个核心:算法

3.读数据

读取指令:22+DID

响应指令:62+DID+Data

例如:读取:03 22 F1 86 AA AA AA AA;响应:04 62 F1 86 01 AA AA AA

4.写数据

请求指令:2E+DID+Data

响应指令:6E+DID

例如:读取:03 2E F1 86 AA AA AA AA;响应:04 6E F1 86 01 AA AA AA

5.读DTC

DTC(diagnostic trouble code):如果系统检测到了一个错误,它将存储为DTC。

故障码包括4大类:P(Powertrain)C(Chassis)B(Body)U(network)

例如:P0047;P:Powertrain类别的故障,00/01/10/11分别表示P/C/B/U。

01 (读取符合掩码条件的DTC数量)(必须支持),后面的参数是DTC状态掩码,若为01表示我想读当前故障,若为08表示我想读历史故障,若为09表示当前故障和历史故障都想读。

02(读取符合掩码条件的DTC列表及其状态)(必须支持),后面的参数是DTC状态掩码,解读同上。

6.清除DTC

清除故障包括:包含当前故障(TestFailed)和历史故障(ConfirmedDTC)

3个FF代表清除所有DTC。Request:14+FF+FF+FF;Response:54 。

参考资料

UDS诊断入门 - 知乎 (zhihu.com)

汽车UDS:统一诊断服务概览 - 知乎 (zhihu.com)

详解UDS CAN诊断:什么是UDS(ISO 14229)诊断? - 知乎 (zhihu.com)

CAN-TP帧类型(SF/FF/CF/FC)解析_单帧和多帧的区别_汪汪队睡大覚的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秃头宝贝。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值