>>>>
多包报文
-
选用多包报文,在衔接办理报文的协调下进行多帧传输。
-
长度大于8字节的报文无法用单个CAN数据帧来装载。因而,它们有必要被拆分为若干个小的数据包,然后运用单个的数据帧对其逐个传送。而接纳方有必要可以接纳这些单个的数据帧,然后解析各个数据包偏重组成原始的信息。
-
CAN数据帧包括一个8字节的数据域。因为组成长信息的单个数据包有必要能被辨认出来以便正确重组,因而把数据域的首字节界说为数据包的序列编号。每个数据包都会被分配到一个从1到255的序列编号。由此可知,多帧传输最大的数据长度是(255包×7字节/包=)1785个字节。
序列编号
-
序列编号是在数据拆装时分配给每个数据包,然后经过网络传送给接纳方。接纳方接纳后,运用这些编号把数据包重组成原始信息。
-
序列编号从1开端,顺次分配给每个数据包,直到整个数据都被拆装和传送结束。这些数据包从编号为1的数据包开端按编号的递加次序发送。
-
第一个数据传送包包括序列编号1和字符串的头7个字节,这以后的7个字节跟从序列编号2存放在另一个CAN数据帧中,再随后的7个字节与编号3一同,直到原始信息中所有的字节都被存放到CAN数据帧中并被传送。
数据包
-
传送的每个数据包(除了传送行列中的最终一个数据包)都装载着原始数据中的7个字节。而最终一个数据包的数据域的8个字节包括:数据包的序列编号和参数组至少一个字节的数据,余下未运用的字节悉数设置为“FF 16”。
-
多包播送报文的数据包发送距离时刻为50到200毫秒。关于发送到某个指定方针地址的多包音讯,发送者将坚持数据包(在CTS答应多于一个数据包时)发送距离的最长时刻不多于200毫秒。响应者有必要知道这些数据包都具有相同的标识符。
-
数据包被次序接纳。依照序列编号的次序把多包音讯的数据包从头组合成一多字节字符串。这个字符串被作为长信息的应对传送给使用程序模块。
实例
下图是多帧传输机制的实例: