嵌入式Web污染源自动监测系统
扫描二维码
随时随地手机看文章
1 引言
环境污染问题一直备受重视。虽然我国污染源监测体系和能力都有一定的基础,但污染源监测工作仍存在一些急待解决的问题,如在线自动化程度低.信息处理的及时性与管理工作的需要不相适应,各个监测系统相互独立等。因此,一个能够满足现实需要的污染源自动监测系统具有重大的社会意义。
目前污染源监测系统较多是基于8位或16位的处理器,且其通信方式大多为拨号方式、GSM短信方式和串行方式,导致系统功能弱,投资大,监测范围小。这里采用低成本的基于32位ARM7处理器的嵌入式服务器,并顺应监测系统从集中式控制转向分散式的网络控制的趋势,结合Intemet技术和Web技术,从以前的C/S式管理转向B/S式管理,设计并实现嵌入式Web污染源自动监测系统。
2 系统硬件平台设计
硬件平台是嵌入式系统的基础.其性能直接影响整个系统性能的发挥和功能的实现。该系统从系统功能要求和价格两方面综合考虑,选择Atmel公司的AT91SAM7X系列微处理器(主要使用7X256型)为核心,并根据系统功能需要配以网络接口器件、外置Flash、SD/MMC卡接口、EEPROM、污染源测量变送器接口、日历时钟器件等。该系统的硬件结构框图如图1所示。
AT91SAM7X系列微处理器是Atmel公司基于32位ARM7TDMI核的微处理器.包括AT9lSAM7X128/256/512型,它们只是片内Flash和SRAM容量不同,在应用中可根据程序的内存需求选择合适的型号以节省成本.而只需要对程序进行极少的修改(因AT91SAM7X512的片内Flash由2个功能块组成,故需要操作2个嵌入式Flash控制器EFC实现对片内Flash的操作)。AT91SAM7X256集成256 KB的片内Flash和64 KB的SRAM,EMAC(以太网MAC)、USART(异步收发器)、SPI(串行外围接口)、TWI(双线接口)、PIO(并行输入输出控制器)和众多监管功能,完全符合该系统的要求。其中片内Flash用于存储BootLoader、系统内核、各种应用程序的代码和静态变量、常量等,而SRAM则用于存储程序运行时使用的各种变量和堆栈信息等。
网络的连接方式选择以太网方式接入Intemet。RTL8201BL是一个单端口的10/100 M快速以太网物理层收发器(PHY),微处理器内的EMAC通过MOID对其进行控制和传输方式、速率等的同步,并使用MII(媒体独立接口)与其进行数据交互实现数据收发,采用RJ45接口接入以太网。在数据采集方面,系统采用高速的污染源测量变送器接口连接污染源专用监测设备,同时辅以RS232接口和CAN接口以兼容其他接入方式的设备,完成对各种智能仪表的数据采集和设备控制;并采用外置Flash和SD/MMC卡作为外存储器,存储采集到的历史数据和Web服务器所需的静态网页文件、用户信息文件等。而污染源数据采集需要使用精准的时间校准,为此,使用串行日历器件为数据采集提供时间信息。
此外,污染源监测系统的工作环境一般较为恶劣,因此采用看门狗电路(WDT)使系统在受到强干扰而出现异常时能自动复位,从而保证系统正常工作。系统运行所需的配置信息,包括网络参数、运行参数、采集参数等则存储于EEPROM中,并通过CRC校验和使用锁存引脚WP保证数据的完整性。
[!--empirenews.page--]
3 系统软件平台设计
3.1 软件平台总体结构
该系统的软件平台由操作系统层、系统服务层、应用层组成。其系统软件结构层次如图2所示。
该系统对实时性要求较高,且内存资源有限,这里选择μC/OS-II,它是一个开源、可移植的、抢占式的实时操作系统,无TCP/IP协议栈功能,需通过扩展实现。LWIP是一套嵌入式系统的开源TCP/IP协议栈。它采用“零拷贝”技术且占用内存很少,该系统对其进行移植和适当剪裁,仅保留系统功能所需的协议。
为了实现操作系统的移植和上层软件的开发,必须提供各种硬件的控制。设备驱动用于控制外围设备,主要包括外置Flash、SD/MMC、日历时钟、网络、EEPROM、污染源测量变送器接口等的驱动。而板级支持包是根据微处理器开发包编写的用于控制微处理器内各功能部件的程序库。硬件抽象层屏蔽硬件设备型号差异和操作系统的一些细节,把设备驱动抽象为统一的接口,其功能主要有以下3方面:(1)为了实现平台无关,LWIP通过操作系统仿真层与操作系统和网络接口交互,该系统通过在硬件抽象层中实现该功能完成协议栈的移植;(2)在外置Flash和SD/MMC上建立μC/FS文件系统时,需要借助硬件抽象层控制这些设备而无须了解其细节;(3)同样,应用层软件可通过系统调用方式控制底层设备,使得其工作与底层更加独立有效。
嵌入式Web服务器需要使用到网页文件、用户信息和设备采集到的历史数据等,数据量较大,必须放置于外存储器。而使用文件系统可以方便对这些信息实现保存和读取等操作,因而该系统通过移植μC/FS,在外置Flash和SD/MMC卡上建立文件系统。将对于实时性要求较高的网页文件和用户信息存储于读写速率较快但容量较小的外置Flash中,而历史数据等对实时性要求相对较低且数据量较大的信息则存储于SD/MMC卡中。
控制软件是系统和监测设备的控制中心,其承担的任务是:对上执行Web服务器的控制指令和上传数据,对下控制各个仪表的工作和采集设备的原始数据并对其进行预处理.同时配置系统的运行参数。控制软件采用模块化设计,主要包括采集、控制、预警、系统配置和存储查询5个模块。其中.采集模块负责对设备数据的采集和预处理;控制模块用于解析并执行对设备的控制指令;预警模块负责监视设备是否正常运行,同时对超标数据做出相应的警报处理;系统配置模块用于配置系统的运行参数、设备的采集参数和动态网页的生成规则:存储查询模块完成历史数据、报警信息和运行记录等的永久存储与快速查询功能。
Web服务器是整个软件平台的应用核心,它通过接收并响应用户的HTTP请求实现污染源的在线自动监测。
3.2 Web服务器设计
该系统采用瘦服务端一胖客户端模式,通过简化HTTP的一些机制从而精简Web服务器,其工作原理如图3所示。
在服务器端,HTTP引擎是整个Web服务器的核心,负责接收和响应来自客户端的HTTP请求,是通过采用有限状态机的机制实现的。HTTP引擎在与客户端建立可靠的TCP连接(通常采用80端口)后,接收客户端的请求,通过解读请求中的HTTP协议报文信息来获得客户端请求的类型(Ajax请求还是普通请求)和内容,并进行用户权限验证。当请求类型为普通网页请求时,它首先读取存储于文件系统中的网页模板,然后经过EL(表达式语言)处理进行关键字替换生成新的动态网页作为响应内容;当请求类型为Aiax请求时,它则通过CGI(通用网关接口)调用与控制软件进行交互,更改设备控制、系统配置并获得实时数据,把所得数据或操作结果作为响应内容。最后为响应内容加以合适的HTTP包头回传到客户端。以上功能均通过使用C语言编程完成,以获得高效的Web服务器。[!--empirenews.page--]
Ajax处理为客户端的核心部分。常规的Web应用是采用网页刷新机制,强制用户进入提交/等待/重新显示,客户端每次刷新数据都要求服务器端传送整页数据,而其中只有极少数据是需要更新的实时数据.因此,网络传送大量冗余信息,严重影响实时性。与此不同,Ajax应用可以仅向服务器发送并取回必需的数据,大大减少传输的数据量,从而提高测控的实时性。Ajax处理根据用户操作要求向服务器发出异步的Ajax请求以执行所需要的更新,并采用异步方式处理服务器的响应,当请求返回时,使用JavaScript和CSS相应地更新UI;而VML(矢量可标示语言)处理则完成数据的可视化工作,生成监测所需的各种动态图表。以上功能主要通过Html+Javascript语言并辅以VML实现。
3.3 监测系统功能设计
嵌入式Web污染源自动监测系统通过Internet网络对监控对象进行全天候的远程实时监控并对监测仪器进行远程管理,同时具有便捷有效的系统管理功能。该系统主要实现以下功能:
(1)用户认证负责用户权限的管理,提供用户的系统登陆和退出功能。
(2)实时监控 以图表和动态曲线图方式实时地显示嵌入式Web服务器采集到的监控设备数据及其变化趋势。
(3)设备管理包括远程设备控制和状态查看两大功能。远程设备控制实现用户通过对网页的操作来完成对远程监控设备的各种控制;而状态查看则用于查看远程设备的运行状态信息。
(4)系统参数配置 用于查询和配置系统运行和设备采集所需的各种参数,主要包括网络参数、系统时间、报警参数、采集参数等。其中网络参数主要包括服务器的MAC地址(只能读取)、IP地址、子网掩码、默认网关等;系统时间则是指读取和设置串行日历器件中的时间;报警参数主要包括报警策略、报警动作和报警设备参数:采集参数则包括采集数据的采集间隔、名称、单位、上下限、系数、偏移等。
(5)系统维护 包括系统运行状态和日志查看及系统在线更新功能。系统运行状态主要包括服务器CPU的使用情况,用户的访问和最大并发任务数等;而日志查看则用于查看用户对系统进行访问和操作的记录;系统在线更新支持管理员通过Intemet来完成系统的升级更新。
(6)用户管理 用于实现对系统用户进行添加、删除和修改当前用户的密码。
此外,为了提高系统的可移植性和可扩展性,网页在设计时独立于工程而只与功能相关。当需要应用某个具体工程时,用户只需配置与该工程相关的各种系统参数(如工程名称、安装地点等),服务器便可根据配置参数和模板网页自动生成当前工程的新的动态网页。
4 系统性能测试
从功能正确性和服务器性能两方面对该系统性能进行测试。正确性测试主要包括以下5方面:页面跳转、功能验证、数据检验、权限验证、用户会话。客户端通过IE浏览器向服务器发送HTTP请求.如果可以正确返回所需网页或相应的错误提示,说明整个系统的运行正常。图4为系统首页效果图。主要使用Web服务器性能测试工具进行服务器性能测试,其测试主要参数的结果如表1所列。
5 结束语
该系统实现低成本的基于32位ARM7处理器的污染源自动监测系统,满足现实污染源监测的需要,具有较大社会价值。系统采用Intemet作为通信方式,并结合Web技术使得系统从C/S集中式控制过渡为B/S分散式控制,适应技术的发展趋势,该设计对监测系统的开发具有较高的参考价值。