基于freertos和mqtt的海洋监测网络框架

上传人:小** 文档编号:34128024 上传时间:2018-02-21 格式:DOC 页数:8 大小:90KB
返回 下载 相关 举报
基于freertos和mqtt的海洋监测网络框架_第1页
第1页 / 共8页
基于freertos和mqtt的海洋监测网络框架_第2页
第2页 / 共8页
基于freertos和mqtt的海洋监测网络框架_第3页
第3页 / 共8页
基于freertos和mqtt的海洋监测网络框架_第4页
第4页 / 共8页
基于freertos和mqtt的海洋监测网络框架_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于freertos和mqtt的海洋监测网络框架》由会员分享,可在线阅读,更多相关《基于freertos和mqtt的海洋监测网络框架(8页珍藏版)》请在金锄头文库上搜索。

1、基于 FreeRTOS 和 MQTT 的海洋监测网络框架 朱明辉 赵信广 尤星懿 山东科技大学电气与自动化工程学院 山东省科学院海洋仪器仪表研究所 摘 要: 设计基于实时操作系统的海洋监测网络框架, 用于实时监测海洋信息, 保护海洋环境。采用 STM32 单片机应用实时操作系统 Free RTOS 实现, 通过各种传感器在海下采集数据, 并使用 MQTT 协议 (消息队列遥测传输) 进行数据传输, 实时监测海洋环境。通过在 Free RTOS 操作系统上进行任务设计, 并对海流计、水深计采集的数据进行传输, 最终实现海洋环境实时监测。关键词: 单片机; FreeRTOS; 传感器; MQTT;

2、 作者简介:朱明辉 (1992-) , 通信作者, 男, 硕士研究生, 主要研究方向:嵌入式系统, E-mail:。作者简介:赵信广 (1992-) , 男, 硕士研究生, 主要研究方向:嵌入式系统。作者简介:尤星懿 (1993-) , 女, 硕士研究生, 主要研究方向:传感器与仪器仪表。收稿日期:2017-06-01Marine monitoring network framework based on FreeRTOS and MQTTZhu Minghui Zhao Xinguang You Xingyi School of Electrical Engineering and Auto

3、mation , Shandong University of Science and Technology; Abstract: The framework of marine monitoring network based on real-time operating system is designed to monitor marine informa-tion in real-time and protect the marine environment. The design uses STM32 microcontroller application Free Real-Tim

4、e Operating System ( Free RTOS) , through a variety of sensors to collect data in the sea. And the Free RTOS applies the MQTT to transmit data, to achieve real-time monitoring of the marine environment. Through the task design on Free RTOS, the data collected by current meter and bathymeter are tran

5、smitted. Finally, the marine environment is monitored in real time.Keyword: microcontrollers; FreeRTOS; sensor; MQTT; Received: 2017-06-010 引言随着海洋的不断开发、探索, 以及生活垃圾等污染物的排放, 海洋环境遭到严重破坏, 因此保护海洋环境刻不容缓。为了加强海洋环境的保护, 提高对海洋环境的合理开发利用, 人们迫切地需要提高海洋监测技术, 实现对海洋信息实时监测, 更好地实现灾害预警、资源利用、环境保护以及各种军事活动。海洋监测基于传感器网络实现, 通过

6、多个传感器构成传感器网络采集数据并上传到控制中心实现。传统的单片机进行传感器数据的采集与传输, 只能进行单任务, 在较复杂的数据采集传输中就显得力不从心。而实时操作系统可以设置多个任务, 每个任务执行的周期是可靠的, 可以优先快速地执行对实时性要求高的事件, 并且程序的设计相对简单, 功能的拓展也比较容易。在数据传输上, 消息队列遥测传输 (Message Queuing Telemetry Transport, MQTT) 协议设计之初充分考虑了网络的不确定性, 协议代码量少, 报文精简, 可以适应不理想的网络条件, 提供实时可靠的消息服务。因此对于海洋监测网络来说, 在实时操作系统上利用传

