『ISOBUS 入门』第 07 节 传输层:多包报文的会话与重组 CAN 单帧的数据场最多 8 字节。而 ISOBUS 上需要传输的内容经常远超这个量:虚拟终端的对象池、文件服务器里的作业文件、包含故障码的诊断报文、车辆识别号这类长字符串。传输协议负责把这些内容切成片,并在接收端还原。1. 两种机制J1939 给出两套传输协议,ISOBUS 沿用:点对点(RTS/CTS):发送方先请求,接收方按自己的缓冲能力允许发送,全程有确认。广播(BAM):发送方直接宣布「要发多少、多少包」,然后连续发送,接收方不参与控制。两者共用同一对 PGN:连接管理(60416,0xEC00)与数据传输(60160,0xEB00)。2. RTS/CTS:接收方掌握节奏发送方发出连接管理报文,控制字节为「请求发送」,声明总字节数、总包数与被传报文的 PGN。接收方回复「允许发送」,指定本次可以连续接收的包数与起始包号。发送方按允许的范围发送数据帧。全部发完后,接收方回复「消息结束确认」。这条路径适合对象池、文件传输这类完整性要求高的数据。有两点实现细节值得注意:接收方可以挂起发送方。当「允许发送」的包数为零时,表示接收方缓冲已满,发送方需要等待下一个允许发送的报文;等待时间超过上限就要中止会话。确认是分段的。接收方可以每几包确认一次,不需要逐包确认。这使得传输效率与接收缓冲大小可以折中调节。