讓我們從協(xié)議的最底層開始說起——數(shù)據(jù)幀
如圖所示,MAVLink數(shù)據(jù)幀的長度是變化的,變化范圍在8字節(jié)~263字節(jié)之間,數(shù)據(jù)幀長度主要取決于PAYLOAD的長度,其他字節(jié)都是固定的,具體包括:
第一字節(jié):STX
數(shù)據(jù)幀的開始標(biāo)志,內(nèi)容為“0xFE”(v1.0版),“0x55”(v0.9版)
第二字節(jié):LEN
表示PAYLOAD部分的長度,范圍0~255
第三字節(jié):SEQ
表示數(shù)據(jù)幀的序號(hào)(seqence),每次發(fā)完一個(gè)消息,這個(gè)字節(jié)的內(nèi)容會(huì)加1,加到255后會(huì)從0重新開始。這個(gè)序號(hào)用于MAVLink數(shù)據(jù)幀接收端判斷消息是否丟失。
第四字節(jié):SYS
表示發(fā)送本條數(shù)據(jù)幀的設(shè)備系統(tǒng)編號(hào),編號(hào)范圍1~255,系統(tǒng)使用此編號(hào)來區(qū)別在同一個(gè)網(wǎng)絡(luò)中相互通信的不同設(shè)備。
第五字節(jié):COMP
表示發(fā)送本條數(shù)據(jù)幀的設(shè)備系統(tǒng)的組件(component)編號(hào),系統(tǒng)使用此編號(hào)來區(qū)別某個(gè)設(shè)備中的不同組件。
第六字節(jié):MSG
表示PAYLOAD的消息編號(hào),系統(tǒng)根據(jù)此編號(hào)來判斷PAYLOAD中是什么消息,并對PAYLOAD消息進(jìn)行解析。
第七部分:PAYLOAD
表示本次數(shù)據(jù)幀傳輸?shù)木唧w內(nèi)容,也是數(shù)據(jù)幀的核心內(nèi)容,PAYLOAD的格式定義需要遵從MAVLink協(xié)議消息格式的定義,否則不能被系統(tǒng)正確的識(shí)別與解析。
第八部分:CKA和CKB
最后兩個(gè)字節(jié)是校驗(yàn)位,CKB是高八位,CKA是低八位,校驗(yàn)算法為CRC16,主要作用是判斷數(shù)據(jù)幀在傳輸過程中是否有丟失數(shù)據(jù)的情況,以及校驗(yàn)是否為相同版本MAVLink協(xié)議在相互通信。
2025-08-28 11:13
2025-08-27 14:14
2025-08-26 13:50
2025-08-23 20:37
2025-08-22 10:33
2025-08-18 14:20
2025-08-13 11:12
2025-08-13 10:55
2025-08-08 09:53
2025-08-07 09:28