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

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

3天内不再提示

基于瑞芯微RK3562 的四核 AR M Cortex-A53 + 单核 ARM Cortex-M0工业评估板——MQTT通信方案

Tronlong创龙科技 来源:Tronlong创龙科技 作者:Tronlong创龙科技 2025-06-05 15:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前 言

本文主要介绍创龙科技TL3562-MiniEVM评估板基于MQTT通信协议的开发案例,适用开发环境如下。

Windows开发环境:Windows 7 64bit、Windows 10 64bit

Linux开发环境:VMware16.2.5、Ubuntu20.04.6 64bit

U-Boot:U-Boot-2017.09

Kernel:Linux-5.10.209

LinuxSDK:rk3562-ubuntu20.04-sdk-[版本号](基于rk3562_linux_release_v1.2.0)

我司提供的MQTT通信协议开发案例主要包括mqtt_client和mqtt_sinewave_pub,位于产品资料“4-软件资料Demomqtt-demos”目录下。

评估板简介

创龙科技 TL3562-MiniEVM 是一款基于瑞芯微 RK3562J/RK3562 处理器设计的四核 AR M Cortex-A53 + 单核 ARM Cortex-M0 国产工业评估板,主频高达 2.0GHz。评估板由核心板和评估底板组成,核心板 CPUROMRAM电源、晶振等所有元器件均采用国产工业级方案,国产化率 100%,评估底板大部分元器件亦采用国产工业级方案,国产化率约 99%(按元器件数量占比,数据仅供参考)。核心板经过专业的 PCB Layout 和高低温测试验证,支持选配屏蔽罩,质量稳定可靠,可满足各种工业应用环境要求。

评估板引出 2 路 Ethernet、2 路 USB、Micro SD、UART通信接口,同时引出 2 路 M IPI CSI、LVDS LCD、MIPI LCD、HDMI OUT、MIC IN、SPK OUT、HP OUT 多媒体接口,支

持 1080P@60fps H.264 视频编码、4K@30fps H.265 视频解码。

评估板体积小巧,尺寸为 85x130mm,可作为卡片式电脑使用,且便于产品集成,方便用户快速进行产品方案评估与技术预研。

wKgZO2fOPIGAN7d0AALXdPz_QCI880.png               评估板硬件资源图解 1          

wKgZO2fOPIyAaQ6mAAKE_qbSnU4179.png评估板硬件资源图解 2

MQTT通信协议简介

概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT优点在于,可以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。

MQTT是轻量、简单、开放和易于实现的,同时作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

wKgZO2f8z46AdnIaAAELi4mKmto488.png图 1

MQTT具有如下特点:

轻量可靠:MQTT的报文格式精简、紧凑,可在严重受限的硬件设备和低带宽、高延迟的网络上实现稳定传输。

发布/订阅模式(Publish/Subscribe):发布/订阅模式的优点在于发布者与订阅者的解耦,实现异步协议。即订阅者与发布者无需建立直接连接,亦无需同时在线。

为物联网而生:提供心跳机制、遗嘱消息、QoS质量等级 + 离线消息、主题和安全管理等常见的物联网应用特性。

生态更完善:覆盖范围广,已成为众多云厂商物联网平台的标准通信协议。

应用场景

MQTT作为一种低开销,低带宽占用的即时通讯协议,可以极少的代码和带宽为联网设备提供实时可靠的消息服务,适用于硬件资源有限的设备及带宽有限的网络环境。常见的应用场景如下:

物联网M2M通信,物联网大数据采集。

移动即时消息及消息推送。

智能硬件智能家居、智能电器。

车联网通信,电动车站桩采集。

智慧城市、远程医疗、远程教育。

电力能源、石油能源。

Mosquitto工具安装

Mosquitto是一款开源的MQTT消息代理(服务器)软件,提供轻量级的、支持可发布/可订阅的的消息推送模式。我司提供的评估板文件系统已支持Mosquitto工具,本文mqtt_client案例采用Mosquitto工具演示MQTT通信协议的通信功能。由于上位机Ubuntu系统作为通信对象,因此需在Ubuntu终端执行如下命令安装Mosquitto工具。

Host#sudo apt-get install mosquitto-clients

wKgZPGf8vtiAMcDsAAHcZmCVMlE538.png图 2

mqtt_client案例

案例说明

案例功能:使用libmosquitto的API与MQTT代理服务器通信。基于MQTT通信协议,实现发布和订阅消息功能。

程序流程图如下图所示。

wKgZPGf8vuSAHxl7AABkVTCi-Ww986.png图 3

案例测试

