网络层
ISO15765-2 作为车辆诊断通信的一个组成部分,规范了"传输协议和网络层服务"
ISO 15765-2 协议的诞生是为了,解决ISO 11898协议中定义的CAN数据链路层与ISO 14229协议中定义的应用层,两者之间数据长度不统一的问题,CAN数据链路最大能够支持8个字节,但是ISO 14229不仅仅是为了CAN总线设计,最大容量可达4095个字节,比如VIM码有17个字节,如何将这些多字节通过CAN总线进行传输,就需要网络层进行处理
网络层目的
将数据转换成能适应CAN总线规范的单一数据帧,从而进行传输,如果要传输的报文长度超过了CAN数据帧的长度,则需要将报文信息进行拆分后传输。
网络层协议数据单元
网络层协议数据单元(N_PDU,Network_Protocol Data Unit)包含N_AI,N_PCI,N_Data。即地址信息,协议控制信息和数据。
网络层协议数据单元(N_PDU)有四种类型,即单帧(SF)、首帧(FF)、连续帧(CF)、流控制帧(FC),用于建立对等实体间的通信。
UDS网络层/TP层(ISO 15765-2)的解读 - 知乎 (zhihu.com)
UDS服务
ISO 14229是汽车行业诊断通信协议,也称为UDS(Unified Diagnostic Service)统一诊断服务
UDS本质上是一些列服务的集合,包含6大类,26种。每种服务都有自己的ID,称为SID。
SID:Service Identifier,诊断服务ID。
UDS本质是一种请求/应答(request/response)的交互协议:诊断仪(Tester)ECU发送请求,请求用SID标识,且SID处于该应用层数据的第一个byte。
如果积极应答(positive response),首字节回复[SID + 0x40],如请求0x10(诊断会话控制),积极应答0x50;请求0x22,积极应答0x62。
如果消极应答(Negative Response),首字节回复0x7F,第二个字节回复刚才请求的SID,第三个字节是NRC(否定应答码),表示否定的依据。
寻址模式
UDS寻址分为两种模式:
1)物理寻址,即点对点、一对一,只能访问单个ECU节点,诊断CAN ID通常由车厂分配;
2)功能寻址,即广播、一对多,根据功能的不同进行访问,能访问多个ECU节点,对于标准帧来说,CNA ID是0x7DF。