快速开发MQTT(一)电子工程师眼中的MQTT

转载:https://zhuanlan.zhihu.com/p/54669124

文章首发于同名微信公众号:DigCore编程

欢迎关注同名微信公众号:DigCore,及时获取最新技术博文。服务器

原文连接:微信

 

对于MQTT的介绍,官方文档是直接进入主题,讨论其架构模型,对于不曾接触网络技术的电子工程师来讲,这第一章都已是略微难懂的章节,更别提继续往下看了。所以,此文是站在电子工程师的角度介绍MQTT协议,为方便理解和描述,确定没有计算机网络方面专业术语那么准确。网络

做为一名电子工程师,去理解网络工程、软件工程这些范畴的技术,有时候时很是困难的,尤为是作硬件,不少东西感受很抽象,又很空洞。架构

 

 

平常工做中,电子工程师面对更多的是UART、SPI、IIC、USB,对于触手可及的这些外设接口协议,咱们通常更多关注的是他们的信号时序、电气特性、传输速率等参数。而且在开发时,这些外设接口可以看得见摸得着,知道是哪两个或者哪几个设备之间进行链接。tcp

 

MQTT基于TCP链接进行的网络通讯。ide

都说“基于TCP链接”的通讯,那到底啥是“TCP链接”呢?(官网)这个须要了解到TCP/IP参考模型中的4层的定义:工具

 

 

TCP/IP参考模型图ui

MQTT是在TCP链接后的基础上进行通讯的,那么在此能够简单认为,TCP就是个“外设接口”,就像UART、SPI这样,做为传输层,就负责把数据收发。spa

而在实际在使用过程当中,MQTT数据是带了各类“格式”的条条框框进行封装,这些条条框框的封装就是在应用层定义和实现的。

应用层的协议利用TCP这种“接口”进行收发数据时,为了区别于不一样应用程序,而定义了应用协议,相似于MQTT、HTTP、FTP等。

 

利用工具模拟和对比,串口链接后收发和TCP链接后收发的状况。

这里使用的是单片机开发的时候最经常使用到的一个串口助手SSCOM V5.10a(),带有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管基本原理与应用案例》

相关文章
相关标签/搜索