CAN总线多帧即连续帧数据发送 拆包与重装

1939协议支持多帧数据发送即数据超过8个的帧发送

用户可以通过ID来识别当前帧是否为多帧发送(连续帧),如果是多帧发送ID,举例:1C EC F4 56 其中 F4和56为目标地址和源地址,重点关注1C和EC,通过ID的这两个字节来判断是否为连续帧。

当通过ID判断该帧为连续帧后,开始解析这一帧的数据。举例:10 0D 00 02 FF 00 06 00,其中10为控制字,0D 00为整个消息的字节数 低位在前,02为数据包个数,即这个连续帧数据包含2个标准帧组成,FF 保留 默认即为FF,00 06 00 消息的参数组编号 即 这个消息识别码 用户可以通过这个消息识别码来确定如何来解析这组数据。那么,这帧数据最后表示含义即为:我要向你发送一个 消息参数组编号为(00 06 00),总字节数为(0D),帧数为(02)的一个连续帧。

控制字的含义:

10:向目标地址请求发送数据;

11:用于响应源地址的发送请求,即告诉源地址 你可以给我发数据了;

13:消息结束,即目标地址已经从源地址将数据收过来了;

FF:放弃连接。

控制字不同 后边的 数据含义也不同:

11:以前边的发送数据举例 11 02 01 FF FF 00 06 00,02  可以发送的数据包数 即 告诉源地址我可以接收2帧数据,01  下一个要发送的数据包编号,两个FF为 保留字节,00 06 00 消息的参数组编号。整个帧的意思即  我可以接收消息参数据组编号(00 06 00)的(02)帧数据,你从(01)开始发送数据吧

13:还是以前边的发送数据举例 13 0D 00 02 FF 00 06 00,0D 00 接收到的整个消息的字节数,02 接收到的全部数据包数,FF 保留,00 06 00消息的参数组编号。整个帧的意思即 我收到了消息参数组编号(00 06 00)的(02)个标准帧数据,共计(0D)个字节。

CAN总线多帧即连续帧数据发送 拆包与重装_第1张图片CAN总线多帧即连续帧数据发送 拆包与重装_第2张图片CAN总线多帧即连续帧数据发送 拆包与重装_第3张图片CAN总线多帧即连续帧数据发送 拆包与重装_第4张图片

你可能感兴趣的:(CAN总线)