前言
UDS(UnifiedDiagnostic Services,统一诊断服务,有时也称增强诊断)指的就是ISO-14229协议。
ISO 14229-1定义了诊断服务,但不涉及网络层及实现手段,只有应用层的内容,因此可在不同的汽车总线(如CAN,LIN,Flexray,Ethernet,K-line和XCP等)上实现。
下列是ISO-14229在OSI模型中的位置。
UDS诊断协议
诊断服务交互机制
基于C/S的诊断通信机制,诊断仪发过来的诊断请求被执行了Tester作为Client发出诊断请求request,车辆ECU作为Server处理该请求并发送诊断响应response(PosResponse/NegResponse),诊断报文是典型的事件触发型报文,有请求才会有响应。
如果ECU收到了Tester发过来的诊断请求,且执行了相关请求,此时ECU会向Tester发送肯定响应PosResponse。
如果ECU因为某种原因无法执行诊断仪发过来的诊断请求,则向诊断仪发送否定响应NegResponse。
服务请求和响应格式
了解机制以后,还需要掌握具体的服务请求和响应格式。
14229-1中目前定义了26中服务,详见如下表格。