7、感器网络采集数据并通过 MQTT 协议进行交互成为一种可靠的选择。1 Free RTOS 简介Free RTOS 操作系统内核占用空间小, 实时性高, 源码公开、可移植, 可以在资源有限的微控制器中运行。Free RTOS 在任务调度上支持抢占式、合作式和时间片式, 任务数量没有限制, 不同任务可以设置不同的优先级, 优先级随数值的增大而提高, 同一优先级也可以设置不同任务1。与其他嵌入式操作系统相比, Free RTOS 比较简单, 上手容易, 商业上免费, 而且社会占有量高。2 MQTT 协议2.1 MQTT 简介MQTT 是一款发布/订阅 (publish/subscribe) 模式的消

8、息传输协议。该协议构建于 TCP/IP 协议上, 并且具有简单、规范、开销低、易于实现的特点。这些特点使得它对于一些要求低功耗、低带宽等受限的环境来说是很好的选择, 因此MQTT 协议被广泛应用在物-物通信以及物联网中。2.2 MQTT 特点(1) MQTT 可以实现消息一对多分发;(2) 对负载内容屏蔽;(3) 传输消息提供 3 种服务质量, 用户可根据实际应用权衡效率与服务质量;(4) 协议报文的精简, 减少对网络质量的依赖;(5) 客户端异常中断的通知机制。2.3 MQTT 结构MQTT 协议中有发布者、代理服务器、订阅者 3 种身份。客户端和代理服务器首先需要通过交互连接请求报文来建立

9、连接, 之后客户端向代理服务器发布消息, 而订阅者可以向消息代理服务器订阅消息。在此协议模型中代理服务器相当于一个转发者, 转发的消息通过主题来区分。协议模型如图 1 所示。MQTT 协议通过这种消息模式, 可以实现多对多的通信, 灵活性高, 并且发送设备和接收设备不直接相连, 实现了发布者与订阅者解耦1。图 1 MQTT 协议模型图 下载原图2.4 MQTT 数据包MQTT 数据包整体上可以分为固定头、可变头、有效载荷, 其中固定头在所有报文中都存在, 而可变头和有效载荷是否存在则取决于报文类型。(1) 固定头 (Fixed header) 固定头在 MQTT 所有报文中都存在, 大小为 2

10、5 B, 第一字节用来表示报文类型和标志字段, 第二字节开始是剩余长度字段。固定头格式如表 1。表 1 固定头格式 下载原表 表 1 中, Message Type 用 4 个位表示 14 种消息类型;Qo S level 代表服务质量:Qo S0、Qo S1、Qo S2, 等级越高对系统的要求越高, 而效率越低;Remaining Length 表示剩余长度, 最大 4 B。(2) 可变头 (Variable header) 固定报头之后是可变头, 不同报文的可变头是不同的。可变报头的报文标识符字段并不是所有报文都存在, 在客户端发送的报文中, 如果带报文标识符, 则报文标识符必须是当前未使

11、用的。(3) 有效载荷 (Payload) 有效载荷是紧跟可变头的 MQTT 数据包的最后一部分, 存在于CONNECT、SUBSCRIBE、SUBACK、UNSUB-SCRIBE、PUBLISH 5 种报文消息中, 其中 PUBLISH 中是要传输的数据, 可根据需要选择是否带有效载荷。3 MQTT 在 Free RTOS 上的应用3.1 硬件结构3.1.1 应用条件首先在 STM32 上移植 Free RTOS, 其次要支持 TCP/IP 协议。对于嵌入式系统来说, 实现 TCP/IP 协议分为软件方法和硬件方法, 软件上可以通过移植 u IP、Lw IP 等协议栈实现;硬件上可以选择 S

