全志T3开发板 ARM CortexA7——MQTT通信协议
资料下载:1.01Mb
下载次数:3次
上传日期:2022-06-09 14:50
资料介绍
本文主要介绍基于T3处理器的MQTT通信协议开发案例,讲解内容主要包括了MQTT通信协议简介、概述、应用场景以及Mosquitto工具安装、mqtt_client案例和mqtt_sinewave_pub案例等。
本指导文档适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
虚拟机:VMware15.1.0
Linux开发环境:Ubuntu18.04.4 64bit
U-Boot:U-Boot-2014.07
Kernel:Linux-3.10.65
LinuxSDK:LinuxSDK_AA_BB_CC_DD(基于T3_LinuxSDK_V1.3_20190122)
本次测试板卡为基于创龙科技TLT3-EVM是一款基于全志科技T3处理器设计的4核ARM Cortex-A7高性能低功耗国产评估板,每核主频高达1.2GHz。

评估板接口资源丰富,引出双路网口、双路CAN、双路USB、双路RS485等通信接口,板载Bluetooth、WIFI、4G(选配)???,同时引出MIPI LCD、LVDS LCD、TFT LCD、CVBS OUT、CAMERA、LINE IN、H/P OUT等音视频多媒体接口,支持双屏异显、1080P@45fps H.264视频硬件编解码,并支持SATA大容量存储接口。
MQTT通信协议简介
概述
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
MQTT是轻量、简单、开放和易于实现的,同时作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

图 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

图 2
mqtt_client案例
案例说明
案例功能:使用libmosquitto(MQTT version 3.1.1 client library)的API与MQTT代理服务器通信?;贛QTT通信协议,实现发布和订阅消息功能。
程序流程图如下图所示。

图 3
案例测试
本案例使用公网MQTT HiveMQ服务器与上位机Ubuntu Mosquitto工具通信。请通过网线将评估板千兆网口RGMII ETH和上位机连接至公网,确??烧7梦驶チ?。
下表提供了可用的在线公共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

图 4
评估板发布/上位机订阅
在上位机执行如下命令,使用mosquitto_sub工具订阅MQTT主题。
Host# mosquitto_sub -h broker.hivemq.com -p 1883 -t test/data
参数解析:
-h:指定MQTT服务器;
-p:指定MQTT服务器TCP端口;
-t:定义MQTT主题,可自定义命名。

图 5
在评估板文件系统执行如下命令发布消息至MQTT服务器。
Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M publish -t test/data -m 'www.tronlong.com'

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

图 7 上位机订阅
评估板订阅/上位机发布
在评估板文件系统执行如下命令订阅MQTT主题。
Target# ./mqtt_client -h broker.hivemq.com -p 1883 -M subscribe -t test/data

图 8
在上位机执行如下命令发布消息至MQTT服务器。
Host# mosquitto_pub -h broker.hivemq.com -p 1883 -t test/data -m www.tronlong.com
图 9 上位机发布
消息发布成功后,评估板将从MQTT服务器接收到对应消息。

图 10 评估板订阅
案例编译
将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T3处理器对应的GCC编译器。进入src目录执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。
Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make

图 11
关键代码
创建Mosquitto实例。

图 12
设置回调函数。

图 13
连接MQTT服务器。

图 14
发布消息。

图 15
订阅主题。

图 16
mqtt_sinewave_pub案例
案例说明
案例功能:使用libmosquitto(MQTT version 3.1.1 client library)的API与MQTT代理服务器通信。评估板生成正弦波数据,每秒发送512个采样点的数据至MQTT服务器;上位机通过Web页面从MQTT服务器接收到数据后,将会绘制波形。
程序流程图如下图所示。
图 17
案例测试
本案例使用公网MQTT HiveMQ服务器与上位机Ubuntu Web程序通信。请通过网线将评估板千兆网口RGMII ETH和上位机连接至公网,确??烧7梦驶チ?。
评估板启动,将案例bin目录下mqtt_sinewave_pub可执行文件拷贝至评估板文件系统的任意目录下,执行如下命令查看程序参数说明。
Target# ./mqtt_sinewave_pub --help

图 18
执行如下命令运行程序,连接MQTT服务器,并发送正弦波数据至MQTT服务器。
Target# ./mqtt_sinewave_pub -h broker.hivemq.com -p 1883

图 19
评估板程序运行后,将案例"tools\web_mqtt_sub\"目录下index.html文件,使用上位机浏览器打开。在弹出的Web页面(如下图),依次输入MQTT服务器:broker.hivemq.com,端口号:8000,最后点击连接,Web页面将会从MQTT服务器获取正弦波数据并进行波形绘制。
备注:ARM端MQTT通信协议基于TCP协议,Web端MQTT通信协议基于WebSocket协议,因此使用的端口号不同。

图 20
图 21
案例编译
将案例src文件夹拷贝至Ubuntu工作目录下,请先确保已参考Linux系统使用手册编译过LinuxSDK,构建T3处理器对应的GCC编译器。进入src目录执行如下命令,使用LinuxSDK开发包目录下的GCC编译器进行案例编译。编译完成后,将在当前目录下生成可执行文件。
Host# CC=/home/tronlong/T3/lichee/out/sun8iw11p1/linux/common/buildroot/host/usr/bin/arm-linux-gnueabihf-gcc make
图 22
想要获取mqtt_sinewave_pub案例的关键代码以及更多测试案例详细说明,欢迎评论区留言~

