一种基于STM32的数据采集与监控系统的远程监控终端设计
现场信息,以便网络恢复正常或现场检修时将数据信息取出。使用STM32F107VC处理器的SPI总线实现与SD卡的存储接口。
2 远程监控终端软件设计
远程监控终端的性能和效率由系统软件直接决定。远程监控终端将现场传感器采集的数据进行分类整理过滤,形成有效信息通过网络实时地上报给监控中心的通信服务器。接收通信服务器的指令控制执行机构的动作,根据现场数据进行预判,当数据达到报警条件时,立即将报警信息报送监控中心处理。由于远程监控终端位于数据采集与监视控制系统的最远端,经常处于环境恶劣、地理位置偏僻的站点,还应具备远程配置的功能。
系统软件应用ARM公司的RL-ARM中间件,实现了多任务实时处理、网络通信应用层程序及大容量文件系统。前文已述的物理层接口芯片(PHY)DP83848和STM32F107VC内部集成的网络控制器(MAC)分别实现了网络传输模型的物理层和数据链路层,通过RL-ARM中间件提供的TCP/IP协议栈实现了传输层的TCP、UDP通信以及HTTP服务。通过RL-RTX实时多任务操作系统实现系统任务的实时运行与任务间通信。系统软件结构如图5所示。
2.1 网络实时通信模块设计
为了保证数据与命令传输的可靠性和实时性,将网络实时通信程序分为三个子任务:数据实时采集与处理任务、信息智能上传任务、命令执行任务。
数据实时采集与处理任务扫描GPIO端口读取开关信号,完成状态监测任务;通过处理器内部集成的A/D转换控制器采集现场模拟信号,经过软件滤波、量化等处理之后,得到现场环境的数据;通知信息上传任务提取现场环境信息。
系统通信命令分为两类:一类命令为控制命令,用于控制智能终端控制执行机构动作,采用面向连接的TCP传输协议;另一类命令为查询命令,用于监控中心软件查询智能终端系统的配置信息,采用简单、轻量级的UDP传输协议。命令执行任务开启网络监听后,当收到TCP连接吋,打开接收命令网络端口(系统设计使用9003端口),与监控中心服务器建立TCP连接,收到控制命令后,控制执行机构动作,如打开或关闭继电器;当收到UDP包时,打开端口,接收查询命令,根据命令读取配置信息,使用UDP传输协议发送给监控中心通信服务器。
网络实时通信模块依托RL-ARM中间件系统提供的Sockets底层库,基于传输层协议TCP和UDP,实现自定义网络数据帧通信协议的发送和接收。
2.2 远程配置服务模块设计
基于RL-ARM中间件系统提供的网络应用层HTTP服务,实现了通过网络对智能终端远程配置的功能。管理员使用任一台网络内部的计算机,通过网络浏览器即可访问智能终端系统的远程配置界面,经过密码认证后,就可以对智能终端的参数进行远程配置、查看系统状态、对远端站点进行手工控制等。
用HTML(Hyper Text Mark-up Language)和JavaScript语言设计了远程配置服务界面,包括主界面、控制参数配置界面、网络参数配置界面、通信参数配置界面、数字通道状态监控界面、模拟通道状态界面、用户登录管理界面、手动控制状态界面和数据文件上传界面。主界面如图6所示。
控制参数配置界面用于修改和查询系统预存储的现场环境临界参数;网络参数配置界面用于修改和查询智能终端系统的网络配置参数,如本机IP地址、子网掩码、网关IP地址等;通信参数配置界面用于修改和查询通信主机IP地址、各通信任务的端口地址等参数;数字通道状态监控界面用于对系统开关量输入通道的状态进行监测;模拟通道状态界面用于对系统模拟量输入通道的状态进行监测;用户登录管理界面用于设置和查询系统管理员ID和密码;手动控制状态界面用于对系统的执行机构进行手动操作和测试;数据文件上传界面可以将系统本地存储的临时数据文件上传至管理员计算机。
2.3 本地数据存储模块设计
数据存储软件设计分为24LC64(EEPROM)驱动程序设计和文件系统的实现。在ST公司发布的I2C总线驱动程序基础上,设计了24LC64驱动程序,包括单字节读/写函数,按页读/写函数和随机读/写函数。
本地数据存储程序的另一个重要任务是实现基于SD卡的文件系统,目的是将网络异常时的数据以文件格式保存,供网络恢复时或操作员现场读取。利用RL-ARM中间件系统提供的文件系统模块,建立SD卡文件系统,可以兼容FAT32格式文件,支持TFTP服务对文件的存取。由于系统硬件使用SPI总线连接SD卡,软件采取数据流方式对SD卡进行读写操作,文件系统依赖DMA(Direct Memory Access),所以在初始化程序中应加入DMA的参数设置。
结语
本文所设计的远程监控终端具有以下特点:
①以STM32网络处理器为核心,充分利用其集成的外设单元,实现了低成本的工业网络远
- STM32学习笔记:在IAR中建立FWlib 3.0项目(08-13)
- 基于STM32单片机的火控系统信号采集测试(11-14)
- 基于LabVIEW的STM32调试平台设计(11-17)
- 基于STM32的LF RFID识别系统设计(11-25)
- STM32中断与嵌套NVIC快速入门(01-25)
- 基于TLC5947的旋转LED屏显示控制器设计(01-25)