阳仲伯 唐露新 陈辉 宾斌 韩琨 姜晓燕
(广东工业大学信息工程学院)
许多水厂、水源站的水质自动化数据采集系统[1],其数据采集节点通常是以单片机为核心,数据处理及远程数据传输采用PC机或工控机进行,在节点与主机之间的通信采用RS232、RS485等总线标准,利用这种传统监测方式构成的网络结构,存在通信速率低、专业性强、通信距离短,且工控机价格昂贵、笨重等缺点。这就需要建设一个稳定的、实时的、轻巧的、覆盖面广的集数据采集、数据通信、数据分析与处理为一体的水质在线监测系统来为监测部门提供技术支持。随着Internet和web技术的高速发展,及其在网络测控技术与智能仪器上的应用,基于嵌入式web的远程监测在传统远程监测的基础上又融合web和嵌入式技术,可提供比传统远程监测更为强大的功能,将成为今后远程监测技术发展的主流方向。
将嵌入式系统应用于远程监测系统,大大提高了系统的性能,同时降低了成本和功耗,体积也大大减小。在嵌入式操作系统的选择上,由于Linux有完整开放的源代码,因而它具有修改和优化系统、内核稳定、适用于多种CPU和多种硬件平台、支持网络等特点。本系统采用基于ARM920T架构的嵌入式处理器S3C2410X与Linux构成一个嵌入式web服务器,取代传统以PC机作为服务器进行远程数据传输,用户可以随时随地通过web浏览器监测水质信息,不仅可以节省数据通信的成本,而且能够实现资源共享。
作为一套完整的在线监测系统,它能对多个供水点的水质(PH值、水温等参数)、水流量及其变化状况进行监测,并能对所监测结果进行存储。由于每个监测点所处位置较分散,不利于短距离通信,根据要求,采用CAN控制子网,实现现场设备与web服务器的通信,各监测点通过以太网实现与监测客户端进行数据通信,客户端完成数据采集、分析等功能。
基于web远程监测一般有2种实现方案,PC机代理服务器和嵌入式实现方案[2]。传统远程监测中采用PC机作为web服务器,现今远程监测多采用嵌入式微处理器作为web服务器,由于各供水点分布比较分散,本着集中监测的原则[3],采用基于嵌入式web服务器方案,其子网采用CAN控制,由多个现场设备和web服务器构成一个节点,增加整个系统的灵活性,整体结构框图如图1所示。本系统解决方案具有如下特点:
图1 在线远程监测系统结构
(1)动态 web服务器支持监控终端数据的实时更新,实现了远程监测。
(2)功能易于扩充,系统只需对web服务器添加和嵌套新的功能函数即可。
(3)不受地理和空间的限制,只要Internet可连接到的地方,均可通过浏览器实时地监测数据,改变了传统监测系统的封闭局面。
(4)通过CAN总线组网,一个web服务器可以挂接多个现场设备(理论上不超过110个),同时方便了现场设备的即插即用,灵活性更强。
嵌入式 web服务器不仅要实现现场设备数据采集,还要通过Internet将数据发送到互联网上,综合比较处理器价格和性能后,选择 SAMSUNG公司生产的 ARM9嵌入式处理器 S3C2410X,该芯片扩展RS232、CAN、以太网接口,可为系统提供不同的通讯方式,适合不同的监测环境和条件。
ARM 微控制器作为核心控制模块,以太网控制芯片AX88796经耦合隔离滤波器FC-518LS和RJ45接口接入以太网,扩展CAN总线接口,编写CAN总线协议,将 CAN控制子网上的设备接入以太网[4]。S3C2410X处理器并没有集成CAN控制器,在此系统中,采用MicroChip公司的独立CAN总线控制器MCP2510对微处理器进行扩展,CAN收发器采用Philips公司的TJA1050。图2为嵌入式web服务器硬件结构框图。
图2 嵌入式web服务器硬件结构
现场设备的设计根据具体的监测水质参数,可采用多种方式灵活接入,如单片机系统、PLC系统以及现场总线系统,只要提供相应的通信接口即可实现与监控中心的通信,在设计中,考虑各分站分布范围大、距离远,故采用带CAN接口的C8051F040单片机系统来实现,如图3所示。
图3 CAN子节点硬件结构
利用外部传感器采集水质参数,将处理过的数据与设定的系统初始化参数值(如pH值的最高、最低值等)进行比较,当超过其报警值范围时,则报警装置报警,系统自动将监测点的状态信息发给客户端,通知水质监测员采取相应的措施。
本文提出的方案中监测系统应用软件包含多个任务协调工作,HTTP服务负责生成包含水质状态信息的web页面,web server通过环境变量和CGI进行消息间的交换,完成设备的数据采集,CGI返回给web server的是页面信息,通过编写C代码生成页面文件返回给web server。系统采用B/S(浏览器/服务器)结构接入以太网。
在其硬件平台上移植Linux操作系统,使用boa作为嵌入式web服务器的远程在线监测系统,boa是一个单任务的小型HTTP服务器,源代码开放、性能优秀,特别适合应用在嵌入式系统中。
boa服务器主要移植过程如下:
(1)下载boa源码,并将其解压;
(2)编译代码生成可执行文件boa;
(3)boa server的配置。为了能够在目标平台上运行web服务器 boa,需要修改配置文件 boa.conf,主要完成对boa运行的端口号、Server根目录等设置,完成如上配置后,就可运行boa服务器。
在外部存储器EEPROM中存储系统需要的各种web资源,通过以太网与远程监测主机进行数据通信,实现 web服务器功能,web动态页面显示使用 CGI技术,CGI全称是“公共网关接口”(Common Gateway Interface)[5],其程序运行在web服务器上,提供同客户端HTML页面的接口。
嵌入式 web服务器将客户端提交的信息传递给CGI应用程序,在客户端提交信息的主要途径是通过HTML文档中的表单,表单为用户提供一个交互的界面,用户输入的信息构成表单数据集,并作为HTTP请求消息一部分传送给web服务器。web服务器在收到客户端的请求信息后,将其中包含的表单数据集按照CGI规范传递给相关的CGI应用程序。表单的提交方法有两种:即GET和POST,使用不同的请求属性,所用的环境变量也不同。CGI程序与boa服务器之间通过环境变量、命令行参数和标准输入等方式进行通信。本设计中采用的表单编码信息通过环境变量QUERY_STRING传递,并返回执行结果,将结果发送给客户端浏览器,其执行工作流程如图4所示。
图4 web server工作流程
基于嵌入式web的在线水质监测系统,可完成水质水温、pH值、浊度等参数的采集,用户使用 web浏览器访问嵌入式 web服务器时,需要进行身份验证,当验证通过时,才会向web浏览器发送数据。各分站完成数据采集、数据实时传输、现场报警等功能。远程监测主机完负责完成显示实时数据、查询历史数据、动态显示数据等功能,并通过监控首页查看监测状态是否正常,起到预警作用。其具体实现步骤如下:
(1)将CGI程序cgi-test.cgi拷贝在/var/www/cgi-bin目录下,index.html拷贝在/var/www目录下,编译并下载到目标平台;
(2)运行boa,在目标板终端ifconfig命令设定目标板IP地址为192.168.0.105;
(3)打开IE浏览器并输入服务器IP用地址,即可浏览web页面,在客户端可通过IE浏览器登陆系统,即可实时监测远程数据,如图5所示。
图5 浏览器客户端界面
本文所设计的基于嵌入式 web的在线水质监测平台,能取代以PC机代理服务器的传统方案,可对多个供水点的水质参数进行连续采集,并在web浏览器上实时显示,同时对超过阈值的监测点显示其状态信息,起到预警功能。
整个系统由远程客服端和监测分站两大部分组成。各监测分站由嵌入式 web服务器和现场设备组成,远端计算机可通过接收各分站的系统数据和向分站发出指令,实现分站与客户端的通信,并接收来自水质传感器信号。监测分站中的现场设备采用 CAN控制子网挂接到服务器上,即插即用,灵活性强。实验验证了通过该系统进行在线远程水质监测的可行性,与基于PC机的监测相比,性价比高,占用空间小、且安装维修方便。
[1]刘星华,刘国辉. 基于 CAN 总线分布式水厂监控系统的研制[J]. 计算机技术与应用,2007,(3):11~13
[2]李恒超,张家树. 基于嵌入式web的远程监控研究[J]. 西南交通大学学报, 2003,38(3):263~266
[3]景秀眉,吕明祥. 中小型计算机监控系统的设计与实现[J].计算机应用于软件,2008,25(8):193~195
[4]佟鸣宇,彭开香. 基于ARM芯片的CAN总线接口设计与实现[J].计算机工程与设计, 2009,30(7):1574~1576
[5]宋凯,严丽平,甘岚.嵌入式 web服务器的设计与实现[J]. 计算机工程与设计,2009,30(4):808~810