那曲檬骨新材料有限公司

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

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

3天內不再提示

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

DigCore掘芯嵌入式 ? 2019-01-08 11:16 ? 次閱讀
對于MQTT的介紹,官方文檔是直接進入主題,討論其架構模型,對于未曾接觸網絡技術的電子工程師來說,這第一章都已經是略微難懂的章節,更別提繼續往下看了。因此,此文是站在電子工程師的角度介紹MQTT協議,為方便理解和描述,肯定沒有計算機網絡方面專業術語那么準確。

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

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

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

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

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

    關注

    2914

    文章

    44939

    瀏覽量

    377088
  • 電子工程
    +關注

    關注

    1

    文章

    62

    瀏覽量

    17220
  • MQTT協議
    +關注

    關注

    0

    文章

    98

    瀏覽量

    5487
收藏 人收藏

    評論

    相關推薦

    如何快速搭建MQTT協議的測試環境

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

    MQTT啟動太慢的原因?

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

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

    軟件工程師,企業內訓講師。 擅長Linux系統、微控制器、Android系統、Web后端領域的系統設計和軟件開發。 課程介紹:本課程由淺入深,以HarmonyOS物聯網應用開發為主線,為大家詳細講解
    發表于 12-09 17:18

    工程師眼中的“嵌入式系統”是什么樣的?

    工程師眼中的“嵌入式系統”是什么樣的?
    發表于 12-24 06:45

    OpenHarmony開發MQTT講解

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

    MQTT啟動太慢的原因?

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

    如何使用Nodemcu的Mqtt開關?

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

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

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

    快速開發MQTT(二)初識MQTT

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

    文教你快速讀懂MQTT網關

    MQTT種發布(publish)/訂閱(subscribe)協議,MQTT協議采用發布/訂閱模式,所有的物聯網終端都通過TCP連接到云端,云端通過主題的方式管理各個設備關注的通訊內容,負責將設
    發表于 03-24 16:09 ?1807次閱讀

    MQTT網關讓西門子S7-300快速接入MQTT平臺

    MQTT網關讓西門子S7-300快速接入MQTT平臺
    發表于 11-10 16:47 ?1512次閱讀

    OpenHarmony開發MQTT講解

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

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

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

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

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

    MQTT是什么 MQTT特點

    MQTT 是 Message Queuing Telemetry Transport 的縮寫,是種輕量級的、基于發布/訂閱模式的物聯網通信協議。 它具有以下特點: ?簡單易用:MQTT 的協議規范
    的頭像 發表于 11-09 15:20 ?2572次閱讀
    宾利百家乐官网游戏| 百家乐官网排名| 百家乐官网现金投注信誉平台| 24卦| 威尼斯人娱乐城评价| 百家乐官网新台第二局| 百家乐园搏彩论坛| 大发888真人赌博| 百家乐官网布| 长江百家乐的玩法技巧和规则| 兰西县| 百家乐游戏平台排名| 大发888帐号注册| 百家乐官网欧洲赔率| 全讯网3344111| 百家乐官网网站赌博| 如何胜百家乐的玩法技巧和规则 | 免费百家乐官网统计| 大发888棋牌官网| 广州百家乐官网赌城| 大发888娱乐城大发888大发网| 七胜百家乐官网娱乐城总统网上娱乐城大都会娱乐城赌场 | 百家乐官网真人游戏| 大发888 无法进入网页| 星期八百家乐官网的玩法技巧和规则 | 大发888娱乐城攻略| 百家乐官网投注平台信誉排名 | 全讯网娱乐353788| 哪个百家乐官网网站信誉好| 红宝石百家乐的玩法技巧和规则 | 大发888娱乐城送58| 百家乐官网赌场分析网| 大发888 娱乐免费游戏| 百家乐官网的玩法技巧和规则 | 湄潭县| 百家乐如何买大小| 铁岭市| 百家乐官网不能视频| 百家乐英皇娱乐网| 线上百家乐官网赌法| 大发888真钱娱乐城下载|