汽车UDS诊断详解及Vector相关工具链使用说明——总述

本文详细介绍了汽车UDS诊断协议,包括诊断协议体系、车辆诊断发展、UDS服务及其在CAN网络层的传输协议。同时,对基于UDS的BootLoader开发和Vector工具如DiVa、VT System的使用进行了讲解,旨在为读者提供全面的UDS学习资源。
摘要由CSDN通过智能技术生成

1.什么是诊断

车辆在运行过程中,不可避免地会发生一些故障,为了确保行车安全,我们要求车上的ECU能够实时监测部件的运行状态,一旦发现异常情况,能通过点亮报警灯等方式提示驾驶员。但是,点亮报警灯只能告诉驾驶员车辆发生了故障,最多只能定位到故障ECU,比如ABS报警灯亮说明ABS系统出现故障,但具体是什么部件发生故障并不能通过报警灯显示出来。这时就需要ECU在本地存储一个与故障相对应的故障代码,在进行维修的时候,可以通过车上的OBD接口连接诊断仪,把这个存储的故障代码读取出来,从而进一步定位到更加具体的故障部件,比如ABS传感器发生断路等。

以上就涉及到了车辆故障诊断的两个方面,一个是在线诊断(Onboard Diagnostic),包括故障实时监测、故障灯显示和故障代码实时更新存储,另一个是离线诊断(Offboard Diagnostic),就是指维修时连接外部诊断仪,进行故障码读取,从而快速定位故障部件,有的诊断仪还可以直接显示维修建议。

2.诊断协议体系

想要把存储的故障码读取出来,就需要诊断仪和ECU之间有一个通讯协议。目前最常用的是基于CAN线的UDS诊断。

UDS(Unified diagnostic service) 是由ISO 14229-1标准定义的一套国际通用的诊断服务指令,规定了诊断请求和响应的格式。在整个体系中处于最上层的应用层。

诊断指令通过 CAN(ISO 11898) 网络进行传输,当然现在也有基于CANFD或以太网等其它网络的诊断,诊断指令都是由UDS定义的,只不过底层传输方式不一样,本专栏只讨论基于CAN网络的诊断。

但有个问题是CAN每帧只能传输8个字节,而有些诊断指令的长度是大于8字节的,这个时候就需要在应用层和底层传输协议之间加入一个传输层,定义了一些多帧传输的机制。传输层对应的国际标准是ISO 15765-2/3,它的功能就是:发送方的传输层将应用层大于8字节的诊断数据按一定规则进行拆分,形成多个CAN帧进行发送,接收方的传输层收到这些CAN帧后,以相同的规则把应用层数据进行组合,形成完整的诊断数据。 它是上下层之间的一个媒介。

3.车辆诊断的发展

上面提到的是最基本的故障诊断功能,其实诊断能够完成的功能还有很多。例如,在车辆生产完毕时,需要对一些部件进行EOL下线检测,来验证装配是否正确,现在大多数下线检测都是通过诊断指令来实现的,比如给车身控制模块(BCM)发送一个诊断指令,让雨刷动两下,从而验证雨刷功能正常。

此外,很多车上的ECU会有更新升级软件的需求,最初都需要把ECU从车上拆下来,用专用的程序烧写设备进行软件烧写,但现在大部分车辆能够通过诊断仪来更新ECU软件,省去了拆装ECU的麻烦,在OBD接口上连接一个诊断仪就可以了。这个功能也是通过诊断来实现的,也就是我们常说的BootLoader。包括现在很火热的OTA,其底层实现方法也是诊断,只不过OTA不需要连接外部诊断仪,而是用Tbox、网关或车辆主机充当诊断仪,ECU软件更新包是从云端获取下来的,再通过诊断协议发送给ECU,实现软件的更新。

4.本专栏介绍

现在UDS诊断在车上越来越普及,开发和测试需求都越来越多,但UDS的学习成本其实还是蛮高的,14229-1这一本协议就四百多页,乍一看起来很没有头绪,网上其他一些资料也都比较零散。我在UDS诊断测试和开发这个方向工作了三年多了,手写了一套UDS代码和一套BootLoader代码,有了少许积累,想和大家分享一下我所学到的东西,以及开发和测试的一些经验。同时也是对自己所掌握的知识做一个全面的梳理和汇总,希望能在大家的学习过程中有一点帮助。文章我会力求简洁易懂,并且覆盖所有相关知识点,力争做一套全网做完整的UDS教程。

本专栏目前已更新完毕,包含了标准中所有服务的介绍,和与之相关的我所了解的东西。具体内容见下方目录,欢迎大家交流指正!如果有其它想要了解的地方可以评论或私信,一起探讨。感谢大家的关注~

<<<总目录>>>

