(精密仪器及机械专业论文)基于嵌入式操作系统的无线传感器网络研究.pdf_第1页
(精密仪器及机械专业论文)基于嵌入式操作系统的无线传感器网络研究.pdf_第2页
(精密仪器及机械专业论文)基于嵌入式操作系统的无线传感器网络研究.pdf_第3页
(精密仪器及机械专业论文)基于嵌入式操作系统的无线传感器网络研究.pdf_第4页
(精密仪器及机械专业论文)基于嵌入式操作系统的无线传感器网络研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(精密仪器及机械专业论文)基于嵌入式操作系统的无线传感器网络研究.pdf.pdf 免费下载

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

文档简介

大连理t 大学硕士学位论文 摘要 传感器技术、嵌入式计算技术和无线通信技术的进步孕育了无线传感器网络( w s n , w i r e l e s ss e n s o rn e t w o r k ) 。它能够实时监测、采集和处理待监测区域的特定环境信息, 是当前国际上备受关注的研究热点之一。无线传感器网络的设计趋势是针对特定的应用 而并不是普遍的应用。随着无线传感器网络的广泛应用,硬件平台结构差异很明显。因 此需要节点上的无线传感器网络软件系统必须具备很好的移植性,引入嵌入式操作系统 可以很好地解决这一问题,所以无线传感器网络操作系统的研究是很有必要的。 目前,嵌入式实时操作系统种类繁多,本课题选用的是源代码公开的实时操作系统 z c o s i i 。它是一个完整的、可移植的、可固化的和可裁剪的多任务操作系统。本文以 基于3 2 位a r m 微处理器l p c 2 1 3 8 和c o s i i 操作系统的无线传感器网络系统设计为主 要内容,阐述了其具体技术和相关实现方法。首先研究了# c o s i i 源代码,详细论述了 z c o s i i 操作系统移植到l p c 2 1 3 8 的方法和过程。同时针对操作系统的优先级反转问题 提出了解决方案,构建出基于a r m 处理器和z c o s i i 操作系统的传感器节点平台。在此 平台基础上,结合无线传感器网络体系结构以及操作系统任务划分思想,提出一种系统 软件设计方案,主要包括协议栈任务划分和应用任务的设计。实现了任务间的通信机制。 同时,分析了数据链路层的不足并作出相应的改进,最后对系统进行了整体优化,使系 统资源得到更合理的应用,运行更加稳定可靠。 论文最后对基于z c o s i i 的无线传感器网络系统进行了测试,实验结果显示无线传 感器网络运行稳定可靠。可以看出操作系统移植正确、任务划分合理。对协议栈不足的 改善和系统整体的优化都得到了很好的验证。 关键i t - 无线传感器网络;g c 0 s i i ;移植;协议栈;a r m 基丁嵌入式操作系统的无线传感器网络研究 n er e s e a r c ho nw i r e l e s ss e n s o rn e t w o r kb a s e do n e m b e d d e do p e r a t i n gs y s t e m a b s t r a c t w i r e l e s ss e n s o rn e t w o r kw h i c hi sm a d eb yt h ec o n v e r g e n c eo fs e n s o rt e c h n o l o g y e m b e d d e dc o m p u t i n g t e c h n o l o g ya n dw i r e l e s s c o m m u n i c a t i o nt e c h n o l o g y , i san o v e l t e c h n o l o g ya b o u tm o n i t o r i n g ,a c q u i r i n ga n dp r o c e s s i n gav a r i e t yo fs p e c i f i ce n v i r o n m e n t a l i n f o r m a t i o nt ob em o n i t o r e d ,i th a sb e c o m eo n eo ft h ef r o n tf i e l d st or e c e r c h d e s i g nt r e n do f w i r e l e s ss e n s o rn e t w o r ki st h es p e c i a la p p l i c a t i o nr a t h e rt h a ng e n e r a la p p l i c a t i o n s w i t ht h e e x t e n s i v ea p p l i c a t i o no fw i r e l e s ss e n s o rn e t w o r k s ,t h es t r u c t u r eo fh a r d w a r ep l a t f o r mi s o b v i o u sd i f f e r e n c e s ot h es o f t w a r es y s t e mo nt h ew i r e l e s ss e n s o rn e t w o r kn o d em u s th a v ea v e r yg o o dp o r t a b i l i t y ,e m b e d d e do p e r a t i n gs y s t e mc a ns o l v et h i sp r o b l e m ,s ot h er e s e a r c ho f t h ew i r e l e s ss e n s o rn e t w o r k o p e r a t i n gs y s t e mi sn e c e s s a r y a tp r e s e n t ,t h e r ea r em a n yt y p e so fe m b e d d e dr e a l t i m eo p e r a t i n gs y s t e m ,t h et o p i c c h o s e sa l lo p e ns o u r c er e a l t i m eo p e r a t i n gs y s t e m z c o s i i ,w h i c hi sac o m p l e t e ,p o r t a b l e m u l t i t a s k i n go p e r a t i n gs y s t e m t h em a i nc o n t e n to ft h i sp a p e ri sw i r e l e s ss e n s o rn e t w o r k s y s t e md e s i g nb a s e do na3 2 - - b i ta r mm i c r o p r o c e s s o rl p c 2 1 3 8a n dt h e t c o s - i io p e r a t i n g s y s t e m e x p l a i n e dt h es p e c i f i ct e c h n o l o g i e sa n dr e l a t e di m p l e m e n t a t i o n s f i r s t ,d i s c u s s e s d e t a i l e so fm e t h o d sa n dp r o c e s s e sf o rt h e # c o s i io p e r a t i n gs y s t e mt r a n s p l a n t a t i o n a tt h e s a m et i m e ,s o l v et h ep r o b l e mo fp r i o r i t yi n v e r s i o nf o ro p e r a t i n gs y s t e m ,b u i l do u tt h es e n s o r n o d ep l a t f o r m p u tf o r w a r das y s t e ms o f t w a r ed e s i g nm e t h o db a s e do nw i r e l e s ss e n s o rn e t w o r k a r c h i t e c t u r ea n do p e r a t i n gs y s t e mt a s kp a r t i t i o n ,w h i c h i n c l u d i n gp t o t o c o l s t a c ka n d a p p l i c a t i o n st a s kd e s i g n ,i m p l e m e n t st h ec o m m u n i c a t i o nm e c h a n i s mb e t w e e nt a s k s a tt h e s a m et i m e ,a n a l y z et h ed a t al i n kl a y e ra n dm a k eac o r r e s p o n d i n gl a c ko fi m p r o v e m e n t ,t h ef i n a l o p t i m i z a t i o no ft h es y s t e mm a k i n gt h es y s t e mm o r er a t i o n a lu s e f u lo fr e s o u r c e s f i n a l l y ,t h ep a p e rh a st e s t e dt h ew i r e l e s ss e n s o rn e t w o r ks y s t e m ,e x p e r i m e n t a lr e s u l t s s h o wt h a tw i r e l e s ss e n s o rn e t w o r ks y s t e mo p e r a t es t a b l ya n dr e l i a b l y ,w h i c hp r o v e dt h a t s y s t e mm i g r a t i o ni sc o r r e c ta n dt a s kd i v i s i o ni sr e a s o n a b l e i m p r o v e m e n to fp r o t o c o la n d o p t i m i z a t i o no fs y s t e mh a v e b e e nv e r i f i e dc o m m e n d a b l y k e yw o r d s :w s n ;c o s - i i ;t r a n s p l a n t a t i o n ;p r o t o c o ls t a c k ;a r m i i 大连理工大学学位论文独创性声明 作者郑重声明:所呈交的学位论文,是本人在导师的指导下进行研究 工作所取得的成果。尽我所知,除文中已经注明引用内容和致谢的地方外, 本论文不包含其他个人或集体已经发表的研究成果,也不包含其他已申请 学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的贡献 均已在论文中做了明确的说明并表示了谢意。 若有不实之处,本人愿意承担相关法律责任。 学位论文题目: 基王遨盛握簋苤统的歪绫笾盛墨圆签盟究一 一 作者签名:盘圣日期:竺! ! 年兰月生日 大连理工大学硕士学位论文 大连理工大学学位论文版权使用授权书 本人完全了解学校有关学位论文知识产权的规定,在校攻读学位期间 论文工作的知识产权属于大连理工大学,允许论文被查阅和借阅。学校有 权保留论文并向国家有关部门或机构送交论文的复印件和电子版,可以将 本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、 缩印、或扫描等复制手段保存和汇编本学位论文。 作者签名:盘! 导师签名:金垒受 日期:竺竺2 年j l 月旦日 日期:星盟年j 生月堕日 大连理工大学硕士学位论文 1 绪论 1 1 课题的背景及研究意义 1 1 1 课题的研究背景 近年来,m e m s 、无线通信、信息网络与集成电路等技术的进步,推动了低本、 低功耗、多功能的无线传感器网络【1 j ( w i r e l e s ss e n s o rn e t w o r k s ,简称w s n ) 的迅速发 展。w s n 是由部署在监测区域内大量的廉价传感器节点以无线通信方式构成的一个自 组织网络系统,通过节点间协作地感知、采集和处理网络区域中被监测对象的信息,并 发送给需要这些信息的远端用户,以便及时地处理和综合相关信息。在微小体积内能够 集成信息采集、数据处理和无线通信等多种功能,为我们提供了一个全新的分布式信息 搜集和处理平台。这项技术的发展有力地推动了低速率无线个人区域网的发展,也将根 本改变工业控制、测控、环境检测、汽车、医学等短距无线网络应用现状,广阔的应用 前景掀起了国内外对无线传感器网络的研究热潮。商业周刊预测的未来四大新技术 中,w s n 也在其中1 2 ,j j 。 无线传感器网络操作系统是w s n 的基本软件环境,目标是设计一套通用的系统框 架,同时将应用程序模块化,以适应硬件的多样性。无线传感器网络操作系统作为上层 应用程序的运行基础,主要负责管理节点和网络中的软硬件资源,因此成为影响系统成 败的重要因素。 1 1 2 课题的研究意义 无线传感器网络已经引起世界上许多国家军界、学术界和工业界的高度重视,成为 一个公认的新兴前沿热点研究领域。未来,无线传感器网络将向空、海、陆一体化综合 传感器网络的方向发展,最终将成为现实世界和数字世界的接口,深入到人们生活的各 个层面,像互联网一样改变人们的生活方式。 无线传感器网络在现实广泛应用中所带来的诸多新问题给研究者提出了严峻的挑 战。设计基于嵌入式操作系统的无线传感器网络协议栈就是其中之一。因为不同的应用 会导致传感器节点构成差异,这就需要无线传感器网络节点上的软件协议必须具备很好 的移植性和较低的开发难度,同其他操作系统一样,无线传感器网络操作系统运行在传 感器网络节点上,实现了对物理资源的抽象,同时为系统提供了通用函数。如果没有传 感器网络操作系统,程序员就必考虑节点系统底层的实现方法,这无疑给传感器网络应 用的开发带来了困难。若程序员能在传感器网络操作系统平台上利用系统提供的构件接 基丁嵌入式操作系统的无线传感器网络研究 口直接开发应用程序,这将大大加快无线传感器网络应用程序的开发速度。因而开发基 于嵌入式操作系统的无线传感器网络软件系统不仅具有重要的科研理论价值,同时也具 有现实的指导意义。 1 2 无线传感器网络节点操作系统 1 2 1 无线传感器网络研究进展 无线传感器网络的研究起步于2 0 世纪9 0 年代末期,近十年来,随着技术的发展, 各种条件的成熟,使得无线传感器网络的应用越来越广泛,因此当前对无线传感器网络 的研究和开发已经成为信息领域的一个热点。国外的很多大学和组织都对传感器网络进 行了积极地探索,并取得了一定的成就。 美国加州大学伯克力分校研制了传感器网络m i c a 系列,包括超过8 0 0 个小型传感 器节点的测试床,同时研究出高效的传感器网络系统语言n e s c 和操作系统t i n y o s ,已 经被广泛地用于低功耗的无线传感器网络的研究和开发p7 j ;加州大学洛杉矶分校开发 了一个无线传感器网络和一个无线传感器网络模拟环境,用于考察传感器网络各方面的 问题【8 ,9 l ,他们提出了不依赖于网络拓扑结构的分布式系统技术、支持多应用传感器网 络中命名数据和网内数据处理的软件结构以及白组织传感器网络的设计问题和解决方 法等。2 0 0 4 年3 月英特尔公司演示了家庭护理的无线传感器网络系统。该系统通过在家 中家具和电气设备中嵌入半导体传感器,帮助老龄人士和残障人士的家庭生活,利用无 线通信将各传感器联网可高效传递必要的信息,从而方便接受护理。 近几年来,我国也非常重视无线传感器网络的发展,关于无线传感器网络的应用研 究几乎与发达国家同步启动,国家自然科学基金委员会、国家发改委、科技部、信息产 业部等,均启动了在无线传感器网络及自组织网络领域的研发项目。在2 0 0 6 年初发布 的国家中长期科学与技术发展规划纲要为信息技术确定了三个前沿方向,其中两个 与无线传感器网络的研究直接相关,即智能感知技术和自组织网络技术,可见对无线传 感器网络的重视程度。目前,国内一些高等院校与研究机构己积极投入力量,开展无线 传感器网络的相关研究工作,主要有中科院上海微系统研究所、中科院软件所、计算所、 浙江大学、哈尔滨工业大学、中科院自动化所、西北工业大学、大连理工大学等。研究 热点主要集中在传感器网络组网、路由、分簇、数据查询等算法的仿真,实际应用于真 正硬件平台的网络并不多见。从总体来讲,国内关于传感器网络的研究还处于刚刚起步 的阶段,许多技术还不是非常成熟,但作为一门新兴技术,国内与国外水平的差距并不 大连理工大学硕+ 学位论文 是很大,及时开展这项对人类未来生活影响深远的前沿科技的研究,对国家的信息科技 发展将具有重大的战略意义1 1 0 l 。 1 2 2 嵌入式操作系统的发展 嵌入式操作系统伴随着嵌入式系统的发展经历了4 个比较明显的阶段。 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、 指示设备相配合的功能。这一阶段系统的主要特点是:系统结构和功能都相对单一,处 理效率较低,存储容量较小,几乎没有用户接口。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。这一阶 段系统的主要特点是通用性比较差、系统效率高、操作系统具有一定的兼容性和扩展性、 用户界面不够友好、系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特点是兼 容性好、操作系统内核精小、具备文件和目录管理、多任务、开发应用程序简单等。 第四阶段是以基于i n t e m e t 为标志的嵌入式系统,这是一个j 下在迅速发展的阶段。 目前大多数嵌入式系统还孤立于i n t e m e t 之外,但随着i n t e m e t 的发展以及i n t e m e t 技术 与信息家电、工业控制技术等结合日益密切,嵌入式设备与i n t e m e t 的结合将代表着嵌 入式技术的真正未来。 1 2 3 常见的嵌入式操作系统 国外嵌入式操作系统已经从简单走向成熟,主要有v x w o r k s 、比c o s i i 、l i n u x 、 w i n d o w sc e 、p a l m o s 等。国内的嵌入式操作系统研究开发有2 种类型,一类是基于 国外操作系统二次开发完成的,如海信的基于w i n d o w sc e 的机顶盒系统;另一类是中 国自主开发的嵌入式操作系统,如凯思集团公司的h o p e no s ( “女娲计划”) 等。一般 情况下,嵌入式操作系统可以分为两类,一类是面向控制、通信等领域的实时操作系统; 另一类是面向消费电子产品的非实时操作系统。 v x w o r k s 操作系统是美国w i n d r i v e r 公司于1 9 8 3 年设计开发的一种嵌入式实时操 作系统( r t o s ) ,具有良好的持续发展能力、高性能的内核以及友好的用户开发环境, 在嵌入式实时操作系统领域牢牢占据着一席之地。v x w o r k s 所具有的显著特点是可靠 性、实时性和可裁减性。它支持多种处理器,如x 8 6 、i 9 6 0 、s u ns p a r c 、m o t o r o l am c 6 8 x x x 、 m i p s 、p o w e rp c 等等。以其良好的可靠性和卓越的实时性被广泛地应用在通信、军 事、航空航天等高精尖技术及实时性要求极高的领域中。 ,l c o s i i 是专门为嵌入式应用设计的实时内核,适用于几乎所有8 位、1 6 位、3 2 位单片机,与硬件无关的代码用c 语言写成,用汇编语言写硬件相关的代码,m c o s i i 基丁嵌入式操作系统的无线传感器网络研究 v 2 5 2 通过了美国航空航天管理局的安全认证,是一个具有可移植、抢占式、高实时、 多任务等特点的内核结构。它提供了6 4 个优先级,并用优先级来标识任务,完成进程 的调度。它提供时间管理,任务管理,进程间通讯,内存管理等基本功能1 1 1 ,1 2 j 。 l i n u x 是一套以u n i x 为基础发展而成的操作系统。是开放源码和免费使用的。嵌 入式l i n u x ( e m b e d d e dl i n u x ) 是指对l i n u x 经过小型化裁剪后,能够固化在容量只有几百 k 字节或几兆字节的存储器芯片或单片机中。 w i n d o w sc e 是一种针对移动式、智能化的模块化实时嵌入式操作系统1 1 3 ,1 4 j 。为 掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,属于 软实时操作系统,操作系统的基本内核需要至少2 0 0 k 的r o m 。 p a l mo s 是著名的网络设备制造商3 c o m 旗下的p a l mc o m p u t i n g 掌上电脑公司的 产品。它是一套专门为掌上电脑编写的操作系统,充分考虑到了掌上电脑内存相对较小 的情况,所以p a l m 操作系统本身所占的内存很小,基于p a l m 操作系统编写的应用程序 所占的空间也很小,通常只有几十k b ,因此基于p a l m 操作系统的掌上电脑虽然只有几 兆内存却可以运行众多的应用程序。p a l mo s 在p d a 市场上占有很大的市场份额,代 表性的产品有p a l mm 5 0 5 、p a l mm 5 0 0 、p a l mi i i 等。 1 2 4 引入嵌入式操作系统的意义 嵌入式实时操作系统在目前的嵌入式系统中用的越来越广泛,尤其在功能复杂、系 统庞大的应用中显得愈来愈重要。因此在嵌入式系统中加入实时操作系统是很有意义 的,嵌入式实时操作系统的主要优点有: ( 1 ) 嵌入式实时操作系统提高了系统的可靠性。在安全性较高的控制系统中,要求系 统起码不能崩溃,而且还要有自愈能力。这不仅要求在硬件设计方面提高系统的可靠性 和抗干扰性,而且在软件设计方面也应该提高系统的抗干扰性,尽可能地减少安全漏洞 和不可靠的隐患。传统的前后台系统软件设计在遇到强干扰时,容易导致程序异常、出 错、跑飞,甚至死循环,造成了系统的崩溃。而在嵌入式实时操作系统管理的系统中, 只会破坏若干进程中的一个,可以通过系统运行的系统监控进程对其进行修复。通常情 况下,这个系统监视进程用来监视各进程运行状况,遇到异常情况时采取一些利于系统 稳定可靠的措施,如把有问题的任务清除掉i l 引。 但) 嵌入式实时操作系统提高了系统的开发效率,缩短了开发周期。在嵌入式实时操 作系统环境下,开发一个复杂的应用程序,通常可以按照软件工程中的分解原则将整个 程序分解为多个任务模块。每个任务模块的调试、修改几乎不影响其他模块。商业软件 一般都提供了良好的多任务调试环境。嵌入式实时操作系统使应用程序的设计和扩展变 大连理工大学硕十学位论文 得容易,通过将应用程序模块划就可以实现应用程序的添加,不需要大的改动就可以增 加新的功能,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了 快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好 的利用。 ( 3 ) 嵌入式实时操作系统充分发挥了3 2 位c p u 的多任务潜力。3 2 位c p u 比8 、1 6 位c p u 快,另外它本来是为运行多用户、多任务操作系统而设计的,特别适于运行多 任务实时系统。3 2 位c p u 采用利于提高系统可靠性和稳定性的设计,使其更容易做到 不崩溃。例如,c p u 运行状态分为系统态和用户态。将系统堆栈和用户堆栈分开,以及 实时地给出c p u 的运行状态等,允许用户在系统设计中从硬件和软件两方面对实时内 核的运行实施保护。如果还是采用以前的前后台方式,则无法发挥3 2 位c p u 的优势。 从某种意义上说,没有操作系统的计算机是没有用的。在嵌入式应用中,只有把c p u 嵌入到系统中,同时又把操作系统嵌入进去,才是真j 下的计算机嵌入式应用。 1 3 本文研究内容及论文结构 为提高无线传感器网络通信的可靠性、协议栈的可移植性,同时降低开发难度,提 出一种基于嵌入式操作系统m c o s i i 的系统设计方案。本文围绕m c o s i i 操作系统和 通信协议栈的研究而展丌,对a c o s i i 操作系统内核结构进行了详细的分析,重点阐述 了基于c o s i i 和l p c 2 1 3 8 的移植、任务划分以及任务设计的方法,主要内容包括: ( 1 ) 结合l c o s i i 操作系统和l p c 2 1 3 8 微处理器的各自要求,提出了移植的合理方 案,在移植过程中用c 和汇编语言编写了一些与处理器相关的代码。 ( 2 ) # c o s i i 是一个基于任务优先级抢占式调度的操作系统,本文整体分析了协议 栈和应用程序的框架结构,按照其重要性以及实时性进行了任务模块化设计和任务优先 级的设定。 ( 3 ) 分析了数据链路层任务中数据传输的误回复原因,提出了改善措施,从而提高 数据通信的可靠性和稳定性。 ( 4 ) 结合操作系统的可裁剪性,根据本系统的具体应用对b c o s i i 进行了优化配置, 同时也对协议栈代码进行了重新优化整合,降低了系统的资源丌销,提高了利用效率。 本文的内容安排如下: 第一章作为绪论,简单介绍了无线传感器网络的研究进展及应用。介绍了嵌入式操 作系统的发展以及几种常见的操作系统的结构特点,最后说明了引入操作系统的意义。 第二章介绍了本文所使用的* c o s i i 操作系统的内核结构,并对移植操作系统到 l p c 2 1 3 8 处理器上的过程进行了详细阐述,还提出了改进操作系统的具体方案。 基于嵌入式操作系统的无线传感器网络研究 第三章简单介绍了无线传感器网络的体系结构,随后针对操作系统模块化思想策略 对协议栈和应用程序进行了任务划分以及优先级的设定,还提出了对操作系统和协议栈 的具体优化方法。 第四章针对嵌入式无线传感器网络系统进行了实验测试,验证了系统的稳定性和可 靠性。论文最后给出了结论。 6 一 大连理:l 人学硕士学位论文 2 嵌入式实时操作系统l ac o s - i l 及其移植 j u c o s i i ( m i r c o c o n t r o l l e ro p e r a t i n gs y s t e mv e r s i o n2 ) 是由美国人j e a nj l a b r o s s e 编写的一个源代码公开的微内核嵌入式实时操作系统,它结构清晰、注释详细,具有 良好的可扩展性和可移植性【1 6 1 。被广泛应用在各个领域。程序开发人员可以根据自己的 要求对其进行改写和裁减,g c o s i i 对于学校研究完全免费,特别适合一般使用者的学 习、研究和开发。比c o s i i 的特点主要包括以下几个方面: ( 1 ) 源代码公开,源代码清晰易读且组织有序,有详细的注释,适合初学者学习。 ( 2 ) n 7 剥夺型,肛c o s i i 完全是可剥夺型内核,因此l c o s i i 具有很强的实时性。 ( 3 ) 稳定性和可靠性高,抗干扰能力强。 ( 4 ) 良好的移植性,g c o s i i 的绝大部分源代码是用移植性很强的a n s ic 编写的, 使得c o s i i 便于移植到其它处理器上。 ( 5 ) 可裁剪,用户可以根据自己的实际需要对, u c o s i i 源代码进行裁剪,这样使得 c o s i i 具有很强的灵活性,适合各种中小型系统。 2 1 嵌入式实时操作系统uc o s i i 内核结构 多任务系统中,内核( k e r n e l ) 负责管理各个任务,或者说为每个任务分配c p u 时间, 并且负责任务之间的通信。内核提供的基本服务包括任务切换、管理系统资源、处理异 常和控制任务。内核对于操作系统来说相当于心脏对于人的关系,所以它是整个系统的 核心部分。所有应用程序都要围绕在它周围。内核对于系统的作用可以从两个不同的角 度来看:一方面,内核作为系统的核心,是一个可靠的资源管理者,系统资源可以在它 的帮助下得到高效利用。同时,实时操作系统的模块化思想可以大大简化应用程序的开 发,可以把应用分成若干个任务由内核进行管理;另一方面,内核本身也增加了应用程 序的额外负荷,因为内核提供的服务需要一定的执行时间,代码增加了r o m 的用量, 内核本身的数据结构也增加了r a m ( 数据空i b j ) 的用量。但更主要的是,每个任务要有自 己的栈空间,所以这一块是占用内存最多的。 本章从以下几个方面对内核进行介绍: ( 1 ) 临界区 当多个任务共享一个资源时,而某一时刻只能被一个任务访问,l c o s i i 采用关中 断的方法来处理临界区代码,以避免同时有其它任务或者中断来进入临界区,操作系统 定义了两个宏o s _ e n t e r _ c r i t i c a l ( ) 和o s e x i t _ c r i t i c a l 0 来关闭中断和打开中 断。 基于嵌入式操作系统的无线传感器网络研究 ( 2 ) 任务控制块t c b c o s i i 采用任务控制块的方式对任务进行管理的。任务控制块是一个数据结构, 创建任务时控制块被赋值,当任务的c p u 使用权被剥夺时,控制块用来保存任务的状 态,任务重新获得使用权时,它能够确保任务从被中断的那一点继续运行,o st c b 全 部保存在r a m 中。 ( 3 ) 就绪表 就绪表中存放每个任务的就绪态标志,就绪表中有两个变量o s r e d y g r p 和 o s r d y t b l i 。在o s r d y g r p 中,任务按优先级分组,8 个任务为一组。o s r d y g r p 中的 每一位表示8 组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表 o s r d y t b l q b 的相应元素的相应位也置位。就绪表o s r d y t b l 数组的大小取决于 o sl o w e s tp r l 0 。当用户的应用程序中任务数目比较少时,减少o sl o w e s tp r l 0 的值可以降低c o s i i 对r a m 的需求量。 为确定下次该哪个优先级的任务运行了,内核调度器总是将o sl o w e s tp r i o 在 就绪表中相应字节的相应位置1 。o s r d y g r p 和o s r d y t b l 之问的关系如图2 1 所示 f ( 炼r 电冲巾的位嚣圾照定 o s r d i b t l l 巾行颤蠢鸲位甏 图2 1 就绪表 f i g 2 1r e a d yt a b l e 一8 一 大连理工大学硕士学位论文 ( 4 ) 任务状态关系 嵌入式实时操作系统中的任务是具有独立功能的无限循环程序段。每个任务被赋予 不同的优先级,有它自己的一套c p u 寄存器和栈空间。c o s i i 可以管理6 4 个任务, 每个任务的优先级都必须不一样,因此共有6 4 个优先级,系统自身从中保留了四个最 高优先级和四个最低优先级供自己使用,所以用户可以使用的只有5 6 个任务。任务越 重要,赋予的优先级应越高,反应优先级的值则越低。 # c o s i i 下每个任务都有五种状态,分别是:睡眠态、就绪态、运行态、挂起态和 中断服务态。各个状态间可以通过调用# c o s i i 提供的服务函数来转换,如图2 2 所示: o s t a s k c r e a t e ( ) o s t a s k c r e a t e e x t o 挂起态 o s f l a g p o s t ( ) 0 s m b o x p o s t o o s m b o x p o s t o p t ( 1 o s m u t e x p o s t o o s q p o s “) o s q p o s t f r o n t o o s q p o s t o p y 0 o s s e m p o s t ( ) o s t a s k r e s u m e o o s t i m e t i c k ( ) o s s t a r t o o s i n t e x i t ( ) o s j a s k _ s w ( ) o s f l a g p e n d ( ) o s m b o x p e n d ( ) o s m u t e x p e n d ( ) 0 s q p e n d o o s s c m p e n d o o s t a s k s u s p e n d o o s t i m e d l y ( ) o s t i m e d l y h m s m o 中断 峻删撇嗍剥奠乡s “浮 o s t a s k d e l o 图2 2 任务状态 f i g 2 2 t a s ks t a t u s 睡眠态:是指任务驻留在程序空间,还没有通过调用o s t a s k c r e a t e 0 或 o s t a s k c r e a t e e x t 0 来交给c o s i i 来管理。 就绪态:通过调用o s t a s k c r e a t e 0 来创建一个任务,如果多任务已经启动,并且新 创建的任务优先级高于当前任何任务,则立即获得c p u 的使用权,进入就绪态。 基于嵌入式操作系统的无线传感器网络研究 运行态:系统调用o s s t a r t 0 启动多任务后,用户初始化代码中已经建立的、进入就 绪态的优先级最高的任务会进入运行态。任何时刻只能有一个任务处于运行态。 挂起态:是指任务因等待某一事件的发生而挂起,( 例如等待某共享资源变成有效 状态,等待定时脉冲的到来或等待超时信号的到来等等) 。 中断服务态:正在运行的任务是可以被中断的,除非该任务或者c o s - i i 将中断关 闭,被中断的任务于是进入了中断服务态,中断服务子程序控制了c p u 的使用权。 2 1 1任务管理 想要在u c o s i i 中运行一个新的任务,必须先创建一个任务,创建任务可以调用系 统功能函数o s t a s k c r e a t e 0 或o s t a s k c r e a t e e x t 0 ,要将任务的地址和其它参数信息传入 这两个函数之一,任务的创建可以在系统开始也可以在其它任务运行过程中。任务创建 之后,操作系统就会对它进行管理。 p c o s i i 是基于优先级调度的操作系统,每个任务根据其重要程度被赋予不同的优 先级。c o s i i 总是让处在就绪态的优先级最高的任务先运行。任务的调度是由调度器 ( s c h e d u l e r ) 完成的。m c o s i i 的任务调度包括任务级的调度o s s c h e d 0 和中断级的调 度o s i n t e x t 0 。 2 1 2 任务间通信与同步 任务间或中断服务与任务间有时需要进行通信。肛c o s i i 提供了许多种方法来实现 任务之间的通信。任务间信息的传递有两个途径:通过全程变量或者发送信号量消息给 另一个任务。 ( 1 ) 使用全程变量,必须保证每个任务或中断服务程序独享该变量。中断服务中保证 独享的唯办法是关中断。如果两个任务共享某变量,各任务实现独享该变量的办法可 以是关中断再开中断。任务只能通过全程变量与中断服务程序通信,而任务并不知道什 么时候全程变量被中断服务程序修改了,除非中断程序以信号量方式向任务发信号或者 是该任务以查询方式不断周期性地查询变量的值。要避免这种情况,可以使用邮箱或消 息队列。 ( 2 ) 使用信号量消息机制。利用信号量、邮箱和消息队列来进行任务间数据共享和 任务通信。 2 1 3 实时时钟服务 时钟节拍是特定的周期性中断。这个中断可以看作是系统心脏的跳动。中断之间的 时间间隔取决于不同的应用,一般在l o m s 到2 0 0 m s 之间。g c o s i i 需要周期性的定时 大连理工大学硕+ 学位论文 中断,它的延时与超时控制功能是通过定时中断实现的。时钟节拍频率越快,系统的额 外开销就越大,每次将任务延时只是在每个时钟节拍中断到来时对任务延时做一次裁决 而已。 。u c o s i i 的时钟节拍服务是通过在中断服务子程序中调用系统函数o s t i m e t i c k 0 来实现的。时钟节拍函数o s t i m e t i c k 0 主要完成以下几件事情:给每个用户任务控制块 o s t c b 中的时间延时项减1 。如果时间延时项减到o ,那么把这个任务的状态设置为 就绪态;调用o s t i m e 0 累加从开机以来的时间;任务延时函数o s t i m e d l y 0 用来将调用 该函数的任务延时一段时间,这段时间的长短由时钟节拍的数目来确定。除此之外,该 函数还会使t c o s i i 进行一次调度,并且执行下一个优先级更高的就绪态任务。 2 1 4 中断管理服务 中断管理是操作系统的一个核心和基本的功能,用于通知c p u 有个事件发生了。 中断一旦被识别,c p u 保存部分或全部现场然后跳转到专门的中断服务子程序( i s r ) 。 在, u c o s i i 中,中断服务子程序处理完事件后,程序会从进入就绪态的优先级最高的任 务开始运行。实时操作系统的中断管理有自己的特殊的要求,那就是中断处理程序要更 加短小、精悍,以减少中断禁止时间和中断延迟时间。 c o s i i 中与中断有关的系统函数包括进入中断函数o s i n t e n t e r 0 ,退出中断函数 o s i n t e x i t 0 及中断切换函数o s i n t c t x s w 0 等。进入中断函数o s i n t e n t e r 0 告知内核用户 在做中断服务,然后才能开始服务于申请中断的设备。而退出中断函数o s i n t e x i t ( ) 贝3 j 标 志着中断服务子程序的结束。 2 1 5 内存分配策略 在a n s ic 中可以用m a l l o c 0 和f r e e 0 两个函数动态地分配内存和释放内存。但是, 在嵌入式实时操作系统中,多次这样做会把原来很大的一块连续内存区域逐渐地分割成 许多非常小而且彼此又不相邻的内存区域,也就是内存碎片。由于这些碎片的大量存在, 使得程序到后来连非常小的内存也分配不到。 在t c o s i i 中,操作系统把连续的大块内存按分区来管理。每个分区中包含有整数 个大小相同的内存块。利用这种机制,z c o s i i 对m a l l o c 0 和f r e e o i 函数进行了改进,使 得它们可以分配和释放固定大小的内存块。如图2 - 3 所示,在一个系统中可以有多个内 存分区。这样,用户的应用程序就可以从不同的内存分区中得到不同大小的内存块。但 是,内存块在释放时必须重新放回到它以前所属于的内存分区。显然,采用这样的内存 管理算法,就可以解决上面的内存碎片问题了。 基于嵌入式操作系统的无线传感器网络研究 分区1分区2分区3分区4 图2 3 多个内存分区 f i g 2 3m u l t i p l em e m o r yp a r t i t i o n 2 2 1 tc 0 s i i 在l p c 2 13 8 上的移植 c o s 1 1 只是一个操作系统的内核,并不能像其它操作系统一样只提供a p i 函数供 用户使用。所以首先需要将内核移植到微处理器或微控制器上,这样才能扩展成实用的 操作系统。因为比c o s i i 在读写处理器寄存器时只能通过汇编语言来实现,所以尽管大 部分的, u c o s i i 代码是用c 语言写的,但仍需要用c 和汇编语言写一些与处理器相关 的代码。 2 。2 1 移植对处理器的要求 要移植, c o s i i ,处理器必须满足以下要求【1 7 j : ( 1 ) 处理器的c 编译器能产生可重入代码。可重入的代码指的是一段代码可以被多 个任务同时调用,而不必担心数据会被破坏。 ( 2 ) 用c 语言就可以打开和关闭中断。在a r m 7 t d m i 的处理器上,可以设置相应的 寄存器来关闭或者打开所有系统中断。 ( 3 ) 处理器支持中断,并且能产生定时中断( 通常在1 0 至1 0 0 h z 之间) 。本系统中使 用的基于a r m 7 t d m i 核的l p c 2 1 3 8 支持中断并能产生1 0 至1 0 0 h z 之间的定时中断。 ( 4 ) 处理器能够容纳一定量数据( 可能是几千字节) 的硬件堆栈。 大连理1 :大学硕七学位论文 ( 5 ) 处理器有将堆栈指针和其它c p u 寄存器读出和存储到堆栈或内存中的指令。 , u c o s i i 进行任务调度的时候,会把当前任务的c p u 寄存器存放到此任务的堆栈中, 然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。所以寄 存器的入栈和出栈是c o s i i 多任务调度的基础。 2 2 2 l ac o s - l l 移植主要内容 比c o s i i 的全部源代码量大约是6 0 0 0 7 0 0 0 行,共1 5 个文件。如图2 4 所示为 p c o s i i 硬件和软件的体系结构。从图中可以看出将h c o s i i 移植到a r m 处理器上, 需要修改三个与处理器体系结构相关的文件1 1 8 】,这三个文件是o sc p u h ( c 语言头文 件) o sc p ua a s m ( 汇编程序源文件) ,o sc p uc c ( c 程序源文件) 。 uc o s i i ( 与处理器无关的代码) so co ss e m c sc o r e co sf l a

温馨提示

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

评论

0/150

提交评论