对于mqtt的介绍,官方文档是直接进入主题,讨论其架构模型,对于未曾接触网络技术的电子工程师来说,这第一章都已经是略微难懂的章节,更别提继续往下看了。因此,此文是站在电子工程师的角度介绍mqtt协议,为方便理解和描述,肯定没有计算机网络方面专业术语那么准确。
作为一名电子工程师,去理解网络工程、软件工程这些范畴的技术,有时候时非常困难的,尤其是做硬件,很多东西感觉很抽象,又很空洞。
日常工作中,电子工程师面对更多的是uart、spi、iic、usb,对于触手可及的这些外设接口协议,我们一般更多关注的是他们的信号时序、电气特性、传输速率等参数。并且在开发时,这些外设接口能够看得见摸得着,知道是哪两个或者哪几个设备之间进行连接。
mqtt基于tcp连接进行的网络通信。
都说“基于tcp连接”的通信,那到底啥是“tcp连接”呢?(官网http://www.tcpipguide.com/)这个需要了解到tcp/ip参考模型中的4层的定义:
tcp/ip参考模型图
mqtt是在tcp连接后的基础上进行通信的,那么在此可以简单认为,tcp就是个“外设接口”,就像uart、spi这样,作为传输层,就负责把数据收发。
而在实际在使用过程中,mqtt数据是带了各种“格式”的条条框框进行封装,这些条条框框的封装就是在应用层定义和实现的。
应用层的协议利用tcp这种“接口”进行收发数据时,为了区别于不同应用程序,而定义了应用协议,类似于mqtt、http、ftp等。
利用工具模拟和对比,串口连接后收发和tcp连接后收发的情况。
这里使用的是单片机开发的时候最常用到的一个串口助手sscom v5.10a(http://www.daxia.com/sscom/sscom5.13.1.rar),带有tcp连接功能。首先看看电子工程师非常熟悉的串口通信界面:
串口通信时的数据交互截图
同样的,切换到tcp连接的方式,根据如下截图配置tcp服务器和tcp客户端:
tcp连接后通信时的数据交互截图
可见tcp和串口类似,在连接后就可以对数据进行传输了。并且和串口一样,在传输时,数据是被完全透传出去的,而没有被封装成任何格式(只看tcp层),可见平时在底层开发时使用串口通信都没有上升到应用层协议,基本都是裸数据传输的,即使说有协议那基本都是私有协议,且是自定义的。
可是怎样能够实现连接?
mqtt协议是基于tcp连接进行通信的,tcp可谓是比嵌入式外设要复杂些,不是简单一个硬件实现就可以了的。
串口连接,最少需要的3根数据线(txd,rxd,gnd),然后设置两端设备的波特率、数据位、校验位、停止位,即可完成连接。
而tcp连接,需要往下的多个层协议来实现,然后就是配置ip地址、端口。实现方式有很多,有线方式可以用集成了网卡芯片的单片机或者以太网转串口、spi模块等,无线的方式可以用集成了wifi的单片机或者wifi转串口、spi模块等。
tcp连接实现方式很简单,就是芯片搭模块,而实现过程却是很复杂,对于应用开发的电子工程师,需要做的是能够利用低价格高效益的解决方案来实现mqtt协议,实现物联网。
★★★★★推荐文章
《【嵌入式编程】平台大小端存储差异解决办法》
《嵌入式硬件通信接口-使用ringbuffer处理数据(二)详细设计过程》
《嵌入式硬件通信接口-使用ringbuffer处理数据(一)》
《快速开发mqtt(一)电子工程师眼中的mqtt》
《快速开发mqtt(二)初识mqtt》
《mqtt客户端搭建-最清晰的mqtt协议架构》
《mqtt服务端搭建-最快方式验证自己开发的客户端》
★★★★★相似文章
《嵌入式硬件通信接口协议-uart(五)数据包设计与解析》
《嵌入式硬件通信接口协议-uart(四)设计起止式的应用层协议》
《嵌入式硬件通信接口协议-uart(三)快速使用串口及应用》
《嵌入式硬件通信接口协议-uart(二)不同电气规范下的标准》
《嵌入式硬件通信接口协议-uart(一)协议基础》
《嵌入式硬件通信接口协议-spi(二)分层架构设计模拟接口》
《嵌入式硬件通信接口协议-spi(一)协议基础》
★★★★★扩展阅读
《【硬件电路】altiumdesigner18规则检查含义》
《【硬件电路】n沟道、p沟道mos管基本原理与应用案例》
文章首发于同名微信公众号:digcore
欢迎关注同名微信公众号:digcore,及时获取最新技术博文。
原文链接:https://mp.weixin.qq.com/s/hy3y0epwleya3ykwwvu1lq
(说明:此处的文章从微信公众号拷贝而来,图片或者排版上可能存在一定的瑕疵,欢迎点击原文链接阅读)
深度解读移动通信技术发展的文化传媒及未来趋势
Vive Pro迈凯轮限量版上线,售价12888元
CAM和TCAM区别和优势分析
图漾3D视觉托盘栈板识别方案
lvdt位移传感器工作原理和主要特点
快速开发MQTT(一)电子工程师眼中的MQTT
黄金打造奢华LED互动灯具
台半导体产业陷入衰退 大陆成避风港
AC-DC电源适配器最新六级能耗标准
国产数字源表的发展历史
Visual Studio Code正在兴起,成为最受欢迎的编辑器
剖析NVIDIA DPU如何在HPC 集群上加速科学计算应用
74ls48引脚图及功能、真值表和典型应用电路分解
易于制作的叮咚门铃
物联网技术怎样改善智慧养老服务
智慧警务综合应用管理平台开发大数据研判系统开发
业财提效80%,中国金茂这样做财税一体化升级
中国移动肖善鹏表示未来5G终端的发展道路会荆棘密布面临众多挑战
什么是bga封装 bga封装工艺流程
三大运营商如何建5G网络?移动和电信倾向独立组网