I. 简介
-
ISO15765-2协议网络
ISO15765-2协议网络是一种用于汽车电子系统中的通信协议。它定义了在控制区域网络(CAN)上使用的诊断通信的协议规范,包括物理层、数据链路层、网络层和传输层。该协议的主要目的是使汽车制造商和维修技术人员能够诊断和解决车辆问题,同时提高车辆的可靠性和安全性。 -
协议在汽车行业中的重要性
ISO15765-2协议在汽车行业中非常重要,因为它为车辆中不同电子控制单元(ECU)之间的通信提供了标准。这使得车辆问题的诊断和修复更加高效和可靠,这对于确保车辆的安全和性能至关重要。该协议被许多汽车制造商使用,并是现代车辆诊断系统的关键组成部分。通过使用标准化的协议,汽车技术人员可以更容易地在不同类型的车辆之间诊断和修复问题,这可以节省时间并减少技术人员和车主的成本。
II. ISO15765-2协议网络概述
- 协议的定义
ISO15765-2协议定义了在汽车行业中使用的控制区域网络(CAN)协议的诊断通信。它规定了协议的物理层、数据链路层、网络层和传输层的要求。该协议用于车辆中的电子控制单元(ECU)之间的诊断通信,例如负责发动机管理、变速器控制和其他功能的ECU。它允许在ECU之间交换诊断信息和命令,实现对车辆问题的高效和可靠的诊断和修复。 - 协议的特点和优点
ISO15765-2协议具有以下几个特点和优点:
- 标准化:该协议是汽车行业中使用的标准化通信协议,确保不同系统之间可以相互通信。
- 高效性:该协议允许在车辆中的ECU之间快速、准确地传输诊断信息和命令,从而实现高效的诊断和修复。
- 可靠性:该协议具有良好的错误检测和纠正机制,可以确保传输的数据的准确性和完整性。
- 兼容性:该协议可以与其他协议兼容,使其易于集成到现有系统中。
- 安全性:该协议具有安全机制,可以保护车辆的系统免受未经授权的访问和恶意攻击。
- 与其他协议的比较
- 标准化程度高:ISO15765-2协议是汽车行业中通用的标准化协议,各大汽车制造商都在使用,因此具有更高的标准化程度。
- 传输速度快:与其他协议相比,ISO15765-2协议具有更快的传输速度,可以更快地传输数据。
- 传输距离远:ISO15765-2协议可以在更远的距离内传输数据,这使得它可以在更大的车辆中使用。
- 传输数据量大:ISO15765-2协议可以传输更大量的数据,这使得它可以更好地支持复杂的诊断和控制任务。
- 可靠性高:ISO15765-2协议具有更高的可靠性,可以更好地检测和纠正错误,从而提高了数据传输的准确性和完整性。
III. ISO15765-2协议网络架构
- 物理层
ISO15765-2协议的物理层定义了在CAN总线上进行通信所需的硬件和电气特性。该层规定了CAN总线的传输速率、数据位数、信号电平等参数,并定义了CAN总线的连接方式和电缆类型。物理层的主要任务是确保在CAN总线上的数据传输的正确性和稳定性。 - 数据链路层
ISO15765-2协议的数据链路层定义了在CAN总线上进行通信所需的数据格式和传输方式。该层规定了数据的帧格式、校验方式、错误检测和纠正机制等。数据链路层的主要任务是确保CAN总线上的数据传输的可靠性和安全性。该层还提供了多路复用和带宽管理等功能,以支持多个ECU之间的并行通信。 - 网络层
ISO15765-2协议的网络层定义了在CAN总线上进行通信所需的网络管理功能。该层规定了ECU之间的地址分配、会话控制、流控制、数据包分组和重组等。网络层的主要任务是确保在CAN总线上的数据传输的正确性和稳定性,以及支持多个ECU之间的并行通信。 - 传输层
ISO15765-2协议的传输层定义了在CAN总线上进行通信所需的传输控制功能。该层规定了数据的传输方式、传输速率、传输优先级、传输模式等。传输层的主要任务是确保在CAN总线上的数据传输的可靠性和安全性,以及支持多种传输模式和优先级的控制。传输层还提供了错误检测和纠正机制,以确保传输的数据的准确性和完整性。
IV. ISO15765-2协议网络通信
- 消息结构
ISO15765-2协议的消息结构由帧头、数据和帧尾组成。帧头包括了发送方和接收方的地址信息、数据长度和帧类型等信息。数据部分是要传输的数据,长度最大为4095个字节。帧尾包括了CRC校验码,用于检测数据传输过程中的错误 - 消息传输
ISO15765-2协议的消息传输采用了分段传输的方式。发送方将数据分割成多个分段,每个分段的长度不超过4095个字节,并在每个分段的帧头中标识该分段的序号。接收方在接收到分段数据后,根据序号将各个分段组合成完整的数据。在传输过程中,发送方需要等待接收方的确认信息,以确保数据传输的准确性和完整性。 - 消息接收
ISO15765-2协议的消息接收采用了多路复用的方式。接收方在接收到数据后,根据帧头中的地址信息将数据发送到相应的ECU中。如果接收方无法处理接收到的数据,将发送一个拒绝信息给发送方。 - 错误检测和纠正
ISO15765-2协议的错误检测和纠正采用了CRC校验码的方式。发送方在发送数据时,会在帧尾中添加CRC校验码。接收方在接收到数据后,会计算CRC校验码,如果计算结果与接收到的校验码不一致,则表示数据传输过程中出现了错误。此时,接收方会向发送方发送错误信息,以便发送方重新发送数据。
V. ISO15765-2协议网络应用
- 在汽车行业中的应用案例
-
OBD-II诊断系统:OBD-II是汽车诊断系统的标准化协议,其核心是ISO15765-2协议。OBD-II诊断系统可以通过CAN总线与车辆的ECU通信,获取车辆的状态信息和故障码等数据,以便进行车辆维修和故障排查。
-
发动机控制系统:发动机控制系统是车辆控制系统中最重要的部分之一。该系统通过ISO15765-2协议与发动机控制单元(ECU)通信,以控制发动机的运转和调整发动机的性能参数,如燃油喷射量、点火时机等。
-
制动控制系统:制动控制系统是车辆控制系统中的另一个重要部分。该系统通过ISO15765-2协议与制动控制单元(ECU)通信,以控制车辆的制动系统,包括刹车盘、刹车片、刹车液等部分。
-
车身控制系统:车身控制系统通过ISO15765-2协议与车辆的ECU通信,以控制车辆的各个部分,如灯光、雨刷器、空调、音响等。该系统可以提高车辆的安全性和舒适性,提供更好的驾驶体验。
总之,ISO15765-2协议在汽车领域的应用非常广泛,可以实现车辆诊断和控制系统的高效、准确和可靠的通信。
Ⅵ.在UDS中应用
ISO15765-2,在UDS应用层中充当网络层的角色,把数据转换成能适应 CAN 总线规范的单一数据帧。 如果将要传输的报文长度超过了 CAN 数据帧的长度,则需要将报文信息进行拆分后传输,每次至多可以传输4095个字节长度的报文。实现数据拆包和打包的作用。
网络层在UDS中定义三种类型的服务:
1、请求服务N_USdata.request:这个服务用来请求数据传输。诊断仪应用层请求发送数据。
2、指示服务N_USData_FF,indication:这个服务用来标识接收上层分段数据的开端。
N_USData.indication:这个服务用来把接收的数据提供给更高一层。ECU接收到诊断仪的数据,数据传到应用层。
3、N_USData.confirm:这个服务用来确定更高层的请求服务是否成功。诊断仪收到了 ECU 方面的数据。发送数据是否成功。
- N_PDU 网络协议数据单元
网络层协议数据单元(N_PDU,Network Protocol Data Unit)包含 N_AI,N_PCI,N_Data。即地址信息,协议控制信息和数据。
N_AI包括:源地址(N_SA)、目标地址(N_TA),以及 N_TAtype 信息和可选地址扩展
(N_AE)的通信模型。N_TAtype 参数是 N_TA 的延伸。 N_TAtype 用来编码通信模型。这里
指定了两种具体的通信模型: 1 对 1 的通信,称为物理地址; 1 对 n 的通信,称
为功能地址。
——物理地址用来支持所有的网络层信息的类型。
——功能地址仅仅是用来支持通信的单一帧。 N_AE 参数用来延伸大型网络的可用地址范围,并且可以用来编码子网络的网络层硬件的接收和发送,而不是局域网的, 通信是在子网络上进行的。 一
旦 Mtype 设置成了远程诊断, N_AE 是寻址信息的唯一部分。
- N_PCI 网络层协议控制信息
每一个 N_PDU 都能被一个 N_PCI 识别。
有四种类型,即单帧(SF)、首帧(FF)、连续帧(CF)、流控制帧(FC),用于建立对等实体间的通信。
前四位控制N_PDU类型
如果要发送小于等于7字节数据,发送单帧即可,比如发送[0x10 0x02],对方物理层底层收到[0x02 0x10 0x02].
如果当需要发送的数据字节数大于 7 字节,需要用到首帧、连续帧和流控帧的多帧传输方式.
FF_DL:帧长度,标准can中是8,如果网络层接收到一个带有 FF_DL 大于接收器缓存区可容纳的大小,那么就会
被认为是一个错误的条件。网络层就会退出信息的接收,并且发送一个带有参数
FlowStatus=Overflow 的 FC N_PDU。
如果网络层接收到一个使用标准地址时的 FF_DL<8 的 FF,或者使用扩展/混合地址是 FF_DL<7 的 FF,那么网络层就会忽视掉这个接收到的 FF N_PDU。
SN:这个参数 SN 是用在 CF N_PDU 中,用来指明连续帧的顺序。
——SN 对所有分段信息都是从 0 开始。 FF 被分配这个 0 值。 它在 N_PCI 中不
包括一个明确的序列号,但是被认为是一个分段的数值 0。
——第一个 CF 立即接着一个 FF 的 SN,应该把 SN 设置为 1。
——每一个新的 CF 在一个分段信息传输期间被发送了, SN 自动+1。
——SN 的值不会被任何 FC 帧所影响。
——SN 的值达到 15 以后,置 0 为下个 CF 做准备。SN 错误处理
如果一个 CF N_PDU 信息接收到一个错误的序列号,将会启动正常的错误处理。
退出接收信息的过程,网络层发送一个带有参数<N_Result>=N_WRONG 的
N_USData.indication 服务申请到相邻的上层。
FS:0 ContinueTosend继续发送;1 Wait:等待;2 OverFlow:溢出;如果接收到一个带有无效(或保留)的 FS 参数的 FC N_PDU 信息,网络层将会
启动正常的错误处理。退出传输信息的过程,网络层发送一个带有参数
<N_Result>=N_INALID_FS 的 N_USData.confirm 服务申请到相邻的上层。
BS:可以传输的块大小,BS 参数用 FC N_PCI 中第二字节进行编码。
BS 单元是每一块 CF N_PDUs 中的绝对数量,例如,如果 BS 等于十进制的 20,
那么这块中将包含 20 个(十进制) CF N_PDUs。
在分段数据传输中,仅仅是连续帧的最后一块可能含有少于 BS 数量的帧。
STmin:STmin 参数值指明连续帧网络协议数据单元之间传输的最小时间。
交互过程
网络层时序参数的数值
网络层超时
ISO15765协议中的N_As超时、N_Ar超时、N_Bs超时、N_Br超时、N_Cr超时和N_Cs超时,分别代表以下含义:
- N_As超时:表示发送方等待接收方的响应的时间。如果在N_As超时时间内没有收到接收方的响应,则发送方会认为接收方已经无法接收数据,会重新发送数据。
- N_Ar超时:表示接收方等待发送方重新发送数据的时间。如果在N_Ar超时时间内没有收到发送方的数据,则接收方会认为数据传输已经结束,会发送一个拒绝信息给发送方。
- N_Bs超时:表示发送方等待接收方准备好接收数据的时间。如果在N_Bs超时时间内没有收到接收方的准备好信息,则发送方会认为接收方无法接收数据,会重新发送数据。
- N_Br超时:表示接收方等待发送方发送数据的时间。如果在N_Br超时时间内没有收到发送方的数据,则接收方会认为数据传输已经结束,会发送一个拒绝信息给发送方。
- N_Cr超时:表示接收方等待发送方的连续帧的时间。如果在N_Cr超时时间内没有收到连续的帧,则接收方会认为数据传输已经结束,会发送一个拒绝信息给发送方。
- N_Cs超时:表示发送方等待接收方的连续帧的时间。如果在N_Cs超时时间内没有收到连续的帧,则发送方会认为接收方已经无法接收数据,会重新发送数据。
这些超时参数都是ISO15765协议中用于控制数据传输过程中的时间限制,以确保数据传输的可靠性和完整性。