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

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

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

基于MQTT協(xié)議的車云通信設(shè)計

經(jīng)緯恒潤研發(fā)服務(wù) ? 來源:經(jīng)緯恒潤研發(fā)服務(wù) ? 2025-01-08 10:24 ? 次閱讀

隨著智能汽車的發(fā)展,車云通信的功能場景及數(shù)據(jù)量也逐漸增多,具有輕量化、可靠性等特點的MQTT協(xié)議成為很多OEM車云通信協(xié)議的選擇。本文主要介紹。

什么是MQTT?

MQTT(Message Queuing Telemetry Transport)是由OASIS發(fā)布的應(yīng)用層協(xié)議,采用訂閱/發(fā)布的通信模式,下層基于TCP/IP進行傳輸。該標(biāo)準(zhǔn)在工業(yè)物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等領(lǐng)域有廣泛應(yīng)用。

MQTT主要有以下特點:

發(fā)布/訂閱模式:實現(xiàn)Client之間的解耦

輕量:非常小的通信開銷,最小的消息大小為2字節(jié)

可靠:基于TCP可靠通信,并可以提供三種消息發(fā)布服務(wù)質(zhì)量等級QoS,以適應(yīng)不穩(wěn)定網(wǎng)絡(luò)的傳輸需求

開源:存在較多開源代碼工程,支持各種流行編程語言,成熟度高

MQTT在通信過程中包括兩種角色Client和Broker:

Client:MQTT客戶端,交互應(yīng)用數(shù)據(jù)的節(jié)點,發(fā)布數(shù)據(jù)的角色為Publisher,接收數(shù)據(jù)的角色為Subscriber

Broker:MQTT服務(wù)器,中轉(zhuǎn)通信數(shù)據(jù),將從Publisher收到的應(yīng)用數(shù)據(jù)轉(zhuǎn)發(fā)給Subscriber

MQTT的通信過程:Subscriber向Broker以Topic的形式訂閱數(shù)據(jù),Publisher以Topic的形式向Broker發(fā)布應(yīng)用數(shù)據(jù),Broker接收Publisher發(fā)送的Topic后,再發(fā)送給已訂閱相關(guān)Topic的Subscriber,如此實現(xiàn)Publisher和Subscriber的通信過程。

59868042-ccd6-11ef-9310-92fbcf53809c.jpg

圖1 MQTT通信示意圖

MQTT系統(tǒng)設(shè)計

MQTT協(xié)議在車載通信領(lǐng)域的典型應(yīng)用場景是車云通信,因此本文以車內(nèi)節(jié)點與云端的通信場景為示例,介紹MQTT系統(tǒng)設(shè)計的主要流程和方法。

59ac4098-ccd6-11ef-9310-92fbcf53809c.jpg

圖2 MQTT系統(tǒng)設(shè)計流程

MQTT系統(tǒng)設(shè)計需要依賴前期完成的車云UC(Use Case)描述、通信矩陣、車內(nèi)拓撲以及云端架構(gòu)部署等作為輸入,針對MQTT的特點,完成通信設(shè)計,主要輸出產(chǎn)物為基于特定車型或平臺的MQTT通信矩陣。車端和云端的開發(fā)工程師需要根據(jù)設(shè)計輸出產(chǎn)物,完成相關(guān)功能的軟件開發(fā),測試工程師也需要以設(shè)計輸出為基礎(chǔ),開展MQTT測試驗證工作。

MQTT通信系統(tǒng)設(shè)計涉及以下方面:

MQTT角色設(shè)計:基于功能需求為通信節(jié)點部署角色

Topic設(shè)計:明確Topic定義和數(shù)量

數(shù)據(jù)類型設(shè)計:為每個Topic指定傳輸信息

QoS設(shè)計:為Topic匹配QoS策略

MQTT角色定義

基于MQTT協(xié)議的特點,需要首先明確車云通信拓撲中各節(jié)點的MQTT角色。

由于各節(jié)點間需要交互的數(shù)據(jù)均需要經(jīng)過Broker,因此一般將性能較好的云端的服務(wù)器部署為Broker,車內(nèi)需要與云端通信的節(jié)點為Client,云端后臺/APP等節(jié)點為Client。

