之前讲解到CAN物理层和数据链路层的相关知识,这些属于ISO 11898-1、ISO 11898-2和ISO 11898-3协议方面的知识,本篇博文开启新篇章,讲解依托于CAN通信的应用层服务:UDS(ISO 14229)诊断协议。
本篇博文素材来源于:ISO 14229-1-2020:规范和要求。
UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。简单来说,可以理解为UDS诊断协议就是ISO 14229协议,在ISO 14229协议中定义了UDS服务用法、服务格式等信息。
UDS诊断最主要目的是为了能够快速准确判断车辆或者某个控制器的故障以及故障原因,从而为维修提供可靠的依据。
截止到2020年,UDS诊断由以下8个部分组成:
在开放系统互连(OSI)基本参考模型中规定了各类物理层通信对应部分的UDS诊断协议。例如,CAN通信(ISO 11898-1、ISO 11898-2和ISO 11898-3)在应用层的UDS诊断协议是ISO 14229-1和ISO 14229-3。
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判断是什么原因导致的否定响应。
发布日期: 2024-05-08
发布日期: 2023-11-24
发布日期: 2024-05-13
发布日期: 2023-12-07
发布日期: 2024-08-28
发布日期: 2024-05-21
发布日期: 2024-01-13
发布日期: 2024-07-14
发布日期: 2024-09-10
发布日期: 2024-09-10
发布日期: 2024-09-10
发布日期: 2024-09-10
发布日期: 2024-09-10
寻找更多销售、技术和解决方案的信息?
广州绿测电子科技有限公司(简称:绿测科技)成立于2015年11月,是一家专注于耕耘测试与测量行业的技术开发公司。绿测科技以“工程师的测试管家”的理念向广大客户提供专业的管家服务。绿测科技的研发部及工厂设立于广州番禺区,随着公司业务的发展,先后在广西南宁、深圳、广州南沙、香港等地设立了机构。绿测科技经过深耕测试与测量领域多年,组建了一支经验丰富的团队,可为广大客户提供品质过硬的产品及测试技术服务等支持。
技术工程师
销售经理
020-22042442
广东公司:冯经理
020-2204 2442-9-822
广西公司:何经理
020-2204 2442-9-880