99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

快速開發(fā)MQTT(一)電子工程師眼中的MQTT

DigCore掘芯嵌入式 ? 2019-01-08 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

對于MQTT的介紹,官方文檔是直接進入主題,討論其架構(gòu)模型,對于未曾接觸網(wǎng)絡(luò)技術(shù)的電子工程師來說,這第一章都已經(jīng)是略微難懂的章節(jié),更別提繼續(xù)往下看了。因此,此文是站在電子工程師的角度介紹MQTT協(xié)議,為方便理解和描述,肯定沒有計算機網(wǎng)絡(luò)方面專業(yè)術(shù)語那么準確。

作為一名電子工程師,去理解網(wǎng)絡(luò)工程、軟件工程這些范疇的技術(shù),有時候時非常困難的,尤其是做硬件,很多東西感覺很抽象,又很空洞。

日常工作中,電子工程師面對更多的是UART、SPI、IIC、USB,對于觸手可及的這些外設(shè)接口協(xié)議,我們一般更多關(guān)注的是他們的信號時序、電氣特性、傳輸速率等參數(shù)。并且在開發(fā)時,這些外設(shè)接口能夠看得見摸得著,知道是哪兩個或者哪幾個設(shè)備之間進行連接。

MQTT基于TCP連接進行的網(wǎng)絡(luò)通信。

都說“基于TCP連接”的通信,那到底啥是“TCP連接”呢?(官網(wǎng)http://www.tcpipguide.com/)這個需要了解到TCP/IP參考模型中的4層的定義:

TCP/IP參考模型圖

MQTT是在TCP連接后的基礎(chǔ)上進行通信的,那么在此可以簡單認為,TCP就是個“外設(shè)接口”,就像UART、SPI這樣,作為傳輸層,就負責把數(shù)據(jù)收發(fā)。

而在實際在使用過程中,MQTT數(shù)據(jù)是帶了各種“格式”的條條框框進行封裝,這些條條框框的封裝就是在應用層定義和實現(xiàn)的。

應用層的協(xié)議利用TCP這種“接口”進行收發(fā)數(shù)據(jù)時,為了區(qū)別于不同應用程序,而定義了應用協(xié)議,類似于MQTT、HTTP、FTP等。

利用工具模擬和對比,串口連接后收發(fā)和TCP連接后收發(fā)的情況。

這里使用的是單片機開發(fā)的時候最常用到的一個串口助手SSCOM V5.10a(http://www.daxia.com/sscom/sscom5.13.1.rar),帶有TCP連接功能。首先看看電子工程師非常熟悉的串口通信界面:

串口通信時的數(shù)據(jù)交互截圖

同樣的,切換到TCP連接的方式,根據(jù)如下截圖配置TCP服務(wù)器和TCP客戶端:

TCP連接后通信時的數(shù)據(jù)交互截圖

可見TCP和串口類似,在連接后就可以對數(shù)據(jù)進行傳輸了。并且和串口一樣,在傳輸時,數(shù)據(jù)是被完全透傳出去的,而沒有被封裝成任何格式(只看TCP層),可見平時在底層開發(fā)時使用串口通信都沒有上升到應用層協(xié)議,基本都是裸數(shù)據(jù)傳輸?shù)模词拐f有協(xié)議那基本都是私有協(xié)議,且是自定義的。

可是怎樣能夠?qū)崿F(xiàn)連接?

MQTT協(xié)議是基于TCP連接進行通信的,TCP可謂是比嵌入式外設(shè)要復雜些,不是簡單一個硬件實現(xiàn)就可以了的。

串口連接,最少需要的3根數(shù)據(jù)線(TxD,RxD,GND),然后設(shè)置兩端設(shè)備的波特率、數(shù)據(jù)位、校驗位、停止位,即可完成連接。

而TCP連接,需要往下的多個層協(xié)議來實現(xiàn),然后就是配置IP地址、端口。實現(xiàn)方式有很多,有線方式可以用集成了網(wǎng)卡芯片的單片機或者以太網(wǎng)轉(zhuǎn)串口、SPI模塊等,無線的方式可以用集成了wifi的單片機或者wifi轉(zhuǎn)串口、SPI模塊等。

