ISO 15765-2标准定义了多帧报文的传输过程,包括首帧(First Frame, FF)、流控制帧(Flow Control Frame, FC)和后续帧(Consecutive Frame, CF)的格式。以下是每种帧的具体格式:
首帧(First Frame, FF):
首帧包含待发送报文的长度信息以及数据的一部分。
帧格式:
[0]:帧类型 (4 bits) + 报文长度高位 (4 bits)[1]:报文长度低位 (8 bits)[2-7]:报文数据 (6 bytes)
帧类型:固定为0x1,表示首帧。
报文长度:12位,范围为0-4095,表示完整报文的字节数。
流控制帧(Flow Control Frame, FC):
流控制帧用于接收端告知发送端传输参数,如允许发送的最大帧数、帧间时间等。
帧格式:
[0]:帧类型 (4 bits) + 流控制状态 (4 bits)[1]:块大小 (8 bits)[2]:分隔时间 (8 bits)
帧类型:固定为0x3,表示流控制帧。
流控制状态:表示流控制策略,有以下几种:
0x0: CTS (Clear To Send) - 允许发送数据。0x1: WAIT - 暂时等待,稍后继续发送。0x2: OVFLW (Overflow) - 缓冲区溢出,终止发送。
块大小:指定在下一个流控制帧之前允许发送的最大帧数。
分隔时间:指定连续帧之间的最小时间间隔。
后续帧(Consecutive Frame, CF):
后续帧用于传输报文剩余的数据部分。
帧格式:
[0]:帧类型 (4 bits) + 序列号 (4 bits)[1-7]:报文数据 (7 bytes)
帧类型:固定为0x2,表示后续帧。
序列号:4位,范围为0-15,表示后续帧的顺序。每发送一个后续帧,序列号加1,到15时回到0。
多帧报文的传输过程遵循以下步骤:
发送端发送首帧(FF),包含报文长度信息。接收端接收首帧(FF),根据报文长度分配缓存,并发送流控制帧(FC)以告知发送端传输参数。发送端根据流控制帧(FC)中的块大小和分隔时间,发送后续帧(CF)。在发送过程中,如果接收到新的流控制帧(FC),则按照新的参数继续发送。接收端接收后续帧(CF),并将其组合成完整的报文。如有必要,可以再次发送流控制帧(FC)调整传输参数。
这就是ISO 15765-2多帧报文格式的具体定义和传输过程。