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

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

之前讲解到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。


7e8ebdb28d1b4282a7a1e50e69a59c31[0].png


3、UDS诊断服务

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


d9bee031c4e0465fa7cf808f524799e3[0].png

cd3518cbb6d948e484751508892a5559[0].png



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


461be3ab2cb64ea7ab060a82b97ae471[0].jpeg


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


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


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


67a74a87d0c74c3fae32babe158adc1b[0].png


诊断方(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诊断服务请求和响应机制如下图所示:


9f762cf87550406dabd56642a3277385[0].png


诊断方(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服务的协议和功能。

https://download.csdn.net/download/m0_38106923/86954787


相关文章
|
16天前
|
运维 网络协议 安全
【专栏】30个必备的思科设备巡检命令,涵盖设备基本信息、性能、网络连接、安全及其它重要方面
【4月更文挑战第28天】本文列举了30个必备的思科设备巡检命令,涵盖设备基本信息、性能、网络连接、安全及其它重要方面。这些命令包括`show version`、`show running-config`、`show ip route`、`show access-lists`等,对监控设备状态、排查故障及优化性能至关重要。熟悉并运用这些命令能提升网络工程师的工作效率,确保网络稳定运行。不断学习新命令以适应网络技术发展是网络工程师的必修课。
|
3月前
|
安全 内存技术
[UDS] --- UDS服务应该支持的NRC
[UDS] --- UDS服务应该支持的NRC
112 0
|
3月前
[UDS] --- UDS概述
[UDS] --- UDS概述
235 0
|
4月前
|
安全
UDS服务
UDS服务
80 0
|
Linux
Linux主机安装NetFlow采集器并使用Graylog进行网络流量分析
Linux主机安装NetFlow采集器并使用Graylog进行网络流量分析
757 0
Linux主机安装NetFlow采集器并使用Graylog进行网络流量分析
|
测试技术
工程监测NLM5无线中继采集发送仪使用$SETPTool 工具读写参数
NLM5xx是一台低功耗的多通道无线中继采集仪,得益于传感测量、无线通讯、功耗控制等技术累积,设备平均功耗低至微安级别。内置电池可独立工作数年。
|
机器学习/深度学习 运维 负载均衡
网络智能服务NIS-实例诊断功能介绍
01 背景前言 多年来,我们看到用户使用阿里云网络的方式发生了变化,一方面用户期待使用越来越多的产品可以快速灵活组网;另一方面又迫切希望能降低其基础设施日常运维的复杂性,以便他们能够专注于自己的应用程序和其他业务重点。
282 0
|
Android开发 网络架构 Docker
「WGCLOUD」可以监测哪些网络设备
「WGCLOUD」可以监测哪些网络设备
「WGCLOUD」可以监测哪些网络设备