59c7af68-ccd6-11ef-9310-92fbcf53809c.jpg

圖3 MQTT角色部署

Topic設(shè)計

MQTT系統(tǒng)內(nèi)各節(jié)點用Topic來交互應(yīng)用數(shù)據(jù),Topic的劃分可以從數(shù)據(jù)內(nèi)容或者功能角度劃分,例如車況上傳的數(shù)據(jù)在一個Topic,遠程車輛控制的數(shù)據(jù)在一個Topic。

除此之外,MQTT的Topic名稱設(shè)計也應(yīng)遵循一定的原則,例如:命名長度不應(yīng)超過65535 Bytes,建議采用統(tǒng)一的命名規(guī)則,并且按照分級符“/”進行層級劃分。例如針對某平臺的車況上傳數(shù)據(jù),其Topic可設(shè)計為:{vehicle_platform}/{vehicle_model}/{ECU}/vehicle_info/{vin}/up 。

數(shù)據(jù)類型設(shè)計

MQTT協(xié)議單幀報文支持的最大傳輸數(shù)據(jù)為256M Bytes,因此一次性傳輸需求超過該大小的數(shù)據(jù)不適合采用MQTT進行傳輸。

MQTT數(shù)據(jù)格式?jīng)]有嚴(yán)格定義,只要收發(fā)雙方采用統(tǒng)一的編碼/解碼規(guī)則即可,常采用JSON數(shù)據(jù)格式,需要傳輸?shù)膽?yīng)用數(shù)據(jù)信息,用“key-value”進行描述,key的定義以及value的數(shù)據(jù)類型需要參考車內(nèi)的通信矩陣,可以保持一致。

使用JSON格式的好處是只要求數(shù)據(jù)收發(fā)雙方對同一個key的理解是一致的,對“key-value”組合的排布順序無嚴(yán)格要求,如果有擴展需求,可以直接添加“key-value”組合定義,并且“key-value”組合是可選的,按照時間/事件情況選擇發(fā)送/不發(fā)生即可,無需額外制定協(xié)議層策略,兼容性和靈活性較高。

59dc7db2-ccd6-11ef-9310-92fbcf53809c.jpg

圖4 Topic數(shù)據(jù)定義

QoS設(shè)計

MQTT具備QoS策略以保證不同情況下的通信服務(wù)質(zhì)量,因此需要根據(jù)功能場景需求為不同的數(shù)據(jù)Topic設(shè)計匹配的QoS策略,整體原則如下:

對于實時性要求較高,且允許一定程度丟幀的場景,QoS推薦設(shè)計為0,例如用于實時顯示用的周期上傳的數(shù)據(jù)

對于不允許丟幀、可重復(fù)傳輸?shù)膱鼍?,QoS推薦為1,例如反饋云端下發(fā)指令是否正常接收的信號

對于具有嚴(yán)格傳輸需求(不允許丟幀、不允許重復(fù)傳輸)的場景,QoS推薦為2,例如安全相關(guān)的數(shù)據(jù)

總結(jié)

本文首先介紹了MQTT協(xié)議,再從MQTT角色設(shè)計、Topic設(shè)計、數(shù)據(jù)類型設(shè)計、QoS設(shè)計幾個方面出發(fā),介紹MQTT系統(tǒng)設(shè)計流程和方法,車端ECU及云端的開發(fā)工程師需要根據(jù)MQTT系統(tǒng)設(shè)計的輸出完成后續(xù)軟件開發(fā),實現(xiàn)車云功能的通信。

經(jīng)緯恒潤作為OPEN聯(lián)盟會員和AUTOSAR聯(lián)盟的高級合作伙伴,長期為國內(nèi)外各大OEM和供應(yīng)商提供涵蓋TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技術(shù)領(lǐng)域的設(shè)計和測試咨詢服務(wù),積極研發(fā)和探索車載網(wǎng)絡(luò)前沿技術(shù)的工程應(yīng)用。通過多個項目的實踐經(jīng)驗,已建立了高質(zhì)量、本土化的設(shè)計與測試一體化解決方案,為整車網(wǎng)絡(luò)架構(gòu)提供可靠支持。

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

    關(guān)注

    0

    文章

    49

    瀏覽量

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

    關(guān)注

    0

    文章

    98

    瀏覽量

    5440