本案例使用公网MQTTHiveMQ服务器与上位机Ubuntu Mosquitto工具通信。请通过网线将评估板千兆网口ETH0RGMII和上位机连接至公网,确保可正常访问互联网。

下表提供了可用的在线公共MQTT服务器,可根据需要自行切换。

表 1

服务器名称 Broker地址 TCP端口 WebSocket
HiveMQ broker.hivemq.com 1883 8000
Mosquitto test.mosquitto.org 1883 80
Eclipse mqtt.eclipseprojects.io 1883 80/443
EMQ X(国内) broker-cn.emqx.io 1883 8083/8084

评估板启动,将案例bin目录下mqtt_client可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。

Target#./mqtt_client --help

wKgZPGf8xbGAWuXuAABNrmKii5M919.png图 4

评估板发布/上位机订阅

在上位机执行如下命令,使用mosquitto_sub工具订阅MQTT主题。

Host#mosquitto_sub -h broker.hivemq.com -p 1883 -t test/data

参数解析:

-h:指定MQTT服务器;

-p:指定MQTT服务器TCP端口;

-t:定义MQTT主题,可自定义命名。

wKgZPGf8xbmAC15iAAAgyjuLcoM707.png图 5

在评估板文件系统执行如下命令发布消息至MQTT服务器。

Target#./mqtt_client -h broker.hivemq.com -p 1883 -M publish -t test/data -m 'www.tronlong.com'

参数解析:

-h:MQTT服务器

-p:MQTT服务器端口

-M:模式,publish为发布,subscribe为订阅

-t:MQTT主题,可随便命名

-m:发布的MQTT消息

wKgZO2f8xcWAQ34kAAAdcIWH-GM163.png图 6 评估板发布

消息发布成功后,上位机将从MQTT服务器接收到对应的消息。

wKgZPGf8xcyADKAcAAAk1jxpX9I007.png图 7 上位机订阅

评估板订阅/上位机发布

在评估板文件系统执行如下命令订阅MQTT主题。

Target#./mqtt_client -h broker.hivemq.com -p 1883 -M subscribe -t test/data

wKgZO2f8xdSAaMjcAAARIJlDf3c673.png图 8

在上位机执行如下命令发布消息至MQTT服务器。

Host#mosquitto_pub -h broker.hivemq.com -p 1883 -t test/data -m www.tronlong.com

wKgZO2f8xdyAeTnsAAAuMHEfZEg129.png图 9 上位机发布

消息发布成功后,评估板将从MQTT服务器接收到对应消息。

wKgZO2f8xemAWOwpAAAU9H_w50k842.png图 10 评估板订阅

案例编译

将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考《Ubuntu系统使用手册》文档安装LinuxSDK,在案例src目录执行如下命令修改Makefile文件。

Host#vim Makefile

wKgZO2f8xfCAYJ8YAABWJ2VO6oQ280.png图 11

修改内容如下:

SDK_PATH = /home/tronlong/RK3562/Ubuntu/rk3562-ubuntu20.04-sdk-v1.0 //修改为LinuxSDK源码路径

wKgZPGf8xfqAZuFSAADrcxUJToM134.png图 12

执行如下命令,配置交叉编译工具链环境变量,进行案例编译。编译完成后,将在当前目录下生成可执行文件。

Host#source /home/tronlong/RK3562/Ubuntu/rk3562-ubuntu20.04-sdk-v1.0/environment

Host#make

wKgZO2f8xgOAbHKlAAGIzNShK2U807.png图 13

关键代码

创建Mosquitto实例

wKgZO2f8xhKAEKPoAAAk7i78-D8538.png图 14

设置回调函数

wKgZPGf8xiKAVIkoAAw1bH40VNc211.png图 15

连接MQTT服务器

wKgZPGf8xkWAf1fUAAAwVaAiwgI791.png图 16

发布消息

wKgZPGf8xjaASOc_AACcyV-tm7g817.png图 17

订阅主题

wKgZPGf8xmaAAmv1AABb12sORVc929.png图 18

mqtt_sinewave_pub案例

案例说明

案例功能:使用libmosquitto的API与MQTT代理服务器通信。评估板生成正弦波数据,每秒发送512个采样点的数据至MQTT服务器;上位机通过Web页面从MQTT服务器接收到数据后,将会绘制波形。

程序流程图如下图所示。

wKgZPGf8xnaAE7WDAB4GQssX4y4459.png图 19

案例测试

本案例使用公网MQTT HiveMQ服务器与上位机UbuntuWeb程序通信。请通过网线将评估板千兆网口ETH0RGMII和上位机连接至公网,确保可正常访问互联网。