1. UDS整体介绍

1.1 应用层协议整体介绍
1.2 UDS应用层软件开发方法
1.3 诊断响应规则汇总

2. UDS服务详解

2.1 诊断和通讯管理功能单元

常用服务:
2.1.1 诊断和通讯管理功能单元概述
2.1.2 诊断会话控制服务(0x10)
2.1.3 初步了解CDD(以10服务为例)
2.1.4 ECU复位服务(0x11)
2.1.5 安全访问服务(0x27)
2.1.6 诊断仪在线服务(0x3E)
2.1.7 通信控制服务(0x28)
2.1.8 控制DTC设置服务(0x85)

不常用服务:
2.1.9 时间参数控制(0x83)
2.1.10 链接控制(0x87)
2.1.11 加密数据传输(0x84)
2.1.12 基于事件响应(0x86)

2.2 数据传输功能单元

常用服务:
2.2.1 数据传输功能单元概述
2.2.2 数据读取和写入服务(0x22/0x2E)

不常用服务:
2.2.3 读取内存服务(0x23)
2.2.4 写内存服务(0x3D)
2.2.5 读取DID换算信息(0x24)
2.2.6 周期读取DID数据(0x2A)
2.2.7 动态定义DID(0x2C)

2.3 存储数据传输功能单元(常用)

2.3.1 故障码(DTC)格式详解
2.3.2 故障码状态(statusOfDTC)详解
2.3.3 读取DTC数量(0x19 01)
2.3.4 读取DTC(0x19 02)
2.3.5 读取DTC快照记录(0x19 04)
2.3.6 读取DTC扩展数据记录(0x19 06)
2.3.7 读取所有支持的DTC(0x19 0A)
2.3.8 清除DTC信息(0x14)

2.4 输入输出控制功能单元(常用)

2.4.1 输入输出控制服务(0x2F)

2.5 远程激活例程控制功能单元(常用)

2.5.1 例程控制服务(0x31)

2.6 上传下载功能单元

常用服务:
2.6.1 请求下载(0x34)
2.6.2 数据传输服务(0x36)
2.6.3 请求退出传输(0x37)与数据传输流程报文实例

不常用服务:
2.6.4 请求上传(0x35)
2.6.5 请求文件传输(0x38)

3. UDS on CAN网络层传输协议(15765-2)详解

3.1 概述
3.2 CAN 与CAN FD基础
3.3 传输层协议
3.4 多帧传输
3.5 网络层定时参数
3.6 错误处理
3.7 地址格式

4. UDS on CAN应用层规范(15765-3)详解

4.1 应用层定时参数
4.2 应用层错误处理

5. 基于UDS的车用BootLoader开发方法

5.1 概述
5.2 内存空间分配和Flash擦写操作
5.3 ECU启动流程
5.4 更新流程
5.5 CRC32算法

6. Vector工具介绍

6.1 使用DiVa进行诊断自动化测试
6.2 VT System 入门
6.3 VT System 板卡介绍
6.4 VT System 的使用
6.5 VT System 的FPGA附加模块
6.6 VT System 结合Diva实现诊断自动测试

  • 40
    点赞
  • 316
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
汽车UDS诊断协议是一种用于汽车电子控制单元(ECU)之间进行通信和诊断的协议。UDS代表“统一诊断服务”,是世界上最常用的汽车诊断协议之一。 UDS诊断协议基于CAN总线通信协议,它定义了在汽车系统中进行诊断和通信的规则和标准。它允许车辆制造商和诊断工具提供商创建统一的诊断服务,以确保不同品牌和型号的汽车都可以使用相同的诊断设备。 UDS诊断协议具有以下特点: 1. 标准化:UDS协议的标准化使得不同厂商的诊断设备和汽车之间可以进行通信和诊断,提高了汽车诊断的效率和准确性。 2. 多功能:UDS协议支持多种功能,包括读取和清除故障码、读取和更新ECU参数、执行特定操作等,使诊断工程师可以对车辆进行全面的诊断和维修。 3. 安全性:UDS协议提供了安全机制,如访问权限控制和数据加密,以保护车辆的安全性和隐私。 4. 高效性:UDS协议优化了数据传输方式,使得诊断过程更加高效快速。 UDS诊断协议主要包含两个重要的通信会话:诊断会话和编程会话。诊断会话用于实时和离线的诊断,可以读取和清除故障码、读取传感器数据等。编程会话用于对车辆的ECU进行参数设置、更新软件等。 总之,汽车UDS诊断协议在现代汽车维修和诊断中起到了关键作用,它通过标准化和多功能的特点,为诊断工程师提供了通用和高效的诊断方式,从而提高了汽车的可靠性和安全性。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老孟的孟不是很老的孟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值