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

    文章

    49

    浏览量

    10886
  • MQTT协议
    +关注

    关注

    0

    文章

    98

    浏览量

    5440

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    MQTT物联网平台有什么功能

    随着物联网(IoT)技术的迅猛发展,MQTT(Message Queuing Telemetry Transport)物联网平台作为一种重要的基础设施,正在智能制造、智能家居、联网等多个领域发挥
    的头像 发表于 10-09 14:15 293次阅读

    物联网行业中MQTT通信协议详解以及使用

    一 概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议
    的头像 发表于 09-20 17:08 1534次阅读
    物联网行业中<b class='flag-5'>MQTT</b><b class='flag-5'>通信协议</b>详解以及使用

    MQTT协议网关的工作原理及功能特性

    在物联网的快速发展中,MQTT协议网关作为连接物联网设备与消息代理服务器的重要桥梁,扮演着不可或缺的角色。MQTT是一种基于发布/订阅模式的轻量级通信协议,特别适用于低带宽、不稳定网络
    的头像 发表于 09-18 17:00 544次阅读
    <b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>网关的工作原理及功能特性

    钡铼技术Modbus转MQTT网关:桥接Modbus协议MQTT协议

    提供了一键对接亚马逊平台的解决方案。 BL101网关是钡铼技术研发的一款高性能工业物联网设备,通过桥接Modbus协议MQTT通信协议,实现了工业设备与云端平台之间的高效互联。支持
    的头像 发表于 07-30 16:28 410次阅读
    钡铼技术Modbus转<b class='flag-5'>MQTT</b>网关:桥接Modbus<b class='flag-5'>协议</b>与<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b>

    基于MQTT协议平台的Modbus转MQTT网关

    数据的上传和云端控制指令的下发,让设备能够与基于MQTT协议平台进行通信,实现数据的实时传输和远程监控。 网关功能特点 协议转换 :BL
    的头像 发表于 07-29 17:59 788次阅读
    基于<b class='flag-5'>MQTT</b><b class='flag-5'>协议</b><b class='flag-5'>云</b>平台的Modbus转<b class='flag-5'>MQTT</b>网关

    Modbus RTU、Modbus TCP转MQTT网关实现Modbus设备与平台的无缝通信

    。这一转换过程使得设备能够与基于MQTT协议平台进行通信,实现数据的实时传输和远程监控。本文将带大家学习如何配置平台,感兴趣的朋友可以
    的头像 发表于 07-23 16:58 3048次阅读
    Modbus RTU、Modbus TCP转<b class='flag-5'>MQTT</b>网关实现Modbus设备与<b class='flag-5'>云</b>平台的无缝<b class='flag-5'>通信</b>

    MQTT物联网平台是什么

    MQTT (Message Queuing Telemetry Transport) 是一种轻量级的发布/订阅型消息通信协议,专门为低带宽、高延迟或不稳定的网络环境设计的。它基于TCP/IP协议
    的头像 发表于 06-25 15:32 667次阅读

    一文了解物联网通信协议MQTT如何助力无线模块广泛连接

    引言:随着物联网技术的飞速发展,无线模块在连接各种智能设备、实现数据交互中扮演着至关重要的角色。为了有效满 足物联网通信的多样化需求,一种轻量级、高效且可靠的消息传输协议显得尤为重要。MQTT
    的头像 发表于 06-07 16:10 1205次阅读
    一文了解物联网<b class='flag-5'>通信协议</b>之<b class='flag-5'>MQTT</b>如何助力无线模块广泛连接

    STM32、ESP8266与MQTT连接阿里物联网的串口通信异常解析

    STM32、ESP8266与MQTT协议连接阿里物联网平台时常见的串口通信异常介绍 在构建物联网应用时,STM32、ESP8266与MQTT
    的头像 发表于 04-19 17:19 1490次阅读

    mqtt协议和tcp协议区别

    带宽和高延迟的网络环境,尤其在物联网环境中表现优秀。而TCP协议是面向连接的、可靠的、基于字节流的传输层通信协议,主要用于互联网和局域网中的数据传输。 2. 连接方式:MQTT协议基于
    的头像 发表于 04-01 09:15 1657次阅读

    MQTT和Modbus的物联网网关协议的区别分析

    MQTT和Modbus的物联网网关协议区别分析 MQTT(Message Queuing Telemetry Transport)与Modbus是两种广泛应用在物联网环境中的通信协议
    的头像 发表于 03-18 16:50 856次阅读
    <b class='flag-5'>MQTT</b>和Modbus的物联网网关<b class='flag-5'>协议</b>的区别分析

    MQTT协议网关解决方案设计与实施

    MQTT协议网关是一个中间件,负责接收来自不同MQTT客户端的消息,并将这些消息转发到MQTT服务器;同时,也能接收来自MQTT服务器的消息
    的头像 发表于 03-11 14:07 524次阅读

    TLT507-MQTT通信协议案例

    TLT507-MQTT通信协议案例
    的头像 发表于 01-26 10:06 882次阅读
    TLT507-<b class='flag-5'>MQTT</b><b class='flag-5'>通信协议</b>案例

    RK3568-MQTT通信协议案例

    RK3568-MQTT通信协议案例
    的头像 发表于 01-19 15:31 1850次阅读
    RK3568-<b class='flag-5'>MQTT</b><b class='flag-5'>通信协议</b>案例