汽车
详解汽车UDS诊断协议(一)
详解汽车UDS诊断协议(二)
UDS诊断帧
浅谈电动汽车ISO-14229 UDS诊断协议
什么是A样,B样,C样,D样已经对应的成熟度
车载以太网诊断协议-DoIP
AI 需求
本文档使用 MrDoc 发布
-
+
首页
浅谈电动汽车ISO-14229 UDS诊断协议
## 概述 ISO-14229标准的也称为UDS(Unified Diagnostic Services),是一种面向汽车电子控制单元(ECU,Electronic Control Unit)的统一诊断服务,不仅用于诊断汽车故障,还用于刷写软件等应用场景,可以说是目前汽车电子领域应用最广泛的技术协议之一。 UDS简单来说是一种Client/Server的通信服务,即Tester(诊断仪)向ECU发送诊断服务请求(Request),ECU则向Tester发送对应服务请求的响应(Response)。较为复杂的是,ISO-14229标准针对每种诊断服务定义了不同的子功能、寻址方式、参数等,其响应报文不是唯一的,对于初学者可能感到困扰。个人最近接触了基于CAN总线的UDS诊断协议(UDS on CAN),并总结了本文,供大家一起探讨。 ## 一、ISO-14229标准基本知识 (1) 服务ID(SID,Service Identifier) ISO-14229标准定义了25种不同的诊断服务,为区分具体的诊断服务,使用1个字节的服务ID作为服务的唯一识别码。当我们想表达一个具体的诊断服务时,有时候直接说出它的服务ID比起全称会更加简洁有效。表1所示是ISO-14229标准定义的诊断服务汇总列表。当然,并不是所有的诊断服务需要支持,标注有\*符号为常用诊断服务。 表1 UDS诊断服务汇总  (2) 子功能(Sub-function) 有些诊断服务支持子功能,以细分为更具体的服务类型。比如,0x11服务用于ECU复位,子功能01和03可分别解释为硬件复位和软件复位。前面提到的表1中标注了$符号的服务表示支持子功能。值得注意的是,当子功能所占的1字节最高位(正响应抑制位)置1时,其正响应不需要回复。 (3) 参数(Parameter) 用于描述诊断服务的额外信息(如Data Identifier),多见于子功能不支持的服务,但子功能支持的服务不一定都有参数信息。 (4) 寻址模式(Addressing Type) Tester发送Request的目标ECU地址根据以下方式指定: ①物理寻址(Physical Address):即一对一通信,用于Tester已知需要诊断的ECU; ②功能寻址(Functional Address):即一对多通信,用于Tester向所有ECU请求诊断服务。 (5) 负响应码(Negative Response Code) 当请求服务执行失败时,ECU向Tester反馈的失败原因代号,简称NRC。表2列出了常见的负响应码。 表2 常见负响应码  ## 二、诊断数据分析 (1) 报文基本格式 诊断报文格式的主要区分于服务是否带子功能,如表3所示。明显的规律是正响应报文的SID字段在其请求报文的SID基础上增加了0x40,而负响应帧都含有0x7F和NRC负响应码。 表3 报文基本格式  (2)多帧报文传输 当报文超过8个字节时,则需要将报文拆分成多帧,依次使用首帧、流控帧和连续帧进行传输,该部分知识可参考ISO-15765标准定义的传输层协议内容。 (3) 响应机制总结 ECU主要根据诊断服务请求报文`<SID>` + `<Sub-Function>` + `<Parameter>`各字段进行响应动作: ①物理寻址模式时,ECU处理请求报文的一般过程如图4所示(含正负响应过程)。只有当所有处理流程顺利执行时,ECU才会回复正响应;否则,ECU回复含有负响应码的错误。 ②功能寻址模式时,多数情况下,ECU只回复正响应,负响应不予回复。 更具体的响应机制请见于本文最后的查阅附表总结,限于篇幅,这里不再逐个解释。
admin
2024年2月29日 10:12
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码