作為一名電子工程師,去理解網(wǎng)絡(luò)工程、軟件工程這些范疇的技術(shù),有時(shí)候時(shí)非常困難的,尤其是做硬件,很多東西感覺很抽象,又很空洞。
日常工作中,電子工程師面對(duì)更多的是UART、SPI、IIC、USB,對(duì)于觸手可及的這些外設(shè)接口協(xié)議,我們一般更多關(guān)注的是他們的信號(hào)時(shí)序、電氣特性、傳輸速率等參數(shù)。并且在開發(fā)時(shí),這些外設(shè)接口能夠看得見摸得著,知道是哪兩個(gè)或者哪幾個(gè)設(shè)備之間進(jìn)行連接。
MQTT基于TCP連接進(jìn)行的網(wǎng)絡(luò)通信。
都說“基于TCP連接”的通信,那到底啥是“TCP連接”呢?(官網(wǎng)http://www.tcpipguide.com/)這個(gè)需要了解到TCP/IP參考模型中的4層的定義:

TCP/IP參考模型圖
MQTT是在TCP連接后的基礎(chǔ)上進(jìn)行通信的,那么在此可以簡單認(rèn)為,TCP就是個(gè)“外設(shè)接口”,就像UART、SPI這樣,作為傳輸層,就負(fù)責(zé)把數(shù)據(jù)收發(fā)。
而在實(shí)際在使用過程中,MQTT數(shù)據(jù)是帶了各種“格式”的條條框框進(jìn)行封裝,這些條條框框的封裝就是在應(yīng)用層定義和實(shí)現(xiàn)的。
應(yīng)用層的協(xié)議利用TCP這種“接口”進(jìn)行收發(fā)數(shù)據(jù)時(shí),為了區(qū)別于不同應(yīng)用程序,而定義了應(yīng)用協(xié)議,類似于MQTT、HTTP、FTP等。
利用工具模擬和對(duì)比,串口連接后收發(fā)和TCP連接后收發(fā)的情況。
這里使用的是單片機(jī)開發(fā)的時(shí)候最常用到的一個(gè)串口助手SSCOM V5.10a(http://www.daxia.com/sscom/sscom5.13.1.rar),帶有TCP連接功能。首先看看電子工程師非常熟悉的串口通信界面:

串口通信時(shí)的數(shù)據(jù)交互截圖
同樣的,切換到TCP連接的方式,根據(jù)如下截圖配置TCP服務(wù)器和TCP客戶端:

TCP連接后通信時(shí)的數(shù)據(jù)交互截圖
可見TCP和串口類似,在連接后就可以對(duì)數(shù)據(jù)進(jìn)行傳輸了。并且和串口一樣,在傳輸時(shí),數(shù)據(jù)是被完全透傳出去的,而沒有被封裝成任何格式(只看TCP層),可見平時(shí)在底層開發(fā)時(shí)使用串口通信都沒有上升到應(yīng)用層協(xié)議,基本都是裸數(shù)據(jù)傳輸?shù)模词拐f有協(xié)議那基本都是私有協(xié)議,且是自定義的。
可是怎樣能夠?qū)崿F(xiàn)連接?
MQTT協(xié)議是基于TCP連接進(jìn)行通信的,TCP可謂是比嵌入式外設(shè)要復(fù)雜些,不是簡單一個(gè)硬件實(shí)現(xiàn)就可以了的。
串口連接,最少需要的3根數(shù)據(jù)線(TxD,RxD,GND),然后設(shè)置兩端設(shè)備的波特率、數(shù)據(jù)位、校驗(yàn)位、停止位,即可完成連接。
而TCP連接,需要往下的多個(gè)層協(xié)議來實(shí)現(xiàn),然后就是配置IP地址、端口。實(shí)現(xiàn)方式有很多,有線方式可以用集成了網(wǎng)卡芯片的單片機(jī)或者以太網(wǎng)轉(zhuǎn)串口、SPI模塊等,無線的方式可以用集成了wifi的單片機(jī)或者wifi轉(zhuǎn)串口、SPI模塊等。
TCP連接實(shí)現(xiàn)方式很簡單,就是芯片搭模塊,而實(shí)現(xiàn)過程卻是很復(fù)雜,對(duì)于應(yīng)用開發(fā)的電子工程師,需要做的是能夠利用低價(jià)格高效益的解決方案來實(shí)現(xiàn)MQTT協(xié)議,實(shí)現(xiàn)物聯(lián)網(wǎng)。
★★★★★推薦文章
《【嵌入式編程】平臺(tái)大小端存儲(chǔ)差異解決辦法》
《嵌入式硬件通信接口-使用RingBuffer處理數(shù)據(jù)(二)詳細(xì)設(shè)計(jì)過程》
《嵌入式硬件通信接口-使用RingBuffer處理數(shù)據(jù)(一)》
《快速開發(fā)MQTT(一)電子工程師眼中的MQTT》
《快速開發(fā)MQTT(二)初識(shí)MQTT》
《MQTT客戶端搭建-最清晰的MQTT協(xié)議架構(gòu)》
《MQTT服務(wù)端搭建-最快方式驗(yàn)證自己開發(fā)的客戶端》
★★★★★相似文章
《嵌入式硬件通信接口協(xié)議-UART(五)數(shù)據(jù)包設(shè)計(jì)與解析》
《嵌入式硬件通信接口協(xié)議-UART(四)設(shè)計(jì)起止式的應(yīng)用層協(xié)議》
《嵌入式硬件通信接口協(xié)議-UART(三)快速使用串口及應(yīng)用》
《嵌入式硬件通信接口協(xié)議-UART(二)不同電氣規(guī)范下的標(biāo)準(zhǔn)》
《嵌入式硬件通信接口協(xié)議-UART(一)協(xié)議基礎(chǔ)》
《嵌入式硬件通信接口協(xié)議-SPI(二)分層架構(gòu)設(shè)計(jì)模擬接口》
《嵌入式硬件通信接口協(xié)議-SPI(一)協(xié)議基礎(chǔ)》
★★★★★擴(kuò)展閱讀
《【硬件電路】AltiumDesigner18規(guī)則檢查含義》
《【硬件電路】N溝道、P溝道MOS管基本原理與應(yīng)用案例》
文章首發(fā)于同名微信公眾號(hào):DigCore
歡迎關(guān)注同名微信公眾號(hào):DigCore,及時(shí)獲取最新技術(shù)博文。
原文鏈接:https://mp.weixin.qq.com/s/hY3y0EpWLeya3YkWwvU1lQ
(說明:此處的文章從微信公眾號(hào)拷貝而來,圖片或者排版上可能存在一定的瑕疵,歡迎點(diǎn)擊原文鏈接閱讀)
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2942文章
47414瀏覽量
409123 -
電子工程
+關(guān)注
關(guān)注
1文章
74瀏覽量
17558 -
MQTT協(xié)議
+關(guān)注
關(guān)注
0文章
104瀏覽量
6437
發(fā)布評(píng)論請(qǐng)先 登錄
如何快速搭建一個(gè)MQTT協(xié)議的測試環(huán)境
MQTT啟動(dòng)太慢的原因?
【直播預(yù)熱】Harmony MQTT/CoAP應(yīng)用指南——火熱報(bào)名中
OpenHarmony開發(fā)之MQTT講解
MQTT啟動(dòng)太慢的原因?
如何使用Nodemcu的Mqtt開關(guān)?
MQTT啟動(dòng)太慢的原因?怎么解決?
一文教你快速讀懂MQTT網(wǎng)關(guān)
一個(gè)MQTT網(wǎng)關(guān)讓西門子S7-300快速接入MQTT平臺(tái)
OpenHarmony開發(fā)之MQTT講解
如何使用OneNET平臺(tái)的MQTT功能?

快速開發(fā)MQTT(一)電子工程師眼中的MQTT
評(píng)論