『7x24小时有问必答』
SAE J1939协议数据链路层

多帧传输机制
>>>>
多包报文
采用多包报文,在连接管理报文的协调下进行多帧传输。

长度大于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毫秒。响应者必须知道这些数据包都具有相同的标识符。
数据包被顺序接收。按照序列编号的顺序把多包消息的数据包重新组合成一多字节字符串。这个字符串被作为长信息的应答传送给应用程序模块。

>>>>
实例
下图是多帧传输机制的实例:

虹科汽车电子感谢您的关注!
微信号:hongkeqiche
了解更多请戳www.hongkeqiche.com

点击下方“阅读原文”了解更多虹科信息
↓↓↓

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码