TCP連接實現(xiàn)方式很簡單,就是芯片搭模塊,而實現(xiàn)過程卻是很復雜,對于應用開發(fā)的電子工程師,需要做的是能夠利用低價格高效益的解決方案來實現(xiàn)MQTT協(xié)議,實現(xiàn)物聯(lián)網(wǎng)。

★★★★★推薦文章

《【嵌入式編程】平臺大小端存儲差異解決辦法》

《嵌入式硬件通信接口-使用RingBuffer處理數(shù)據(jù)(二)詳細設(shè)計過程》

《嵌入式硬件通信接口-使用RingBuffer處理數(shù)據(jù)(一)》

《快速開發(fā)MQTT(一)電子工程師眼中的MQTT》

《快速開發(fā)MQTT(二)初識MQTT》

《MQTT客戶端搭建-最清晰的MQTT協(xié)議架構(gòu)》

《MQTT服務(wù)端搭建-最快方式驗證自己開發(fā)的客戶端》

★★★★★相似文章

《嵌入式硬件通信接口協(xié)議-UART(五)數(shù)據(jù)包設(shè)計與解析》

《嵌入式硬件通信接口協(xié)議-UART(四)設(shè)計起止式的應用層協(xié)議》

《嵌入式硬件通信接口協(xié)議-UART(三)快速使用串口及應用》

《嵌入式硬件通信接口協(xié)議-UART(二)不同電氣規(guī)范下的標準》

《嵌入式硬件通信接口協(xié)議-UART(一)協(xié)議基礎(chǔ)》

《嵌入式硬件通信接口協(xié)議-SPI(二)分層架構(gòu)設(shè)計模擬接口》

《嵌入式硬件通信接口協(xié)議-SPI(一)協(xié)議基礎(chǔ)》

★★★★★擴展閱讀

《【硬件電路】AltiumDesigner18規(guī)則檢查含義》

《【硬件電路】N溝道、P溝道MOS管基本原理與應用案例》

文章首發(fā)于同名微信公眾號:DigCore

歡迎關(guān)注同名微信公眾號:DigCore,及時獲取最新技術(shù)博文。

原文鏈接:https://mp.weixin.qq.com/s/hY3y0EpWLeya3YkWwvU1lQ

