APP下载

基于ARM的物联网智能网关的设计与实现

2023-05-15卢爱红杨佳奇

现代计算机 2023年5期
关键词:智能网串口总线

卢爱红,卓 云,杨佳奇

(苏州经贸职业技术学院信息技术系,苏州 215009)

0 引言

随着物联网技术的深入发展,各行各业对各种传感网的应用需求应运而生。针对传输距离远,数据流量低,信号可靠性要求高的现代工业生产数据传输需求,一般采用RS485 总线构建有线网络;针对传输距离近、数据流量低、功耗低的数据传输应用需求,一般采用ZigBee构建无线传感器网络;针对传输距离相对较远,数据量不大,功耗低的无线传输要求,一般采用Lora 或者NB-IoT 搭建传感器网络,等等。根据不同的应用场景,选择不同的通信协议来构建传感网,异构的通信协议之间无法通信。而以计算机为主要设备的传统通信网络,传输协议以TCP/IP 为主,使得物联网传感网与传统通信网络之间也不能互联互通。如何打通不同协议之间的数据连通,实现不同的应用网络之间的通信,是智能网关技术的出现和发展的客观需求。面对复杂的传感网搭建需求,物联网智能网关能够有效接入多种传感网的信号,在数据接入端需要提供多种网络的接入功能。同时为了实现传感器网络和通用的Internet 网络之间的通信,智能网关需要接入到Internet 网络,一般可以采用的硬件连接方式是Wi-Fi、4G 模块、有线以太网等。物联网智能网关除了实现不同通信协议内容的翻译转换的基本功能之外,还需要进行设备管理,完成数据存储、协议分析、阈值判断、简单决策、数据上传等功能。系统集成ARM 控制器和RS485 总线、ZigBee 网络、Wi-Fi 模块,能够搭建功能完整的物联网智能网关系统。

1 系统要求与整体设计

物联网智能网关系统以ARM 为主控制器,通过串口接入ZigBee 无线传感网、RS485 传输总线、Wi-Fi 模组等部分。ARM 主控制器选用Cortex-M3 芯片,从RS485 总线和ZigBee 协调器接收传感器网络的数据,采集的数据在LCD 显示屏上实时显示和更新,并通过Wi-Fi模组发送到云服务器,云服务器调用人工智能算法对传感器数据进行分析,并做出决策,再经由网关发送到传感器网络上的执行器。网关的主控制器芯片是STM32 芯片,通过实时操作系统,实现多任务的通信和管理,完成物联网网关需要的采集、存储、分析、显示、上报、分析指令以及下达指令等功能[1]。

系统设计框图如图1所示。

图1 系统框图

2 硬件设计

