0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于MQTT协议的车云通信设计

经纬恒润研发服务 来源:经纬恒润研发服务 2025-01-08 10:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

随着智能汽车的发展,车云通信的功能场景及数据量也逐渐增多,具有轻量化、可靠性等特点的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的通信过程。

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

图1 MQTT通信示意图

MQTT系统设计

MQTT协议在车载通信领域的典型应用场景是车云通信,因此本文以车内节点与云端的通信场景为示例,介绍MQTT系统设计的主要流程和方法。

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

图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。

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

图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”组合是可选的,按照时间/事件情况选择发送/不发生即可,无需额外制定协议层策略,兼容性和灵活性较高。

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

图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

    文章

    50

    浏览量

    11195
  • MQTT协议
    +关注

    关注

    0

    文章

    103

    浏览量

    6425

原文标题:让MQTT运转起来—车路云一体化之MQTT系统设计

文章出处:【微信号:经纬恒润研发服务,微信公众号:经纬恒润研发服务】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MQTT网关支持5G通信

    MQTT网关可以支持5G通信 ,且在实际应用中,5G与MQTT协议的结合为物联网领域带来了显著优势,以下为具体分析: 一、5G与MQTT
    的头像 发表于 12-08 11:13 51次阅读

    创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—MQTT通信协议案例

    本文围绕创龙科技研发的评估板,提供 MQTT 通信协议开发案例指导。涵盖 MQTT 协议核心概念,详解案例功能(如数据发布与订阅)、环境搭建(MQT
    的头像 发表于 10-28 15:23 2273次阅读
    创龙 瑞芯微 RK3588 国产2.4GHz八核 工业开发板—<b class='flag-5'>MQTT</b><b class='flag-5'>通信协议</b>案例

    工业智能网关可以通过MQTT协议对接到哪些平台

    、规则引擎等功能。 典型应用:工业设备数据实时上传至阿里,结合大数据分析优化生产流程。 华为IoT平台 通过MQTT协议实现设备与云端的双向通信
    的头像 发表于 09-29 11:29 375次阅读

    【教程】必看!手把手教你学会MQTT工作模式下阿里物联网平台的配置

    我司产品ECAN-E02拥有MQTT工作模式,在此工作模式下,可以选择使用阿里平台进行相关测试与通信。1MQTT工作模式概述首先让我们了解一下什么是
    的头像 发表于 09-04 19:34 1102次阅读
    【教程】必看!手把手教你学会<b class='flag-5'>MQTT</b>工作模式下阿里<b class='flag-5'>云</b>物联网平台的配置

    工业智能网关支持MQTT

    工业智能网关普遍支持MQTT,这是其核心功能之一,旨在解决工业设备与云端平台间的协议兼容性、数据标准化传输及远程管理问题。
    的头像 发表于 09-02 18:15 514次阅读
    工业智能网关支持<b class='flag-5'>MQTT</b>上<b class='flag-5'>云</b>吗

    MQTT_协议中文资料

    电子发烧友网站提供《MQTT_协议中文资料.pdf》资料免费下载
    发表于 09-02 16:19 0次下载

    物联网MQTT网关是什么

    物联网MQTT网关是一种采用MQTT物联网协议的智能设备或软件组件,其核心功能是连接不同通信协议的物联网设备与消息代理服务器,实现设备间的数据交换与集中管理,同时支持边缘计算、安全防护
    的头像 发表于 08-29 15:24 656次阅读

    通过MQTT协议能接入工业物联网平台中吗

    通过MQTT协议完全可以接入工业物联网平台,且因其轻量、高效、可靠等特性,已成为工业物联网场景中的主流通信协议之一。
    的头像 发表于 08-26 18:03 644次阅读

    GraniStudio :MQTT 协议的深度剖析

    在工业物联网(IIoT)的通信协议体系中,MQTT(Message Queuing Telemetry Transport)凭借其轻量级、发布 - 订阅模式和低带宽占用等特性,成为连接边缘设备与云端
    的头像 发表于 08-04 09:48 811次阅读
    GraniStudio :<b class='flag-5'>MQTT</b> <b class='flag-5'>协议</b>的深度剖析

    MQTT介绍

    的消息传输协议,近年来被广泛应用于智能家居、工业控制、联网等场景。 MQTT 是一种基于发布/订阅(Pub/Sub)模式的轻量级消息协议,设计初衷是为低带宽、不稳定网络环境下的设备
    的头像 发表于 07-14 09:34 3505次阅读
    <b class='flag-5'>MQTT</b>介绍

    简析Modbus和MQTT协议

    Modbus和MQTT协议在设计目标、通信模式、应用场景、网络结构、数据传输效率、设备兼容性及安全性等方面存在显著差异,具体分析如下: 一、设计目标与定位 Modbus :诞生于1979年,由施耐德
    的头像 发表于 07-10 14:25 495次阅读

    MQTT为何成为物联网协议

    MQTT(Message Queuing Telemetry Transport)即消息队列遥测传输协议,已成为物联网领域广泛应用的协议,这主要得益于其在资源占用、通信效率、可靠性、扩
    的头像 发表于 05-20 09:54 607次阅读

    工业智能网关与MQTT物联网平台的关系

    工业智能网关与 MQTT 物联网平台在物联网架构中是互补协作的关系,具体可归纳为以下几点: 数据交互桥梁 工业智能网关负责采集现场设备(如 PLC、传感器、仪器仪表等)的实时数据,通过协议转换(如
    的头像 发表于 03-21 09:44 875次阅读

    《DNESP32S3使用指南-IDF版_V1.6》第五十五章 基于MQTT协议连接阿里服务器

    第五十五章 基于MQTT协议连接阿里服务器 本章主要学习lwIP提供的MQTT协议文件使用,通过 M
    发表于 03-18 09:22

    百问MQTT协议分析 - MQTT简述及协议报文格式组成

    )1字节固定报头,2字节心跳报文,报文结构紧凑 e)消息QoS支持,可靠传输保证 16.1.3 应用 ​MQTT协议广泛应用于物联网、移动互联网、智能硬件、联网、电力能源等领域。 a)物联网M2M
    发表于 12-13 09:29