(系统工程专业论文)由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理.pdf_第1页
(系统工程专业论文)由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理.pdf_第2页
(系统工程专业论文)由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理.pdf_第3页
(系统工程专业论文)由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理.pdf_第4页
(系统工程专业论文)由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理.pdf_第5页
已阅读5页,还剩90页未读 继续免费阅读

(系统工程专业论文)由嵌入式Internet接入技术和GIS实现远程水环境监测和水质信息管理.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 为了提高水环境监测和管理的信息化和自动化水平,本论文研究由嵌入式 i n t e m e t 接入技术和g i s 实现远程水质监测和水质信息管理。论文主要围绕远程 嵌入式水质监测终端的软件平台和水环境信息管理系统两个方面展开讨论,内 容涉及当前计算机技术的几个“热点”领域嵌入式实时操作系统,嵌入式 t c p i p 协议栈,地理信息系统,以及水质预测模型。 本论文为嵌入式水质监测设备引入一款优秀的实时操作系统e c o s ,详 细分析了这个开源实时操作系统的结构,移植原理,交叉工具链的构建方法, 并针对嵌入式水质监测终端试验板的硬件资源,描述了e c o s 在该终端上移植、 开发、调试的具体步骤;为了实现水质监测终端能接入i n t e m e t ,论文讨论怎样 将开源t c p i p 协议栈l w i p 成功移植到e c o s ,使之成为该操作系统的一个标准 模块。因为e c o s 和l w i p 软件基础的支持,嵌入式水质监测设备应用程序开 发得以简化,并可以保证应用程序的稳定可靠。 针对水环境系统中,河流、水库、湖泊等较强的地理特征,本论文尝试着 将地理信息系统( g i s ) 融入水环境信息管理当中,改变当前水质数据单一的 数据报表格式,使水环境信息平台更加直观形象,简单易用。论文详细分析了 m a p i n f 0 系列工具实现数字地图的一次开发和二次开发步骤,以及地理信息系 统与水环境信息管理系统的融合方法。 在文章的晟后,给出了一种b p 神经网络预测水质数据的建模方法,该方 法针对河流的特点,采用时间序列加空问序列建模,预测模型输入输出之间有 较强的因果关系,并能对突发污染事件的后续效应作出较准确的预测。 作者希望,以上几点研究内容能帮助改善日益恶化的水环境现状。 关键词:水环境远程监测,嵌入式系统,e c o s ,l w i p ,地理信息系统,m 印i n f 0 , b p 人工神经网络。 一: 三至三些查兰三兰堡圭兰堡篁兰 a b s t r a c t t bi m p r o v et h ei 州b l a t i o n i z a t i o no fw a t e re n v i r o n m e n ts u p e r v i s i o n ,t t l i st h e s i s p r o p o s c sas y s t e mo fw a t e re n v i r o 姗e n tr e m o t em o n “o ra n dw a t e rq u a l i t yd a t a m a n a g e m e n tw h i c hb a s e so ne l b e d d e di n t e m e tc o n n e c t i n gt e c l l f l i ca 1 1 dg i s ( g l o b a l i n f o r n l a t i o ns y s t e m ) t h i st h e s i si n c l u d e s 州m a r i l ye m b e d d e do p e r a t i o ns y s t e m , e m b e d d e dt c p i ps t a c k sa n dg i s 、v h i c ha r eh o t 矗e l d so fc o m p u t e rt e c h n i ci nt h e s e y e a r s t bc o 肌e c t 血ew a t e rr e m o t em o n i t o rt e n 】1 i n a lo ni m e h l c t ,f i r s t l yt l l i st h e s i s r e s e a r c ht h ea c l l i c t i c t u r co fe c o sw h i c hi sa ne x c e l l e n to p e ns o u r c er t o s ( r e a l t i m e o p e r a t i o ns y s t e m ) ,a 1 1 dr e s o l v e sh o w t op o ne c o so nt l l eb o a r do f m et e m i n a l ;t h e ni a d dt c p 佃p a c k a g e st oe c o sb ya d o p i n gl w i p ,w h j c hi sv e r y 锄a j la j l dc o m p e l e d t c p i ps t a c k s ,e s p e c i a l l ys u i t a b l ef i o re m b e d d e da p p l i c a t i o n b o t h 。e c o sa n dl w i p c a i lm a k et h ed e v e l o p m e mo f 印p l i c a t i o ns o f h a r es i m p l ea i l dm b u s t i o u s t b e c a u s e t h er i v e r sa r eg e o g r a p h j c a lo b j e c t s ,iu s eg i st od e s i g nt h ew a t e re n v i r o m e n t i n f b 瑚a t i o nm a t l a g e m 锄ta n dc o n n e c tg i sw i t hd a t a b a s e 1 1 1 i st h e s i sd j s c u s s e st h e w a y h o w t ob u i l t g i sb y m 印i n f 0s e r i e s t o o l sc o m b i n e d w i t h v co r a s p ( v b s c r i p t ) w h e nt h eu s e r so p e nt i l i s s o r w a r e ,t h e yw o u l ds e eab e a u t i 血1d i g i t a lm a p r a t h e r t h a i la 1 1 yi n p u tb o x s u s e r sc a ng c td a t at h e yn e e db yo p e r a t et h ed i g i t a lm a p ,a n dt h e d a t ao f w a t e rq l l a j i t ye v e nc a nd i s p i a yo nt 1 1 ed i g i t a lm a pb yc h a r t so rd i 丘e r e n tc o l o r s i nt 1 1 el a s tc h a p t e r ,ia d o p tb pn e u r a ln e 脚o r kt of o r e c a s tt h ew a t e rq u a l 时d a t a b p n c u r a ln e t w o r ki sw i l d l yu s e dt ow a t e r q u a l i t yd a t af o r e c a s t ,b u ti nt l l i st h e s i s ,ig i v e ad i 腩r e n tm e t t l o dt od e s i g nn e t w o r k b y 血i sm e t h o d ,b pn e u r a ln e t w o r kh a ss t m n g c a u s a t i o nb e t w e e ni n p u ta n do u t p u td a t a t h j sm e t h o dc a ni m p r o v et h ev e r a c i t yo f f o r e c a s t i n g b e s i d e s ,t h i sb pn e u r a in e t w o r ki se v e na b l et of o r e c a s tt h ec o n s e q u e n c e o ff a c u l a f i v ew a t e rp o l l u t i o n ih o p ea l lo f 山e s ec a nd os o m e t h 血gt os t o p 廿l e d e p r a v a t i o no f w a t e re n v i r o n i n e n t k e y w o r d s :w a t e re n v i m 咖e n tr e m o t em o n i t o r ,e m b e d d e ds y s t e m ,e c o s ,l w i p , g i s ,m 即i n f o ,b pa n i f i c a ln e u m ln e 帆k 第一章绪论 第一章绪论 1 1 本研究课题的背景和意义 水是生命之源,是人类赖以生存的必要条件,而我国是水资源短缺的国家, 人均水资源量只有2 2 0 0 立方米,仅为世界平均水平的1 4 ,全国8 0 左右的污 水未经处理直接排入水域,1 ,3 以上的河段受到污染,9 0 以上城市水域污染严 重,近5 0 的重点城镇水源地不符合饮用水标准。近3 0 年中,我国工业迅猛 发展,水资源的需求量在迅速地增加,同时由于环保观念淡薄,导致主要污染 物排放量居高不下。全国污水排放总量,国家环保总局的统计是【2 】:2 0 0 1 年为 4 2 8 亿吨,2 0 0 4 年为4 8 2 亿吨,3 年增长了1 2 6 ;水利部的统计是【3 l :2 0 0 1 年为6 2 6 亿吨,2 0 0 4 年为6 8 0 亿吨,3 年增长了8 6 ,尽管两个部门对绝对 排放量的统计不完全一致,但都显示污水排放呈较快增长趋势。根据专家的预 测,如果任由水环境恶化下去,那么到2 0 1 0 年,中国将成为一个严重缺水的 国家m 一,这将直接影响我国经济的可持续发展,并潜在地危害人民身体健康。 事实上,北方的很多省份目前已经出现了缺水的现象。刚制定的“十一五”规 划也提出花大力气建设资源生态保护和环境治理重点工程。因此我国水环境治 理正面临巨大压力。 面对新时期工业发展给环保工作带来的压力,我国的水环境监测体系和能 力都虽然已有一定的基础,还存在一些急待解决的问题。从技术层面上来讲, 主要集中在自动化程度低,咀及信息处理的及时性与环保工作的要求不相适应 两个方面。 本沦文所讨论的采用嵌入式i n t e m e t 连接技术实现的水质远程监测系统, 以及基于地理信息系统的水环境信息管理系统,可以周期性、即时性地获取水 质数据,尽早发现水质的异常变化,为管理决策提供方便快捷的数据支持,及 时锁定污染源,为防止下游水质进一步污染迅速作出预警、预报,从而把污染 事故遏制于萌芽阶段。 广东工业大学工学硕士学位论文 1 2 水环境自动监测的发展现状 水环境监测区域广,监测站点分散,给信息的采集和管理部带来了困难。 实现数据的远程采集,进而实现包括数据传输、处理在内的整个流程的自动化, 是水环境监测系统所要解决的核心问题之一。数据的远程采集可以有多种实现 方式,而在这一工作中如何利用i m e m e t ,是当前国内外自动化领域的研究热点。 国外在这方面的研究开展较早,基于i n t e m e t 的远程数据采集技术在能源、 工业、医疗、环境监测等领域都得到了广泛的应用。国外一些公司生产的水环 境监测设备,也对基于i n t e m e t 的远程监测提供了支持。例如s e v e mn e n t 公司 的s e r i e r s l o o o h l 和m a t 2 0 0 0 【5 】,前者具有远程通讯和控制能力,用户使用p c 机通过i i l t e m e t ,可以处理和监视测量数据,诊断和维护监测设备;m a t 2 0 0 0 则是一种拖车式的可移动水环境监测站,通过p c 机对监测数据进行采集、记 录后,就可以使用密码从i n t e m e t 上进行访问。文献 6 则提出了一种基于微 控制器的多传感器测量系统。它可以对表征水环境的不同参数进行测量,同时 还可以将测量得到的数据在i n t e m e t 上发布。整个系统在结构上可以划分为三 部分,即传感器单元( 测量p h 值、温度和浑浊度) ,数据采集、处理单元和通 讯单元,以及r t l 8 0 1 9 网卡,系统还具有g s m 通讯的能力。 从水环境监测系统的实际应用看,世界上许多国家都建立了以监测水环境 污染综合指标及某些特定项目为基础的水环境污染自动监测系统。如日本东京 的水环境自动监测系统m ,监测中心可以对各个监测站的采样进行控制,控制 的内容包括接通或断开电源,切换采样泵,反向洗涤过滤网等。各监测站每隔 十分钟向监测中心传送一次数据,然后由位于监测中心的计算机对数据进行处 理。而在泰晤士河流域水环境自动监测系统中川,计算机利用无线通讯技术控 制各水环境自动监测站,每隔一段预先设定好的时间,就向各处监测站发出采 集数据或执行其他任务的命令。发生污染事件期间,还可在控制室内用人工启 动的办法增加数据采集的次数,该系统在治理污染水道、防止污染事故和保护 鱼群方面发挥了重要的作用。 国内对水环境自动监测和水环境信息系统管理的研究始于上世纪八十年 代,它在水资源的管理、开发方面发挥了重大的作用。由于投资庞大,因此主 要由政府兴建,用于重点水域的监测和管理,或者在大型的水利工程中作为配 第一章绪论 套系统进行建设。对于前者,如中国环境监测总站根据国家环保总局的要求, 在松花江、辽河、海河、淮河、黄河、长江、太湖、巢湖和滇池等主要江河流 域、湖泊建成的几个水环境自动监测站。这些监测站主要对水温、p h 和浊度等 八项指标实施监测,并提供水环境自动监测周报。对于后者,如东深供水工程 和南水北调工程中兴建的水环境自动监测系统。东深供水工程水环境自劝监测 系统设两个中心站,三个子站。中心站包括计算机及系统软件、避雷器和供电 电源等。子站则配备远程有线数据终端、多参数水环境监测仪、避雷装置及供 电系统,通信使用东深供水局的微波网络嗍。而南水北调工程配套的水环境自 动监测系统目前仍处于建设阶段。其中,位于河南省淅川县的陶岔水环境监测 站是南水北调工程上建成的第座自动水环境监测站。该监测站配有先进的水 环境自动在线监测设备,可以2 4 小时不问断实施水环境自动监测,监测数据通 过卫星同步传送到国家环境监测总站,从而实现对引水水环境的实时连续监测 和远程同步监控【9 】。设备方面,西安交通大学生命科学与技术学院分离科学研 究所承担的国家教育部“行动计划”、西安交通大学培植项目m ,:顺序注射自动 监测水质化学需氧量( c o d ) 、氨氮和p h 集成仪器项目,于2 0 0 5 年4 月研制成 功了国内第一台先进的水质自动监测仪样机。该集成仪器选用工控机系统,在 软件上采用先进的数据处理技术使仪器具有自动化程度高、抗干扰能力强、显 示内容丰富等特点。同时具有自检、自校正、温度补偿、数据储存和信息传输 等智能化功能。该项目采用了化学分析领域新近发展的顺序注射分析方法,实 现了在线同时监测水中化学需氧量,氨氮和p h 三个指标。 但是就目前的使用状况看,国内自动化水环境监测主要有几点,有待迸一 步提高:设备的国产化水平较低,几乎都采用国外设备进行后期系统集成;数 据传输采用专用网络,出现“信息孤岛”,不便于多部门资源共享协调工作;水 环境信息管理形式单一,采用传统的报表式的数据库查询,没有充分体现水环 境的地理特征;只管理历史和当前水质数据,不具有对水质数据的预测、预报 能力。 1 4 本课题研究对象的总体框架 本课题研究的,基于嵌入式i n t e n l e t 接入技术和g i s 实现远程水污染自动 广东工业大学工学硕= 匕学位论文 监测及信息管理系统的整体框架如图1 1 所示 图1 1 系统结构 f i g 1 1s y s t e ma r c m t e c t l l r e 信息传送的大致过程是:远程水质监测终端以设定的时间间隔对该点水质 进行采样检测,通过i n t e m e t ( i m e m e t 连接入方式可以有多种) 试图连接水环 境监控数据中心,如果连接失败,就将检测数据通过嵌入式文件系统将数据保 存在监测终端的f l a s h 中:如果连接成功,就将所有未发送数据发送到数据中 心服务器,并等待数据中心反馈发送结束或者其它控制指令。通讯协议为t c p 协议,远程监测终端由e c o s 和l w i p 软件支持,信息管理中心由m f c 的c s o c k e t 类实现。信息管理中心使用g i s 加s q ls e r v e r 或a c c e s s 对数据进行维护和计 算,同时将数据以w e b g i s 方式在网络上发布,用户通过任何连接在i n t e m e t 上 的电脑使用i e 等网页浏览器查询数据。 1 5 本课题的主要研究内容 利用i n t e m e t 实施大范围的自动水环境监测,是网络技术在环境监测领域 的一种新的应用形式,然而水环境监测自动化是包含了化学分析、物理分析、 计算机测控技术、网络通讯技术等多个学科的综合性课题。基于i n t e m e t 的远 第一章绪论 程水环境监测系统要真正的投入运行,还需要解决一系列的关键技术。本文仅 就作者在该课题研究中涉及到一些问题进行探讨,主要包括以下几个方面: 1 ) 研究水环境监测终端硬件平台上嵌入式实时操作系统移植,为应用软件开发 奠定基础; 2 ) 研究水环境监测终端上t c p ,i p 协议栈的实现,以达到将水环境监测终端接 入i n t e m e t : 3 ) 分析水环境信息管理中心的功能和模块划分,探讨使用v c 开发工具设计水 环境信息管理中心的思路和具体方法: 4 ) 研究构建基于g i s 的水环境信息管理系统,探讨m a p i n f 0 数字地图一次开 发和二次开发的原理和方法: 5 ) 研究b p 人工神经网络算法对水质数据进行预测的建模方法。 课题来源: 1 ) 区域水质优化复杂大系统的监测与控制国家自然科学基金项目 ( 6 0 5 7 4 0 5 2 ) 2 ) 水环境治理复杂系统的监测与总量控制广东省科技计划项目 ( 2 0 0 5 8 3 3 3 叭0 0 8 ) 3 ) 水质预测复杂大系统的模拟与控制及其算法研究广东省自然科学基金项 目( 0 5 0 0 18 2 0 ) 广东工业大学工学硕士学位论文 第二章水环境监测终端的实时操作系统 2 1 引言 水环境监测终端是典型嵌入式应用,嵌入式操作系统是嵌入式设备的软件 基础。在嵌入式操作系统的基础上开发应用软件,可以简化软件开发难度,能 规范软件开发流程,更为重要的是操作系统的支持能提高嵌入式设备的稳定性 和可靠性m 】。而移植嵌入式操作系统是嵌入式应用的难点。本章引入了一款优 秀的r 1 o s e c o s ,并探讨其在水环境监测终端试验板上的移植。 2 2e c o s 简介 e c o s ( e m b e d d e dc o n f i g u r a b l e0 p e r a t i n gs y s t e m ) 由c y g n u s 公司开发,19 9 7 推出第一个版本。绝大多数内核代码使用c + + 完成。它是一款针对1 6 位、3 2 位和6 4 位处理器的可移植、开源而且免费的嵌入式r 1 o s 。e c o s 最大的特点是 模块化可配置,与嵌入式l i n u x 相比,e c o s 是专门为嵌入式应用而设计,体积 相当小巧,一个完整的网络应用,其二进制的代码在1 0 0 k 字节左右。同时e c o s 提供l i n u x 兼容的a p i ,方便开发人员轻松地将l i n u x 应用程序移植到e c o s 。 与“c o s 相比较,e c o s 体系更加完备,以2 0 版本为例,e c o s 包含了文件系 统、常用驱动、常见处理器架构抽象层和完整的开发工具链等”】。 2 3e c o s 内核 e c o s 具备一个功能全面的、灵活的、可配置的实时内核。这个内核提供了 多线程支持、多种线程调度器的选择、丰富的同步原语、可选择的内存分配方 式和线程管理函数。 线程调度器是e c o s 内核的主要内容之一,它定义了线程运行的方式,提供 了线程同步的机制,它也控制中断如何影响线程执行。由于没有一种调度器可 以覆盖所有应用场合的系统配置,所以e c o s 提供了三种调度策略来满足不同应 用的需要。目前,运行时的e c o s 只支持一种调度器,将来e c o s 可能会允许多 6 第二章水环境监测终端的实时操作系统 种调度器运行时共存。三个调度器分别是: 位图( b i t m a p ) 调度器:位图调度使用一个位( b i t ) 来表示一个线程的状 态,每个线程有一个独一无二的优先级,不同的线程,优先级也不同,因此 使用位图调度时,e c o s 所允许的线程数是有限的共3 2 级。这种调度器适合 线程较少的应用,且每个线程都需要严格的优先级。它是目前嵌入式操作系 统系统中广泛使用的一种调度器,也是效率最高的调度器。 多级队列( m l q ) 调度器:多级队列调度是基于队列的多优先级调度,它 可以支持任意多的线程。多个线程可以拥有同一个优先级,同一优先级的线 程使用先来先服务( f c f s ) 的原则调度。多级队列调度适合线程数动态变 化的系统中,它可以支持优先级继承,优先级共3 2 级。从应用的角度看, m l o 是b i t m a p 的超集,是对b i t m a p 的扩充,但是内部实现上较b i t m a p 复杂。 奖券( l 0 r r e r y ) 调度器:这种调度器目前还在测试中,e c o s 供了源代码, 但是并不支持对这种调度的配置。奖券调度根据每个线程所持的“奖券”数 量分配处理器时问。 e c o s 操作系统是多线程内核,同步原语是多线程程序设计的必要条件, e c o s 提供一套符合p o s i x 标准的线程同步原语: 互斥锁( m u t e x ) :用来控制多个线程对共享资源( 全局变量、不可重入函数 等) 的使用,它可以保证在某段时问内,只有一个线程拥有对共享资源的控 制权。 条件变量( c o n d i t i o nv a r i a b l e s ) :用来同m u t e x 联合使用,已完成对某些资 源的较长时间等待。 信号量( s e m a p h o r e ) :信号量是一个资源计数器,当某线程获取某信号量时, 信号量计数首先减1 ,如果计数小于o ,那么该线程被阻塞:当某线程释放 某信号量时,信号量计数首先加1 ,如果计数小于或等与0 ,那么唤醒某被 阻塞的线程并执行之 邮箱( m a i l b o x ) :动态开辟一段内存空间,用来存放一些特定的数据,邮 箱指向这个内存空间,并在线程之间传递。 消息队列( m e s s a g eq u e u e ) :和邮箱的功能相似,区别是传递的不是指针, 广东工业大学工学硕士学位论文 不。 而是数据本身,存放数据的内存空间,开始就分配好了。 在同步控制函数或者线程控制函数的作用下,线程状态的迁移如图2 1 所 图2 1 线程状态机 f i g 2 - lt h r c a ds 诅t e sm a c h i n ec h a r t 2 4 建立e c o s 的开发环境 2 4 1e c o s 源代码安装及环境变量设置 e c o s 系统交叉开发的宿主机( h o s t ) 须采用l i n u ) ( 操作系统,如果要在 w i n d o w s 下开发可以采用两种方式模拟l i n u x 系统:( 1 ) 在w i n d o w s 平台上安 装c y g 州n 这个软件,它能把l i n l l ) ( 操作转换成w i n d o w s 操作;( 2 ) 使用v m w a r e 建立一个w i n d o w s 下的虚拟p c 机,然后在虚拟机上安装l i n l l ) 【,第二方法更 接近真实的l i n u x 环境,也比第一种方法稳定。 e c o s 的源代码可以从c y g n u s 网站或其镜像网站下载,根据源代码压缩方 第二章水环境监测终端的实时操作系统 式用t a rx j l 汀e c o s 一2 0 t a l b z 2 或t a rx z v fe c o s 一2 - ot 跹g z 解压源代码。为了访问 和管理的方便,推荐将e c o s 的源码及其配置工具( c o i l f i g u r a t i o nt o o l s ) 安装 在l i n u x 的o 口t 目录下面。 安装e c o s 源代码之后,需要设定e c o s 环境变量的内容。这些环境变量的 作用相当于、矾n d o w s 操作系统的注册表信息,它向l i n u x 系统注册配置工具的 路径、e c o s 组件库的路径、交叉开发工具的路径等必要的信息。环境变量的注 册文件是r o o t 目录下的b a s h r c ( 该文件是隐藏文件) ,在不改变b a s l l r c 原有信 息的基础上添加如下内容: p a t h = 伽u t o o l s b i n :,0 p 忱c o s e c o s - 2 o t 0 0 l 怕i n :,u s r ,l o c a l a 帆2 9 5 3 b i n :$ p a t h e c o 啦p o s i t o r y = ,o p t ,e c o s ,“s ,c c o s ,p a c k a g e s e x p o r tp a t he c 0 啦p o s i t o r y 环境变量在下次l i n u x 启动时以r o o t 权限登录后生效,其他登录身份应该修改 类似,b a s h r c 注册文件。 2 4 2e c o s 交叉开发工具链的编译 e c o s 交叉工具链使用g n u p r 0 的全套开发工具,它包含了编译、连接、调 试等相关工具,这套工具链也是开源代码,开发人员从网上得到的通常为源代 码文件,在使用前需要进行解压编译。 g 1 州p r o 的全套工具的代码包括叮ub i n a r yu t i l i t i e s 、g c c 、n e w l i b 、g d b , 得到这些源码包后将其解压,n e w l i b 解压后得到n e w l i b 1 1 2 0 目录,将该目录 下的e w l i b 和l i b g l o s s 子目录移动到g c c 解压后得到的g c c 一3 3 1 目录下。这 两个子目录下有b i n a r yu t i l i t i e s 、g c c 都需要的库。 源代码转换成可执行文件需要进行编译。g n 17 p m 支持的c p u 架构很多, 包括x 8 6 、a r m 、m i p s 、p o w e r p c 等,因此编译时,需要根据不同的c p u 架 构指定相应的编译关键字t a 唱e t 。表2 1 是不同c p u 架构对应的t a 唱e t 关键字。 c p u 架构 t a 曙e t 关键字 a r ma 丌n e l f i n t e lx 8 6i 3 8 6 e l f m a t s u s h i t aa m 3 0m n l 0 3 0 0 e l f 9 三童三些奎兰三兰堡圭兰竺丝兰 m o t o r 0 1 a6 8 k c o l d f i r e m 6 8 k - e l f m i p s 3 2 m i o s a 3 2 e l f n e c v 8 5 0v 8 5 0 _ e l f n e cv r 4 3 0 0 m i p s 6 4 v r 4 3 0 0 e l f p o w e r p c p o w e r p c - e a b j r e n e s a sh 8 3 0 0 h h 8 3 0 0 e l f r e n e s a ss u p e r hs h e l f 表2 1g n u p m 编泽参数 t a b 2 - 1g n u p m c o m p i l ep a r 锄e t e r 这里以a r m 架构为例说明工具链的编译安装: 1 1 配置g n u b 访u t i l s s r c ,b i n u m s 一2 15 c o 而g u r e t a r g e t = a 舯一e l f - 一p r e f i x = ,g n u t o o i s - v 2 & 1 陋 c o n f i g u r e o u t 2 ) 编译并安装g n ub i n u t i l s m a l 【e wa 1 1i t l s t a l l2 & lt e em a k e o u t 3 ) 将b i n u t i l s 所在的路径配置到p 删变量 w 汀h = 儋n u t o o i s b i n :$ n 灯h e x p o r tp ! a t h 4 1 配置g c c 工具 s r c g c c 一3 3 1 c o n f i g u r e t a 唱e t = 釉e l f _ _ p r e f i x = g n u t o o l s _ _ e n a b l e l a n g u a g e s = c ,c + + 一w i m - 印u a s w i t h - g n u - l d w i m - n e w l i b 一州t h g x x - i n c l u d e d i r _ g n u t 0 0 1 s 协m - e l 扰n c l u d e _ v2 & 1 t e ec o n f i g u r e o u t 5 ) 编译并安装g c c 工具 m a k e wa l li n s t a l l2 & l t e em a k e o u t 6 ) 配置g d b s r c i n s i 曲t 6 1 c o n f i g u r e t a r g e t _ a r i l l - e l f _ _ p r e f i x = g n u t 0 0 1 s - v 2 & ll t e e c 0 1 1 】j g u r e o u t 7 ) 编译并安装g d b m a k e _ wa l l i n s t a l l & 1l t e em a k e o u t 1 0 第二章水环境监测终端的实时操作系统 2 4 3e c o s 的调试方法 e c o s 提供一个r e d b o o t 启动代码,r e d b o o t 内包含了一段g d bs t u b 代 码。g d bs t u b 是了宿主机( h o s t ) 上运行的g d b 与目标板( t a 唱e t ) 上所 调试程序之间的媒介。g d b 和g d bs t u b 通过g d b 串行协议进行通信。g d b 串行协议是一种基于消息的a s c i i 码协议,包含了诸如读写内存、查询寄存器、 运行程序等命令。宿主机上g d b 的调试指令通过串口下达到目标板上的g d b s n _ i b ,由g d bs t u b 代理控制被调试程序,并返回控制结果。 e c o s 应用程序的具体调试方法是:将r e d b o o t 的二进制文件烧写到目标板 的f i 船h 中,并连接主机和目标机的串口,启动目标板后,主机就可以使用 g n m p r o 的调试软件g d b 通过串口下载应用程序并进行在线调试。以这种方 式进行调试,无论什么架构的c p u ,都只需要一根交叉串日线,省去昂贵的 c p u 专用仿真器。g d b 提供了丰富的调试指令,能满足常规调试需要的众多 功能。下面是加载应用程序并进行调试的必用指令,更详细的g d b 指令参看 文献 1 1 【1 2 。 h o s p 咖一e l f g d bm y p r o g r a m( m y p r o 掣a m 是要加载e c o s 应用程序) g d b s e tr e m o t e b a u d5 7 6 0 0 ( 译置串口波特率为5 7 6 0 0 ) g d b t a r g e tr e m o t e d e v ,竹s o( d e v t t y s 0 是串口0 ) g d b ) l o a d ( 加载) g d b c o n l i n u e( 运行) 从上面的分析我们可以看出,e c o s 的开发环境非常类似于l i n u x 的开发环 境,都使用g n u p r o 提供的工具。熟悉l i n l l ) ( 的程序员几乎不用学习,便可进 行e c o s 应用程序开发。与其他开发工具的编译器相比较,g n u p m 的效率都 是领先的,甚至超过很多商业软件。但是g n u p r o 目前的开发环境都是文本界 面下的,操作都是指令方式,没有商业软件相似的i d e ,所以人机界面差,对 于习惯了w i n d o w s 操作方式的程序员来说,学习难度大,使用也不方便。但相 信随着开源软件的发展,这个问题会逐步改善。 广东工业大学工学硕士学位论文 2 5e c o s 在水环境监测终端上的移植 2 5 1 水环境监测终端试验板的硬件配置 由于半导体技术的迅猛发展,芯片的集成度越来越高,使用更简单,硬件 主板设计的工作量越来越少,主要集中在由频率提高带来的电磁兼容问题。与 此同时,硬件功能的发展,给软件开辟了广阔空间,软件功能越来越强,越来 越复杂,几乎占了嵌入式开发8 0 的工作量,所以本文主要讨论软件的问题。 这里只给出水环境监测终端试验板的主要硬件配置,以便很好的阐述e c o s 的移 植。 c p u :s 3 c 4 4 b o ,a r m 7 内核,工作频率6 0 m h z ,集成5 个时钟定时器, 集成串口,集成a ,d : f l a s h :s s t 3 9 v 1 6 0 1 ,容量2 m b ,地址分配o x o o 0 0 0 0 0 0 o x 0 0 1 f f f 毪 s d r a m :h y 5 7 v 6 4 1 6 2 0 h ,容量8 m b ,地址分配o x c 0 0 0 0 0 0 0 o x c 0 7 觥: 接口:r t l 8 0 1 9 a s ,速度1 0 m b s 地址分配0 x 6 0 0 0 0 0 0 0 u s b 接口:p d i u s b d l 2 ,u s b l 1 规范,1 2m b s 2 5 2e c o s 移植原理和方法 因为嵌入式设备的硬件都是根据实际应用专门设计的,不同于通用p c 安装 操作系统,只需把光盘放入光驱,键入s e t u p 那样简单。嵌入式应用的操作系 统是小部分连接硬件的接口代码,再加绝大部分硬件无关的内核和各功能模块。 所以e c o s 系统的移植,就是在认真研究硬件资源的基础上编写一些连接内核和 硬件的连接层代码,其层次结构如图2 2 。e c o s 的连接层被称为硬件抽象层 ( h a l :h a r d w a r ea b s t r a c tl a y ) ,该层为一组特定的程序代码,向下直接控制 和访问硬件,向上通过一组宏对硬件无关的功能模块进行支持。对硬件无关性 代码来说,底层的c p u 架构和平台特定信息是透明的。这样设计可以简化e c o s 在不同目标主板上的移植。 第二章水环境监测终端的实时操作系统 硬件无关的内核、功能模块 f 一 、1 连接层驱动程序 flfl 硬件 图2 2 层次结构图 f i g 2 - 2l a y e ra r c h t e c t l l r e 因为同样的c p u 体系架构下有不同型号的c p u 芯片,同样型号的c p u 芯 片可以设计成不同外部资源的嵌入式电路主板。所以为尽量实现代码的重用, e c o s 的硬件抽象层分为三层:体系层( a r c h i t e c t u r e ) 、实现层( i m p l e m e n t a t i o n ) 、 平台层( p l a t f o m l ) 。体系层对应基本的c p u 结构,它包含一类c p u 体系的操 作代码,如x 8 6 、a r m 、p o w e r p c 等;实现层对应具体型号芯片内部资源, 如a r m 体系的s 3 c 4 4 b o 芯片;平台层对应一个定型的嵌入式开发板的资源, 如本文讨论的远程水质监控终端的试验板。这三者之间的界限并不是很清晰, 也不必严格区分。在当前的h a l 结构中,有独立的目录树分别对应于体系层 和平台层。而实现层大多利用条件编译技术将其内容分布在前两者的目录中。 它们之间互相联系,最突出的一个例子是v s r ( 向量服务例程) 。v s r 本身在 体系层内实现,但是它可能需要和定义在平台层或实现层内的中断控制器协商 来选择运行正确的i s r 。整个协商过程一般只需要几条指令,所以用条件编译 就可以实现。总的来说h a l 需要完成的工作主要包含以下几方面: 定义与体系( a r c h i t e c t u r e ) 相关的细节,如该体系编译器的字长定义: 访问通用i o 设备,例如系统时钟; 与线程上下文( t 1 1 r e a dc o n t e x t ) 相关的细节,如线程上下文初始化、线程 间上下文切换等: 平台( 具体的硬件主板) 的初始化; 对g d b 支持的细节,以及如何与g d b 交互; 缓存支持,h a l 支持标准的指令缓存和数据缓存,具体的细节与平台 相关; m m u 支持,虽然e c o s 并不需要m m u 的存在来使其正常工作,但有些体 广东工业大学工学硕士学位论文 系( 如a r m 9 ) 使用m m u 管理缓存,这时h a l 必须提供这种支持; 内存分布,说明存储设备的地址分配和容量大小; 中断及异常处理,这包括中断的绑定、中断使能函数等。 因为以上这些在不同的开发板上是基本不变的,所以h a l 的程序框架是相 同的,变化的只是框架下的内容。根据这一特性,在移植e c o s 前,先选择一个 c p u 特性相似的h a l 代码,在研究这一个h a l 并比较两款c p u 的差异的基 础上进行修改。这样可以大大简化e c o s 移植难度和工作量。 每款目标板的h a l 都属于e c o s 的一个或多个包( p a c k a g e ) ,这些包必须 在p a c k a g e s 的数据库文件e c o s d b 中用c d l 语言加以描述,同时每个目标平台 ( 开发板) 必须描述一个目标平台模板,它用来说明该平台必须包含的功能包。 这个模板也需要在e c o s d b 中进行描述,只有这样在c o n f l g t o o l 中刁有这个目标 平台的选项。 移植e c o s 的一个原则是:在移植初期阶段尽量减少系统的功能,仅仅包含 必要的功能模块,这便于调试跟踪时集中目标发现程序出错位置。待基本功能 调试通过后再一步步添加和调试别的功能模块。 2 5 3e c o s 在水环境监控终端上的移植实现 针对本文件前面介绍的水环境监控终端的硬件配置,给出e c o s 移植的实现 步骤。 1 ) 搭建硬件抽象层的框架。在a r m 硬件抽象层目录下创建新的文件夹, 命名为s 3 c 4 4 b 0 ,将o p 讹c o 眈c o s 2 o p a c k a g e s h a 妇h 1 1 e 7 t 中的所有内容拷贝到 o p “e c o s e c o s 一2 o ,p a c k a g e s h a l 柚1 1 s 3 c 4 4 b o 中,因为e 7 t 的硬件平台的c p u 采 用s 3 c 4 5 l o ,与s 3 c 4 4 b 0 同为三星公司产品,结构上有许多相似之处。将s 3 c 4 4 b o 文件名中的e 7 t 字样全部更改为s 3 c 4 4 b o ,例如将h a la n ne 7 t c d l 改成 h a l _ a n n _ s 3 c 4 4 b 0 c d l 。 f 一步就要将s 3 c 4 4 b o 目标平台添加到e c o s p a c k a g e s 目标下的e c o s d b 文 件中,e c o s d b 文件包含了对e c o s 目前所支持的硬件平台的概括描述。c o n f i g u r e t o o l 可以从这个文件中读取e c o s 支持的硬件平台模板。e c o s d b 文件中使用 c d l 语言来描述硬件平台模板。下面就是在e c o s d b 文件末尾添加的s 3 c 4 4 b o 第二章水环境监测终端的实时操作系统 平台的描述语句: p a c k a g ec y g p k g h a l _ a r m l s 3 c 4 4 b o a 1 豁 a r ms 3 c 4 4 b o ”h a l _ a 1 _ s 3 c 4 4 b oa 兀1 1 - s 3 c 4 4 b o _ h a l d i f e c t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论