名词解读
- DL:有效数据的长度,不包括PCIbyte;
- FS:表示是发送方否可以继续传输消息,0表示可以继续发送,1表示等待发送,2表示数据溢出,一次发送的数据大于接收方所能接收的量;
- BS:接收方一次能接收的数据最大量;
- STmin:表示两个连续帧之间的最小时间间隔,参照图1中的定义;
- SN:连续帧的序列号
- N_As:发送端将数据传送到接收端的最大时间。
- N_Bs:发送端在成功发送首帧后到收到流控制帧的最大时间。
- N_Br:接收端在接收到首帧后到发送流控制的最大时间。
- N_Ar:接收端将流控制传送到发送端的最大时间。
- N_Cr:接收端在成功发送流控制后到收到连续帧的最大时间。
- Ttan:每帧传输的时间。
帧类别
对于帧的类型,通过需要发送的数据长度来确定。在正常寻址模式下,当数据长度小于等于7byte,则用单帧的形式发送,当数据长度大于7byte,数据需要分多帧才能发送完成,则需要使用到首帧、流控帧、连续帧,不同帧的机制如图2所示。
首帧是指发送的第一帧,目的是把前7byte数据发送给接收方,并告知接收方数据没有发完,然后接收方会回一帧流控帧,告知发送方是否可以接着发送,并且告知接收方一次最多能接收的数据量,以及发送方接下来发送的数据帧(连续帧)之间的时间间隔要求(STmin)。
对于不同的帧,通过CAN消息的数据场中PCI(Protocol control information)来区分,图3、图4详细说明了不同帧的PCI的定义。
以下是对PCI段的详细解释。
单帧:
当N_PCItype = 0时,表示此帧为单帧,SF_DL为此次单包传输的数据量。
首帧:
当N_PCItype = 1时,表示此帧为首帧,FF_DL为此次多包传输的数据量,FF_DL的最大值为4095。
序列帧:
当N_PCItype = 2时,表示此帧为序列帧,SN为序列帧的计数,用于数据的有序传输,第一次发送SN的值为1,当SN的值溢出时,SN从0开始计数。
流控帧:
当N_PCItype = 3时,表示此帧为流控帧,FS为数据流传输的状态信息,BS为接收方发送流控帧的间隔(以CF帧为单位),ST为发送方间隔发送序列帧的时间间隔。
当FS=0时,代表接收方已经准备好数据传输,发送方可以发送序列帧;当FS=1时,发送方继续等待流控帧且复位N_BS的超时定时器;当FS=2时,代表接收方的内存不够接收FF_DL长度的数据,发送方结束数据传输。当BS=0时,接收方不再发送流控帧,发送方可以一直发送序列帧直到数据传输完成。
其中:
DL:有效数据的长度,不包括PCIbyte;
FS:表示是发送方否可以继续传输消息,0表示可以继续发送,1表示等待发送,2表示数据溢出,一次发送的数据大于接收方所能接收的量;
BS:接收方一次能接收的数据最大量;
STmin:表示两个连续帧之间的最小时间间隔,参照图1中的定义;
SN:连续帧的序列号
网络层诊断时间分析
网络层的时间管理是为了保证发送端和接收端不会因为等待而永久的挂起,从而失去了通信的能力。因此在每次通话的过程中设置了超时的时间参数。
时间关系 N_BS = N_AR+N_BR
N_AS
N_CR
N_As:发送端将数据传送到接收端的最大时间。
N_Bs:发送端在成功发送首帧后到收到流控制帧的最大时间。
N_Br:接收端在接收到首帧后到发送流控制的最大时间。
N_Ar:接收端将流控制传送到发送端的最大时间。
N_Cr:接收端在成功发送流控制后到收到连续帧的最大时间。
Ttan:每帧传输的时间。
STmin:连续帧两帧之间的最小发送间隔。
N_As、N_Bs、N_Cr、Ttan 在实际应用中均为固定值,由此可知在多帧传输中,STmin 参数对于多帧传输的时间有着重要的影响。
发送与接受的流程
ISO-15765官方网络时序图
其时间参数的定义和超时如下所示