1 UDS简介
1.1 什么是UDS
UDS (Unified Diagnostic Services) 统一诊断服务,是车辆诊断的一种应用层协议,面向整车所有ECU ,UDS协议ISO 14229定义了应用层和会话层,在协议里面定义了诊断的请求,诊断响应的报文格式,以及ECU怎样处理诊断请求报文,以及诊断服务的应用。它不关心底层数据链路层和物理层如何实现,所以可以在各种汽车总线上应用(CAN、Ethernet 、FlexRay、LIN等)。
诊断通信用于建立诊断仪与ECU之间的通信连接,并负责将ECU中的诊断结果输送到诊断仪中。
1.2 UDS的作用
UDS的作用非常广泛,几乎跟随ECU软件开发的全过程。
- ECU开发过程可用到它来构建bootloader,上传和下载数据,即软件刷写,控制器Reset;
- 测试时可用它来读写存储,控制外设;
- 产线上可用它来校准机械件,控制例程,进行下线执行器测试,刷新软件,配置防盗,读取号码,下线配置等;
- 在行驶过程中,要用它来监测各种故障,并记下故障码;
- 4S店里,技师需要读取当前故障、历史故障,读取故障发生时刻环境信息状态,清除故障,判断故障发生点,还可以用来升级ECU程序。
1.3 UDS在OSI模型中的应用
这张图描述了UDS在OSI七层模型中的应用,OSI的第一层第二层分别定义了物理层和数据链路层,第三层第四层定义了网络层和传输层,第七层是应用层。
比如说我们熟悉的CAN总线,物理层和数据链路层遵循的是ISO 11898,而它的传输层遵循的是ISO 15765-2,在ISO 14229-3中定义了UDS基于CAN总线的应用,而现在比较火的以太网,它的物理层和数据链路层遵循的是ISO 13400-3,它的传输层也就是DoIP遵循的是ISO 13400-2,它的UDS基于以太网的应用是ISO 14229-5。