什么是MQTT,有何价值?

亮点科技 2022-04-14 09:24

        通信是物联网 (IoT) 应用中不可或缺的一部分,而针对不同的应用场景,通信需求也不尽相同,从中也能捕捉到这些场景对网络环境的特殊要求。在如今的工业 4.0 时代下,工厂生产线设备需要实时响应中央控制器的命令,这就促使该应用场景对超低网络延迟有着更高的要求。另一方面,土壤状况检测远程传感器一般都是由电池供电,但由于传感器在较长时间内都处于待机状态,为了减少能耗延长使用周期,传感器仅在传送数据包时才允许被唤醒。

        如今,蜂窝网络、无线连接技术(比如 Wi-Fi和蓝牙)、有线以太网,以及卫星等通信技术广泛应用于各类IoT设备中,但通信协议则是所有 IoT技术栈的关键构成,唯有通过特定的通信协议,IoT设备才能进行数据传输与交换。

        为了满足当下IoT 应用的多样化需求,市面上开放了包括 CoAP、XMPP 和 DDS 在内的多种协议,可供各个应用场景按需选择。其中,消息队列遥测传输 (MQTT) 及其衍生协议 MQTT-SN 正广泛应用在日益普遍的低功耗广域 (LPWA) 网络中。

        MQTT 协议

        作为一种轻量级协议,MQTT 拥有简单紧凑的架构和较小的代码占用空间,适用于低成本、低功耗的IoT微控制设备。MQTT 可在 TCP/IP 协议上兼容运行,专攻延迟较高、质量不佳的网络环境。该协议适用于具有以下通信需求的应用:

  • 使用极小带宽
  • 无线网络通信
  • 低功耗
  • 必要时保证高可靠性
  • 对处理和内存资源的需求很低

        MQTT 在 IoT 多种应用中都备受青睐,如智能表计、资产追踪工具和工业设备的互联传感器。凭借对有限带宽的高效利用,因此MQTT非常适用于网络成本高、功耗大的应用场景,例如远程传感器阵列就需要在现场自主运行数年且期间无需维修。MQTT是多个客户端通过一个中央服务器传递信息的多对多协议,能高效地将信息分发给一个或多个订阅者,加之其代码占用空间小,便使得MQTT成为移动应用通信的理想之选。

        MQTT 功能概述

        MQTT 基于发布和订阅模型,而非“客户端-服务器”模型,它具有两个功能实体——MQTT 服务器和 MQTT 客户端。IoT 网络上的任何“事物”,无论是硬件设备还是软件程序,都可以视为 MQTT的 客户端。所有的客户端并非直接向彼此发布或订阅消息,而是向MQTT 服务器所管理的“主题”来发布或订阅消息。“主题”可理解为电子邮件的收件箱;客户端向主题发布消息,订阅该主题的其他客户端都将收到该消息。

        MQTT 服务器负责接收所有已发布的消息,并需要确保将其传输到所有订阅的客户端。消息根据多个商定的 QoS 级别进行发布(见下文)。服务器还将对网络上的所有 IoT 设备进行验证,进而管理连接、会话和订阅。

图 1:什么是 MQTT

        MQTT-SN

        MQTT-SN 是 MQTT 的优化版本,专为需要提高数据传输效率和功耗效率的大规模无线传感器网络而设计。MQTT-SN 主要通过缩短主题 ID 的长度来提升数据传输效率。这些经过缩短处理的 ID 会编程到客户端和服务器中,从而减少信息传递数量。

        MQTT-SN 中的“链路保持机制”允许设备进入睡眠模式,并在被唤醒时才可检索任何排队消息。

        MQTT 核心概念

        除了服务器和客户端实体,MQTT 和 MQTT-SN 运行还涉及到如下核心概念:


        1.MQTT 主题 MQTT Topics

        主题是 MQTT 实现对带宽高效利用的基础,它具有多级结构,如图 2 所示。MQTT 客户端只会订阅其所关注的主题,并且可以使用通配符条目来访问多个主题。

