详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?

article/2025/10/31 0:37:17

目录

1、UDS诊断概念

2、UDS诊断组成部分

3、UDS诊断服务


之前讲解到CAN物理层和数据链路层的相关知识,这些属于ISO 11898-1、ISO 11898-2和ISO 11898-3协议方面的知识,本篇博文开启新篇章,讲解依托于CAN通信的应用层服务:UDS(ISO 14229)诊断协议。

对汽车电子、CAN通信、UDS诊断技术感兴趣的小伙伴请关注公众号:美男子玩编程,公众号优先推送最新技术博文,创作不易,请各位朋友多多点赞、收藏、关注支持~

本篇博文素材来源于:ISO 14229-1-2020:规范和要求。

1、UDS诊断概念

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。简单来说,可以理解为UDS诊断协议就是ISO 14229协议,在ISO 14229协议中定义了UDS服务用法、服务格式等信息。

UDS诊断最主要目的是为了能够快速准确判断车辆或者某个控制器的故障以及故障原因,从而为维修提供可靠的依据。

2、UDS诊断组成部分

截止到2020年,UDS诊断由以下8个部分组成:

  • ISO 14229-1-2020:规范和要求;
  • ISO 14229-2-2013:会话层服务;
  • ISO 14229-3-2012:CAN实现的统一诊断服务(UDSonCAN) ;
  • ISO 14229-4-2012:FlexRay实现的统一诊断服务(UDSonFR) ;
  • ISO 14229-5-2013:Internet协议实现的统一诊断服务(UDSonIP);
  • ISO 14229-6-2013:K线实现的统一诊断服务(UDSonK-Line) ;
  • ISO 14229-7-2015:本地互联网络实现的统一诊断服务(UDSonLIN);
  • ISO 14229-8-2020:时钟扩展外围接口实现的统一诊断服务(UDSonCXPI)。

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

3、UDS诊断服务

UDS诊断是一种定向通信的交互协议(Request/Response),诊断方(Tester)发送服务请求,ECU返回响应(肯定响应/否定响应)。

UDS诊断包括6大类,26种服务,每种服务都有自己独立的ID,即SID(Service Identifier)。

UDS诊断服务的通信协议基本相似,但又有所区别。

以诊断和通信管理功能单元(Diagnostic and Communication Management functional unit )为例,服务请求和响应有两类:一类是具有Subfunction(子功能),另一类是不具有Subfunction(子功能)。

不具有Subfunction(子功能)的UDS诊断服务请求和响应机制如下图所示:

诊断方(Tester)向ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。

ECU接收到请求数据(Request)后会返回响应,可返回肯定响应或者否定响应。

肯定响应(Positive Response)格式为:(SID+0X40)+数据。例如,请求0X10服务,肯定响应第1个字节为0X50;请求0X22服务,肯定响应第1个字节为0X62。

否定响应(Negative Response)格式为:0X7F+SID+NRC。例如,请求0X10服务,否定响应第1个字节为固定的0X7F,第2个字节为0X10,第3个字节为NRC。NRC是否定响应码,可以根据返回的NRC判断是什么原因导致的否定响应。

具有Subfunction(子功能)的UDS诊断服务请求和响应机制如下图所示:

诊断方(Tester)向ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。

ECU接收到请求数据(Request)后会返回响应,可返回肯定响应或者否定响应。

肯定响应(Positive Response)格式为:(SID+0X40)+Subfunction(子功能)+数据。例如,请求0X10服务,Subfunction(子功能)为0X02,肯定响应第1个字节为0X50,第2个字节为0X02。

否定响应(Negative Response)格式为:0X7F+SID+NRC。例如,请求0X10服务,否定响应第1个字节为固定的0X7F,第2个字节为0X10,第3个字节为NRC。NRC是否定响应码,可以根据返回的NRC判断是什么原因导致的否定响应。

本篇博文不再赘述UDS服务所有类型的协议格式,在之后的博文中会详细讲解每种类型每个ID服务的协议和功能。


UDS诊断 ISO 14229 1~8整套协议-中英文最新版 


详解CAN总线:什么是CAN总线?

详解CAN总线:高速CAN总线和低速CAN总线的特性

详解CAN总线:CAN协议分层结构及功能

详解CAN总线:CAN节点硬件构成方案

详解CAN总线:常用CAN连接器的使用方法

详解CAN总线:CAN总线报文格式—数据帧

详解CAN总线:标准数据帧和扩展数据帧​​​​​​

详解CAN总线:CAN总线报文格式—遥控帧

详解CAN总线:CAN总线报文格式—错误帧

详解CAN总线:CAN总线报文格式—过载帧

详解CAN总线:CAN总线报文格式—帧间隔

一文搞懂CAN和CAN FD总线协议

CAN与CAN FD通信之间存在的问题

详解CAN总线:CAN总线故障界定与管理

详解CAN总线:CAN总线通信优先级机制 


http://chatgpt.dhexx.cn/article/EKjeNxu7.shtml

相关文章

UDS诊断基础知识简介-ISO14229

什么是UDS? UDS全称为Unified Diagnostic Services,统一的诊断服务。由ISO-14229系列标准定义。 诊断通信的过程从用户角度来看非常容易理解,诊断仪发送诊断请求(request),ECU给出诊断响应(response)&…

UDS常用诊断服务介绍

1、UDS诊断简介 UDS英文全称为Unified Diagnostic Services,既通用诊断协议。相对于传统的OBD诊断不仅具有车辆ECU诊断功能,同时兼具数据传输、数据读写、通信控制等功能。也就是说已经不是传统意义上的诊断服务,可以称之为增强型诊断协议。…

UDS诊断协议规范与要求

