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

    文章

    732

    浏览量

    39688
  • 编程
    +关注

    关注

    88

    文章

    3438

    浏览量

    92320
  • mavlink
    +关注

    关注

    0

    文章

    8

    浏览量

    2563
收藏 人收藏

    评论

    相关推荐

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

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

    有关通信协议些问题?

    抗干扰就加强滤波,要求输入信号隔离就加隔离芯片或其他方式,总之这段电路不应该太夏杂吧,远不如芯片内部的信号处理电路?最后请推荐几本有关串行通信协议方面硬件方面的书,还有个问题,这些通信协议
    发表于 01-14 00:58

    从Profinet到CCLink:工业通信协议的转换实践

    需要将一种协议转换为另一种协议。某些设备可能无法直接与使用不同协议的设备通信,因此需要进行
    发表于 12-15 14:26

    MQTT协议采集网关可自定义格式

    在工业自动化和楼宇自动化领域中,Modbus、MQTT和BACnet/IP是三常用的通信协议。Modbus是一种串行通信协议,常用于连接工业电子设备;MQTT是
    发表于 10-09 19:33

    浅谈Modbus通信协议

    Modbus通信协议一种工业现场总线协议标准,常用的Modbus协议有以下三种类型:Modbus TCP、Modbus RTU、Modbus ASCll。
    发表于 09-20 15:56 901次阅读
    浅谈Modbus<b class='flag-5'>通信协议</b>

    物联网通信协议

    • MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)• 轻量级通信协议• 适用资源受限设备,低带宽,高延时,不稳定网络中进行消息传输• 运行
    发表于 09-11 06:18

    轻量级数据库有哪些

    数据库系统由于其小巧、快速、易用等优势,越来越受到人们的青睐。那么,轻量级数据库有哪些?本文将为大家介绍几种常见的轻量级数据库系统。 1. SQLite SQLite被广泛应用于各种移动应用程序、Web应用程序和嵌入式系统中。它是一种
    的头像 发表于 08-28 16:41 4187次阅读

    can总线的通信协议有哪些 CAN接口保护及工作原理

    CAN总线(Controller Area Network)是一种广泛应用于汽车、工业自动化和其他领域的串行通信协议。以下是几种常见的CAN总线通信协议
    的头像 发表于 08-18 14:40 1.1w次阅读
    can总线的<b class='flag-5'>通信协议</b>有哪些 CAN接口保护及工作原理

    Modbus通信协议是如何工作的?

    学电子需要掌握一些常见的通信协议,Modbus就属其中一种,Modbus在现实生活中应用非常广泛,很多工业电子设备的系统中基本都有它的存在。
    发表于 05-24 17:08 608次阅读
    Modbus<b class='flag-5'>通信协议</b>是如何工作的?

    形象生动的理解软、硬件层面的通信协议

    通信协议介绍 众所周知通信协议就是一种数据传输的协议规范,从软硬件层面可以分为硬件层通信协议和软件层通信
    的头像 发表于 05-08 10:43 863次阅读
    形象生动的理解软、硬件层面的<b class='flag-5'>通信协议</b>!

    通信协议的特点

    通信协议的种类和特点目前常见的通信协议主要有:NetBEUI、IPX/SPX、NWLink、TCP/IP,在这几种协议中用得最多、最为复杂的当然还是TCP/IP协议,最为简单的是Net
    发表于 05-06 14:57 956次阅读

    通信协议内容与功能

    通信协议不难理解,就是两个(或多个)设备之间进行通信,必须要遵循的一种协议通信协议是指双方实体完成通信
    发表于 05-06 14:43 2078次阅读

    通信协议的概念

    通信协议是指在通信过程中,为了使得不同设备之间进行有效的数据交换,所约定的一整套规则和标准。通信协议中定义了通信双方的接口、数据格式、传输速率、传输控制和数据处理等细节,从而确保了
    发表于 05-06 14:32 1426次阅读

    形象生动的理解软、硬件层面的通信协议

    众所周知通信协议就是一种数据传输的协议规范,从软硬件层面可以分为硬件层通信协议和软件层通信协议
    发表于 05-06 09:15 387次阅读
    形象生动的理解软、硬件层面的<b class='flag-5'>通信协议</b>

    浅析ModBus通信协议的相关知识

      概 述   Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus
    发表于 05-05 15:51