《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 業(yè)界動態(tài) > 快速開發(fā)MQTT(一)電子工程師眼中的MQTT

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

2018-12-18
關鍵詞: MQTT UART TCPIP

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

wx_article_20181215122536_zsJVj6.jpg

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

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

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

都說“基于TCP連接”的通信,,那到底啥是“TCP連接”呢?這個需要了解到TCP/IP參考模型中的4層的定義:

wx_article_20181215122536_0w5Ic7.jpg

TCP/IP參考模型圖

MQTT是在TCP連接后的基礎上進行通信的,那么在此可以簡單認為,,TCP就是個“外設接口”,,就像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,,帶有TCP連接功能,。首先看看電子工程師非常熟悉的串口通信界面:

wx_article_20181215122536_sCBqfQ.jpg

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

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

wx_article_20181215122536_U9KwZe.jpg

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可謂是比嵌入式外設要復雜些,,不是簡單一個硬件實現(xiàn)就可以了的。

串口連接,,最少需要的3根數(shù)據(jù)線(TxD,,RxD,GND),然后設置兩端設備的波特率,、數(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),。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權者。如涉及作品內(nèi)容,、版權和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。