0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一种轻量级的通信协议 - MAVLink

黄工的嵌入式威廉希尔官方网站 圈 来源:黄工的嵌入式威廉希尔官方网站 圈 2020-03-12 14:14 次阅读

MAVLink主要是一种用于飞行器上的通信协议,但很有参考意义,算是给大家普及的知识。

Ⅰ关于MAVLink

可能很多人都不知道“MAVLink”是什么东西,简单来说它就是一种轻量级的通信协议。

可能很多人会问,大家都不了解的这个“东西”,你讲来干什么?

正如抬头所说:给大家普及知识,而且可以应用到许多地方,说不定我讲过之后你就会用上它。

1.对于初学者,了解一种协议的格式,以及它的应用我觉得对他以后的编程有帮助;

2.一种在某个行业通用,并且很成熟的通信协议很有借鉴;

3.MAVLink与很多自定的协议相比,它的开发难度非常小,有现成的配置工具,可直接生成MSG代码(简单来说,就是生成对应的函数接口供你直接调用即可),直接调用几个相应的函数接口即可,不需要自己封装、解析等;

4.MAVLink是一种轻量级的通信协议,可用于各类运行速度不是很高的单片机中(当然,也能用于快速的PC中)。

ⅡMAVLin协议结构

先看协议结构(或者说格式),如下图:

看到上面协议格式,相信大家都会觉得,这不就是一般的协议吗? 说实话,它和一般的协议格式没什么两样,但“五脏俱全”,就是一种协议。就像人,有黄种人、白种人、黑种人等各种各样的人,但都属于人。

ⅢMAVLink的使用简单、方便

说实话,本文的重点在于这一章节。MAVLink和一般协议比较,它不仅具有常规协议的格式,突出的优点在于配置和调用比较简单。

1.配置

MAVLink通过xml文件,配置信息(MSG),这个MSG可以理解成我们需要接收或者发送的数据变量。比如:运动控制包含速度和距离,xml配置如下:

2.通过生成代码

本节牵涉到相关工具的安装,这里不讲述。下面是生成的工具:

3.调用代码

代码生成,只需要简单调用两个函数接口即可:

两个函数即可:

mavlink_msg_motion_pack:封包函数接口;

mavlink_msg_to_send_buffer:转换成发送的BUF;

如下:

看到上面的调用,是不是很简单呢?

本文只是简单的讲述,想要学习更是相关MAVLink的知识,请参考网址:

MAVLink主页:mavlink_msg_to_send_buffer

协议说明(维基百科):https://en.wikipedia.org/wiki/MAVLink

Ⅳ最后

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    881

    浏览量

    40300
  • 编程
    +关注

    关注

    88

    文章

    3614

    浏览量

    93697
  • mavlink
    +关注

    关注

    0

    文章

    8

    浏览量

    2594
收藏 人收藏

    评论

    相关推荐

    PLC控制系统的通信协议解析

    的基本概念 通信协议组规则,定义了数据如何在不同的设备之间传输。在PLC控制系统中,这些协议包括物理层、数据链路层、网络层、传输层和应用层等多个层次。 常见的PLC通信协议 Mod
    的头像 发表于 11-08 09:46 618次阅读

    PROFINET通信协议是什么

    PROFINET通信协议一种专为工业自动化领域设计的基于以太网的实时通信协议。以下是对PROFINET通信协议的详细解析,包括其定义、特点、体系结构、工作原理、
    的头像 发表于 09-25 18:13 1532次阅读

    物联网行业中MQTT通信协议详解以及使用

    概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级
    的头像 发表于 09-20 17:08 1410次阅读
    物联网行业中MQTT<b class='flag-5'>通信协议</b>详解以及使用

    简单认识UART通信协议

    UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)通信协议一种常见的串行通信协议,广泛应用于计算机、嵌入式系统、传感器、无线
    的头像 发表于 07-25 18:07 1421次阅读

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit)通信协议是由飞利浦公司(现为恩智浦半导体)开发的一种简单、双向二线制同步串行总线协议。自1982年发布以来,I2C协议因其高效
    的头像 发表于 07-25 18:06 1437次阅读

    can的通信协议主要由什么完成

    CAN(Controller Area Network)是一种基于消息的通信协议,主要用于汽车和工业领域。它是一种局域网威廉希尔官方网站 ,允许多个设备在同网络上进行
    的头像 发表于 06-16 10:29 596次阅读

    文了解物联网通信协议之MQTT如何助力无线模块广泛连接

    引言:随着物联网威廉希尔官方网站 的飞速发展,无线模块在连接各种智能设备、实现数据交互中扮演着至关重要的角色。为了有效满 足物联网通信的多样化需求,一种轻量级、高效且可靠的消息传输协议显得尤为重要。
    的头像 发表于 06-07 16:10 1116次阅读
    <b class='flag-5'>一</b>文了解物联网<b class='flag-5'>通信协议</b>之MQTT如何助力无线模块广泛连接

    高速串行通信协议都有哪些

    (通用串行总线) USB是一种广泛使用的串行通信协议,用于连接计算机和各种外部设备,如键盘、鼠标、打印机等。USB协议有多个版本,包括USB 1.1、USB 2.0、USB 3.0、USB 3.1和USB 4.0。每个版本都有
    的头像 发表于 05-31 16:11 1080次阅读

    简单认识UART串行通信协议

    在电子通信领域,UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器)是一种非常常见的串行通信协议。它被广泛应用于各种设备之间
    的头像 发表于 05-27 16:09 2088次阅读

    IOT(物联网)的七大通信协议之Http协议

    、什么是http协议?嵌入式HTTP协议一种轻量级通信协议,专为嵌入式系统设计,用于实现设
    的头像 发表于 05-24 08:11 2515次阅读
    IOT(物联网)的七大<b class='flag-5'>通信协议</b>之Http<b class='flag-5'>协议</b>

    RS485通信协议的特性和应用范围

    随着工业自动化和物联网威廉希尔官方网站 的飞速发展,数据通信协议的重要性日益凸显。RS485通信协议作为一种广泛应用于工业自动化领域的串行通信协议,其稳定性和可靠性得到了广泛的认可。本文将对RS48
    的头像 发表于 05-23 16:27 1698次阅读

    高速串行通信协议详解

    随着信息威廉希尔官方网站 的飞速发展,数据通信已成为现代社会不可或缺的部分。在数据通信中,串行通信作为一种基本的通信
    的头像 发表于 05-16 16:45 811次阅读

    epa通信协议是什么?epa协议介绍

    "Ethernet for Plant Automation"(EPA)是一种针对现场自动化应用的以太网通信协议。它被广泛应用于制造业领域中的控制系统、数据采集和监控等方面。 EPA协议相对于标准
    的头像 发表于 04-23 14:21 889次阅读

    UART串口通信协议是什么?

    UART (Universal Asynchronous Receiver/Transmitter) 是一种通信接口协议,用于实现串口通信。它是一种
    的头像 发表于 03-19 17:26 1367次阅读

    MAVLink在应用编程中的编程原理和思路

    嵌入式开发过程中,UART、 CAN、 USB等通信基本离不开通信协议。 下面给大家分享一种通信协议MAVLink)在应用编程中的编程
    发表于 03-08 12:45 890次阅读
    <b class='flag-5'>MAVLink</b>在应用编程中的编程原理和思路