评估板启动,将案例bin目录下mqtt_sinewave_pub可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。

Target#./mqtt_sinewave_pub --help

wKgZO2f8xoOAIHVlAAAwbl1xEbY464.png图 20

执行如下命令运行程序,连接MQTT服务器,并发送正弦波数据至MQTT服务器。

Target#./mqtt_sinewave_pub -h broker.hivemq.com -p 1883

wKgZO2f8xo6AfQn1AAASW1n2Ovo202.png图 21

评估板程序运行后,在上位机使用浏览器打开"toolsweb_mqtt_sub"目录下的index.html文件。在弹出的Web页面(如下图),依次输入MQTT服务器:broker.hivemq.com,端口号:8000,最后点击连接,Web页面将会从MQTT服务器获取正弦波数据并进行波形绘制。

备注:ARM端MQTT通信协议基于TCP协议,Web端MQTT通信协议基于WebSocket协议,因此使用的端口号不同。

wKgZPGf8xp-AAfdyAABN_30JW0g270.png图 22

wKgZO2f8xqmABwnAAACb98Lx62o665.png图 22

案例编译

将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考《Ubuntu系统使用手册》文档安装LinuxSDK,进入案例src目录执行如下命令修改Makefile文件。

Host#vim Makefile

wKgZO2f8xfCAYJ8YAABWJ2VO6oQ280.png图 24

修改内容如下:

SDK_PATH = /home/tronlong/RK3562/Ubuntu/rk3562-ubuntu20.04-sdk-v1.0 //修改为LinuxSDK源码路径

wKgZPGf8xsKAGgMGAADqrvUFt-g534.png图 25

执行如下命令配置交叉编译工具链环境变量。编译完成后,将在当前目录下生成可执行文件。

Host#source /home/tronlong/RK3562/Ubuntu/rk3562-ubuntu20.04-sdk-v1.0/environment

Host#make

wKgZPGf8xsqAaVBpAAGxAOjxwnk517.png图 26

关键代码

创建Mosquitto实例

wKgZO2f8xtGAIez7AABXK6RysAs526.png图 27

设置回调函数

wKgZPGf8xtmAEnINAABAr6Agsgc901.png图 28

连接MQTT服务器

wKgZO2f8xuaAFIPhAAAwxiYC14w222.png图 29

发送数据

