




已阅读5页,还剩80页未读, 继续免费阅读
(轮机工程专业论文)嵌入式实时操作系统μcosⅡ的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 近年来,草片机的网络化在i t 业界扮演着很重要的角色。单片机处理器应用 程序功能同趋复杂化和精确化,加之处理器本身计算能力的提高,迫使应用程序 要划分为多个重要性不同的任务以分配c p u 时阳j 和系统资源,同时还要保证实时 性和可靠性。高性能的实时操作系统内核的出现解决了这一问题,缩短了产品的 丌发周期,提高了生产率。同时也为因特网与单片机系统的结合提供了平台。 本论文对嵌入式系统和嵌入式实时操作系统的发展进行了综述,设计了以嵌 入式操作系统u c o s i i 为平台的嵌入式应用系统。并详细溅明了本设计所用的嵌 入式实时操作系统u c o s 一以及在5 l 微处理器w 7 8 e 5 1 6 b 上的移植过程,浚操作 系统是实现嵌入式t c p i p 协议栈支持多用户、多任务的技术基础。 本文论汪了u c o s t i 的e t h e r n e t 方案的系统设计与实现。首先介绍丁 e t h e r n e t 接口控制模块的实现和e t h e r n e t 网卡驱动的实现。然后是对嵌入式 t c p i p 协议栈u i p 的介绍,主要包括对i n t e r n e t 协议标准中的以太网协议、a r p 、 1 p 、t c p 和i c m p 协议都做了详细的分析,以及利用嵌入式实时操作系统u c 0 5 一i i 的网络接口层的设计。 在深入研究嵌入式实时操作系统u c o s i i 应用的基础上,本文详细分析了超 文本传输协议h t t p ,给出了种单片机系统中实现嵌入式w e b 服务器的方法。实现 了在数据采集方面的应用,给出了硬件设计思路及客户端和服务器端的软件实现 方案。并且在系统中嵌入u s b 接口,实现采集数掂的动态便携存储,并且通过实 验以及调试,获得了成功。 关键词:单片机;u c o s - i | ;t o p i p ;嵌入式w e b 腿务器:数据采集 a p p l i c a t i o na n dr e a r c ho ft h ee m b e d d e dc o n t r o ls y s t e m a b s t r a c t r e c e n t l y ,t h ea p p l i c a t i o no fi n t e r a c to nm c ub e c o m e st h em o s ti m p o r t a n tp a r ti n l t w i t ht h ed e v e l o p m e n to fm c ua n dt h ea c c u r a c yo fa p p l i c a t i o n i t sn e c e s s a r yt o d i v i d ep r o g r a mi n t om a n yi m p o r t a n tt a s kr e s p e c t i v e l y i td i s t r i b u t e sc p ut i m ea n d s y s t e mr e s o u r c ei ne a c ht a s ke f f i c i e n t l y ,a tt h es a n l et i m e ;w em u s tr e a l i z er e a l t i m e t h n c t i o n a l i t ya n dr e l i a b i l i t yo fs y s t e m o p e r a r t i o ns y s t e m ( r t o s ) k e m e l ,w h i c h s h o r t e n st h ee m p o t d e rp e r i o do fp r o d u c ta n de n h a n c e sp r o d u c t i v ee f f i c i e n c y ,s o l v e st h e p r o b l e m ,h o w e v e r ,i ta l s os u p p l y st h ep o s s i b i l i t yo ft h ec o n n e c t i o nb e t w e e nm c ua n d i n t e r a c t t h et h e s i sd e s c r i b e st h eg e n e r a ld e v e l o p m e n te m b e d d e ds y s t e ma n dr t o s a n d d e s i g n s t h ea p p l i c a t i o no ft h ee m b e d d e ds y s t e mu c o s - i i i nt h ef o l l o w i n g ,t h e t r a n s p l a n to fu c o s i io de n h a n c e d8 0 5 l c o m p a t i b l em i c r o c o n t r o l l e rw 7 8 e 5 1 6 bi s d e s c r i b e di nd e t a i l t h i sm e n t i o n e do si st h eb a s eo fr e a l i z a t i o no fm u l t i - t a s k u s e r s u p p o r t o nt h ee m b e d d e dt c p ,i pp r o t o c o ls t a c k t h en e x tp a r ti n t r o d u c e ss y s t e m a t i cd e s i g na n dr e a l i z a t i o no fe t h e m e ts c h e m eo f u c o s i ii nd e t a i l f i r s t l y ,t h er e a l i z a t i o no ft h ec o n t r o lm o d u l eo fe h t e m e ti n t e r f a c e a n dn e t w o r kc a r di si n t r o d u c e d a n dt h e ne m b e d d e dt c p i pp r o t o c o ls t a c ku l pi s i n t r o d u c e d ,m a i n l yi n c l u d i n gad e t a i l e da n a l y s i so fs o m es t a n d a r di n t e m e tp r o t o c o l sl i k e e t h e m e t 、a r p 、i p 、t c pa n di c m p ,f i n a l l y ,t h er e a l i z a t i o no f n e ti n t e r f a c ed e s i g ni s g i v e ni nr t o s o nt h eb a s eo fr e s e a r c ho ft h ea p p l i c a t i o no fu c o s t i h y p e r t e x tt r a n s f e rp r o t o c o l h t t pi sd e s c r i b e di nd e t a i l a n dam e t h o dt or e a l i z ee m b e d d e dw e bs e r v e ri ns c m s y s t e mi sg i v e n a n dt h e nt h ea p p l i c a t i o no fd a t ac o l l e c t i o ni si n t r o d u c e di nd e t a i l t h e h a r d w a r ed e s i g na n dr e a l i z e ds c h e m eo fs e r v e r c l i e n ts o f t w a r ei sg i v e n a n dt h el a s to f t h i sp a r ti n t r o d u c e st h ea p p l i c a t i o no fu s bi ne m b e d d e dr t o s ,i n c l u d i n gt h ed e s i g no f i t ss o f t w a r ea n dh a r d w a r e t h r o u g ht h ed e b u g ,i th a ss u c c e e d e d k e yw o r d s :s c m ;u c o s i i ;t c p r p ;e m b e d d e dw e b s e r v e r ;d a t ac o l l e c t i o n 大连海事大学学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:本论文是在导师的指导下,独立进行研究工作所取得的成果,撰写 成硕t 学位论文“壁式塞啦逯堡丞笪! q 二! ! 笪塑童生廛周”。除论文中已经 泞明引用的内容外,对论文的研究做出重要贡献的个人和集体,均已在文中以明 确方式标明。本论文中不包含任何未加明确注明的其他个人或集体已经公丌发表 或未公开发表的成果。 本声明的法律责任由本人承担。 敝作者签名:琵 学位论文版权使用授权书 年3 月石f t 本学位论文作者及指导教师完全了解“大连海事大学研究生学位论文提交、 版权使用管理办法”,同意大连海事大学保留并向国家有关部门或机构送交学位 论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连海事大学可以将 本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或 扫描等复制手段保存和汇编学位论文。 保密口,在年解密后适用本授权书。 本学位论文属于:保密口 不保密彤请在以上方框内打“”) 论文作者签名:拓移导师签名:7 主秒 同期:年弓月1 貊 第1 章绪论 1 1 研究的背景与意义 随着数字化信息技术的不断发展和人们对同常生活水平要求的不断提高,人 们已经不再满足于各类仪表、家电等设备的常规功能,还希望能够实现远程的实 时控制、移动数据的存储和数掘采集等功能。 当前计算机技术的飞速发展和互联网技术的广泛应用使得p c 时代过渡到了以 个人数字助理、手持个人电脑和信息家电为代表的3 c ( 计算机、通信、消费电子) 一体的后p c 时代。嵌入式系统扮演了越来越重要的角色,嵌入式系统的开发也成 为近年i t 行业的技术热点。完成简单功能的嵌入式系统一般不需要操作系统。例 如,许多m c s 5 1 系列单片机组成的小系统就只是利用软件实现简单的控制环路。 但是,随着所渭后p c 时代的到来,嵌入式系统设计r 趋复杂,嵌入式操作系统就 必不可少了。 将嵌入式系统与以太网相结合应用于船舶,专要的困难存于当时的以太网在 速度、确定性等方面都有很大欠缺,不能满足船舶监控中通信网络的要求:另外, 备种网络通信协议对于嵌入式系统存储器容量、运算速度等的要求比较高,当时 的嵌入式系统中除部分3 2 位处理器以外,都无法达到这+ 要求。随着工业以太网 在速度上不断提高以及交换技术、全双工工作方式等技术的融入,以太网与工业 通信网络的差距正在逐步缩小;另外半导体技术和系统设计方法的不断提高,使 得单片机在内部结构、功率消耗以及制造工艺等诸多方面有了长足的进步。这 切让t c p i p 协议栈嵌入到单片机中成为可能,使嵌入式系统实现网络化。同时将 嵌入式操作系统移植到单片机中,这样不但系统有了智能性,而且将实时操作系 统建立在以网络通信为主的船舶监控方式中,可以大大提高船舶监控的实时行和 可靠性。 11 2 嵌入式系统及其操作系统 ( 一) 嵌入式系统 嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用, 软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性能有严格 要求的专用计算机系统。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入 式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”。 嵌入式处理器主要由一个单片机或微控制器( m c u ) 组成。相关支撑硬件包括显示 卡、存储介质、通信设备、i c 卡或信用卡读取设备等。 嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下, 系统仍然能够正常工作:许多嵌入式应用要求实时性,这就要求嵌入式操作系统 具有实时处理能力:嵌入式系统和具体应用有机地结合在一起,它的升级换代也 是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都 固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁 盘等载体中。 ( 二) 嵌入式操作系统 嵌入式操作系统( r e a l t i m ee m b e d d e do p e r a t i n gs y s t e m ,r t o s 或e o s ) 是 一种实时的、支持嵌入式系统应用的操作系统软件,它是嵌入式系统( 包括硬、 软件系统) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内 核、设备驱动接口、通信协议、图形界面。标准化浏览器b r o w s e r 等。目前,嵌 入式操作系统的品种较多,据统计,仅用于信息电器的嵌入式操作系统就有4 0 种 左右,其中较为流行的主要有:w i n d o w sg e 、p a l mo s 、r e a - t i m el i n u x 、v x w o r k s 、 p s o s 、p o w e r t v 以及m i c r o w a r e 公司的0 s 一9 。与通用操作系统相比较,嵌入式操 作系统在系统实时商效性、硬件的相关依赖性、软件固态化以及应用的专用性等 方面具有较为突出的特点。 面向i n t e r n e t 的、特定应用的嵌入式操作系统是重要发展趋势。嵌入式操作 系统伴随着嵌入式系统的发展经历了三个比较明显的阶段: 1 无操作系统的嵌入算法阶段 这一阶段的嵌入式系统是以可编程控制器的形式、以单芯片为核心的系统, 同时具有与一些监测、伺服、指示设备相配合的功能。这种系统大部分应用于一 些专业性极强的工业控制系统中,一般没有明显的被称为操作系统( r t o s ) 的支 持,而是通过汇编语占编程对系统进行直接控制,运行结束后清除内存。这一阶 段系统的主要特点是系统结构和功能都相对单一,针对性强,但无操作系统支持, 几乎没有用户接口。 2 简单监控式的实时操作系统阶段 这一阶段的嵌入式系统主要以嵌入式处理器为基础、以简单监控式操作系统 为核心。系统的特点是处理器种类繁多,通用性比较弱;系统开销小,效率高: 系统一般配备系统仿真器,具有一定的兼容性和扩展性;操作系统的用户界面不 够友好,其主要用来控制系统负载以及监控应用程序运行。 3 通用的嵌入式实时操作系统阶段 以通用型嵌入式实时操作系统( r t o s ) 为标志的嵌入式系统。如v x w o r k s 、p s o s 、 o s 一9 、w i n d o w sc e 就是这一阶段的典型代表。这一阶段系统的特点是能运行在各 种不同类型强大的微处理器上:具有强大的通用型操作系统的功能,如具备了文 件和目录管理、多任务、设备支持、网络支持、图形窗口以及用户界面等功能; 具有大量的丰富的应用程序接口( a p i ) 和嵌入式应用软件丰富。 伴随着通用型嵌入式实时操作系统台勺发展,一个以面向i n t e r n e t 网络的、特 定应用的嵌入式操作系统正r 益引起人们的重视,成为极为重要的发展方向。嵌 入式系统与i n t e r n e t 的真正结合、嵌入式操作系统与应用设备的无缝结合代表着 嵌入式操作系统发展的真正未来。 1 1 3 网络化的嵌入式系统应用 ( 一) 互联网络 网络被称为第二次信息技术革命。在巨型机统治的时代,产生了多个大型机 协同工作,相互通讯方式,这是网络的发端。为了使各大型机进行通讯,计算机 制造商制定了各自的通讯规范和通讯协议,并且这些不同的规范和协议相互不兼 容。这种方式被带入到微型计算机领域。与此同时,有人预见到在不同厂商的不 同计算机上必须有一个信息共享的方式。随着这种要求的增多,“开放式网络” 的概念被提出。但是由于每个计算机制造商都声称各自拥有最佳的解决方案,同 时排斥其它厂商的解决方案,开放式网络一直停留在字面的阶段。这种情况一直 延续到p c 时代,从一定程度上说,p c 是局域网( l a n ,l o c a la r e an e t w o r k ) 韵 直接推动者。 局域网很好的解决了多台计算机之间共享数据和通信的问题,但同时又产生 了另外的兼容性问题。不同计算机厂商和不同网络设备提供商对局域网络的形式 和拓h 结构有不同的阐述,同时制定了不同的实现标准。当人们再次呼唤开放式 网络时,同样的事情发生了,每一个提供商都宣称自己的解决方寰是最好的,但 许诺将会支持一般的通用解决方案。由此,一个标准制定委员会被成立,在耗费 了很多的时间和人力之后,这个所谓的通用标准都没有真订三出现。 市场的选择,最终导致了开放式网络时代的到来。支持开放式网络的企业成 功了,而另一些始终守着自有网络协议的企业则被撇在了一边。今天t c p i p 协议 和以太网就是一种丌放式网络。所有主要的操作系统,主要的计算机制造商( 大 型机,微型机及p c ) 都支持以太网和t c p i p 协议。在这个开放式网络的基础上, 产生了不可计数的应用,从大型企业的网络解决方案到电脑游戏。既然已经存在 一个通用的标准,制造商就可以发展出一种基于网络的嵌入式解决方案,并且可 以肯定它将有很大的应用面。 从最终用户的角度看,他们希望所有设备互联工作,这种互联越广泛越好, 因为这意味着他们工作生活的自由度提高了。当今社会是信息化的社会,快速获 取最新信息是高效决策的关键。企业的管理者希望他们的触角能够到达企业的任 何位置,从而可以快速的进行资源配置,对生产过程进行实时监控,并能够随时 修f ( 假如需要的话) ,重新配置资源。现代企业具有多大的灵活性很大程度上 决定了它能否在竞争中胜出。从嵌入式设备制造者的角度来看,他们通常更关心 成本因素。嵌入式设备的网络化使得他们在进行售后服务时有了一个根本性的变 革:通过因特网远程控制检测设备,使得进行远程技术支持成为可能。这种做法 提高了设备维护的方便性,同时降低了维护的成本。 ( 二) 嵌入式t c p i p 协议栈的特点 由单片机系统、嵌入式网络的应用坏境决定了嵌入式t c p i p 协议栈通常应用 于特殊的、专用的领域,不可能象标准的t c p i p 协议栈一样提供完整的协议体系, 往往是根据具体的应用提供不同的协议模块。因此,嵌入式t c p i p 协议栈区别于 标准的t c p i p 协议栈的最突出的特点就是: 1 很好的可裁剪性。 由于嵌入式应用的要求千差万别,各种嵌入式应用对系统的要求不尽相同, 并且在嵌入式应用中对产品的成本、价格比较敏感,存储器的容量往往都是比较 有限的,因此必须根据嵌入式网络产品的具体功能,对完整的t c p i p 协议栈功能 进行裁剪,特别是对应用协议提供可裁剪性,以满足用户的需求。 2 很强的可移植性。 由嵌入式应用的多样性决定了嵌入式应用平台也是变化多端的。因此,在我 们开发网络协议栈软件的过程中,保证软件的可移植性是非常重要的。这样,在 对嵌入式产品进行软、硬件升级的过程中除了与硬件直接相关的部分代码需要重 新编写以外,不必再对上层协议进行大的修改。 3 代码精简。 嵌入式t c p p 协议栈是标准t c p i p 协议栈的子集,只需要实现基本的、必 要的功能,使生成的二进制代码尽量精简,这对嵌入式网络产品降低_ 丌发难度、 提高系统处理能力、节省有限的r o m 和r a m 空间是有着重要的意义的。嵌入式 t c p t p 协议栈的这些特点也将成为本课题研究工作的目标与要求。 1 2 研究课题的提出 嵌入式t c p i p 已经成为最近网络应用的热点,就是通过i n t e r n e t 使所有连 接网络的设备彼此互通互联,从计算机、p d a 、通讯设备到仪器仪表、工作设备等, 具体到船舶,可应用于船舶机舱的设备监控。这样就使电子设备具有了智能化。 本课题是针对5 1 系列单片机实现嵌入式t c p i p 方案的。利用嵌入式实时操 作系统u c o s i i 对系统进行多任务处理,提高系统的实时性能。将修改的精简的 t c p i p 协议栈嵌入到单片机里,这样使设备接入i n t e r n e t 后,可实现设备的远程 控制、远程数据采集、数据便携式存储等功能,这就使原来的设备的单独、孤立 的存在方式,进入一种开放、互联的方式。 本文的研究内容包括以下几个方面: 1 提出了基于嵌入式实时操作系统u c o s l i 应用的整体实现方案。 2 利用w i n b o n d 公司生产的8 位c p u w 7 8 e 5 1 6 b 和嵌入式实时操作系统 u c o s i i 构造具有接入以太网功能的嵌入式系统。其中的工作包括设计并调试该 部分的硬件电路、将u c o s i i 移植到此新硬件平台上、k e i l5 1 作为基本应用开 发环境。 3 i o m 以太网卡( r t l 8 0 1 9 a s ) 设备驱动程序编写。 4 u s b 接口主控芯片( s l 8 l i h s t ) 驱动程序的编写。 5 嵌入式t c p i p 协议栈的设计与实现。具体包括以太网协议、a r p 协议、i c m p 协议、i p 协议、t c p 协议以及h t t p 协议。 6 e m b e d d e dw e bs e r v e r 和远程数据采集设计与实现。 7 基于u s b 主机控制接口芯片s l 8 1 1 h s t 设计了一套u s bh o s t 嵌入式系统模 块使得传统意义上作为s l a v e 端的嵌入式设备具有了h o s t 端的功能。该系统支持 u s bm a s ss t o r a g e 类,并实现了控制传输和批量传输,从而实现了与u 盘的通信。 1 3 论文的创新点 结合e t h e r n e t 与t c p i p 技术、嵌入式以及u s b 技术,提出了基于嵌入式实 时操作系统u c o s i i 应用技术研究的系统。 以嵌入式系统为平台,丌发具有u s b 接口功能的存储设备,实现采集数据的 网络传输和实时采集储存。 利用w i n b o n d 的w 7 8 e 5 1 6 bc p u 和u c o s - i i 嵌入式实时操作系统( e m b e d d e d r t o s ) 构造具有以太网接入功能的嵌入式系统以及网络通信功能的硬件与软件。 1 4 论文的结构 本文在嵌入式实时操作系统u c o s i i 的应用方面进行了研究和描述。并分别 从硬件设计和软件设计两方面对其应用进行了介绍。并给出了系统实验结果,最 后给出e m b e d d e dw e bs e r v e r 、远程数据采集和u s b 接口的设计与实现。 具体编排如下:第一章简述了论文选题的背景、目的和意义。第二章是实时 操作系统u c o s ii 的介绍以及在单片机w 7 8 e s l 6 b 上的移植。第三章论述u c o s ii 应用e t h e r n e t 硬件方案以及网卡的驱动实现。第四章详细论述了嵌入式t c p i p 协议栈实现。第五章详细介绍了u c o s i i 在嵌入式w e bs e r v e r 以及远程数据采 集和u s b 存储的实现。第六章是对论文进行了全面总结。 第2 章应用操作系统平台- - u o o s 一 2 1 选择u c o s - | | 的理由 传统的单片机系统在程序设计上一般采用的是前后台方式或超循环方式 ( s u p e r l o o p ) ,如图2 1 所示。应用程序是一个无限的循环,在循环中调用 相应的函数完成相应的操作,这部分可以看成后台行为( b a c k g r o u n d ) 。而中 断服务程序负责处理异步事件,这部分可以看成前台行为( f o r e g r o u n d ) 。后 台也可以称为任务级前台也叫中断级。时涮相关性很强的关键操作词 ( c r i t i c a lo p e r a t i o n ) 是靠中断服务程序保证的。因为中断服务程序提供的 信息一直要等到后台程序走到该处理这个信息这一步时才能得到处理,所以这 种系统在处理信息及时性上,比实际可以做到的要差。 l h 肝台一一 卜一一前台刊 i s r r t _ _ 一匕盘兰直也2 誓划 图2 i 前后台式应用 f i g 2 1 f o r e g r o u n da n db a c k g r o u da p p l i c a t i o n 对于简单的应用,这种前后台方式是可以满足需求的,但是随着应用的复杂 化,系统可能要同时监测控制多个外部设备,要求较高的实时性,有多个任务要 处理。如果在系统软件设计上仍然采用上述的传统方式,就会出现两个比较突出 的问题。一是中断响应,般为了保证某一项重要任务的实时性,就必须在i s r 中进行较为复杂的处理,这样一来就要考虑代码重入、系统硬件堆栈溢出等问题a 二是任务多,要考虑的各种可能性也多,各种资源调度不当就会造成共享数据的 不一致,降低系统的可靠性,同时程序量也加大。解决这些问题的最好方法就是 使用嵌入式实时操作系统r t o s 。使用r t o s 可以有效的对多个任务进行调度,对各 任务赋予不同的优先级可以保证紧急任务得到及时响应。r t o s 也体现了一种新的 应用程序设计思想和开放的框架,降低了程序的复杂度和开发周期。现在市场已 经出现了不少的嵌入式实时操作系统如v x w o r k s 、p s o s 、n u c l e u sp l u s 、v r t x s a 、 u c l i n u x 等等。但这些操作系统大多对系统硬件配置有较高的要求,如要有运行速 度快的3 2 位处理器、处理器内部要有内存管理单元( m m u ) 、较大容量的r o m 和r a m 空间等;同时操作系统自身和相应配套的开发调试工具价格较高,而且许多r t o s 厂商要求用户在批量生产时要按产品数量交纳版税,所以对于中小型系统特别是 采用8 位微处理器的系统来说这些操作系统都是不适合的。 本课题采用的是由j e a nj l a b r o s s e 编写的开放式实时操作系统o c o s i i , 主要是基于以下的考虑: 1 它的内核是完全免费的,用户不需支付任何费用,有利于降低系统开发成 本。 2 它的源代码是公开的,并且仍在不断的升级,增加新功能。源代码的丌放 可以使得用户根据实际要求对源代码进行取舍,去掉不必要的变量和不使用的函 数,提高系统性能。另外,由于对系统内核有源代码级的了解,用户可以添加自 己的模块,与原有系统内核兼容,使得系统具有可扩展性。 3 系统内核实用性强、可靠性高。从最老版本的u c o s ,以及后柬的u c o s , 到最新版本的u c o s i i ,该实时内核已经走过了近l o 年的历程。1 0 年来,世界 上已有数千人在各个领域使用了该实时内核,如医疗器械、网络设备、自动提款 机、工业机器人等等。这些应用的实践是该内核实用性、无误性的最好证据。 4 操作系统内核对处理器以及r o m 、r a l 资源的要求不高,有利于在8 位处 理器上的移植。 5 最后一点也是就最重要的一点,课题将要实现的嵌入式t c p i p 协议栈需 要提供对多用户的支持,该功能的实现必须依赖于底层操作系统。 2 2u c o s i i 的系统结构 o c o s i i 的软硬件体系结构如图2 2 。应用程序处于整个系统的项层,每个 任务都可以认为自己独占了c p u ,因而可以设计成为一个无限循环。u c o s i i 处 理器无关的代码u c o s 一】i 的系统服务,应用程序可以使用这些a p i 函数进行内存 管理、任务间通信以及创建、删除任务等。 i i 赢磊 l 一 l 一 竺竺 卜i 厂磊f 丽i 图2 2u c o s i i 的软硬件体系结构 f ig u r e2 2h a r d w a r ea n ds o f t w a r ea r c h it e c t u r eo f u o s 一儿 大部分的u c o s i i 代码是使用a n s ic 语苦书写的,因此u c o s i i 的可移植 性较好。尽管如此,仍然需要使用c 和汇编语言写些处理器相关的代码。u c l o s i i 的移植需要满足以下要求:( 1 ) 处理器的c 编译器可以产生可重入代码:( 2 ) 可以 使用c 调用进入和退出c r i t i c a lc o d e ( 临界区代码) ;( 3 ) 处理器必须支持硬件中 断,并且需要一个定时中断源;( 4 ) 处理器需要能够容纳一定数据的硬件堆栈:( 5 ) 处理器需要有能够在c p u 寄存器与内存和堆栈交换数据的指令。移植u c o s i i 的 主要工作就是处理器和编译器相关代码。 2 3 u c o s i i 的原理及特点 u c o s 一的工作核心原理是:近似地让最高优先级的就绪任务处于运行状态。 首先,初始化m c u ,再进行操作系统初始化,主要完成任务控制块t c b 初始化, t c b 优先级表初始化,t c b 链表初始化,事件控制块( e c b ) 链表初始化,空任务 的刨建等等:然后就可以开始创建新任务,并可在新铋建的任务中再创建其他的 新任务;最后调用o s s t a r t ( ) i 函数启动多任务调度。在多任务调度开始后,启动 时钟节拍源开始计时,此节拍源给系统提供周期性的时钟中断信号,实现延时和 超时确认。 操作系统在下面的情况下进行任务调度:中断( 系统占用的时间片中断 o s t i m e t i c k o ,用户使用的中断) 和调用a p i 函数( 用户主动调用) 。一种是当时钟 中断来临时,系统把当前正在执行的任务挂起,保护现场,进行中断处理,判断 有无任务延时到期,若有则使该任务进入就绪态,并把所有进入就绪态的任务的 优先级进行比较,通过任务切换去执行最高优先级的就绪任务,若没有别的任务 进入就绪态,则恢复现场继续执行原任务。另种调度方式是任务级的调度即调 用a p i 函数( 由用户主动调用) ,是通过发软中断命令或依靠处理器在任务执行中调 度,如任务要等待信号量或一个正在执行的任务被悬挂起来时,就需要在此任务 中调度,找出目前处于就绪态的优先级最高的任务去执行。当没有任何任务进入 就绪态时,就去执行空任务。 本课题采用的是参考文献 2 0 所提供的v 2 0 0 版本的u c o s - 1 1 ,相对早期的 u c o s ,有了很大的改进,总的说来它有以下的一些特点: 1 u c o s i i 提供了对6 4 个任务的管理,除了系统内核本身所保留了8 个任 务外,用户的应用程序最多可以有5 6 个任务。由于u c o s - i i 是一个基于优先级 的( 不支持时间片轮转调度) 实时操作系统,因此每个任务的优先级必须不相同。 系统中的每个任务都处于以下5 种状态之一的状态中,这5 种状态是休眠态、就 绪态、运行态、等待态( 等待某一事件发生) 和被中断态。图2 3 是u c o s i i 控 制下的任务状态切换图。 2 u c o s i i 是一个占先式( p r e e m p t i v e ) 的内核,即最高优先级的任务一旦就 绪。总能得到处理器的控制权。当个运行着的任务使一个比它优先级高的任务 进入了就绪念,则当前任务的处理器控制权就被剥夺了或者况被挂起,那个高 优先级的任务立刻得到处理器的控制权。如果是中断服务程序( i s r ) 使一个高优 先级的任务进入就绪态,中断处理完成后,被中断了的任务将被挂起,优先级高 的那个任务则开始运行。 3 u c o s i i 提供了对信号量( s e m a p h o r e ) 、邮箱( m a i1b o x ) 和消息队列 ( m e s s a g eq u e u e ) 的支持。通过这3 种方法可以完成任务与中断服务程序( i s r ) 之间的通信、任务与任务之间的通信以及多个任务对共享资源的互斥访问。 图23 任务状态的昔u 换 f i g 2 3t a s ks w i t c hu n d c ru c o s - j j 2 4u c o s i i 在w 7 8 e 5 1 6 b 上的移植 内核的移植就是使实时内核能够在某个微处理器或微控制器上正常运行。 u c o s i i 移植并不复杂,只是编写与处理器相关的一部分代码用汇编语言。在本 课题中,系统选用的是w i n b o n d 公司生产的w 7 8 e 5 1 6 b 处理器:它的指令集上与标 准的8 0 5 1 处理器兼容;有较高的运行速度,最高工作频率为4 0 m h z ;6 4 k ba p r o m 存储应用程序和4 k bl d r o m 存储控制i s p 操作的程序。2 块存储器均为系统可编程 的m t p r o m 。w 7 8 e 5 1 6 b 处理器满足u c o s i i 的要求,而且处理器较快的运行速度 和大容量的r o m 都有利于提高u c o s i i 操作系统的性能。c 语言编译器采用的是 德国k e i l 公司开发的k e i lc 5 1 集成开发环境k e i lc 5 1 编译器产生的代码体积小、 效率高;同时可以通过r e e n t r a n t 关键字产生可重入代码;另外通过e a = o 和e a = l 语句可实现对中断的关闭和打开。可见,本课题选用的软硬件开发工具都满足 u c o s i i 对移植的要求。 1 移植的工作包括以下几个内容: ( 1 ) 在o s c p u h 中用# d e f i n e 定义三个宏,声明w 7 8 e 5 1 6 b 中能够识别的数据 类型和堆栈的增长方向( o s c p u h ) 。 5 1 型单片机系统硬件堆栈的单元宽度为8 比特,所以修改o s s t k 声明为: t y p e d e ft l n s i g n e dc h a ro s s t k : 单片机的硬件堆栈增长方向与与大多数处理器相反是从下往上增长,所以通 过设置o s s t k g r o w t h 的值为0 告知u c o s i i : # d e f i n eo ss t k r o w t h0 : ( 2 ) 声明十个数据类型( o s _ c p u h ) 。 ( 3 ) 用# d e f i n e 声明三个宏( o s c p u h ) 。 和所有的实时内核一样,u c o s i i 需要先禁止中断再访问代码的临界区,并 且在访问完毕后重新允许中断。这样就使得u c o s - i i 能够保护临界区代码免受 多任务或中断服务程序( i s r ) 的破坏。针对单片机并结合k e i lc 5 1 编译器,可 以通过指令直接丌关中断来实现: # d e f i n eo s e n t e r c r i t i c a l ( ) e a = o 关中断 # d e f i n eo s _ e x i t c r i t i c a l ( )e a = 1 开中断 原型中的任务级的任务切换o st a s k s w 0 是通过软中断来实现,但是5 l 单片 机不提供类似的软中断指令,所以在移植中采用程序调用代替,两者的堆栈格式 相同: # d e f i n eo s t a s k s w 0o s c t x s w o ( 4 ) 用c 语言重新编写以下几个函数:o s t a s k s t k i n i t 0 ,o s s t a r t h i g h r d y ( ) , o s t a s k c r e a t e h o o k ( ) ,o s t a s k s w h o o k ( ) ,o s t a s k d e l h o o k ( ) ,o s t a s k s t a t h o o k ( ) , o s t i m eo ,t i c k h o o k0 ( o s - c p u c c ) 。 ( 5 ) 编写四个汇编语言函数:o s s t a r t h i 曲r d y o ,o s c t x s w 0 ,o s i n t c t x s w ( ) , o s r i c k l s r0 ( o sc p ua a s m ) 。 2 由于只需编写与处理器相关的代码( o sc p ua a g m ) ,下面说明四个汇编函数的 实现: ( 1 ) 0 s s t a r t h g h r d y ( ) 函数的实现 o s s t a r t h i g h r d y ( ) 函数是个高优先级就绪任务启动函数,主要是将任务栈 中的保存值弹回到c p u 寄存器中,然后执行返回指令,中断返回指令强制执行该 任务代码,实现多任务启动。o s s t a r t h i g h r d y 0 的具体处理过程如下: v o i do s s t a r t h i g h r d y ( v o i d ) 溺川川户可定义的o s t a s k s w h o o k0 : 获取任务的堆栈指针用于恢复: 堆栈指针= o s t c b h i g h r d y o s t c b s t ”t r ; 获取要恢复内容的长度( 1 e n ) = 任务堆栈起始地址中存放的内容;根据眨度l e n ,通过字 仃拷贝的方式将存放在系统x d a t a 空间的任务堆栈的内弈复制到系统i d a t a 空间中的硬仆堆 栈内: 恢复硬1 ,i :堆栈指针s p 平u 仿真堆栈? c x b p 的值; o s r u n n i n g = t r u e : 对硬件堆栈执行白定义的宏操作p o p a l l ,恢复寄存器r o - r 7 、d p h 、d p l 、b 、a c c 和ip s w ; 从中断指令返回: ( 2 ) o s c t x s w 0 和o s i n t c t x s w 0 函数的实现 o s c t x s w 0 和o s f n t c t x s w 0 都是任务切换函数,不同的是后者为中断级任务 切换函数,由于后者是在i s r 中被调用的,所以需要调整堆栈指针s p 去掉在调用 o s i n t e x i t 0 ,o s i n t c t x s w 0 过程中压入堆栈的多余内容。它们的主要功能是将要 挂起的任务的寄存器值保存起束,将要执行的任务的寄存器的内容恢复。 o s c t x s w 0 该函数完成的是任务级的任务切换工作。其目的是为了保证处理器 永远运行就绪表中优先级最高的任务,这跟o s s t a r t h i g h r d y ( ) 类似。然而,后者 是由o s s t a r t ( ) 调用的,只是执行启动多任务的功能,而o s c t x s w 0 是在任务调度 函数o s s c h e d 0 通过宏定义o s j a s k _ s w 0 调用的,执行的是多任务的调度功能: 不仅要使得高优先级任务得以恢复运行,还得将待切换出去的任务保存起来,两 者的差别也可以从程序的处理过程比较出来。 下面是o s c t x s w0 函数的实现: v o i do s c t x s w ( v o i d ) 通过自定义的宏操作p u s h a l l ,将寄存器r o r 7 、d p h 、d p l 、b 、a c c 和p s w 保存到硬件堆 栈中: 获得硬件堆栈的k 度= s p 一# o s s t k s t a r t ; 根据获得的酴度值将硬件堆栈中从地址o s s t a c k 开始的内容,通过字节拷贝的方式复制到 当前的任务堆拽中,同时将仿真堆栈指针? c x b p 的值也复制到任务堆栈中: 调_ 【j j 用户可定义的函数o s t a s k s w h o o k0 : o s t c b c u r = o s t c b h i g h r d y : o s p r i o c u r = o s p r i o h i g h r d y ; 通过变量o s t c b c u r 一 o s t c b s t k p t r 获得要恢复的任务的任务堆栈指针; 将任务堆栈中的内容复制到硬件堆栈中,恢复s p 币l ? cx b p 的值: 执行宏操作p o p a l l 恢复处理器寄存器的值; 执行中断返同指令; 函数o s s a r t l t i g h r d y 0 以及o s c t x s w 0 都是通过指令r e t i 返回的,这里需要 说明的一点是:r e t i 指令复位中断系统,g e t 则没有。实践表明,5 l 单片机,用子 程序调用入栈,用中断返回指令r e t i 出栈是没有问题的,反之中断入栈r e t 出栈 则不行。总之,对于入栈,子程序调用与中断调用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车城市规划项目计划
- 2025年吉安市庐陵产业运营服务有限公司公开招聘物业经理模拟试卷及1套完整答案详解
- 客户服务质量标准与服务流程优化工具
- 2025福建福州市罗源县卫健系统事业单位招聘控制数卫技人员12人模拟试卷及答案详解(夺冠系列)
- 2025年烟台幼儿师范高等专科学校公开招聘高层次人才(2人)考前自测高频考点模拟试题及1套完整答案详解
- 2025河南郑州空中丝路文化传媒有限公司社会招聘6人模拟试卷参考答案详解
- 安全培训效果保证措施课件
- 2025年三环集团校园招聘考前自测高频考点模拟试题及答案详解(有一套)
- 昆明VR安全培训班课件
- 《世界地理历史文化讲解课程教案》
- 透明土实验技术的研究进展
- 戴海崎心理与教育测量第4版课后习题答案
- 设备保管协议
- 中石油职称英语通用教材
- 某火电厂输煤系统土建工程监理细则
- 室外消防钢丝网骨架塑料复合PE管施工及方案
- 超声引导下坐骨神经阻滞
- 焊接质量手册
- GB/T 29049-2012整樘门垂直荷载试验
- 【上课用】 高三数学一轮复习-错位相减法课件
- 《放飞烦恼-拥抱快乐-》-心理健康p课件
评论
0/150
提交评论