系统硬件设计的主要工作是ARM 控制器开发板和传感器网络节点电路的设计。ARM 以STM32F103 芯片为主控制芯片,需要完成芯片的最小系统设计。芯片的通信接口设计比较复杂,UART0 用于程序的下载和调试,UART3 连接RS485 和串口的转换收发芯片MAX3485,UART5 与ZigBee 网络的协调器开发板的串口相连。LCD 液晶显示屏采用FSMC 接口与ARM 芯片相连,LCD显示屏是7寸的液晶模块,分辨率为480×800,LCD 显示屏的接口信号包括:FSMC 的数据输入输出、片选、读写、复位等信号。STM32 连接到Internet 网络的方式可以选用4G 或Wi-Fi 等,本设计选用应用最广泛的一种高性能Wi-Fi 串口模块ESP8266。ESP8266 的RXD(数据的接收端)连接STM32 的串口模块的TXD(数据的发送端),TXD 连接STM32 的串口模块的RXD。ESP8266 的应用模式分为:单AP模式、单STA 模式和混合模式。AP 模式可以将ESP8266 作为热点,可以让其他的设备连接上它,STA 模式可以连接当前环境下的Wi-Fi 热点。在传统的RS485 总线中,使用的通信协议较多,有Modbus 协议、CAN 总线协议等,其中Modbus 协议是被广泛应用于工业生产环境的一种协议。ZigBee 无线网络中的节点需要根据实际的应用环境的需求来部署,结合ZigBee 网络的传输距离、数据流量、环境的数据采集密集程度等,来选择放置的ZigBee 传感器的个数,ZigBee 网络灵活的自组网特性,使其能够适应复杂的环境需求。STM32 开发板上集成了Zig-Bee 的协调器,方便ZigBee 网络的接入。ZigBee网络以协调器为核心,通过ZigBee 协议收集路由器和终端节点上各种传感器数据,汇聚到协调器,由串口上传到ARM 主控制器,同时协调器能够将云端下达的命令转发给ZigBee 网络中的相应节点,各个节点的硬件电路基本一致,传感器以模块的形式和节点底板电路相连。RS485 总线和ZigBee 传感网络各个节点的传感器模块的设计,由应用需求决定。物联网系统接入多种传感器网络的监测值数据,通过Wi-Fi模组发送到以太网上的云平台服务器,再根据决策调用物联网联动控制器。物联网的联动控制系统主要是控制传感网现场环境中的一些环境优化的控制设备。物联网网关系统能够实现多种传感器网络数据的解析,并转化成标准的数据格式传送到Internet 网络,为异构网的互连互通提供了简易的解决方案,主控制器的简单决策功能,提高了工农业生产的智能化、数字化水平。

3 软件设计

物联网应用的传感器节点种类繁多,基于RS485 总线的传感器节点数据,一般采用Modbus总线协议。Modbus总线上设置主从设备,主设备只有一个,用于初始化传输和查询,从设备可以有多个,需要根据主设备的查询,作出相应反应。ModBus 总线的数据传输模式分为ASCII 和RTU 两种,用户可以选择想要的模式。波特率一致的情况下,RTU(远程终端单元)模式(见表1)传送的数据量比ASCII模式多。

表1 RTU模式

ZigBee 无线网络的传感器设备采用TI 公司的ZigBee 协议栈开发,协议栈基于实时操作系统OSAL设计,实现事件触发和响应的机制。底层ZigBee 网络实现连通之后,应用层的信息需要遵循用户自定义的应用层协议。传感器网络的应用层协议管理了三种命令格式:周期消息用于维持主控制器与各种传感器设备之间的心跳,传感器设备周期性地向主控器发送周期消息,主控制器不需要回复,只需要确认连接正常。测量数据类信息,是由传感器设备向主控制发送的,通过命令字标志测量数据类信息。控制类信息是由主控制器向相应的传感器发送的,通过回复机制提高控制类信息的可靠性,超时没有回复,协调器需要重发控制类消息。这三种命令消息通过命令字来区分不同的类型。

ESP8266 模块是目前常用的Wi-Fi 模块,可连接当前网络环境中的热点,传输数据。Wi-Fi模块采用AT 指令建立连接的过程,再通过MQTT协议连接到阿里云物联网服务器实现设备数据远程上传、下发,实现数据交互。MQTT是IBM 开发的客户-服务器协议,本设计的物联网网关可以作为MQTT 的一个客户,通过TCP 连接到服务器。MQTT是通过发布订阅主题的方式实现通信的,客户可以订阅服务器上的多个主题作为主题地址,当有客户向主题地址发布消息后,每个订阅这个主题地址的客户,都可以收到发布到这个主题地址上的所有消息。

ARM 开发板作为物联网系统的网关[2],主要任务是收集各种网络的传感器数据,再转发到云平台,各个传感器节点采用主动周期性发送消息的方式发送到ARM 开发板,ARM 开发板收集到各个传感器的周期性消息之后,可以确定各个传感器的活动状态,周期性消息标志着各个传感器的心跳,如果正常发送周期性消息,则表明传感器正常运转,ARM 开发板显示屏上的相应按钮是彩色的,如果传感器不能正常发送周期性消息,表明传感器心跳停止,彩色按钮转换为灰色的。网关显示器同时会显示传感器网络中各个执行器的运行状态,执行器的状态由云服务器根据采集的现场传感器数据分析之后做出的决策判读而设置的。

