查看原文
其他

MAVLink学习之路01_认识MAVLink

strongerHuang 嵌入式专栏 2021-01-31

置顶公众,不错过每一条消息!


    本教程由作者strongerHuang于2018年08月原创发布。

版权所有:禁止商用

申明:该文档仅供个人学习使用,转载请公众号联系作者授权。


1写在前面

1.MAVLink是一种非常轻量级的通信协议,在简单的8位单片机上也可以运行。


2.MAVLink的初衷主要是用于无人机上,但它的通用性和可移植性非常好,它也可以应用于其它很多场合。


3.MAVLink的设计方式值得学习通信的朋友研究一下。


因此,学习无人机开发、学习通信原理、需要实现设备间通信的朋友都值得参看本文。


为了方便大家平时公交、地铁、外出办事也能用手机随时随地查看该教程,本文章收录于【MAVLink学习之路】,在微信公众号回复【MAVLink学习之路】即可查看。


2

关于MAVLink

2.1 描述

MAVLink:Micro Air Vehicle Link,即微型飞行器连接通信协议,于2009年初由Lorenz Meier首次发布。


Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议。


MAVLink是一种非常轻量级的通信协议,主要用于与无人机(以及板载无人机组件之间)进行通信。


2.2 主要特征

1.效率很高

  • MAVLink V1每帧最少只有8个字节的数据,包括帧头和数据包丢弃检测;

  • MAVLink V2每帧最少只有14个字节的数据(是一个更加安全和可扩展的协议);


2.非常可靠

自2009年以来,MAVLink一直被用于在各种不同且具有挑战性的通信信道上的许多不同车辆,地面站(和其他节点)之间进行通信。它提供了检测数据包丢失,损坏和数据包身份验证的方法。


3.支持多种编程语言

可在多种MCU(如:STM32、Atmega、ARM7)和操作系统(如:Windows,Linux,MacOS,Android和iOS)上运行。


4.支持网络上最多255个并发系统


2.3 参考网址

官网:https://mavlink.io/en


地面站:

http://qgroundcontrol.org/mavlink/start


维基百科:

https://en.wikipedia.org/wiki/MAVLink


提示:微信公众号不支持外链接,请复制链接到浏览器打开)


3

MAVLink协议格式

目前MAVLink有两个版本:V1和V2版本,差异及详情请看下图:


MAVLink V2是V1的拓展版本,是一个更加安全和可扩展的协议。


由于市面上应用较广的还是V1版本,且支持的编程语言也是V1多余V2。因此,接下来(MAVLink学习之路)我都会结合MAVLink V1来讲述(学会V1,V2和容易就掌握了)。


3.1 MAVLink V1格式

MAVLink通信内容包含常见通信协议帧头、帧尾、长度、校验等。协议格式及详情见下图:


4

MAVLink使用方法和步骤

MAVLink之所以受广大无人机开发朋友的喜爱,原因就在于MAVLink移植方便、操作简单,以及它的兼容性很好(当然,这些都是它的优点,缺点肯定也是有的)。


要想使用MAVLink,一些基本的操作肯定还是得有。方便初学者对MAVLinK有进一步的认识,我先罗列主要步骤。


4.1 主要步骤

1.下载相应安装包及工具


2.环境搭建


3.通过xml配置MSG消息


4.移植到STM32


5.结合实例应用编程


当然,以上几点只是概要内容,后续的文章会详细讲述其中的内容,敬请等待...


5

说明

1.该文档仅供个人学习使用,版权所有,禁止商用。


2.本文由我一个人编辑并整理,难免存在一些错误。


3.本文收录于公众号【EmbeddedDevelop】,关注微信公众号回复【MAVLink学习之路】即可查看全系列教程。  


6最后

本文由作者strongerHuang原创发布,转载请公众号联系作者授权。


若觉得文章对你有帮助,记得点赞、分享。(一个赞代表一份认可


扫描下面二维码、关注,在底部菜单中查看更多精彩内容!



长按识别图中二维码关注

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存