让我们从协议的最底层开始说起——数据帧
如图所示,MAVLink数据帧的长度是变化的,变化范围在8字节~263字节之间,数据帧长度主要取决于PAYLOAD的长度,其他字节都是固定的,具体包括:
第一字节:STX
数据帧的开始标志,内容为“0xFE”(v1.0版),“0x55”(v0.9版)
第二字节:LEN
表示PAYLOAD部分的长度,范围0~255
第三字节:SEQ
表示数据帧的序号(seqence),每次发完一个消息,这个字节的内容会加1,加到255后会从0重新开始。这个序号用于MAVLink数据帧接收端判断消息是否丢失。
第四字节:SYS
表示发送本条数据帧的设备系统编号,编号范围1~255,系统使用此编号来区别在同一个网络中相互通信的不同设备。
第五字节:COMP
表示发送本条数据帧的设备系统的组件(component)编号,系统使用此编号来区别某个设备中的不同组件。
第六字节:MSG
表示PAYLOAD的消息编号,系统根据此编号来判断PAYLOAD中是什么消息,并对PAYLOAD消息进行解析。
第七部分:PAYLOAD
表示本次数据帧传输的具体内容,也是数据帧的核心内容,PAYLOAD的格式定义需要遵从MAVLink协议消息格式的定义,否则不能被系统正确的识别与解析。
第八部分:CKA和CKB
最后两个字节是校验位,CKB是高八位,CKA是低八位,校验算法为CRC16,主要作用是判断数据帧在传输过程中是否有丢失数据的情况,以及校验是否为相同版本MAVLink协议在相互通信。
2025-05-08 14:28
2025-05-08 14:27
2025-05-07 11:48
2025-05-07 11:47
2025-05-06 11:26
2025-05-06 11:05
2025-05-06 10:57
2025-04-30 11:19
2025-04-30 11:18
2025-04-29 14:05