本文我们先从整体的维度来介绍一下应用层协议,每个UDS服务都遵循本文中的协议。这篇大多是一些比较通用和基础的概念。具体内容包括:
一、诊断通讯的基本流程
二、寻址方式
三、SI(Service ID)
四、诊断请求格式
五、肯定响应格式
六、否定响应格式
七、诊断报文示例
一、诊断通讯的基本流程
如前文所述,当我们想要获取ECU中存储的故障码时,需要先给ECU发送一个诊断请求,ECU接到诊断请求后,就会将故障码发送给诊断仪,我们称之为诊断响应。这是用的最多的诊断通讯方式,即一条请求对应一条响应。
但有些情况下,我们可能只需要给ECU发送请求,而不需要ECU返回响应,例如用诊断命令雨刷动两下,我们可以通过雨刷的动作来判断诊断指令是否执行成功。这种通讯方式是单向无反馈的,也是允许的。具体ECU什么时候需要发送响应什么时候不需要发送,我们后文会详述。
二、寻址方式
再介绍一下寻址的概念。诊断仪想要将ECU中的故障码信息读出来,就要给ECU发送诊断指令,但是车上有这么多的ECU,诊断仪应该怎么才能只给其中的一个ECU发指令呢?这就涉及到了寻址。简单来说就是给每个ECU分配一个单独的ID,使诊断仪能够通过这个ID定位到某个ECU。