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

    文章

    1037

    浏览量

    41253
  • 编程
    +关注

    关注

    88

    文章

    3689

    浏览量

    95390
  • mavlink
    +关注

    关注

    0

    文章

    9

    浏览量

    2696
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HIPERFACE DSL编码器通信协议介绍

    在工业自动化和智能制造快速发展的今天,编码器在各类设备中扮演着关键角色,精准的位置和速度反馈是确保系统高效、稳定运行的基础。HIPERFACE DSL作为一种先进的编码器通信协议,正逐渐成为众多工业
    的头像 发表于 05-23 14:16 ?748次阅读
    HIPERFACE DSL编码器<b class='flag-5'>通信协议</b>介绍

    Modbus 转 Profinet:工业通信协议的桥梁

    1. 引言 在工业自动化领域,Modbus 和 Profinet 是两广泛使用的通信协议。Modbus 是一种串行通信协议,常用于连接工业电子设备,而 Profinet 是
    的头像 发表于 02-24 11:11 ?389次阅读
    Modbus 转 Profinet:工业<b class='flag-5'>通信协议</b>的桥梁

    Dali通信的工作原理 如何使用Dali通信协议

    、引言 Dali(Digital Addressable Lighting Interface,数字可寻址照明接口)是一种用于照明控制产品之间双向通信协议。通过Dali
    的头像 发表于 01-31 10:33 ?2187次阅读

    搞懂TTL、RS232、485通信协议

    本文介绍了TTL、RS232和RS485这三常见的通信协议的传输距离、应用场景以及影响通信距离的各种因素。TTL是一种短距离通信标准,通常
    的头像 发表于 01-16 10:59 ?7880次阅读
    搞懂TTL、RS232、485<b class='flag-5'>通信协议</b>!

    总线通信协议解析及应用

    在现代计算机系统中,总线通信协议扮演着至关重要的角色。它们定义了数据如何在处理器、内存、输入/输出设备等组件之间传输。 总线通信协议的基本概念 总线通信协议组规则,它规定了数据在系
    的头像 发表于 12-31 10:07 ?1118次阅读

    常见串口通信协议 如何设置串口参数

    串口通信一种常见的通信方式,广泛应用于计算机、嵌入式系统和各种电子设备之间。串口通信协议主要是指在串行通信中,数据传输的格式和规则。 常见
    的头像 发表于 12-27 09:51 ?3569次阅读

    RS232接口通信协议详解 如何测试RS232接口的性能

    RS232接口通信协议详解 RS232接口通信协议一种广泛应用的串行通信协议,它规定了数据在设备之间的传输方式和格式。以下是RS232接口通信协议
    的头像 发表于 12-18 18:03 ?4004次阅读

    AUTOSAR通信协议解析 如何实现AUTOSAR通信

    通信协议栈是个复杂的系统,它涵盖了多种通信方式和模块,以实现车内ECU之间的高效、可靠的数据交换。以下是对AUTOSAR通信协议的解析及实现AUTOSAR
    的头像 发表于 12-17 14:54 ?2972次阅读

    RS485通信协议的应用与优势

    RS-485是一种差分信号的串行通信协议,广泛应用于工业自动化、楼宇自动化、安防监控等领域。它以其高速、长距离传输和抗干扰能力强等特点,成为许多工业和商业应用的首选通信方式。 RS485通信协
    的头像 发表于 11-28 14:23 ?3782次阅读

    串口通信协议解析 串口通信应用实例

    串口通信协议解析 串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定致的数据包格式才能正常收发数据的有关规范。以下是串口通信协议的介绍: 基
    的头像 发表于 11-21 17:03 ?2244次阅读

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

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

    PROFINET通信协议是什么

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

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

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

    SPI通信协议的基本概念和工作模式

    SPI(Serial Peripheral Interface)通信协议,即串行外围设备接口,是一种高速、全双工、同步通信总线,由摩托罗拉公司提出并广泛应用。SPI以其高效的数据传输能力和简单的硬件
    的头像 发表于 09-09 17:04 ?3294次阅读

    dht11采用什么通信协议

    DHT11是款广泛使用的温湿度传感器,它通过简单的数字接口与微控制器或其他数字设备进行通信。DHT11使用单总线通信协议,这意味着所有的数据传输都通过单的数据线完成。这种
    的头像 发表于 09-04 09:06 ?5666次阅读