原文標(biāo)題:讓MQTT運轉(zhuǎn)起來—車路云一體化之MQTT系統(tǒng)設(shè)計

文章出處:【微信號:經(jīng)緯恒潤研發(fā)服務(wù),微信公眾號:經(jīng)緯恒潤研發(fā)服務(wù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    百問MQTT協(xié)議分析 - MQTT簡述及協(xié)議報文格式組成

    )1字節(jié)固定報頭,2字節(jié)心跳報文,報文結(jié)構(gòu)緊湊 e)消息QoS支持,可靠傳輸保證 16.1.3 應(yīng)用 ?MQTT協(xié)議廣泛應(yīng)用于物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)、智能硬件、聯(lián)網(wǎng)、電力能源等領(lǐng)域。 a)物聯(lián)網(wǎng)M2M
    發(fā)表于 12-13 09:29

    MQTT物聯(lián)網(wǎng)平臺有什么功能

    隨著物聯(lián)網(wǎng)(IoT)技術(shù)的迅猛發(fā)展,MQTT(Message Queuing Telemetry Transport)物聯(lián)網(wǎng)平臺作為一種重要的基礎(chǔ)設(shè)施,正在智能制造、智能家居、聯(lián)網(wǎng)等多個領(lǐng)域發(fā)揮
    的頭像 發(fā)表于 10-09 14:15 ?293次閱讀

    物聯(lián)網(wǎng)行業(yè)中MQTT通信協(xié)議詳解以及使用

    一 概述 MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議
    的頭像 發(fā)表于 09-20 17:08 ?1533次閱讀
    物聯(lián)網(wǎng)行業(yè)中<b class='flag-5'>MQTT</b><b class='flag-5'>通信協(xié)議</b>詳解以及使用

    MQTT協(xié)議網(wǎng)關(guān)的工作原理及功能特性

    在物聯(lián)網(wǎng)的快速發(fā)展中,MQTT協(xié)議網(wǎng)關(guān)作為連接物聯(lián)網(wǎng)設(shè)備與消息代理服務(wù)器的重要橋梁,扮演著不可或缺的角色。MQTT是一種基于發(fā)布/訂閱模式的輕量級通信協(xié)議,特別適用于低帶寬、不穩(wěn)定網(wǎng)絡(luò)
    的頭像 發(fā)表于 09-18 17:00 ?544次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)的工作原理及功能特性

    鋇錸技術(shù)Modbus轉(zhuǎn)MQTT網(wǎng)關(guān):橋接Modbus協(xié)議MQTT協(xié)議

    提供了一鍵對接亞馬遜平臺的解決方案。 BL101網(wǎng)關(guān)是鋇錸技術(shù)研發(fā)的一款高性能工業(yè)物聯(lián)網(wǎng)設(shè)備,通過橋接Modbus協(xié)議MQTT通信協(xié)議,實現(xiàn)了工業(yè)設(shè)備與云端平臺之間的高效互聯(lián)。支持
    的頭像 發(fā)表于 07-30 16:28 ?410次閱讀
    鋇錸技術(shù)Modbus轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān):橋接Modbus<b class='flag-5'>協(xié)議</b>與<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    基于MQTT協(xié)議平臺的Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)

    數(shù)據(jù)的上傳和云端控制指令的下發(fā),讓設(shè)備能夠與基于MQTT協(xié)議平臺進行通信,實現(xiàn)數(shù)據(jù)的實時傳輸和遠程監(jiān)控。 網(wǎng)關(guān)功能特點 協(xié)議轉(zhuǎn)換 :BL
    的頭像 發(fā)表于 07-29 17:59 ?788次閱讀
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>云</b>平臺的Modbus轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān)

    Modbus RTU、Modbus TCP轉(zhuǎn)MQTT網(wǎng)關(guān)實現(xiàn)Modbus設(shè)備與平臺的無縫通信

    。這一轉(zhuǎn)換過程使得設(shè)備能夠與基于MQTT協(xié)議平臺進行通信,實現(xiàn)數(shù)據(jù)的實時傳輸和遠程監(jiān)控。本文將帶大家學(xué)習(xí)如何配置平臺,感興趣的朋友可以
    的頭像 發(fā)表于 07-23 16:58 ?3046次閱讀
    Modbus RTU、Modbus TCP轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān)實現(xiàn)Modbus設(shè)備與<b class='flag-5'>云</b>平臺的無縫<b class='flag-5'>通信</b>

    MQTT物聯(lián)網(wǎng)平臺是什么

    MQTT (Message Queuing Telemetry Transport) 是一種輕量級的發(fā)布/訂閱型消息通信協(xié)議,專門為低帶寬、高延遲或不穩(wěn)定的網(wǎng)絡(luò)環(huán)境設(shè)計的。它基于TCP/IP協(xié)議
    的頭像 發(fā)表于 06-25 15:32 ?667次閱讀

    一文了解物聯(lián)網(wǎng)通信協(xié)議MQTT如何助力無線模塊廣泛連接

    引言:隨著物聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,無線模塊在連接各種智能設(shè)備、實現(xiàn)數(shù)據(jù)交互中扮演著至關(guān)重要的角色。為了有效滿 足物聯(lián)網(wǎng)通信的多樣化需求,一種輕量級、高效且可靠的消息傳輸協(xié)議顯得尤為重要。MQTT
    的頭像 發(fā)表于 06-07 16:10 ?1199次閱讀
    一文了解物聯(lián)網(wǎng)<b class='flag-5'>通信協(xié)議</b>之<b class='flag-5'>MQTT</b>如何助力無線模塊廣泛連接

    STM32、ESP8266與MQTT連接阿里物聯(lián)網(wǎng)的串口通信異常解析

    STM32、ESP8266與MQTT協(xié)議連接阿里物聯(lián)網(wǎng)平臺時常見的串口通信異常介紹 在構(gòu)建物聯(lián)網(wǎng)應(yīng)用時,STM32、ESP8266與MQTT
    的頭像 發(fā)表于 04-19 17:19 ?1490次閱讀

    mqtt協(xié)議和tcp協(xié)議區(qū)別

    帶寬和高延遲的網(wǎng)絡(luò)環(huán)境,尤其在物聯(lián)網(wǎng)環(huán)境中表現(xiàn)優(yōu)秀。而TCP協(xié)議是面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,主要用于互聯(lián)網(wǎng)和局域網(wǎng)中的數(shù)據(jù)傳輸。 2. 連接方式:MQTT協(xié)議基于
    的頭像 發(fā)表于 04-01 09:15 ?1657次閱讀

    MQTT和Modbus的物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)議的區(qū)別分析

    MQTT和Modbus的物聯(lián)網(wǎng)網(wǎng)關(guān)協(xié)議區(qū)別分析 MQTT(Message Queuing Telemetry Transport)與Modbus是兩種廣泛應(yīng)用在物聯(lián)網(wǎng)環(huán)境中的通信協(xié)議,
    的頭像 發(fā)表于 03-18 16:50 ?856次閱讀
    <b class='flag-5'>MQTT</b>和Modbus的物聯(lián)網(wǎng)網(wǎng)關(guān)<b class='flag-5'>協(xié)議</b>的區(qū)別分析

    MQTT協(xié)議網(wǎng)關(guān)解決方案設(shè)計與實施

    MQTT協(xié)議網(wǎng)關(guān)是一個中間件,負責(zé)接收來自不同MQTT客戶端的消息,并將這些消息轉(zhuǎn)發(fā)到MQTT服務(wù)器;同時,也能接收來自MQTT服務(wù)器的消息
    的頭像 發(fā)表于 03-11 14:07 ?523次閱讀

    TLT507-MQTT通信協(xié)議案例

    TLT507-MQTT通信協(xié)議案例
    的頭像 發(fā)表于 01-26 10:06 ?882次閱讀
    TLT507-<b class='flag-5'>MQTT</b><b class='flag-5'>通信協(xié)議</b>案例

    RK3568-MQTT通信協(xié)議案例

    RK3568-MQTT通信協(xié)議案例
    的頭像 發(fā)表于 01-19 15:31 ?1850次閱讀
    RK3568-<b class='flag-5'>MQTT</b><b class='flag-5'>通信協(xié)議</b>案例