☰
『ISOBUS 入门』第 07 节 传输层:多包报文的会话与重组
2026/10/5 15:19:49 网站建设 项目流程

CAN 单帧的数据场最多 8 字节。而 ISOBUS 上需要传输的内容经常远超这个量:虚拟终端的对象池、文件服务器里的作业文件、包含故障码的诊断报文、车辆识别号这类长字符串。传输协议负责把这些内容切成片,并在接收端还原。

1. 两种机制

J1939 给出两套传输协议,ISOBUS 沿用:

  • 点对点(RTS/CTS):发送方先请求,接收方按自己的缓冲能力允许发送,全程有确认。
  • 广播(BAM):发送方直接宣布「要发多少、多少包」,然后连续发送,接收方不参与控制。

两者共用同一对 PGN:连接管理(60416,0xEC00)与数据传输(60160,0xEB00)。

2. RTS/CTS:接收方掌握节奏

  1. 发送方发出连接管理报文,控制字节为「请求发送」,声明总字节数、总包数与被传报文的 PGN。
  2. 接收方回复「允许发送」,指定本次可以连续接收的包数与起始包号。
  3. 发送方按允许的范围发送数据帧。
  4. 全部发完后,接收方回复「消息结束确认」。

这条路径适合对象池、文件传输这类完整性要求高的数据。有两点实现细节值得注意:

接收方可以挂起发送方。当「允许发送」的包数为零时,表示接收方缓冲已满,发送方需要等待下一个允许发送的报文;等待时间超过上限就要中止会话。

确认是分段的。接收方可以每几包确认一次,不需要逐包确认。这使得传输效率与接收缓冲大小可以折中调节。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询