图 2:MQTT 主题(来源:u-blox)

        由于设备仅接收已订阅的主题消息,MQTT 主题通过 IoT 网络将更加高效地组织数据流,从而实现大规模应用。

        2.连接Connections

        MQTT 客户端必须与服务器建立连接才能发布或订阅消息。客户端在发送连接请求时会提供其客户ID、用户名和密码,随后服务器会确认该项请求。而连接请求也可使用如下参数加以限定:

        2.1.MQTT会话(Clean Session) - 请求连接并删除订阅队列中已存储的任何消息。

        2.2.链路保持Keep Alive - 当服务器或客户端未发送消息时,链路保持功能将优先确保设备连接的最长时间,从而为处于睡眠模式下的其他电池供电设备提供支持。在此期间,客户端接收到的任何消息都会由服务器存储,直到指定时间结束。

        2.3.睡眠(仅限 MQTT-SN - 在设备告知服务器即将进入睡眠模式时,服务器会在设备告知的时间段内将设备订阅的所有消息排入队列。此模式与“链路保持”模式的主要区别在于,服务器会无视QoS 级别,将所有消息进行存储,而在“链路保持”模式中则仅存储 QoS 1 和 QoS 2 消息。在睡眠模式时,客户端还能在不需要唤醒的情况下刷新其消息队列。

        3.订阅

        客户端可请求订阅一个或多个主题,该请求支持两种不同的通配符设置,如图 3a 和 3b 所示。

        单级 (+) 通配符用于替换一个主题级别,因此“sensors/+/out”将订阅以下主题:

        sensors/soil/out(传感器/土壤/输出)

        sensors/water/out(传感器/水/输出)

        sensors/light/out(传感器/光/输出)


图 3a:单级通配符

        多级 (#) 通配符用于替换多个主题级别,因此这个通配符可以订阅以下主题:

        sensors/soil/out(传感器/土壤/输出)

        sensors/soil/in(传感器/土壤/输入)

        sensors/temperature/out(传感器/温度/输出)


图 3b:多级通配符


        4.消息服务质量QoS

        MQTT 和 MQTT-SN 两者规定了消息服务质量 (QoS) 模式,让发布者能够自行定义消息质量。我们针对这些模式进行汇总(见表 1),并分享了如何根据特定应用的限制条件来采用不同的模式。

        5.QoS 在发布与订阅中的区别

        在MQTT 发布与订阅操作中, QoS 代表了不同的含义,发布时的 QoS 表示消息发送到服务端时使用的 QoS,订阅时的 QoS 则表示服务端向自己转发消息时可以使用的最大 QoS。

        当客户端 A 的发布 QoS 大于客户端 B 的订阅 QoS 时,服务端向客户端 B 转发消息时使用的 QoS 为客户端 B 的订阅 QoS。

        当客户端 A 的发布 QoS 小于客户端 B 的订阅 QoS 时,服务端向客户端 B 转发消息时使用的 QoS 为客户端 A 的发布 QoS。    

        结论

        现如今,MQTT 已广泛应用于包括汽车、能源、制造业及电信等多个关键领域,尤其适用于更窄带宽的网络环境和更低功耗IoT设备。为简化IoT的开发流程,技术人员还可根据自身需求,选择包括服务器端与客户端在内的MQTT测试工具。

        要记住“通信不仅仅是建立连接”。以 u-blox 物联网通信即服务产品组合为例(见图 4),u-blox MQTT Anywhere、MQTT Here 和 MQTT Now三款产品基于可扩展的高性能MQTT服务器与数据流管理器,彼此相辅相成且互为补充,能有效帮助您缩短产品开发周期,简化物联网设备与企业间的数据通信。


图 4:u-blox 物联网通信即服务产品组合

        ublox 简介

        瑞士 ublox 公司 (SIX:UBXN) 是为汽车、工业和消费市场提供定位和无线通信技术的领先供应商。其解决方案能准确进行人员、车辆和机器的定位,并通过蜂窝网络和短程通信网络实现无线通信。凭借广泛及多样化的芯片、模块和日益扩大的产品支持数据服务生态系统,ublox 公司在帮助其客户针对物联网快速而成本高效地开发创新解决方案方面具有得天独厚的优势。u-blox 公司总部设在瑞士塔尔维尔,目前在欧洲、亚洲和美国都设有办事处。

        请关注u-blox中国区官方微信号   

        作者:Eric Heiser,u-blox 高级副总裁兼产品中心服务主管

评论
  • 作为优秀工程师的你,已身经百战、阅板无数!请先醒醒,新的项目来了,这是一个既要、又要、还要的产品需求,ARM核心板中一个处理器怎么能实现这么丰富的外围接口?踌躇之际,你偶阅此文。于是,“潘多拉”的魔盒打开了!没错,USB资源就是你打开新世界得钥匙,它能做哪些扩展呢?1.1  USB扩网口通用ARM处理器大多带两路网口,如果项目中有多路网路接口的需求,一般会选择在主板外部加交换机/路由器。当然,出于成本考虑,也可以将Switch芯片集成到ARM核心板或底板上,如KSZ9897、
    万象奥科 2024-12-03 10:24 68浏览
  • 《高速PCB设计经验规则应用实践》+PCB绘制学习与验证读书首先看目录,我感兴趣的是这一节;作者在书中列举了一条经典规则,然后进行详细分析,通过公式推导图表列举说明了传统的这一规则是受到电容加工特点影响的,在使用了MLCC陶瓷电容后这一条规则已经不再实用了。图书还列举了高速PCB设计需要的专业工具和仿真软件,当然由于篇幅所限,只是介绍了一点点设计步骤;我最感兴趣的部分还是元件布局的经验规则,在这里列举如下:在这里,演示一下,我根据书本知识进行电机驱动的布局:这也算知行合一吧。对于布局书中有一句:
    wuyu2009 2024-11-30 20:30 122浏览
  • 学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&
    youyeye 2024-11-30 14:30 78浏览
  • RDDI-DAP错误通常与调试接口相关,特别是在使用CMSIS-DAP协议进行嵌入式系统开发时。以下是一些可能的原因和解决方法: 1. 硬件连接问题:     检查调试器(如ST-Link)与目标板之间的连接是否牢固。     确保所有必要的引脚都已正确连接,没有松动或短路。 2. 电源问题:     确保目标板和调试器都有足够的电源供应。     检查电源电压是否符合目标板的规格要求。 3. 固件问题: &n
    丙丁先生 2024-12-01 17:37 100浏览
  • 戴上XR眼镜去“追龙”是种什么体验?2024年11月30日,由上海自然博物馆(上海科技馆分馆)与三湘印象联合出品、三湘印象旗下观印象艺术发展有限公司(下简称“观印象”)承制的《又见恐龙》XR嘉年华在上海自然博物馆重磅开幕。该体验项目将于12月1日正式对公众开放,持续至2025年3月30日。双向奔赴,恐龙IP撞上元宇宙不久前,上海市经济和信息化委员会等部门联合印发了《上海市超高清视听产业发展行动方案》,特别提到“支持博物馆、主题乐园等场所推动超高清视听技术应用,丰富线下文旅消费体验”。作为上海自然
    电子与消费 2024-11-30 22:03 98浏览
  • 概述 说明(三)探讨的是比较器一般带有滞回(Hysteresis)功能,为了解决输入信号转换速率不够的问题。前文还提到,即便使能滞回(Hysteresis)功能,还是无法解决SiPM读出测试系统需要解决的问题。本文在说明(三)的基础上,继续探讨为SiPM读出测试系统寻求合适的模拟脉冲检出方案。前四代SiPM使用的高速比较器指标缺陷 由于前端模拟信号属于典型的指数脉冲,所以下降沿转换速率(Slew Rate)过慢,导致比较器检出出现不必要的问题。尽管比较器可以使能滞回(Hysteresis)模块功
    coyoo 2024-12-03 12:20 108浏览
  •         温度传感器的精度受哪些因素影响,要先看所用的温度传感器输出哪种信号,不同信号输出的温度传感器影响精度的因素也不同。        现在常用的温度传感器输出信号有以下几种:电阻信号、电流信号、电压信号、数字信号等。以输出电阻信号的温度传感器为例,还细分为正温度系数温度传感器和负温度系数温度传感器,常用的铂电阻PT100/1000温度传感器就是正温度系数,就是说随着温度的升高,输出的电阻值会增大。对于输出
    锦正茂科技 2024-12-03 11:50 106浏览
  • 11-29学习笔记11-29学习笔记习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-02 23:58 71浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2024-12-02 10:40 120浏览
  • TOF多区传感器: ND06   ND06是一款微型多区高集成度ToF测距传感器,其支持24个区域(6 x 4)同步测距,测距范围远达5m,具有测距范围广、精度高、测距稳定等特点。适用于投影仪的无感自动对焦和梯形校正、AIoT、手势识别、智能面板和智能灯具等多种场景。                 如果用ND06进行手势识别,只需要经过三个步骤: 第一步&
    esad0 2024-12-04 11:20 50浏览
  • 当前,智能汽车产业迎来重大变局,随着人工智能、5G、大数据等新一代信息技术的迅猛发展,智能网联汽车正呈现强劲发展势头。11月26日,在2024紫光展锐全球合作伙伴大会汽车电子生态论坛上,紫光展锐与上汽海外出行联合发布搭载紫光展锐A7870的上汽海外MG量产车型,并发布A7710系列UWB数字钥匙解决方案平台,可应用于数字钥匙、活体检测、脚踢雷达、自动泊车等多种智能汽车场景。 联合发布量产车型,推动汽车智能化出海紫光展锐与上汽海外出行达成战略合作,联合发布搭载紫光展锐A7870的量产车型
    紫光展锐 2024-12-03 11:38 101浏览
  • 最近几年,新能源汽车愈发受到消费者的青睐,其销量也是一路走高。据中汽协公布的数据显示,2024年10月,新能源汽车产销分别完成146.3万辆和143万辆,同比分别增长48%和49.6%。而结合各家新能源车企所公布的销量数据来看,比亚迪再度夺得了销冠宝座,其10月新能源汽车销量达到了502657辆,同比增长66.53%。众所周知,比亚迪是新能源汽车领域的重要参与者,其一举一动向来为外界所关注。日前,比亚迪汽车旗下品牌方程豹汽车推出了新车方程豹豹8,该款车型一上市就迅速吸引了消费者的目光,成为SUV
    刘旷 2024-12-02 09:32 119浏览
  • 遇到部分串口工具不支持1500000波特率,这时候就需要进行修改,本文以触觉智能RK3562开发板修改系统波特率为115200为例,介绍瑞芯微方案主板Linux修改系统串口波特率教程。温馨提示:瑞芯微方案主板/开发板串口波特率只支持115200或1500000。修改Loader打印波特率查看对应芯片的MINIALL.ini确定要修改的bin文件#查看对应芯片的MINIALL.ini cat rkbin/RKBOOT/RK3562MINIALL.ini修改uart baudrate参数修改以下目
    Industio_触觉智能 2024-12-03 11:28 84浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