车载诊断快速入门

诊断快速入门


UDS Introduction

>> UDS实践性强,逻辑复杂,很多服务非要体验过一次才能理解,初学者晦涩难懂,可以保持一套自己的笔记。

Q1: 什么是统一诊断服务

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议,在ISO 14229中规定。它是从ISO 14230-3(KWP2000)和ISO 15765-3协议衍生出来的。“统一”这个词意味着它是一个“国际化的”而非”公司特定的”标准。到目前为止,这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。这些ECU控制车辆的各种功能,包括电控燃油喷射系统(EFI),发动机控制系统,变速箱,防抱死制动系统(ABS),门锁,制动器等。

Q2: 什么是诊断仪

诊断工具与车内的所有控制单元均有连接,且这些控制单元均启用了UDS服务。不同于仅使用OSI模型第一层、第二层的CAN协议,UDS服务使用OSI模型的第五层和第七层(会话层和应用层)。服务ID(SID)和与服务相关的参数包含在CAN数据帧的8个数据字节中,这些数据帧是从诊断工具发出的。

目前市面上的新车都具有用于车外诊断的诊断接口,这使得我们可以用电脑或诊断工具(业内称为测试器Tester)连接到车辆的总线系统上。因此,UDS中定义的消息可以发送到支持UDS服务的控制器(业内称ECU)。这样我们就可以访问各个控制单元的故障存储器或用新的固件更新ECU的程序。除此之外,UDS还用于下线检测时把一些信息(如VIN码)写入到汽车的各个零部件中。这些功能也是UDS最为核心的功能。

Q3: UDS协议诞生初衷

为什么我们要设计UDS这样的诊断协议呢?在汽车诊断协议诞生之前,修车只能靠师傅的经验,因为汽车零部件不会告诉你它哪里出了问题。但有了诊断协议之后,一旦零部件出了问题或者出过问题,它们会把故障信息保存在内存里面,维修师傅就可以通过通信总线读取这些故障信息,比如一个ECU经历欠压故障之后,它会将欠压故障代表的DTC(诊断故障码)存储起来,可选择性保存的还有发生故障时的快照信息(比如此时的车速、读到的电压值等)。快照信息有助于测试工程师和售后技师查找发生故障的原因。

Q4: 诊断协议载体

除了CAN总线以外,UDS也可在不同的汽车总线(例如 LIN, Flexray, Internet 和K-line)上实现。

如下图所示,ISO 14229也就是UDS协议仅对应用层、会话层做出了定义。这里有个疑问,UDS专指ISO 14229-1吗?这种说法是不对的,UDS包含了ISO 14229下属的7个子协议,其中ISO 14229-2还是会话层的,所以UDS仅包括应用层的说法也是错误的。

在这里插入图片描述

图:Unified Diagnostic Service(UDS) ISO-14229-1

说明下,我们本篇文章我们仅使用CAN来描述UDS。对于CAN来说,物理层和数据链路层遵循ISO 11898协议;网络层方面,Classical CAN仅有8个字节的数据场与应用层处理多帧数据的需求构成了矛盾,ISO 15765-2协议解决了该问题,我们用CAN的8字节数据场会腾出一到两个字节的做法,来体现网络层的控制信息。

如果希望深入学习下UDS网络层的知识,请移步:https://zhuanlan.zhihu.com/p/44857562

Q5: OBD与UDS

排放相关的诊断内容,即ISO 15031-5主要针对OBD协议,为法规强制要求燃油车满足的协议,电动车是无需满足的。燃油车通常既满足UDS协议,又满足OBD协议,这两个协议不冲突。小伙伴们有没有发现UDS协议的服务ID(SID)最小的是0x10,那是因为小于0x10的服务是OBD协议中规定的。

Q6: 诊断前知识储备

学习UDS之前,希望您对CAN的基础知识有初步的了解,知道一个CAN帧的基本构成,熟悉至少一种CAN盒的使用方法。协议方面,应通过PPT、论文、原版英文协议重点学习ISO 15765-2和ISO 14229-1的协议内容,之后可以将Git上的开源UDS协议栈移植到你熟悉的嵌入式平台上,进行数据收发;或使用CAN盒与支持UDS诊断的设备进行数据收发,对UDS有一个大致的认识。切记知行合一,实践很重要。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
车载诊断标准ISO 15765是一种用于汽车诊断系统通信的协议。该标准由国际标准化组织(ISO)制定,旨在统一不同汽车制造商之间的诊断通信标准,使车辆技术人员能够在不同品牌和型号的汽车上进行有效的诊断和维修。 ISO 15765采用了控制器局域网(CAN)作为通信介质,并定义了一套诊断服务和通信协议。CAN是一种串行通信协议,具有高速、抗干扰等特点,适用于汽车电子系统的诊断和通信。ISO 15765通过在CAN总线上定义诊断通信的格式、报文结构和数据格式,实现了诊断设备与汽车电子控制器之间的通信。 ISO 15765定义了诊断通信的各个层面,包括物理层、数据链路层和应用层。在物理层,ISO 15765规定了CAN总线的电压、速率和物理连接方式。在数据链路层,ISO 15765定义了诊断传输协议,包括报文的发送和接收机制、报文帧的格式,以及错误检测和纠正机制。在应用层,ISO 15765定义了诊断服务和命令集,包括读取和清除故障码、读取和写入参数等。 通过ISO 15765标准,诊断设备可以通过CAN总线与车辆的电子控制器进行通信,并获取车辆的诊断信息。这在诊断和维修车辆时非常有用,可以帮助车辆技术人员快速、准确地定位和解决故障。ISO 15765的应用范围广泛,涵盖了各种类型的车辆,包括乘用车、商用车、摩托车等。 总之,车载诊断标准ISO 15765是一项重要的国际标准,为不同品牌和型号的汽车之间的诊断通信提供了统一的规范。它促进了诊断技术的发展,提高了汽车诊断的效率和准确性,对于保障车辆安全和维修质量具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CDamogu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值