wKgZO2f8xvCANryoAB2wgerCe9w336.png图 30

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信协议
    +关注

    关注

    28

    文章

    1073

    浏览量

    41869
  • 瑞芯微
    +关注

    关注

    27

    文章

    699

    浏览量

    53483
  • MQTT
    +关注

    关注

    5

    文章

    720

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    微米尔RK3562国产核心ARM中量级多面手

    网关、边缘计算等领域提供了高性价比的解决方案。 核心基于 RK3562RK3562J处理器,采用
    发表于 02-28 15:32

    基于ARM Cortex-M0的MCU设计及应用

    知网链接:基于ARM Cortex-M0的MCU设计及应用
    发表于 11-05 15:35 18次下载
    基于<b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b><b class='flag-5'>核</b>的MCU设计及应用

    全国产!3562Mini(2GHzA53 NPU)工业开发规格书

    评估简介创龙科技TL3562-MiniEVM是一款基于
    的头像 发表于 03-10 09:16 1414次阅读
    全国产!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>3562</b>Mini(2GHz<b class='flag-5'>四</b><b class='flag-5'>核</b><b class='flag-5'>A53</b> NPU)<b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>规格书

    RK3506(3ARM+Cortex-A7 + ARM Cortex-M0工业核心选型资料

    创龙科技SOM-TL3506是一款基于RK3506J/RK3506B处理器设计的3
    的头像 发表于 04-09 09:04 2916次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK</b>3506(3<b class='flag-5'>核</b><b class='flag-5'>ARM+Cortex-A</b>7 + <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b>)<b class='flag-5'>工业</b>核心<b class='flag-5'>板</b>选型资料

    国产!RK3506 3ARM+Cortex-A7 + ARM Cortex-M0 工业评估说明书

    创龙科技TL3506-EVM是一款基于RK3506J/RK3506B处理器设计的3
    的头像 发表于 04-29 15:42 2711次阅读
    国产!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK</b>3506 3<b class='flag-5'>核</b><b class='flag-5'>ARM+Cortex-A</b>7 + <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b> <b class='flag-5'>工业</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>说明书

    基于RK3562 ARM Cortex-A53 + 单核 ARM Cortex-M0工业评估——NPU开发案列

    本文主要介绍基于创龙科技TL3562-MiniEVM评估的NPU开发案例,适用开发环境如下。
    的头像 发表于 04-15 17:18 663次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3562</b> <b class='flag-5'>四</b><b class='flag-5'>核</b> <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-A53</b> + <b class='flag-5'>单核</b> <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b><b class='flag-5'>工业</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>——NPU开发案列

    基于RK3562 ARM Cortex-A53 + 单核 ARM Cortex-M0工业评估——Linux应用开发手册

    本文主要介绍TL3562-MiniEVM评估的AMP(Asymmetric Multi-processing)开发案例。
    的头像 发表于 04-16 10:56 947次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3562</b> <b class='flag-5'>四</b><b class='flag-5'>核</b> <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-A53</b> + <b class='flag-5'>单核</b> <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex-M0</b><b class='flag-5'>工业</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>——Linux应用开发手册

    基于RK3576国产ARM2.2GHz A72 工业评估——Docker容器部署方法说明

    创龙科技TL3576-MiniEVM是一款基于RK3576J/RK3576高性能处理器设计的4
    的头像 发表于 04-18 10:18 922次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK</b>3576国产<b class='flag-5'>ARM</b>八<b class='flag-5'>核</b>2.2GHz <b class='flag-5'>A</b>72 <b class='flag-5'>工业</b><b class='flag-5'>评估</b><b class='flag-5'>板</b>——Docker容器部署方法说明

    新品发布 ▏国产工业级核心+1TOPS算力,RK3562_Mini开发打造灵活工业解决方案

    合众恒跃近日推出HZ-RK3562_MiniEVM,这是一款专为工业控制、智能设备、物联网以及边缘AI应用设计的高性能产品。该平台搭载了
    的头像 发表于 04-29 18:40 1557次阅读
    新品发布 ▏国产<b class='flag-5'>工业</b>级核心+1TOPS算力,<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RK3562</b>_Mini开发<b class='flag-5'>板</b>打造灵活<b class='flag-5'>工业</b>解决<b class='flag-5'>方案</b>

    全国产! RK3576 ARM 2.2GHz 工业开发—LVGL应用开发案例

    ARM Cortex-A53 + ARM Cortex-M0 国产工业评估
    的头像 发表于 06-23 15:17 579次阅读
    全国产!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK</b>3576 <b class='flag-5'>ARM</b> 八<b class='flag-5'>核</b> 2.2GHz <b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>—LVGL应用开发案例

    全国产! RK3576 ARM 2.2GHz 工业开发—Linux系统使用手册

    创龙科技 TL3576-EVM 是一款基于 RK3576J/RK3576高性能处理器设计的4
    的头像 发表于 06-24 10:50 611次阅读
    全国产!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK</b>3576 <b class='flag-5'>ARM</b> 八<b class='flag-5'>核</b> 2.2GHz <b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>—Linux系统使用手册

    全国产! RK3576 ARM 2.2GHz 工业开发—Linux开发环境搭建

    创龙科技 TL3576-EVM 是一款基于 RK3576J/RK3576高性能处理器设计的4
    的头像 发表于 06-25 10:17 490次阅读
    全国产!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK</b>3576 <b class='flag-5'>ARM</b> 八<b class='flag-5'>核</b> 2.2GHz <b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>—Linux开发环境搭建

    全国产! RK3576 ARM 2.2GHz 工业开发—Linux应用开发手册

    创龙科技 TL3576-EVM 是一款基于 RK3576J/RK3576高性能处理器设计的4
    的头像 发表于 06-25 16:44 650次阅读
    全国产!<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK</b>3576 <b class='flag-5'>ARM</b> 八<b class='flag-5'>核</b> 2.2GHz <b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>—Linux应用开发手册

    创龙 RK3562 国产 2GHz A53 工业开发—调试工具安装

    创龙科技 TL3562-EVM-B 是一款基于 RK3562J/RK3562 处理器设计的
    的头像 发表于 06-30 10:28 576次阅读
    创龙<b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3562</b> 国产 2GHz <b class='flag-5'>四</b><b class='flag-5'>核</b><b class='flag-5'>A53</b> <b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>—调试工具安装

    创龙 RK3562 国产 2GHz A53 工业开发—IRIG-B码对时案例

    创龙科技 TL3562-EVM-B 是一款基于 RK3562J/RK3562 处理器设计的
    的头像 发表于 07-08 14:07 598次阅读
    创龙 <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b> <b class='flag-5'>RK3562</b> 国产 2GHz <b class='flag-5'>四</b><b class='flag-5'>核</b><b class='flag-5'>A53</b> <b class='flag-5'>工业</b>开发<b class='flag-5'>板</b>—IRIG-B码对时案例