CAN 多于8字节的拆包组包协议
一、、分段協議
分段協議位于CAN數據區中的一個單字節中,格式如下:
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 分段類型 | 分段計數 | ||||||
?
分段類型?-?表明是第一段、中間段的還是最后段的發送。
分段類型位值
1)第一個分段。分段計數區必須包含值0或3F。
如果分段計數器包含值0,那么就是分段系列中的第一段。如果分段計數器包含值3F,那么這就是傳輸系列中的最后一個發送。當在I/O連接中建立一個大的連接長度,但當前只有少量的數據被發送時,接受器必須被告知這既是第一段也是最后一段。
2)中間分段。
表明這是一個中間分段。此分段既不是系列中的第一個也不是最后分段。更多的分段將會到來。
3)最后分段
標志最后一個分段。在已發送一個或多個分段后,就可以使用這個值。
4)分段應答
????分段信息的接收器的值,用于確認分段的接受。
二、
一個15個字節I/O信息的分段傳輸
生產模塊的MAC?ID=0A,假定已經通過組1建立I/O連接。
????假設要傳輸0102030405060708090A0B0C0E0F這15個字節。
第一個傳輸
標識符=01000001010
?????0:組1信息
??1000:組1信息ID=8
001010:源MAC?ID=0A
數據=0001020304050607
0:段類型=第一個分段
0:段計數=0
01020304050607:I/O數據的第一部分
第二個傳輸
標識符=01000001010
?????0:組1信息
??1000:組1信息ID=8
001010:源MAC?ID=0A
數據=4108090A0B0C0D0E
4:段類型=中間分段
0:段計數=1
08090A0B0C0D0E:I/O數據的第一部分
最后的傳輸
標識符=01000001010
?????0:組1信息
??1000:組1信息ID=8
001010:源MAC?ID=0A
數據=820F
8:段類型=中間分段
2:段計數=2
820F:I/O數據最后的傳輸
總結
以上是生活随笔為你收集整理的CAN 多于8字节的拆包组包协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 打包边下载_JAVA实现边下载
- 下一篇: CAN2.0的标准帧和扩展帧格式