12、TM32 互联型产品, 或者 STM32 连接以太网收发芯片、Wi Fi 模块等来实现。3.1.2 硬件电路设计本文采用 STM32 连接 W5500 芯片的方案, 与其他方法相比更加快捷、简便。W5500 芯片集成了 TCP/IP 协议栈, 提供了 SPI 外设接口, 方便了与 MCU 相连, 使用全新的 SPI 协议, 速率能达到 80 MHz。利用 W5500 提供的官方驱动库函数与 SPI 接口的驱动函数, 进行必要的初始化参数配置, 就可以实现以太网通信。W5500 的两种工作模式中, 选用了可以与其他设备共享 SPI 接口的可变数据长度模式 (VDM) , 由 SCSn 控制数据段

13、长度, 可以选择 1 BN B 的任意数据段长度。硬件电路连接如图 2 所示。图 2 硬件电路连接 下载原图W5500 通过 SPI 接口连接 MCU, 其中 PC5 用于初始化以太网芯片, 如果连接断开可以通过 PC5 及时控制 W5500, PA4PA5 用于 SPI 通信, PB0 控制 W5500 的中断生效。W5500 的差分信号传输 TXP/TXN 和差分信号接收 RXP/RXN, 分别与网络接口 RJ45 中的网络变压器相连, 并且连接活动状态和网络连接指示灯。选择HR911105A 作为网络接口, 它本身自带网络变压器, 可以增强信号, 保证了通信距离, 同时使 W5500 与

14、外部隔离, 提高了抗干扰能力。整个电路设计简单, 同时也保证了数据传输速度和可靠性。3.2 报文时序以传输服务质量 Qo S2 为例, MQTT 的报文时序如图 3 所示。(1) 订阅者客户端向代理服务器发送 CONNECT 报文请求连接, 代理服务器返回CONNACK 确认连接, 订阅者客户端与代理服务器建立了网络连接;(2) 订阅者客户端向代理服务器发布 SUBSCRIBE 报文订阅主题, 代理服务器返回 SUBACK 确认订阅;图 3 MQTT 报文时序 下载原图(3) 发布者客户端向代理服务器发送 CONNECT 报文请求连接, 代理服务器返回CONNACK 确认连接, 发布者客户端与

15、代理服务器建立了网络连接;之后发布者通过 PUBLISH 发布消息。如果传输消息的服务质量为 Qo S2, 代理服务器和发布者之间会通过三步报文 PUBREC、PUBREL、PUBCOMP 来确定 PUBLISH 消息精确收到;(4) 订阅者客户端通过发送 PINGREQ 报文进行心跳连接表示自己还连接着, 代理服务器回复 PINGRESP 报文响应心跳, 确认客户端还在连接;(5) 代理服务器把从发布者客户端接收到的特定主题的信息, 转发给订阅此主题的客户端;(6) 订阅者客户端向代理服务器发布取消订阅主题报文 UNSUBSCRIBE, 代理服务器发布 UNSUBACK 报文, 确认收到了对

16、方的取消订阅报文;(7) 客户端发送给代理服务器的最后一个控制报文, 表示客户端正常断开连接1。3.3 任务设计以及优先级Free RTOS 的每个任务都可以分配一个 0 (configMAX_PRIORITIES-1) 的优先级, 0 的优先级最低。Free RTOS 抢占式任务调度器总是保证处于就绪态或者运行态的最高优先级的任务运行, 而时间片轮转调度器则是保证处于相同优先级的任务轮转运行时间片的长度, 当时间片用完或者调用阻塞式 API 函数时, 任务切换。时间片的长度可以自己设置, 时间片太短任务会频繁地切换, 降低了CPU 的效率;而时间片太长又会造成实时响应变差, 一般选择 100 ms1。Free RTOS 上的 MQTT 应用包含的任务以及优先级设计如图 4 所示。3.4 应用在海下通过海流计和水深计收集数据, 并经过水密网线传输到浮标上的服务器, 代理服务器选择 mosquitto 软件。首先通过 W5500 的 Socket 编

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号