uds学习记录
[toc]
诊断系统是在汽车维修和故障排除过程中至关重要的工具之一。以下是UDS(Unified Diagnostic Services)汽车诊断的一些要点总结:
- UDS概述:UDS是一种汽车诊断协议,用于在车辆电子控制单元(ECU)和诊断工具之间进行通信。它定义了一组服务和消息,用于执行诊断、读取和写入数据以及执行特定功能。
- 诊断会话:UDS支持多种诊断会话,如默认会话(Default Session)、扩展会话(Extended Session)和制造商特定会话(Manufacturer Specific Session)。每种会话都有不同的权限和功能。
- 诊断服务:UDS定义了一组诊断服务,用于执行特定的操作。一些常见的诊断服务包括诊断控制(Diagnostic Control)、读取数据(Read Data)、写入数据(Write Data)、执行操作(Routine Control)和清除故障码(Clear Diagnostic Information)等。
- 诊断通信:UDS使用基于ISO 15765-2的标准诊断通信协议,通常通过CAN总线进行通信。诊断工具可以向车辆的ECU发送诊断请求,并接收相应的响应消息。
- 诊断标识符:UDS使用标识符(Identifier)来识别和访问ECU的不同数据和服务。每个诊断标识符都对应着特定的操作或数据。
- 诊断故障码:UDS支持诊断故障码(Diagnostic Trouble Codes,DTCs),用于识别和报告车辆系统中的故障。故障码提供了有关故障类型、位置和严重性的信息,以帮助诊断和排除故障。
- 诊断工具:UDS诊断工具可以是专用的汽车诊断仪、OBD-II扫描仪或计算机上的诊断软件。这些工具通过与车辆的ECU进行通信,执行诊断服务并获取诊断结果。
- 安全性和权限:UDS定义了不同级别的安全性和权限,以确保只有授权的诊断工具才能访问和执行特定的诊断操作。这有助于防止未经授权的访问和潜在的安全风险。
- 制造商特定扩展:UDS协议允许制造商在标准服务和数据之外定义自己的特定扩展。这些扩展可以包括制造商特定的诊断服务、数据和故障码。
UDS是一种广泛应用于现代汽车诊断的标准协议,它提供了一种标准化的方式来执行诊断操作并获取车辆系统的信息。通过使用UDS,诊断工程师可以更有效地检测和解决汽车故障,提高车辆维修的准确性和效率。
DOIP(Diagnostics Over Internet Protocol)是一种基于IP网络的汽车诊断通信协议,它用于在车辆电子控制单元(ECU)和诊断工具之间进行远程诊断和编程操作。以下是DOIP的一些要点:
- 概述:DOIP是一种用于汽车诊断的协议,它基于现有的IP网络技术,如以太网和TCP/IP协议。它旨在提供高速、安全和可靠的远程诊断通信。
- IP网络通信:DOIP使用IP网络进行通信,可以利用现有的以太网基础设施,包括局域网(LAN)和互联网。这使得远程诊断和编程操作变得更加灵活和便捷。
- 诊断通信:DOIP通过建立TCP/IP连接来进行诊断通信。诊断工具可以通过该连接向车辆的ECU发送诊断请求,并接收相应的响应消息。
- 网络安全:由于DOIP是基于IP网络的,网络安全成为一个重要的考虑因素。为了确保安全性,DOIP协议支持加密和身份验证等安全机制,以防止未经授权的访问和潜在的安全风险。
- 多路复用:DOIP协议支持在单个IP连接上进行多个诊断会话。这意味着诊断工具可以同时与多个ECU进行通信,从而提高了诊断操作的效率和并行性。
- 支持标准诊断协议:DOIP并不是一种独立的诊断协议,而是与其他诊断协议(如UDS)配合使用。DOIP提供了基于IP网络的传输层,使得现有的诊断协议可以在IP网络上运行。
- 远程编程:DOIP的一项重要功能是支持远程编程操作。通过DOIP,制造商可以远程更新ECU的软件和配置,而无需实际物理接触车辆。
- 标准化:DOIP的标准化工作由国际汽车工程师协会(SAE)负责。SAE J1939-22标准定义了DOIP的基本规范和要求。
DOIP的引入使得汽车诊断和编程可以更灵活、高效,并提供了更大的远程访问能力。它为制造商和诊断工程师提供了一种现代化的方式来进行远程诊断和编程操作,为汽车维修和故障排除带来了许多便利和效益。
概述
DOIP是一种用于汽车诊断的协议,它基于现有的IP网络技术,如以太网和TCP/IP协议。它旨在提供高速、安全和可靠的远程诊断通信。
DOIP是对uds的加强
诊断网络架构
连接要求
通信协议
报文封装
ETH + IP + TCP + DoIP + UDS
端口号:
TCP端口号 13400(加密) 3496(不加密)
UPD端口号 13400
DOIP报文格式
0---------------------7---------------------15---------------------31---------------------63---------------------N
协议版本号 版本号取反 负载类型 负载长度(DoIP数据) DoIP数据
DoIP首部
- 协议版本号:DoIP协议版本号
0x01 -0x03 2010/2012/2019 0x04-0xFE 预留 0xFF 车辆识别请求报文默认值
- 版本号取反: 对版本号进行校验 eg:0x03---->0xFC
- 负载类型:
0x0000-0x0008 节点管理类 0x8001-0x8003 诊断类 0x4001-0x4004 节点状态类 其他 预留
- 负载长度: DoIP的数据部分的长度
DoIP首部否定响应报文(0x0000)
02 FD 00 00 00 00 00 01 NACK code
- 每个DoIP实体必须支持DoIP首部否定响应
- 每个DoIP实体应该忽略收到的DoIP首部否定响应报文
- 测试仪收到不符合规范的DoIP报文不应该发送首部否定应答
eg:
TX: 02 FD 55 55 00 00 00 00
RX: 02 FD 00 00 00 00 00 01
车辆信息请求报文
TX: 02 FD 00 01
RX: 02 FD 00 04 32(+1) 负载数据
负载数据:
内容 | 位置 | 长度 |
---|---|---|
VIN | 0 | 17 |
Logic Address | 17 | 2 |
EID | 19 | 6 |
GID | 25 | 6 |
Futher action required | 31 | 1 |
VIN/GID sync Status | 32 | 1 |
eg:
TX: 03 FC 00 03 00 00 00 11 40 00 ---------------17--------------40 00
RX: 03 FC 00 04 00 00 00 20 +
40 00 ---------------17--------------40 00 (VIN)
00 20 (LA)
00 00 00 00 00 00 (EID)
00 00 00 00 00 00 (GID)
路由激活
负载类型 0x0005 负载长度 7(+4) 负载数据 sa + Activation Type + Reserved for ISO + Reserved forOEM
路由激活响应
负载类型 0x0006 负载长度 9(+4) 负载数据 ta + sa + Routing Activation respond code + reserved for ISO + Resered for OEM
在线检测
DoIP实体主动发送
02 FD 00 07 00 00 00 00
在线检测响应报文
02 FD 00 08 00 00 00 02
测试仪可以主动发起响应报文
测试仪在超时时间(T_TCP_Alive_Check)内未回复响应报文,DoIP实体会关闭socket,断开连接
诊断类报文
0x8001 诊断报文
0x8002 诊断报文肯定应答
0x8003 诊断报文否定应答
诊断报文
负载类型 0x8001
负载长度 4+N
负载数据 SA +TA +诊断数据
诊断肯定响应报文
负载类型 0x8002
负载长度 5+N
负载数据 SA +TA + ACK Code + Previous Diagnostic Message Data
诊断否定响应报文
负载类型 0x8003
负载长度 5+N
负载数据 SA+TA+NACK Code + Previous Diagnostic Message Data
eg(肯定):
TX: 02 FD 80 01 00 00 00 06 00 02 00 21 10 03
RX: 02 FD 80 02 00 00 00 05 00 21 00 20 00
RX(uds): 02 FD 80 01 00 00 00 0A 00 21 00 20 50 03 01 02 03 04
eg(否定):
TX: 02 FD 80 01 00 00 00 06 00 30 00 21 10 03
RX: 02 FD 80 03 00 00 00 05 00 21 00 30 02
诊断报文发出的步骤
- 建立连接
- 选择车辆
- 路由激活
- 选择报文的发送
- 连接断开
节点状态类报文
0x4001 DoIP实体状态请求报文
负载类型 0x4001
负载长度 0
0x4002 DoIP实体状态响应报文
负载类型: 0x4002
负载长度: 3(+4)
负载数据:
节点类型/最大并发TCP_DATA的连接数量/目前打开的TCP_DATA数量/最大数据存储空间(可选)
0x4003 诊断电源模式请求
负载类型: 0x4003
负载长度: 0
0x4004 诊断电源模式响应
负载类型 0x4004
负载长度: 1