ARM 开发板采用实时多任务操作系统uCOS-III,支持中断服务,支持并发处理,容易加入新的功能,容易实现复杂的应用,实现操作系统的实时性和确定性,可以保证物联网设备和系统的效率。开发板的软件程序设计以CubeMX+HAL的模式进行,加入移植的uCOS-III操作系统的底层框架源码,应用层源码根据实际需求编写。操作系统在完成初始化之后,启用多任务工作模式,各个任务完成的功能为:RS485总线收发传感器数据、ZigBee协调器收发传感器数据、Wi-Fi 模块与云平台服务器之间数据的收发任务、传感器数据的存储和实时更新的管理任务[3]。

4 实验结果

本系统的实验设备是STM32开发板、RS485总线和ZigBee 网络上的各种传感器设备,以及云平台服务器。在串口3上连接RS485总线上的传感器设备,串口5 上连接ZigBee 网络的协调器,USB 接口连接USB 转串口模块,再连接ESP8266Wi-Fi模组,同时准备好云平台服务器。RS485总线上的各种传感器设备,ZigBee网络的各种传感器节点,都烧录通用的传感器代码,各种传感器类型通过烧写不同的传感器地址来区分[4]。ARM 智能网关作为各种传感网和通用网络的核心,烧录基于操作系统和GUI 开发程序的可执行文件。

系统开始工作时,首先对ARM 智能网关上电,网关LCD 显示屏的人机界面显示启动正常,与云平台服务器连接正常。再开启ZigBee 协调器,完成与智能网关的对接,并构建ZigBee 传感器网络。依次启动RS485 总线上的各个传感器和ZigBee 网络上的各种传感器节点,RS485总线设备会自动和RS485 主设备组件总线网络,ZigBee 传感器节点通过协议栈加入协调器创建的ZigBee 网络,网络号相同的节点就会构建出ZigBee 的无线Mesh 自组织网络。智能网关接收RS485 总线传感器节点和ZigBee 网络传感器节点发送过来的周期消息,解析出当前传感器网络的拓扑结构图,人机界面在拓扑结构上实时显示各个节点的传感器数据。ARM 主控制器通过uCOS-III 操作系统设定周期定时采集传感器数据的功能,将周期性的实时传感器数据存储更新到本地的数据库,同时将数据发送到云端服务器。智能网关的应用程序对周期性采集的传感数据进行分析和管理,有异常的实时数据出现时,启动网关简单决策机制,根据问题的情况决定是在本地直接启动执行器控制程序,还是需要上传到云服务器之后,再做决策[5]。

5 结语

为了适应现代工业生产的智能化、数字化管理的要求,本系统提供了一种物联网智能网关的设计方案,选用RS485总线网络、ZigBee传感器网络、ARM智能网关和云平台服务器组合设计了一个完整的系统。智能网关技术重点解决了不同协议的网络之间的数据连通问题,实现不同的应用网络之间的通信,同时还承担了复杂应用环境下的传感器网络的设备管理的工作[6]。ARM主控制器能够适应复杂的嵌入式应用环境,可以搭建功能完善的物联网智能网关系统。系统调试的结果显示,功能稳定。本系统为工农业生产数字化改造的解决方案提供了参考。

猜你喜欢

智能网串口总线
浅谈AB PLC串口跟RFID传感器的通讯应用
5G赋能智能网联汽车
智能网联硬实力趋强
基于PCI Express总线的xHC与FPGA的直接通信
机载飞控1553B总线转以太网总线设计
迎战智能网联大爆发
USB接口的多串口数据并行接收方法探索
基于SJA1000的CAN总线智能网桥设计
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
多通道ARINC429总线检查仪