隨著智能汽車的發展,車云通信的功能場景及數據量也逐漸增多,具有輕量化、可靠性等特點的MQTT協議成為很多OEM車云通信協議的選擇。本文主要介紹。
什么是MQTT?
MQTT(Message Queuing Telemetry Transport)是由OASIS發布的應用層協議,采用訂閱/發布的通信模式,下層基于TCP/IP進行傳輸。該標準在工業物聯網、車聯網等領域有廣泛應用。
MQTT主要有以下特點:
發布/訂閱模式:實現Client之間的解耦
輕量:非常小的通信開銷,最小的消息大小為2字節
可靠:基于TCP可靠通信,并可以提供三種消息發布服務質量等級QoS,以適應不穩定網絡的傳輸需求
開源:存在較多開源代碼工程,支持各種流行編程語言,成熟度高
MQTT在通信過程中包括兩種角色Client和Broker:
Client:MQTT客戶端,交互應用數據的節點,發布數據的角色為Publisher,接收數據的角色為Subscriber
Broker:MQTT服務器,中轉通信數據,將從Publisher收到的應用數據轉發給Subscriber
MQTT的通信過程:Subscriber向Broker以Topic的形式訂閱數據,Publisher以Topic的形式向Broker發布應用數據,Broker接收Publisher發送的Topic后,再發送給已訂閱相關Topic的Subscriber,如此實現Publisher和Subscriber的通信過程。
圖1 MQTT通信示意圖
MQTT系統設計
MQTT協議在車載通信領域的典型應用場景是車云通信,因此本文以車內節點與云端的通信場景為示例,介紹MQTT系統設計的主要流程和方法。
圖2 MQTT系統設計流程
MQTT系統設計需要依賴前期完成的車云UC(Use Case)描述、通信矩陣、車內拓撲以及云端架構部署等作為輸入,針對MQTT的特點,完成通信設計,主要輸出產物為基于特定車型或平臺的MQTT通信矩陣。車端和云端的開發工程師需要根據設計輸出產物,完成相關功能的軟件開發,測試工程師也需要以設計輸出為基礎,開展MQTT測試驗證工作。
MQTT通信系統設計涉及以下方面:
MQTT角色設計:基于功能需求為通信節點部署角色
Topic設計:明確Topic定義和數量
數據類型設計:為每個Topic指定傳輸信息
QoS設計:為Topic匹配QoS策略
MQTT角色定義
基于MQTT協議的特點,需要首先明確車云通信拓撲中各節點的MQTT角色。
由于各節點間需要交互的數據均需要經過Broker,因此一般將性能較好的云端的服務器部署為Broker,車內需要與云端通信的節點為Client,云端后臺/APP等節點為Client。
圖3 MQTT角色部署
Topic設計
MQTT系統內各節點用Topic來交互應用數據,Topic的劃分可以從數據內容或者功能角度劃分,例如車況上傳的數據在一個Topic,遠程車輛控制的數據在一個Topic。
除此之外,MQTT的Topic名稱設計也應遵循一定的原則,例如:命名長度不應超過65535 Bytes,建議采用統一的命名規則,并且按照分級符“/”進行層級劃分。例如針對某平臺的車況上傳數據,其Topic可設計為:{vehicle_platform}/{vehicle_model}/{ECU}/vehicle_info/{vin}/up 。
數據類型設計
MQTT協議單幀報文支持的最大傳輸數據為256M Bytes,因此一次性傳輸需求超過該大小的數據不適合采用MQTT進行傳輸。
MQTT數據格式沒有嚴格定義,只要收發雙方采用統一的編碼/解碼規則即可,常采用JSON數據格式,需要傳輸的應用數據信息,用“key-value”進行描述,key的定義以及value的數據類型需要參考車內的通信矩陣,可以保持一致。
使用JSON格式的好處是只要求數據收發雙方對同一個key的理解是一致的,對“key-value”組合的排布順序無嚴格要求,如果有擴展需求,可以直接添加“key-value”組合定義,并且“key-value”組合是可選的,按照時間/事件情況選擇發送/不發生即可,無需額外制定協議層策略,兼容性和靈活性較高。
圖4 Topic數據定義
QoS設計
MQTT具備QoS策略以保證不同情況下的通信服務質量,因此需要根據功能場景需求為不同的數據Topic設計匹配的QoS策略,整體原則如下:
對于實時性要求較高,且允許一定程度丟幀的場景,QoS推薦設計為0,例如用于實時顯示用的周期上傳的數據
對于不允許丟幀、可重復傳輸的場景,QoS推薦為1,例如反饋云端下發指令是否正常接收的信號
對于具有嚴格傳輸需求(不允許丟幀、不允許重復傳輸)的場景,QoS推薦為2,例如安全相關的數據
總結
本文首先介紹了MQTT協議,再從MQTT角色設計、Topic設計、數據類型設計、QoS設計幾個方面出發,介紹MQTT系統設計流程和方法,車端ECU及云端的開發工程師需要根據MQTT系統設計的輸出完成后續軟件開發,實現車云功能的通信。
經緯恒潤作為OPEN聯盟會員和AUTOSAR聯盟的高級合作伙伴,長期為國內外各大OEM和供應商提供涵蓋TCP/IP、SOME/IP、DoIP、AVB、TSN、DDS等技術領域的設計和測試咨詢服務,積極研發和探索車載網絡前沿技術的工程應用。通過多個項目的實踐經驗,已建立了高質量、本土化的設計與測試一體化解決方案,為整車網絡架構提供可靠支持。
-
云通信
+關注
關注
0文章
49瀏覽量
10886 -
MQTT協議
+關注
關注
0文章
98瀏覽量
5439
原文標題:讓MQTT運轉起來—車路云一體化之MQTT系統設計
文章出處:【微信號:經緯恒潤研發服務,微信公眾號:經緯恒潤研發服務】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論