(說明:此處的文章從微信公眾號拷貝而來,圖片或者排版上可能存在一定的瑕疵,歡迎點擊原文鏈接閱讀)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2931

    文章

    46256

    瀏覽量

    392843
  • 電子工程
    +關(guān)注

    關(guān)注

    1

    文章

    66

    瀏覽量

    17409
  • MQTT協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    99

    瀏覽量

    5956
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    如何快速搭建MQTT協(xié)議的測試環(huán)境

    大家好,我是麥叔,之前有小伙伴建議出期如何快速搭建MQTT協(xié)議的測試環(huán)境,因為自己寫的mqtt測試工具總是有這樣那樣的問題。
    的頭像 發(fā)表于 12-26 09:28 ?2842次閱讀
    如何<b class='flag-5'>快速</b>搭建<b class='flag-5'>一</b>個<b class='flag-5'>MQTT</b>協(xié)議的測試環(huán)境

    MQTT啟動太慢的原因?

    我發(fā)現(xiàn)MQTT啟動太慢:從調(diào)用esp_mqtt_client_start()函數(shù),到返回連接成功,這個過程耗時7秒鐘左右。我讓服務(wù)器端工程師翻查下登錄日志,結(jié)果發(fā)現(xiàn)從登錄連接開始到登
    發(fā)表于 06-14 07:46

    【直播預熱】Harmony MQTT/CoAP應用指南——火熱報名中

    軟件工程師,企業(yè)內(nèi)訓講師。 擅長Linux系統(tǒng)、微控制器、Android系統(tǒng)、Web后端領(lǐng)域的系統(tǒng)設(shè)計和軟件開發(fā)。 課程介紹:本課程由淺入深,以HarmonyOS物聯(lián)網(wǎng)應用開發(fā)為主線,為大家詳細講解
    發(fā)表于 12-09 17:18

    工程師眼中的“嵌入式系統(tǒng)”是什么樣的?

    工程師眼中的“嵌入式系統(tǒng)”是什么樣的?
    發(fā)表于 12-24 06:45

    OpenHarmony開發(fā)MQTT講解

    ;#125;小熊派開發(fā)MQTT客戶端代碼直循環(huán)發(fā)送主題為pubtopic的信息,信息內(nèi)容為("message number %d", count),每次信息count++;同時
    發(fā)表于 11-16 12:05

    MQTT啟動太慢的原因?

    我發(fā)現(xiàn)MQTT啟動太慢:從調(diào)用esp_mqtt_client_start()函數(shù),到返回連接成功,這個過程耗時7秒鐘左右。我讓服務(wù)器端工程師翻查下登錄日志,結(jié)果發(fā)現(xiàn)從登錄連接開始到登
    發(fā)表于 02-13 06:01

    如何使用Nodemcu的Mqtt開關(guān)?

    我是此類編程的初學者,也是名試圖熟悉物聯(lián)網(wǎng)系統(tǒng)的機械工程師。首先,我想為我的 nodemcu V2 編寫代碼,以在打開和關(guān)閉開關(guān)時發(fā)布 mqtt 有效載荷它連接在 GPIO 引腳 2 和地之間。我
    發(fā)表于 02-24 08:58

    MQTT啟動太慢的原因?怎么解決?

    我發(fā)現(xiàn)MQTT啟動太慢:從調(diào)用esp_mqtt_client_start()函數(shù),到返回連接成功,這個過程耗時7秒鐘左右。我讓服務(wù)器端工程師翻查下登錄日志,結(jié)果發(fā)現(xiàn)從登錄連接開始到登
    發(fā)表于 03-06 08:55

    快速開發(fā)MQTT(二)初識MQTT

    基本介紹 在上篇文章《快速開發(fā)MQTT電子工程師眼中
    的頭像 發(fā)表于 01-10 11:15 ?5660次閱讀

    文教你快速讀懂MQTT網(wǎng)關(guān)

    MQTT種發(fā)布(publish)/訂閱(subscribe)協(xié)議,MQTT協(xié)議采用發(fā)布/訂閱模式,所有的物聯(lián)網(wǎng)終端都通過TCP連接到云端,云端通過主題的方式管理各個設(shè)備關(guān)注的通訊內(nèi)容,負責將設(shè)
    發(fā)表于 03-24 16:09 ?1926次閱讀

    MQTT網(wǎng)關(guān)讓西門子S7-300快速接入MQTT平臺

    MQTT網(wǎng)關(guān)讓西門子S7-300快速接入MQTT平臺
    發(fā)表于 11-10 16:47 ?1720次閱讀

    OpenHarmony開發(fā)MQTT講解

    MQTT這個名稱大家都不陌生,物聯(lián)網(wǎng)的開發(fā)必然會遇到MQTT相關(guān)知識的應用。那么什么是MQTT?它有什么特點?它能解決什么問題?它是如何工作的?OpenAtom OpenHarmony
    的頭像 發(fā)表于 11-15 22:50 ?1344次閱讀

    MQTT客戶端快速入門指南 按鍵按下

    MQTT客戶端快速入門指南 按鍵按下
    發(fā)表于 07-03 18:34 ?0次下載
    <b class='flag-5'>MQTT</b>客戶端<b class='flag-5'>快速</b>入門指南 按鍵按下

    如何使用OneNET平臺的MQTT功能?

    ;設(shè)備進行模擬實際使用情況。推薦閱讀《設(shè)備如何使用華為云接入MQTT上報數(shù)據(jù)》《MQTT設(shè)備連接與通訊+LoRaWAN網(wǎng)關(guān)產(chǎn)品快速入門教程》OneNET平臺
    的頭像 發(fā)表于 10-20 08:21 ?1718次閱讀
    如何使用OneNET平臺的<b class='flag-5'>MQTT</b>功能?

    MQTT是什么 MQTT特點

    MQTT 是 Message Queuing Telemetry Transport 的縮寫,是種輕量級的、基于發(fā)布/訂閱模式的物聯(lián)網(wǎng)通信協(xié)議。 它具有以下特點: ?簡單易用:MQTT 的協(xié)議規(guī)范
    的頭像 發(fā)表于 11-09 15:20 ?2964次閱讀