1.UDS简介 1.1标准介绍 国际标准ISO 14229,基于OSI基本模型实现。如下所示: 应用层(第7层),ISO 14229-1,ISO 14229-3 UDSonCAN,ISO 14229-4 UDSonFR,ISO 14229-5 UDSonIP&#xff…

UDS诊断入门

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Internet 和K-line&…

软件工程 第4版张海藩 pdf_2019年第4期软件工程造价师培训课程圆满结束

2019年2月20至22日,由北京软件造价评估技术创新联盟举办的2019年第4期(总第208期)软件工程造价师培训课程在北京圆满结束。 来自系统工程所、江苏国创新云、东软望海科技等公司的近20名学员参加培训。培训课上,培训老师系统讲解了国家标准和行业标准中规…

软件设计师考试-软件工程

1. 软件开发模型 瀑布模型 瀑布模型把软件开发分为三大阶段:定义阶段、开发阶段、维护阶段。 瀑布模型的最大缺点在于不能灵活应对变化的需求,瀑布模型适用于需求明确的情况。 软件测试完成后的工作产品,例如系统测试数据、系统测试结果、…

软考之软件工程

软件过程 软件成熟度模型(CMM) 软件过程改进的框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。 每一次软件改进要精力4个步骤:评估、计划、改进和监控。 能力成熟度模型集成(CMMI&a…

广东二级造价工程师《造价管理》真题解析

2022年广东二级造价工程师考试结束之后,有些网友吐槽:说今年的二造考试出题有点偏,有点难。不过也有网友表示so easy~ 由于二造是机考,当场出分。现在只能期待今年及格线和以往一样。成绩不太理想的考生也不要紧,抓紧看…

软件 工程

目录 第十章、软件工程1、瀑布模型(SDLC)2、快速原型模型3、增量模型4、螺旋模型5、Ⅴ模型6、喷泉模型7、构建组装模型(CBSD)8、统一过程(RUP)9、敏捷开发方法10、信息系统开发方法11、需求开发12、结构化设…

造价师工程师零基础自学

二级造价工程师零基础自学可以考过,但是前提是自己要有很强的学习能力和自律性。帮过网表示,二级造价工程师考试难度不小,想要考过还是要付出很多的努力的。 1、零基础怎么备考二级造价师 一:理解基础知识——看教材。 作为小白…

2、软件造价总结(主要基准数据)

1、软件开发生产率 2、人月费率 3、功能点单价 功能点单价基准为 1245.19 元/功能点(以北京地区 功能点(以北京地区 统计数据 中位数 为基准, 费用包含 软件 开发 的直接 人力成本、间直接 人力成本、间人力 成本 、间接非人力成本 、间接非…

软考软件设计师----软件工程(自用)

本篇博文目录: 1.CMM与CMMI(1) CMM(2) CMMI 2.软件开发模型(1) 瀑布模型(2) V模型(3) 增量模型(4) 演化模型(5) 喷泉模型(6) 统一过程模型 3.敏捷方法(1) 软件需求(2) 系统设计(3) 系统测试 4.测试(1)单元测试(2)集成测试(3) 测试方法 5.运行和维护知识(1) 系统可维护的评价指标…

软件工程(Software Engineering)

软件工程(Software Engineering) GTI-分布式版本控制系统查看已有的git配置信息DVOS运维一体化单分支模型exitgit --versiongit clone urlnotepadgit config --listgit initgit remote add originjava JDK版本Builder Design Mode质量属性 FURPS功能性&a…

软考-软件工程

目录 🍓软件工程概述 🧀1.软件生存周期 🧅2.软件生存周期模型 🍚瀑布模型 🍈快速原型 🍘增量模型 🍯螺旋模型 🧀喷泉模型 🍪敏捷过程 🍣3.软件开发…

Springboot+建筑造价师资格考试应试网站设计与实现 毕业设计-附源码260839

Springboot建筑造价师资格考试应试网站 摘 要 如何合理确定和有效控制工程投资,是工程项目建设的一大难题,如何使建筑工程造价管理与社会生产水平相适应,是建筑工程造价管理中需要解决的问题,只有加强建筑工程造价管理工作力度&a…

linux强行退出线程,Linux 多线程编程--线程退出

今天分析项目中进程中虚存一直增长问题,运行10个小时虚存涨到121G ,RSS占用为16G 非常恐怖。 顺便查了下Linux单进程能创建线程的上限,以及相关内容。内存32G 64bit系统信息如下: Linux线程使用方式是主进程依据请求的多少动态创建…

Linux线程优先级设置

Linux内核的三种调度策略: 1.SCHED_OTHER 分时调度策略 2.SCHED_FIFO 实时调度策略,先到先服务。一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃 3.SCHED_RR实 时调度策略,时间片轮转。当进程的时间片用完&#xff0…

linux多线程编程 实验,linux操作系统-实验五-linux 多线程编程.docx

linux操作系统-实验五-linux 多线程编程.docx 操作系统 实验报告 实验序号 5 实验项目名称 Linux 多线程编程 学 号 姓 名 专业、班 实验地点 指导教师 实验时间 2015.10.13 一、实验目的及要求 通过本实验的学习,使学生掌握 Linux 多线程编程的基本方法。 以学生自…

Linux下多线程的操作

线程定义 **定义:**线程是轻量级的进程(LWP:light weight pocess),在Linux环境下线程的本质仍然是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位…

Linux多线程——概念

目录 前言 一.线程的概念 1.1 什么是线程 1.2 线程的优点 1.3 线程缺点 1.4 线程异常 1.5 线程用途 1.6 Linux进程和线程对比 1.7 关于进程和线程的问题 1.7.1 POSIX线程库 1.7.2 进程ID和线程ID 1.7.3 线程ID和进程地址空间 1.7.4 线程库与内核线程的关系 二.线程管理 …