ISO15765
- 常用的缩略词
ISO15765网络层服务
- 协议功能
a)发送/接收最多4095个字节的数据信息;
b)报告发送/接收完成状态。
网络层内部传输服务,CAN总线上的数据帧没帧只能传输8个字节,ISO 为了适应CAN总线上的数据传输,根据诊断报文数据长度的不同规定了单帧传输和多帧传输两种方式。
1.单帧传输
当应用层的诊断服务数据可以利用单帧CAN数据传送时,可采用单帧传送方式(正常地址,数据长度下小于等于7,扩展帧情况下,数据长度小于等于6)
2.多帧传输
多帧传送方式中,网络层根据需要,将诊断数据进行拆分成一个首帧和多个连续帧。首帧(扩展及混合地址-5字节,正常地址-6字节)包括了分段数据的总长度信息以及一些数据帧;每个连续帧的第一个字节包含拆分的顺序编号,后面的七个字节用于存放诊断数据。接收端在接收到连续帧后根据接收数据帧的编号重组服务数据。
对于CAN诊断来说,我们完全可以通过识别每条CAN帧数据域的首个字节来确定它属于四种类型中的哪类。
N_PCI是TP层最为核心的信息,是TP层区别于其他CAN总线抽象协议的、最为显著的特征。
发送端和接收端通过N_PCI(协议控制信息)确认发送或者接收的帧为首帧、流控帧还是连续帧,如表3,表4.
接收端通过对接收到数据帧的第一个字节进行分析就可以得出所接收到的数据帧为何种数据帧,以及所要接收的数据长度
接收的数据第一个字节的高四位为0则表示所接收的数据帧为单帧,再通过读取低四位以确定单帧数据中的有效字节长度
单帧N_PCI参数定义如下表。
接收的数据的第一个字节为高四位为1则表示所接收的数据帧为多帧的首帧。再读取第四位和第二个字节后确认所需要接收的字节数后,根据接收的能力和双方通信的速率发送流控帧,然后等待多帧连续的到来。
接收的数据第一个字节的高四位为2则表示所接收的数据帧为多帧连续帧。然后在对SN连续帧编号之后的数据放入接收缓冲区
CFN PDU中参数SN用以说明连续帧的顺序
对于所有拆分信息,SN开始于0。FF应当分配值0,它不是明确地包含在NPCI域中,但应当按拆分信息顺序号为0。
第一个流控帧编号(SN)后的连续帧设置为1;
在同一个拆分信息上,每一个新增的连续帧编号(SN)增1;
连续帧编号(SN)的值不受流控帧的影响;
当连续帧编号(SN)到达值15时,它在下一个连续帧中重置为0;
顺序编号如下表10所示表11所示SN值。
接收的数据第一个字节的高四位为3,则表示接收的数据帧为流控帧。低四位的FS表示所发送端所需要进行的动作,BS为能够发送连续帧的数据,STmin为每两帧的时间间隔。
网络层时间管理是为了保证发送端和接收端不会因为等待而永久挂起,从而失去通信能力,因此每次通话的过程中设置了超时的时间参数
- 举例:
单帧 | 02 10 02 55 55 55 55 55 | 0表示单帧,2表示长度,10 02表示数据,其他为位填充 | |
首帧 | 10 14 2E F1 90 01 02 03 | 1表示首帧,0+14表示数据长度(20),后面的为数据 | |
连续帧 |
21 02 03 04 05 06 07 08 22 09 0A 0B 0C 0D 0E 0F |
2表示连续帧,1,2,3…F,0,1,2… | |
流控帧 | 30 02 20 55 55 55 55 55 |
3表示流控帧,0表示继续发送,02一次允许发送的连续帧个数, 20表示两个连续帧之间的时间间隔为20ms |
红色部分为0表示可以无限发送,流控帧只有3个字节,无数据。 |
根据这个传输流程我们可以得到诊断报文的传输延迟的公式:T=N_As+N_Bs+N_Cr-Tan+(Ttan+STmin)N-STmin
2019-12-24 11:47:48 Written by 大崔