STM32F107VC的嵌入式远程监控终端设计
2014-09-06关丽敏李思慧李伟刚
关丽敏,李思慧,李伟刚
(1. 长安大学 电子与控制工程学院,西安 710064;2. 西安昆仑工业(集团)有限责任公司)
关丽敏1,李思慧1,李伟刚2
(1. 长安大学 电子与控制工程学院,西安 710064;2. 西安昆仑工业(集团)有限责任公司)
针对处于偏远地区或恶劣环境中的无人值守设备的运行状态的监控问题,本文应用嵌入式技术以及工业以太网技术设计了一种数据采集与监控系统的远程监控终端。围绕核心处理器STM32F107VC构建了终端的硬件系统,介绍了网络接口设计、输入/输出接口设计和本地存储电路设计。监控终端软件基于ARM公司的RL-ARM中间件,实现了多任务并行的网络实时通信、基于WebServer的远程配置服务和临时存储现场数据的文件系统。应用结果表明,系统可靠性高、实时性强,有效降低了远程监控系统成本。
远程监控终端;STM32F107VC;WebServer;RL-ARM
引 言
数据采集与监控系统是以计算机为基础的分布式控制系统与电力自动化监控系统,广泛应用于电力、冶金、石油、化工等诸多领域。数据采集与监控系统依靠其数量庞大的远程终端单元收集各终端站点信息和执行控制策略。远程终端单元的性能、成本、可靠性对整个系统而言举足轻重。数据采集与监控系统如图1所示。
图1 系统总体结构
对于终端站点现场环境恶劣或站点广泛分散的系统,要求站点长期无人值守,如电信公司的电话光纤网络交接设备、高速公路机电设备等。如何保证终端站点的信息高效、可靠地上传,并能对中心系统的命令及时响应,成为目前广泛研究的热点问题。参考文献[1]提出了一种基于GPRS无线传输的无人值守低功耗远程终端的设计方案;参考文献[2]设计了基于MODBUS协议的RS485通信方式的远程终端;参考文献[3]设计了基于CAN总线的智能监控终端。但是基于以太网通信的无人值守远程监控终端的设计方案还较少。本文基于以太网通信方式,以STM32F107VC网络处理器为核心单元,实现了一种低成本、高效、稳定的远程终端单元。
1 远程监控终端硬件设计
对于电信公司EPON无人值守设备、高速公路无人值守机电设备等所处的远程站点,通常布设有可以利用的可靠光纤网络,基于网络通信并充分利用网络服务是监控终端设计时优先考虑的重点。作为现场环境的监控设备,远程监控终端应具备下述功能:稳定的工业网络标准接口;与现场信息采集设备和执行机构的输入/输出接口;本地大容量备份信息存储。
1.1 系统设计
系统结构如图2所示,采用STM32F107VC网络处理器作为系统核心单元,此芯片具备72 MHz运行频率和90 DMIPS的处理性能,集成了以太网、CAN总线、RS485、RS232、USB OTG等各种高性能工业标准接口,其标准外设包括10个定时器、16路12位1 Msps采样速率的A/D模/数转换器、2路12位D/A数模转换器等,可以应用于多种工业场合[4]。在核心处理器的基础上,充分利用其集成的外设单元,设计相应的外围接口电路,实现了需求功能,保证远程监控终端的稳定性,降低了系统成本。
图2 系统结构图
1.2 网络通信接口设计
STM32F107VC核心处理器内部集成支持工业以太网标准IEEE1588的Ethernet MAC Interface,需要外部扩展PHY连接物理层网络。选用美国国家半导体公司的DP83848C芯片作为物理层接口芯片,该芯片是10/100 Mb/s单路低功耗物理层接口器件,与核心处理器通过Media-Independent Interface(MII)相接。以太网通信接口电路如图3所示。
1.3 输入/输出接口设计
输入/输出接口包括AI(Analog Input)接口、DI(Digital Input)接口和DO(Digital Output)接口。AI接口连接传感器获取现场连续变化的信号,如温度、湿度、烟雾等;DI接口连接传感器采集现场的开关量信息,如设备震动、开关门动作、水浸超标和系统断电等;DO接口输出数字信号控制执行机构动作,如继电器等设备。
STM32F107VC内部集成ADC,输入通道的幅值范围为0~3.3 V,传感器输出的模拟量数据需要经过滤波、放大的处理过程输入至ADC接口通道。ADC的精度很大程度上依赖于基准电源的精度,系统采用高精度参考电压源AD780为STM32F107VC提供基准电压。AD780是一款超高精度带隙基准电压源,可以通过4~36 V的输入电源提供2.5~3.0 V输出基准电压。它具有低初始误差、低温度漂移和低输出噪声,非常适合用于增强高分辨率ADC的功能。系统的AI接口电路如图4所示。
STM32F107VC的GPIO引脚都可以由软件配置为输入/输出模式,并且输入可承受5 V TTL电平。系统采用PC817光电耦合器实现GPIO引脚与外围电路的电气隔离,提升终端的电绝缘和抗干扰能力。DO接口使用大电流三极管驱动继电器输出开关信号。
1.4 本地存储电路设计
远程监控终端系统的数据存储分为两部分:系统参数的存储与采集数据的存储。系统参数的存储使用EEPROM,保证系统掉电后数据不丢失,选取8 KB存储容量的24LC64芯片,使用I2C总线接口对其进行读写操作。
选取SD卡作为现场数据的临时存储器。SD卡具有数据传输率快,移动灵活性好且具有较高的安全性等性能,当网络出现异常时暂时存储现场信息,以便网络恢复正常或现场检修时将数据信息取出。使用STM32F107VC处理器的SPI总线实现与SD卡的存储接口。
2 远程监控终端软件设计
远程监控终端的性能和效率由系统软件直接决定。远程监控终端将现场传感器采集的数据进行分类整理过滤,形成有效信息通过网络实时地上报给监控中心的通信服务器。接收通信服务器的指令控制执行机构的动作,根据现场数据进行预判,当数据达到报警条件时,立即将报警信息报送监控中心处理。由于远程监控终端位于数据采集与监视控制系统的最远端,经常处于环境恶劣、地理位置偏僻的站点,还应具备远程配置的功能。
图3 以太网通信接口电路
图4 输入/输出接口电路
系统软件应用ARM公司的RL-ARM中间件,实现了多任务实时处理、网络通信应用层程序及大容量文件系统。前文已述的物理层接口芯片(PHY)DP83848和STM32F107VC内部集成的网络控制器(MAC)分别实现了网络传输模型的物理层和数据链路层,通过RL-ARM中间件提供的TCP/IP协议栈实现了传输层的TCP、UDP通信以及HTTP服务。通过RL-RTX实时多任务操作系统实现系统任务的实时运行与任务间通信[5]。系统软件结构如图5所示。
图5 软件结构图
2.1 网络实时通信模块设计
为了保证数据与命令传输的可靠性和实时性,将网络实时通信程序分为三个子任务:数据实时采集与处理任务、信息智能上传任务、命令执行任务。
数据实时采集与处理任务扫描GPIO端口读取开关信号,完成状态监测任务;通过处理器内部集成的A/D转换控制器采集现场模拟信号,经过软件滤波、量化等处理之后,得到现场环境的数据;通知信息上传任务提取现场环境信息。
系统通信命令分为两类:一类命令为控制命令,用于控制智能终端控制执行机构动作,采用面向连接的TCP传输协议;另一类命令为查询命令,用于监控中心软件查询智能终端系统的配置信息,采用简单、轻量级的UDP传输协议。命令执行任务开启网络监听后,当收到TCP连接时,打开接收命令网络端口(系统设计使用9003端口),与监控中心服务器建立TCP连接,收到控制命令后,控制执行机构动作,如打开或关闭继电器;当收到UDP包时,打开端口,接收查询命令,根据命令读取配置信息,使用UDP传输协议发送给监控中心通信服务器。
网络实时通信模块依托RL-ARM中间件系统提供的Sockets底层库,基于传输层协议TCP和UDP,实现自定义网络数据帧通信协议的发送和接收。
2.2 远程配置服务模块设计
基于RL-ARM中间件系统提供的网络应用层HTTP服务,实现了通过网络对智能终端远程配置的功能。管理员使用任一台网络内部的计算机,通过网络浏览器即可访问智能终端系统的远程配置界面,经过密码认证后,就可以对智能终端的参数进行远程配置、查看系统状态、对远端站点进行手工控制等。
用HTML(HyperText Mark-up Language)和JavaScript语言设计了远程配置服务界面,包括主界面、控制参数配置界面、网络参数配置界面、通信参数配置界面、数字通道状态监控界面、模拟通道状态界面、用户登录管理界面、手动控制状态界面和数据文件上传界面。主界面如图6所示。
图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网络处理器为核心,充分利用其集成的外设单元,实现了低成本的工业网络远程监控终端,能够对无人值守机电设备现场运行情况进行有效监测。
② 基于RL-ARM的实时多任务操作系统,分别实现现场信息同步上传、智能报警信息上传、通信命令执行子任务的独立运行,保证了智能终端与远程主机网络通信的实时性和可靠性。
③ 设计了基于HTTP的WebServer远程配置服务和基于TFTP的网络文件传送服务,实现对智能终端的远程配置和管理。
④ 在SD卡上实现了智能终端的本地文件系统,为网络异常情况时的数据存储提供了保证。
[1] 李美莲. 基于GPRS的远程监控终端的研究[J]. 计算机与网络,2010(16):629.
[2] 彭道刚, 张浩, 李辉,等. 基于Modbus协议的ARM嵌入式监测平台设计与实现[J]. 电力自动化设备,2009, 29(1):115-119.
[3] 周丹峰, 李杰. 基于CAN总线的悬浮控制器监控终端的设计[J]. 微型机与应用,2005(10):28-29.
[4] 程小艳. 嵌入式STM32F107VCT6微处理器接口模块开发及应用研究[D].合肥:合肥工业大学, 2012.
[5] 方安平, 武永谊. 基于MDK RTX的Cortex-M3多任务应用设计[J]. 单片机与嵌入式系统应用, 2008(12):30-33.
关丽敏(工程师),主要从事嵌入式系统及应用以及控制工程领域的工作和研究。
Guan Limin1, Li Sihui1, Li Weigang2
(1.School of Electronic and Control Engineering, Chang’an University, Xi’an 710064, China;2.Xi’an Kunlun Industry(Group) Company)
Aiming at the problem that unattended equipments are usually in remote areas and harsh environments, the paper designs a remote monitoring terminal of data acquisition and monitoring system. Based on the the core processor STM32F107VC, the hardware system of the terminal is designed,the input/output interface and local storage circuit are designed. The software of the monitoring terminal is based on RL-ARM middleware of ARM. It completes the multitasking parallel network real-time communication, based on the WebServer remote configuration services and temporary storage of field data file system. Application results show that the system has high reliability, strong real-time performance and effectively reduces the cost of remote monitoring system.
remote monitoring terminal; STM32F107VC; WebServer; RL-ARM
TP23
A
迪娜
2014-01-21)