UDS介绍

首先要有网络网络七层的概念:

学习链接: 七层网络模型-CSDN博客


UDS网络层/TP层(ISO 15765-2)的解读 - 知乎 (zhihu.com)

概念:

        UDS(Unified Diagnostic Services,统一的诊断服务。

        标准名是《道路车辆 统一的诊断服务》

        英文名是《Road vehicles—Unified diagnostic services》

        在ISO 14229中规定,它是从ISO 14230-3(KWP2000)和ISO 15765-3协议衍生出来的。这些ECU控制车辆的各种功能,包括电控燃油喷射系统(EFI),发动机控制系统,变速箱,防抱死制动系统(ABS),门锁,制动器等。

除CAN总线以外,UDS也可在不同的汽车总线(例如 LIN, Flexray, Internet 和K-line)上实现。

关键缩略词

 缩写 释意
SID Service Identifier 诊断服务ID 是一种交互协议(Request/Response),即诊断方(Tester)给ECU发送指定的请求数据(Request),这条数据中需要包含SID,且SID处于该应用层数据的第一个字节。如果是肯定的响应(Positive Response),首字节回复[SID+0x40],举例子就是请求0x10,响应0x50;请求0x22,响应0x62。如果是否定的响应(Negative Response),首字节回复0x7F,第二字节回复刚才询问的SID如果是肯定的响应(Positive Response),首字节回复[SID+0x40],举例子就是请求0x10,响应0x50;请求0x22,响应0x62。如果是否定的响应(Negative Response),首字节回复0x7F,第二字节回复刚才询问的SID

协议栈总览:

       UDS介绍_第1张图片

协议

网络层概述

uds只涉及第一第二,第五第七层。

OSI
物理层 定义终端之间的电气、机械等特性和标定;包括电压、频率、数据速率、最大传输距离。
数据链路层 在物理线路上提供可靠的数据传输;例如物理地址、网络拓扑、线路规划、差错报告、数据帧有序传输;需要解决帧的破坏、丢失和重复的问题,线路使用权的竞争问题,流量调节和出错处理问题。
网络层

网络层最主要的目的就是把数据转换成能适应CAN总线规范的单一数据帧从而进行传输,如果将要传输的报文长度超过了CAN数据帧的长度,则需要将报文信息进行拆分后传输,每次至多可以传输4095个字节长度的报文。

网络层协议数据单元(N_PDU)有四种类型,即单帧(SF)、首帧(FF)、连续帧(CF)、流控制帧(FC),用于建立对等实体间的通信。

传输层(TP层

使收发的数据帧所包含的字节总数,扩容到4095个字节。

不管发送或接收是成功或是出错,都需要上报给应用层。

会话层
表示层 在物理线路上提供可靠的数据传输;例如物理地址、网络拓扑、线路规划、差错报告、数据帧有序传输;需要解决帧的破坏、丢失和重复的问题,线路使用权的竞争问题,流量调节和出错处理问题。
应用层 USD应用层由ISO 14229标准定义。诊断通信的过程从用户角度来看非常容易理解,诊断仪发送诊断请求(request),ECU给出诊断响应(response),而UDS就是为不同的诊断功能的request和response定义了统一的内容和格式。

基 于UDS的DOIP/DOCAN框架

 DoI P

是Diagnostic communication over Internet Protocol 的简称,顾名思义,我们以太网协议,承载UDS数据,实现诊断通信的这种方式称为DoIP相比DoCAN中CAN网络的封闭性,DoIP由于Ethernet的互联互通,可以实现车与车、车与人的远距离诊断通信。由ISO13400 系列标准定义。通过网络协议进行诊断通信,由ISO13400 系列标准定义。即DoIP是在以太网网络上传输UDS诊断数据的传输协议。DoIP带宽高,适合传输大量数据的场景,如车上的OTA软件升级。DoIP报文也是基于TCP或UDP,但在其报文的Payload起始段添加了DoIP报头(首部),用来区分不同的DoIP报文类型,实现不同的功能。DoIP报文的结构如下图所示:

UDS介绍_第2张图片

DOIP协议体系参考协议总览‘

  • 网络层协议IP
  • 传输层协议TCP/UDP
  • 对网关的要求(网关如何集成到现有网络总)
  • 对测试设备的要求(如何发现车辆并建立通信)

支持DoIP的车辆网络架构图如下

在这里插入图片描述

 从这张图上可以看出:汽车内部必须有一个DoIP的总网关,它作为和外部的诊断设备DoIP通信的唯一接口。

DOCAN

UDS定义的是诊断服务,属于应用层的内容,实现诊断通信的底层总线技术有很多,比如CAN,LIN,Ethernet,Flexray等,由于法规强制的OBD接口是CAN总线的,所以绝大多数场景中诊断都是基于CAN实现的。这就带来了一个问题,classical CAN总线物理层的每一帧只能传输8个字节,CAN FD第帧最多能传输64个字节,那么如果UDS产生的一条诊断命令超过了8个字节,在CAN总线上一帧是承载不了的,就需要进行分包,这也是DoCAN(Diagnose over CAN)要解决的最主要的问题。

参考:基于CAN总线实现的UDS诊断(DoCAN) - 知乎 (zhihu.com)

目前并非最终版本,工作中遇到了再回来修改添加

你可能感兴趣的:(MCU,UDS,doip,DOCAN)