【VC++开源代码栏目提醒】:本文主要为网学会员提供“由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理 - 硕士论文”,希望对需要由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理 - 硕士论文网友有所帮助,学习一下!
广东工业大学 硕士学位
论文由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信 息管理 级别:硕士 专业:系统工程 指导教师:张新政 20060501 摘要 摘要 为了提高水环境监测和管理的信息化和自动化水平,本
论文研究由嵌入式Intemet接入技术和GIS实现远程水质监测和水质信息管理。
论文主要围绕远程嵌入式水质监测终端的软件平台和水环境信息管理系统两个方面展开讨论,内容涉及当前计算机技术的几个“热点”领域——嵌入式实时操作系统,嵌入式TcP/IP协议栈,地理信息系统,以及水质预测模型。
本
论文为嵌入式水质监测设备引入一款优秀的实时操作系统——ecos,详细分析了这个开源实时操作系统的结构,移植原理,交叉工具链的构建方法,并针对嵌入式水质监测终端试验板的硬件资源,描述了eCos在该终端上移植、开发、调试的具体步骤;为了实现水质监测终端能接入Intemet,
论文讨论怎样将开源TCP/IP协议栈LwIP成功移植到ecos,使之成为该操作系统的一个标准模块。
因为ecos和LwIP软件基础的支持,嵌入式水质监测设备应用程序开发得以简化,并可以保证应用程序的稳定可靠。
针对水环境系统中,河流、水库、湖泊等较强的地理特征,本
论文尝试着将地理信息系统(GIs)融入水环境信息管理当中,改变当前水质数据单一的数据报表格式,使水环境信息平台更加直观形象,简单易用。
论文详细分析了MapInf0系列工具实现数字地图的一次开发和二次开发步骤,以及地理信息系统与水环境信息管理系统的融合方法。
在文章的晟后,给出了一种BP神经网络预测水质数据的建模方法,该方法针对河流的特点,采用时间序列加空问序列建模,预测模型输入输出之间有较强的因果关系,并能对突发污染事件的后续效应作出较准确的预测。
作者希望,以上几点研究内容能帮助改善日益恶化的水环境现状。
关键词:水环境远程监测,嵌入式系统,ecos,LwIP,地理信息系统,M印Inf0,BP人工神经网络。
一: 三至三些查兰三兰堡圭兰堡篁兰 AbstractTb improve the i州bⅢlationization of water environment Supervision,ttlis thesisproposcs a system of water enViro姗ent remote mon“or and water quality datamanagement which bases on eⅡlbedded intemet connecting tecllflic a11d GIS(GlobalInfornlation system).This thesis includes州marily embedded operation system,embedded TCP/IP stacks and GIS、vhich are hot矗elds of computer technic in theseyears.Tb co肌ect血e water remote monitor ten】1inal on imeHlct,firstly tllis thesisresearch the acllicticturc of eCos which is an excellent open source RTOS(realtimeoperation system),a11d resolVes how to pon eCos on tlle board ofme teminal;then Iadd TCP佃packages to eCos by adoping LwIP,whjch is very锄aJl aJld compeledTCP/IP stacks,especially suitable fIor embedded application.Both。
eCos and LwIPcaIl make the deVelopmem of印plication sofhⅣare simple aIld mbustioust.Becausethe riVers are geographjcal objects,I use GIS to design the water enviromentinfb瑚ation matlagem锄t and connect GIS with database.111is thesis djscusseS thewayhowto builtGIS byM印Inf0 seriestools combinedwithVC orASP(Vbscript).When the users open tIlis soRware,they would see a beauti血1 digital map’ratherthaIl a11y input boxs.Users can gct data they need by operate the digital map,and thedata ofwater qllajity even can diSpIay on t11e digital map by charts or di丘’erent colors.In t11e last chapter,I adopt BP neural ne脚ork to forecast the water qual时data.BPncural network is wildly used to water quality data forecast,but in tllis thesis,I givea di腩rent mettlod to design network.By血is method,BP neural network has stmngcausation between input and output data.Thjs method can improve the veracity offorecasting.Besides,this BP neurai network is even able to forecast the consequenceof faculafive water pollution.I hope all of山ese can do someth血g to stop廿ledepravation ofwater environInent.KeyWords:Water Envim咖ent Remote Monitor,Embedded System,eCos,LwIP,GIS,M即Info,BP Anifical Neuml Ne帆k Ⅱ 第一章绪论 第一章绪论1.1本研究课题的背景和意义 水是生命之源,是人类赖以生存的必要条件,而我国是水资源短缺的国家,人均水资源量只有2200立方米,仅为世界平均水平的1/4,全国80%左右的污水未经处理直接排入水域,1,3以上的河段受到污染,90%以上城市水域污染严重,近50%的重点城镇水源地不符合饮用水标准Ⅲ。
近30年中,我国工业迅猛发展,水资源的需求量在迅速地增加,同时由于环保观念淡薄,导致主要污染物排放量居高不下。
全国污水排放总量,国家环保总局的统计是【2】:2001年为428亿吨,2004年为482亿吨,3年增长了12.6%;水利部的统计是【3l:2001年为626亿吨,2004年为680亿吨,3年增长了8.6%,尽管两个部门对绝对排放量的统计不完全一致,但都显示污水排放呈较快增长趋势。
根据专家的预测,如果任由水环境恶化下去,那么到2010年,中国将成为一个严重缺水的国家m一,这将直接影响我国
经济的可持续发展,并潜在地危害人民身体健康。
事实上,北方的很多省份目前已经出现了缺水的现象。
刚制定的“十一五”规划也提出花大力气建设资源生态保护和环境治理重点工程。
因此我国水环境治理正面临巨大压力。
面对新时期工业发展给环保工作带来的压力,我国的水环境监测体系和能力都虽然已有一定的基础,还存在一些急待解决的问题。
从技术层面上来讲,主要集中在自动化程度低,咀及信息处理的及时性与环保工作的要求不相适应两个方面。
本沦文所讨论的采用嵌入式Intemet连接技术实现的水质远程监测系统,以及基于地理信息系统的水环境信息
管理系统,可以周期性、即时性地获取水质数据,尽早发现水质的异常变化,为管理决策提供方便快捷的数据支持,及时锁定污染源,为防止下游水质进一步污染迅速作出预警、预报,从而把污染事故遏制于萌芽阶段。
广东工业大学工学硕士学位
论文1.2水环境自动监测的发展现状 水环境监测区域广,监测站点分散,给信息的采集和管理部带来了困难。
实现数据的远程采集,进而实现包括数据传输、处理在内的整个流程的自动化,是水环境监测系统所要解决的核心
问题之一。
数据的远程采集可以有多种实现方式,而在这一
工作中如何利用Imemet,是当前国内外自动化领域的研究热点。
国外在这方面的研究开展较早,基于Intemet的远程数据采集技术在能源、工业、医疗、环境监测等领域都得到了广泛的应用。
国外一些公司生产的水环境监测设备,也对基于Intemet的远程监测提供了支持。
例如Sevem nent公司的SerierSlooOHl和MAT2000【5】,前者具有远程通讯和控制能力,用户使用PC机通过IIltemet,可以处理和监视测量数据,诊断和维护监测设备;MAT2000则是一种拖车式的可移动水环境监测站,通过PC机对监测数据进行采集、记录后,就可以使用密码从Intemet上进行访问。
文献〔6〕则提出了一种基于微控制器的多传感器测量系统。
它可以对表征水环境的不同参数进行测量,同时还可以将测量得到的数据在Intemet上发布。
整个系统在结构上可以划分为三部分,即传感器单元(测量pH值、温度和浑浊度),数据采集、处理单元和通讯单元,以及RTL8019网卡,系统还具有GsM通讯的能力。
从水环境监测系统的实际应用看,世界上许多国家都建立了以监测水环境污染综合指标及某些特定项目为基础的水环境污染自动监测系统。
如日本东京的水环境自动监测系统m,监测中心可以对各个监测站的采样进行控制,控制的内容包括接通或断开电源,切换采样泵,反向洗涤过滤网等。
各监测站每隔十分钟向监测中心传送一次数据,然后由位于监测中心的计算机对数据进行处理。
而在泰晤士河流域水环境自动监测系统中川,
计算机利用无线通讯技术控制各水环境自动监测站,每隔一段预先设定好的时间,就向各处监测站发出采集数据或执行其他任务的命令。
发生污染事件期间,还可在控制室内用人工启动的办法增加数据采集的次数,该系统在治理污染水道、防止污染事故和保护鱼群方面发挥了重要的作用。
国内对水环境自动监测和水环境信息系统管理的研究始于上世纪八十年代,它在水资源的管理、开发方面发挥了重大的作用。
由于投资庞大,因此主要由政府兴建,用于重点水域的监测和管理,或者在大型的水利工程中作为配 第一章绪论套系统进行建设。
对于前者,如中国环境监测总站根据国家环保总局的要求,在松花江、辽河、海河、淮河、黄河、长江、太湖、巢湖和滇池等主要江河流域、湖泊建成的几个水环境自动监测站。
这些监测站主要对水温、pH和浊度等八项指标实施监测,并提供水环境自动监测周报。
对于后者,如东深供水工程和南水北调工程中兴建的水环境自动监测系统。
东深供水工程水环境自劝监测系统设两个中心站,三个子站。
中心站包括计算机及系统软件、避雷器和供电电源等。
子站则配备远程有线数据终端、多参数水环境监测仪、避雷装置及供电系统,通信使用东深供水局的微波网络嗍。
而南水北调工程配套的水环境自动监测
系统目前仍处于建设阶段。
其中,位于河南省淅川县的陶岔水环境监测站是南水北调工程上建成的第~座自动水环境监测站。
该监测站配有先进的水环境自动在线监测设备,可以24小时不问断实施水环境自动监测,监测数据通过卫星同步传送到国家环境监测总站,从而实现对引水水环境的实时连续监测和远程同步监控【9】。
设备方面,西安交通大学生命科学与技术学院分离科学研究所承担的国家教育部“行动计划”、西安交通大学培植项目m,:顺序注射自动监测水质化学需氧量(COD)、氨氮和pH集成仪器项目,于2005年4月研制成功了国内第一台先进的水质自动监测仪样机。
该集成仪器选用工控机系统,在软件上采用先进的数据处理技术使仪器具有自动化程度高、抗干扰能力强、显示内容丰富等特点。
同时具有自检、自校正、温度补偿、数据储存和信息传输等智能化功能。
该项目采用了化学分析领域新近发展的顺序注射分析方法,实现了在线同时监测水中化学需氧量,氨氮和pH三个指标。
但是就目前的使用状况看,国内自动化水环境监测主要有几点,有待迸一步提高:设备的国产化水平较低,几乎都采用国外设备进行后期系统集成;数据传输采用专用网络,出现“信息孤岛”,不便于多部门资源共享协调工作;水环境信息管理形式单一,采用传统的报表式的数据库查询,没有充分体现水环境的地理特征;只管理历史和当前水质数据,不具有对水质数据的预测、预报能力。
1.4本课题研究对象的总体框架 本课题研究的,基于嵌入式Intenlet接入技术和GIS实现远程水污染自动 广东工业大学工学硕=匕学位
论文监测及信息管理系统的整体框架如图1.1所示 图1.1系统结构 Fig.1—1 System Arcmtectllre 信息传送的大致过程是:远程水质监测终端以设定的时间间隔对该点水质进行采样检测,通过Intemet(Imemet连接入方式可以有多种)试图连接水环境监控数据中心,如果连接失败,就将检测数据通过嵌入式文件系统将数据保存在监测终端的Flash中:如果连接成功,就将所有未发送数据发送到数据中心服务器,并等待数据中心反馈发送结束或者其它控制指令。
通讯协议为TcP协议,远程监测终端由ecos和LwIP软件支持,信息管理中心由MFc的csocket类实现。
信息管理中心使用GIs加sQL server或Access对数据进行维护和计算,同时将数据以webGIs方式在
网络上发布,用户通过任何连接在Intemet上的电脑使用IE等网页浏览器
查询数据。
1.5本课题的主要研究内容 利用Intemet实施大范围的自动水环境监测,是网络技术在环境监测领域的一种新的应用形式,然而水环境监测自动化是包含了化学分析、物理分析、计算机测控技术、网络通讯技术等多个学科的综合性课题。
基于Intemet的远 第一章绪论程水环境监测系统要真正的投入运行,还需要解决一系列的关键技术。
本文仅就作者在该课题研究中涉及到一些问题进行探讨,主要包括以下几个方面:1)研究水环境监测终端硬件平台上嵌入式实时操作系统移植,为应用
软件开发 奠定基础;2)研究水环境监测终端上TcP,IP协议栈的实现,以达到将水环境监测终端接 入Intemet:3)分析水环境信息管理中心的功能和模块划分,探讨使用Vc开发工具设计水 环境信息管理中心的思路和具体方法:4)研究构建基于GIs的水环境信息管理系统,探讨MapInf0数字地图一次开 发和二次开发的原理和方法:5)研究BP人工神经网络算法对水质数据进行预测的建模方法。
课题来源:1)区域水质优化复杂大系统的监测与控制 国家自然科学基金项目 (60574052)2)水环境治理复杂系统的监测与总量控制 广东省科技计划项目 (20058333叭008)3)水质预测复杂大系统的模拟与控制及其算法研究广东省自然科学基金项 目(05001 820) 广东工业大学工学硕士学位
论文 第二章水环境监测终端的实时操作系统2.1引言 水环境监测终端是典型嵌入式应用,嵌入式操作系统是嵌入式设备的软件基础。
在嵌入式操作系统的基础上开发应用软件,可以简化软件开发难度,能规范软件开发流程,更为重要的是操作系统的支持能提高嵌入式设备的稳定性和可靠性m】。
而移植嵌入式操作系统是嵌入式应用的难点。
本章引入了一款优秀的R1’os——ecos,并探讨其在水环境监测终端试验板上的移植。
2.2 ecos简介 eCos(Embedded Configurable 0perating system)由cygnus公司开发,1 997推出第一个版本。
绝大多数内核代码使用c++完成。
它是一款针对16位、32位和64位处理器的可移植、开源而且
免费的嵌入式R1’oS。
eCos最大的特点是模块化可配置,与嵌入式Linux相比,eCos是专门为嵌入式应用而
设计,体积相当小巧,一个完整的网络应用,其二进制的代码在100K字节左右。
同时eCos提供Linux兼容的API,方便开发人员轻松地将LinuX应用程序移植到ecos。
与“cos相比较,ecos体系更加完备,以2.0版本为例,ecos包含了文件系统、
常用驱动、常见处理器架构抽象层和完整的开发工具链等…”】。
2.3 eCos内核 eCos具备一个功能全面的、灵活的、可配置的实时内核。
这个内核提供了多线程支持、多种线程调度器的选择、丰富的同步原语、可选择的内存分配方式和线程管理函数。
线程调度器是ecos内核的主要内容之一,它定义了线程运行的方式,提供了线程同步的机制,它也控制中断如何影响线程执行。
由于没有一种调度器可以覆盖所有应用场合的系统配置,所以eCos提供了三种调度策略来满足不同应用的需要。
目前,运行时的ecos只支持一种调度器,将来eCos可能会允许多 6 第二章水环境监测终端的实时操作系统种调度器运行时共存。
三个调度器分别是:·位图(BITMAP)调度器:位图调度使用一个位(Bit)来表示一个线程的状 态,每个线程有一个独一无二的优先级,不同的线程,优先级也不同,因此 使用位图调度时,ecos所允许的线程数是有限的共32级。
这种调度器适合 线程较少的应用,且每个线程都需要严格的优先级。
它是目前嵌入式操作系 统系统中广泛使用的一种调度器,也是效率最高的调度器。
·多级队列(MLQ)调度器:多级队列调度是基于队列的多优先级调度,它 可以支持任意多的线程。
多个线程可以拥有同一个优先级,同一优先级的线 程使用先来先服务(FcFs)的原则调度。
多级队列调度适合线程数动态变 化的系统中,它可以支持优先级继承,优先级共32级。
从应用的角度看, MLO是BITMAP的超集,是对BITMAP的扩充,但是内部实现上较BITMAP 复杂。
·奖券(L0rrERY)调度器:这种调度器目前还在测试中,eCos供了源代码, 但是并不支持对这种调度的配置。
奖券调度根据每个线程所持的“奖券”数 量分配处理器时问。
eCos操作系统是多线程内核,同步原语是多线程程序设计的必要条件,ecos提供一套符合POsIx标准的线程同步原语:●互斥锁(Mutex):用来控制多个线程对共享资源(全局变量、不可重入函数 等)的使用,它可以保证在某段时问内,只有一个线程拥有对共享资源的控 制权。
·条件变量(condition Variables):用来同Mutex联合使用,已完成对某些资 源的较长时间等待。
●信号量(Semaphore):信号量是一个资源计数器,当某线程获取某信号量时, 信号量计数首先减1,如果计数小于O,那么该线程被阻塞:当某线程释放 某信号量时,信号量计数首先加1,如果计数小于或等与0,那么唤醒某被 阻塞的线程并执行之·邮箱(MailBox):动态开辟一段内存空间,用来存放一些特定的数据,邮 箱指向这个内存空间,并在线程之间传递。
·消息队列(Message queue):和邮箱的功能相似,区别是传递的不是指针, 广东工业大学工学硕士学位
论文 而是数据本身,存放数据的内存空间,~开始就分配好了。
在同步控制函数或者线程控制函数的作用下,线程状态的迁移如图2.1所不。
图2.1线程状态机 Fig.2-l Thrcad S诅tes Machine Chart2.4建立eCos的开发环境2.4.1 ecos源代码安装及环境变量设置 eCos系统交叉开发的宿主机(Host)须采用Linu)(操作系统,如果要在windows下开发可以采用两种方式模拟Linux系统:(1)在Windows平台上安装cyg州n这个软件,它能把Linll)(操作转换成windows操作;(2)使用vmware建立一个windows下的虚拟Pc机,然后在虚拟机上安装Linll)【,第二方法更接近真实的Linux环境,也比第一种方法稳定。
ecos的源代码可以从cygnus网站或其镜像网站下载,根据源代码
压缩方 第二章水环境监测终端的实时操作系统式用tar xjl汀ecos一2.0.taLbz2或tar xzvf ecos一2-o t跹gz解压
源代码。
为了访问和管理的方便,推荐将eCos的源码及其配置工具(CoIlfiguration Tools)安装在Linux的/o口t目录下面。
安装ecos源代码之后,需要设定eCos环境变量的内容。
这些环境变量的作用相当于、矾ndows操作系统的注册表信息,它向Linux系统注册配置工具的路径、ecos组件库的路径、交叉开发工具的路径等必要的信息。
环境变量的
注册文件是/root目录下的.bashrc(该文件是隐藏文件),在不改变.basllrc原有信息的基础上添加如下内容: PATH=伽utools/bin:,0p忱cos/ecos-2.o/t00l怕in:,usr,local/a帆/2.95.3/bin:¥PATH ECO啦POsITORY=,opt,ecos,“s,ccos,packages export PATH Ec0啦POsITORY环境变量在下次Linux启动时以root权限登录后生效,其他登录身份应该修改类似,bashrc注册文件。
2.4.2 eCos交叉开发工具链的编译 eCos交叉工具链使用GNUPr0的全套开发工具,它包含了编译、连接、调试等相关工具,这套工具链也是
开源代码,开发人员从网上得到的通常为源代码文件,在使用前需要进行解压编译。
G1州Pro的
全套工具的代码包括④叮u binary utilities、gcc、NewLib、GDB,得到这些源码包后将其解压,newlib解压后得到newlib.1.12.0目录,将该目录下的Ⅱewlib和libgloss子目录移动到gcc解压后得到的GCC一3.3.1目录下。
这两个子目录下有binary utilities、gcc都需要的库。
源代码转换成可执行文件需要进行编译。
G〕N1 7Pm支持的CPU架构很多,包括x86、ARM、MIPS、PowerPC等, 因此编译时,需要根据不同的CPU架构指定相应的编译关键字ta唱et。
表2—1是不同cPu架构对应的ta唱et关键字。
CPu架构 ta曙et关键字 ARM a丌n.elf Intel x86 i386.elf Matsushita AM30 mnl0300.elf 9 三童三些奎兰三兰堡圭兰竺丝兰 Motor01a 68K/ColdFire m68k-elf MIPS32 miosa32.elf NECV850 V850_elf NEC VR4300 mips64vr4300—elf PowerPC powerpc-eabj RenesaS H8/300H h8300.elf Renesas SuperH sh.elf 表2.1 GNUPm编泽参数 Tab.2-1 GNUPm Compile Par锄eter这里以ARM架构为例说明工具链的编译安装:11配置GNUb访utils /src,binums一2.1 5/co而gure~target=a舯一elf-一prefix=,gnutooIs-v2>&1陋 configure.out2)编译并安装GNu binutils mal【e—.W a11 itlstall 2>&l tee make.out3)将binutils所在的路径配置到P删变量 w汀H=儋nutooIs/bin:¥n灯H Export P!ATH41配置GCC工具 /src/GCC一3.3.1/configure—ta唱et=釉·elf__prefix=gnutools__enable·langu ages=c,c++一wim-印u—as—with-gnu-ld—wim-newlib一州th—gxx-include—di r_/gnut001s协m-el扰nclude_v 2>&1tee configure.out5)编译并安装GCC工具 make—w all install 2>&l{tee make.out6)配置GDB /src/insi曲t·6.1/configure—target_arIll-elf__prefix=/gnut001s-v2>&l ltee c011】jgure.out7)编译并安装GDB make—_w allinstall》&1 ltee make.out 10 第二章水环境监测终端的实时操作系统2.4.3 eCos的调试方法 ecos提供一个RedBoot启动代码,RedBoot内包含了一段GDB sTuB代码。
GDB sTuB是了宿主机(Host)上运行的GDB与目标板(Ta唱et)上所调试
程序之间的媒介。
GDB和GDB STUB通过GDB串行协议进行
通信。
GDB串行协议是一种基于消息的AscII码协议,包含了诸如读写内存、查询寄存器、运行程序等命令。
宿主机上GDB的调试指令通过串口下达到目标板上的GDBSn_IB,由GDB STUB代理控制被调试程序,并返回控制结果。
ecos应用程序的具体调试方法是.