为你推荐
-
国产ARM+FPGA架构在“能源电力”中的典型应用详解2023-03-28 14:40
-
为什么说这款99元国产ARM工业平台,具有“划时代”意义2023-03-28 14:32
-
ARM/FPGA/DSP板卡选型大全,总有一款适合您2023-03-15 13:05
-
CODESYS领导到访创龙科技,共同助力工业控制软硬件技术发展2023-03-02 13:06
-
【全球首发】双核Cortex-A7@1.2GHz,仅99元起?含税?哇?。?!2023-03-02 13:06
-
4个国产ARM/FPGA嵌入式技术社群,即刻加入!2023-03-02 13:06
-
请查收“国产化率认证报告”(100%)——T3/A40i工业核心板2023-02-11 13:06
-
【业内首款】全国产ARM+FPGA 工业核心板,全志 T3/A40i+紫光同创 Logos2023-01-14 13:06
-
【喜讯】祝贺创龙科技通过省“专精特新”企业评定!2023-01-12 13:06
-
年度星光印迹,创龙科技在2022年的每一步2023-01-11 12:09
-
Docker容器安装及运行测试方案详解2022-02-17 13:55
-
Zynq-7010/7020的多路千兆网口方案分享2021-10-22 09:51
-
目标追踪视觉方案推荐,基于C6678+Zynq-70452021-09-07 11:28
-
不错!低成本ARM工业数据网关方案推荐2021-07-23 15:34
-
不缺货!低成本ARM工业HMI方案推荐!2021-07-23 10:25
-
创龙科技AM64x工业评估板2023-01-30 21:30
产品型号:TI Sitara AM64x 处理器:TI Sitara AM6412/AM6442 架构:2x ARM Cortex-A53,主频1GHz 核心板特色:5路千兆网口,支持5G ROM:4/8GByte/128Mbit/2Kbit RAM:512M/1G/2GByte DDR4 -
创龙科技全志T3工业开发板| 邮票孔2022-08-02 11:58
产品型号:全志科技 T3 4核ARM Cortex-A7 处理器:全志科技 A40i 架构:Cortex-A7 核心板特色:100%国产元器件方案+工业级 每核主频:高达1.2GHz ROM:4/8GByte eMMC -
全志100%国产工业A40i核心板-创龙科技2022-07-20 17:28
产品型号:全志科技 TA40i 4核ARM Cortex-A7 处理器: 全志科技 A40i 架构:Cortex-A7 核心板特色:100%国产元器件方案+工业级 每核主频:高达1.2GHz ROM:4/8GByte eMMC -
创龙科技SOM-TL5728F核心板2022-05-11 10:17
产品型号:TI Sitara AM57x+Xilinx Artix-7 处理器设计:TI Sitara 系列 AM5728+Artix-7 工业级高速B2B引出:千兆网口、PCIe、USB 3.0、SATA、GTP等接口 典型应用领域:运动控制、测试测量、机器视觉、智能电力、视频追踪、定位导航 每核主频:1.5GHz 工作温度:-40°C~85°C -
创龙科技TL5728F-EVM开发板2022-05-11 09:56
产品型号:TI Sitara AM57x + Artix-7 FPGA 处理器设计:TI Sitara系列 AM5728+ Artix-7 引出接口:双路千兆网口、双路SFP光口、USB 3.0、CAN等 典型应用领域:运动控制、测试测量、机器视觉、智能电力、视频追踪、定位导航 每核主频:1.5GHz 工作温度:-40°C~85°C -
创龙科技TL570x-EVM核心板2022-05-11 09:28
产品型号:TI Sitara AM57x DSP+ARM 处理器设计:TI Sitara系列AM5708 ARM 工业级B2B引出:千兆网口、PCIe、GPMC、USB 3.0等高速通信接口 典型应用领域:运动控制、工业PC、机器视觉、智能电力、视频监测 定位:异构多核SoC工业级核心板 每核主频:1GHz -
创龙科技全志T3工业核心板| 邮票孔2022-05-11 09:13
产品型号:全志科技 T3 4核ARM Cortex-A7 处理器设计:全志科技T3 4核ARM Cortex-A7 引出接口:CSI、TVIN、MIPI DSI、TVOUT、RGB等 核心板特色: 100%国产元器件方案 典型应用领域:能源电力/轨道交通/工业控制/工业网关/仪器仪表 每核主频:高达1.2GHz -
创龙科技全志T3工业评估板 | 邮票孔2022-01-04 11:33
产品型号:全志4核ARM Cortex-A7 处理器设计:全志科技T34核ARM Cortex-A7 主频:高达1.2GHz 通信接口:千兆网口、CAN、USB、RS485、RS232等 音视频多媒体接口:MIPI LCD、LVDS LCD、TFT LCD、HDMI 核心板采用:100%国产元器件方案 -
创龙科技TL138F-EVM评估板2021-09-09 09:36
产品型号:TI C6000 OMAP-L138DSP+ARM+FPGA CPU型号:TI OMAP-L138 接口资源丰富:引出网口、EMIFA、SATA、USB、LCD、VGA等接口 应用领域:运动控制、电力设备、仪器仪表、医疗设备、通信探测、惯性导航 处理器设计1:1x ARM9,主频456MHz 处理器设计2:1x DSP C674x,主频456MHz,支持浮点运算 -
创龙科技TL335x-EVM评估板2021-09-09 09:18
产品型号:TI Sitara AM3352/54/59 ARM CPU:I Sitara AM3352/AM3354/AM3359 系列包含产品: AM3352/AM3354/AM3358/AM3359 典型应用领域: 通讯管理、数据采集、人机交互、运动控制、智能电力 处理器设计:ARM Cortex-A8 工作温度:-40°C~80℃