(电机与电器专业论文)基于LPC2131种子包衣机控制部分的实现.pdf_第1页
(电机与电器专业论文)基于LPC2131种子包衣机控制部分的实现.pdf_第2页
(电机与电器专业论文)基于LPC2131种子包衣机控制部分的实现.pdf_第3页
(电机与电器专业论文)基于LPC2131种子包衣机控制部分的实现.pdf_第4页
(电机与电器专业论文)基于LPC2131种子包衣机控制部分的实现.pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

(电机与电器专业论文)基于LPC2131种子包衣机控制部分的实现.pdf.pdf 免费下载

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

文档简介

a b s t r a c t a b s t r a c t s i n c et h e1 9 9 0 sc o a t i n gt e c h n o l o g yb e g a nt ob ep r o m o t i o ni no u r c o u n t r y , a n di t l a s t e da b o u t3 0 n o wt h eu s eo fs e e dc o a t i n gt e c h n o l o g yh a sb e c o m eat r e n d b u tn o w s e e dc o a t i n gt e c h n o l o g ys t i l lc a l ln o tm e e tt h en e e d so fm o d e r na g r i c u l t u r e d e v e l o p m e n t s od e v e l o p m e n to fas e to fs t a b l ea n de f f i c i e n ts e e dc o a t i n gm a c h i n e h a sa v e r yh i g hs o c i a la n de c o n o m i cb e n e f i t s f i r s tt h ec o a t i n gm a c h i n ec o n t r o lt e c h n o l o g ys t a t u sa n dt h ep r o b l e m sb e i n g i n t r o d u c e di n t h i st h e s i s ,a n dt h e np r o p o s8 0 m au n s o l v e dp r o b l e m s t h i ss u b j e c ti s u s e dt ob u i l daa g r i c u l t u r a ls e e dc o a t i n gm a c h i n ec o n t r o ls y s t e m t h e nt h eh a r d w a r e d e v e l o p m e n tp l a t f o r ma n dr e l a t e ds o f t w a r ea r ed e t a i l e dd e s i g n e d i nt h i st h e s i s e m b e d d e dc h i p sl p c 2 1 3 1o fp h i l i p sc o m p a n yi si n t r o d u c e d ,a n de x p a n d e di o c o n t r o l l e r 、a ds a m p l i n gm o d u l e 、d a t ac o m m u n i c a t i o nm o d u l e 、k e y b o a r di n p u t m o d u l e 、t h ed i g i t a lo u t p u tm o d u l ea n da l a r mm o d u l e i nt h ep a p e rr e a l - t i m e o p e r a t i n gs y s t e ma n dt r a n s p l a n t a t i o na n dp r e s e n t e d f i n a l l yc o o d i n gt h es o u r c ec o d e , f o re x a m p l e :p r o g r a m m et a s k so f r e a l t i m eo p e r a t i n gs y s t e ma n dm a i nc o n t r o lt e s kf o r r u n n i n gt h es y s t e m k e yw o r d s :e m b e d d e ds y s t e m ;s e e dc o a t i n g ;uc o s - i i :l p c 2 1 31 n 学位论文独创性声明 学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得直昌太堂或其他教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 媚“日 本学位论文作者完全了解直昌太堂有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权直昌太堂可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编本学位论文。同时授权中国科学技术信息研究 所将本学位论文收录到中国学位论文全文数据库,并通过网络向 社会公众提供信息服务。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:【萋岛蒜 签字日期9 万7 年,月面 导师签名: 签字日期: 哆日 第1 章概述 第1 章概述 1 1 我国包衣机控制技术的现状 种子包衣又叫拌种加工,分药剂拌种、染色处理两种,是现代农业一项引 人瞩目的新技术。以前我国培育的许多良种,因为种子加工工业薄弱,“白子下 种”的现象极为普遍。而精选分级后的优良种子经过包衣丸化而得到整型后, 可以改变种子外表的物理特性,使种子,特别是小颗粒的种子的粒径明显变大, 重量增加,提高了播种的精密度,尤其是提高了气息播种以及精量、半精量机 械播种的适应性。包衣丸化后的种子,其防病、防虫害的能力也明显提高,不 仅仅可以促进农作物根系的生长,提高出苗率,茎秆强壮,同时能够达到节约 种子,节省田间管理劳动力的目的。【l 】 我国内生产的包衣机多是在欧美的上世纪8 0 年代生产的包衣机的基础上设 计生产的,现阶段我国的包衣机问题存在着一系列的不足之处,不足之处主要 有以下几点: 1 ) 种衣剂对操作人员的危害大: 目前国内生产种衣剂多含呋喃丹等高毒农药,对人体的伤害主要是抑制体 内胆碱酯酶活性,人体摄入过多会导致中毒,而且会使乙酰胆碱在组织中蓄积 而引起中毒。人工操作,污染空气,由于种衣剂有毒,而且包衣时需要将种衣 剂雾化,所以对人的伤害较大,如果长时间在现场操作时,很容易中毒。这就 对机器的密封性能有严格的要求,需要长期严格的维护。可是由于现阶段我们 国家的实际情况,大多数包衣机的密封性能都不是很理想,种子包衣机在包衣 的时候却需要工作人员长时间一直在边上操作,这就可能造成人员的中毒。由 于呋喃丹会在人体组织中积蓄,这更增加了操作人员中毒的可能性。国内对机 器密封性能用呋喃丹的散逸考核,规定指标为0 1 m g 埘r ,但大多数设备生产厂 家的产品说明书中均无此项说明,显然该项规定并没有被严格执行。【2 】 劲种子计量不准确 目前我国各种加工机械生产企业生产的种子包衣机,喂料仓很小,有的甚 至没有喂料仓,喂入量的调节基本上是由提升机来控制,提取种子的时间实际 上是提升机排出口排出种子的时间,提升机喂入种子的波动程度直接影响计量 第1 章概述 料斗种子喂入量变异系数,种子喂入量的变异系数所反应的实际是提升机喂入 种子的波动程度。也就是说种子计量的稳定性考核的是提升机喂入种子的稳定 性。1 3 1 3 1 包衣过程中药种比的不确定性 包衣机加工种子,需要有恒定的种衣剂和种子配比,这样才能生产出质量 稳定的包衣种子。但是之前包衣机行业中使用的多是料斗机械翻倒自流式的。 包衣机的药勺和计量种子的料斗安装在同一根轴上,药勺和料斗做同步运,种 子喂入量稳定,种衣剂喂入量也就比较稳定。所以说包衣机机械的控制部分主 要是通过机械部件来控制种子和药液的质量,包衣机在使用之前还需要手动调 节其限位杆来控制种子质量,通过调整液面高度调节器来调节药种比。在包衣 过程中种衣剂的量受到提升机喂入种子稳定性的影响。而且在一次包衣的过程 中,无法在一次包衣过程中使用不同通质量和种类的种衣剂。 4 1 操作的复杂性的影响和危险性 不同的包衣机有不同的机械结构和操作规范,以石河子市华农公司成产的 5 b g f - - 5 型种子包衣机为例,该包衣机的外部电机有液泵电机、甩盘电机和搅 拌滚筒电机四个,开启和关闭的顺序都是严格限制的。包衣机种药比的配置时 需要调节限位杆和液面来获得所需要的药种比。而且操作的对象都是有剧毒的 对人体有伤害的农药。【9 】 5 ) 加工粗糙 为了减少加工人员长期接触高毒种衣剂,国产的包衣机都设定了较高的生 产率。大的可以达到7 t h ,这就带来了更加严重的问题,在高生产效率的要求下, 包衣机的包衣率和种子破损率都比较大。按种子包衣技术要求,包衣均匀度应 大于9 0 ,种子的破碎率应小于o 5 。国产包农机采用较多的是搅龙式机型, 如5 b y l x 、5 b a 一5 5 。此类机型从理论上来讲包衣均匀度较高,但不宜用于 易破损的种子( 如水稻) 。为了满足较高的生产效率,通常的做法是通过减少了包 衣的时间来提高生产效率,所以说高的生产效率加上不合理的硬件结构导致了 比较差的包衣效果。 6 ) 人为因素对加工效果应相比较大、检测困难 在实际的生产过程中,何时加液、何时进粉、进料多少、混合时间多长等 等使馆加工效果的考虑时常取决于操作者的经验,即使是同一工人操作,加工 结果往往也随着批次的不同而优劣不一。在工厂的实际操作中了解到常常有操 2 第1 章概述 作员工发现种衣剂的使用量和种子的比例严重不符合,但是却无法确定是哪一 批种子没有按照之前设定酌种药比包衣。而且我们发现现有的包衣机只能包一 种药剂。 1 2 包衣机工作的基本原理 种子包衣机的工作目的就是使种子和药液、药粉充分混合搅拌,使种子表 面均匀地覆盖上一层药膜,以提高种子的防病、存活以及生长能力。本机的基 本设计是利用高速离心原理,让种子在混合仓内高速飞扬,同时令包衣药液离 心雾化,使得种子的包衣效果更加均匀,药液更加充分利用,进而达到种子包 衣的丸粒化。然而除此之外,相应于种子的最终效果,精确控制种子、进液量、 进粉量的比例关系。控制混合仓电机的转速才是关键。为了能体现出操作者的 意图,这三者的定量配比应该能够由操作者自行设定,系统其功能就是严格执 行操作者的控制要求,确保最后的包衣效果。在设计中,种子进料量的把握由 称重传感器测量,以行程开关带动进料门的开关,在系统运行期间也可以精确 控制。进液量由液位传感器调节液位传感器金属针之间的间隔来控制。 1 3 嵌入式系统的概况 嵌入式系统被定义为:以应用为中心、以计算机技术为基础、软件硬件可裁 剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机 系统。嵌入式系统是现代多学科互相融合的产物,嵌入式系统无多余软件,并 且以固化态出现,硬件亦无多余存储器,有可靠性高,成本低,体积小,功耗 低等特点。嵌入式系统又是知识密集,投资规模大,产品更新换代快,且具有 不断创新特征、不断发展的系统,系统中采用片上系统( s o c 亦称系统芯片) 将是 其主要发展趋势。1 1 1 嵌入式系统的出现至今己经有3 0 多年的历史了,嵌入式技术也经历了几个 发展阶段。进入9 0 年代后,以计算机和软件为核心的数字化技术取得了迅猛发 展,不仅广泛渗透到社会经济、军事、交通、通信等相关行业,而且深入至家 电、娱乐、艺术、社会文化等各个领域,掀起了一场数字化技术革命。多媒体 技术与i n t e m e t 的应用迅速普及,消费电子、计算机、通信( 3 c ) 一体化趋势同趋 明显,嵌入式技术再度成为一个研究热点。综观嵌入式技术的发展,大致经历 第1 章概述 了以下4 个阶段: 第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、 伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业 控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控 制,运行结束后清除内存。这一阶段系统的主要特点是:系统结构和功能都相对 单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系 统使用简便、价格很低,以前在国内工业领域应用较为普遍,但是已经远远不 能适应高效的、需要大容量存储介质的现代化工业控制和新兴的信息家电等领 域的需求。 第二阶段是以嵌入式c p u 为基础、以简单操作系统为核心的嵌入式系统。 这一阶段系统的主要特点是:c p u 种类繁多,通用性比较弱;系统开销小,效率高; 操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好; 系统主要用来控制系统负载以及监控应用程序运行。 第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要 特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系 统内核小、效率高,并且具有高度的模块化和扩展性:具备文件和目录管理、设 备支持、多任务、网络支持、图形窗口以及用户界面等功能:具有大量的应用程 序接口( a p d ,开发应用程序简单;嵌入式应用软件丰富。 第四阶段是以基于i n t e m e t 为标志的嵌入式系统,这是一个正在迅速发展的 阶段。目前大多数嵌入式系统还孤立于i n t e m e t 之外,但随着i n t e r a c t 的发展以 及i n t e r a c t 技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与 i n t e r a c t 的结合将代表着嵌入式技术的真正未来。 嵌入式系统主要是由嵌入式处理器,相关支撑硬件和嵌入式系统组成,它 是集软硬件于一体的可独立工作的“器件”。嵌入式处理器主要由一个单片机或 微控制器( m c u ) 组成。而这些嵌入式微处理器目前多是8 位、1 6 位和3 2 位的, 与6 4 位的高性能处理器相比,具有很强的经济性。相关支撑硬件包括显示卡、 存储介质( r o m 和r a m 等1 、通讯设备、i c 卡或信用卡的读取设备等。嵌入式 系统有别于一般的计算机处理系统,它不具备像硬盘那样大容量的存储介质, 而大多使用闪存( f l a s hm e m o r y ) 作为存储介质。嵌入式软件包括与硬件相关的底 层软件、操作系统、图形界面、通讯协议、数据库系统、标准化浏览器和应用 软件等。 4 第1 章概述 总体看来,嵌入式系统具有性能价格比高、嵌入性强、可裁剪等特点,可 以嵌入到现有任何信息家电和工业控制系统中。从软件角度来看,嵌入式系统 具有不可修改性、系统所需配置要求较低、系统专业性和实时性较强等特点。 嵌入式系统的快速发展使得后p c 时代的快速到来,后p c 时代是一个真实 的阶段,而且是一个可以预测的时代。嵌入式系统就是与这一时代紧密相关的 产物,它将拉近人与计算机的距离,形成一个人机和谐的工作与生活环境。从 某一个角度来看,嵌入式系统可应用于人类工作与生活的各个领域,具有极其 广阔的应用前景。嵌入式系统在传统的工业控制和商业管理领域己经具有广泛 的应用空间,如智能工控设备、p o s a t m 机、i c 卡等:在家庭领域更具有广泛 的应用潜力,如机顶盒、数字电视、w e b t v 、网络冰箱、网络空调等众多消费 类和医疗保健类电子设备等;此外还有多媒体手机、袖珍电脑、掌上电脑、车载 导航器等方面应用,将极大地推动嵌入式技术深入到生活和工作的方方面面。 它在娱乐、军事方面的应用潜力也是巨大的,而且是有目共睹的。 1 4 课题拟解决的问题 目前使用的大多数种子包衣设备,其生产效率比较低下,环境污染比较严 重,适用的范围也比较窄。这些种子包衣机往往偏重于机械部分的设计,电气 部分的设计仅仅局限于简单的开关,随着现代工业的处理效率、加工效果的高 要求,旧式的包衣机明显已经无法满足新的标准。一台适合现代加工需要的新 型包衣设备,不但必须具备简单灵活的可操作性,还要求具有严格的时钟管理、 实时的检测功能、优良的反馈系统。因此,设计出一套具有以上特性的实时控 制系统将令包衣机的性能得到提升。 在这样的研究背景下,本论文提出了使用现在流行的嵌入式系统作为包衣 机的控制核心。目的是在新的控制系统有望解决上面提到的我国包衣机的现存 问题。 ( 1 ) 种衣剂危害比较大,本课题提出的解决方案是使用自动控制技术, 所有的工作由之前设定的软件来完成,何时加种,何时加种衣剂,何时停机完 全由控制系统自动完成。 ( 2 ) 种子计量不准确,这是旧式包衣机一个始终无法很好解决的问题, 针对这样一个问题,本课题提出的解决方案是加上一个称重仓,在称重仓的底 第1 章概述 部安放一个压电式称重传感器,由称重传感器把电压信号传递给微处理器芯片 的a d 转换器,完成对种子的精确计量。 ( 3 ) 种衣剂的计量,本课题在储药灌的出药口安装了一个液位传感器, 通过调节液位传感器的金属针之间的距离来控制药液的流出。这就脱离了以往 旧式包衣机那种使用连杆来控制药种比的旧的机械控制模式。 ( 4 ) 对于包衣机常常有多个电机、传感器、阀门在同时协调工作,而且 一个批次的种子包衣过程往往不到一分钟,这就增加了种子在包衣过程中的人 为失误,实际情况也表明人为的失误是种子包衣过程中经常出现的问题。在本 课题中使用的自动控制系统可以很好地解决这方面的问题,在控制系统中设置 了相关的处理程序,严格按照规范的操作流程来处理包衣的种子。这样可以确 保在高速的包衣过程中系统可以稳定的运行,减少了人为因素的影响。并且在 已有的条件下,通过软件加入了互锁机制,减少了异常事件对系统的冲击。 ( 5 ) 传统包衣机往往使用混合所有的药液的种衣剂来包衣,种衣剂包括分 散剂、成膜剂、扩散剂、稳定剂、防腐剂和警戒色料等配套的助剂,集农药、 微肥、激素、粘合剂为一体,涂在种子外面形成一层保护薄膜。在实际的操作 过程中往往由于用户操作不当、不同药液之间的物理化学作用,无法达到最好 的药效。部分药剂的作用不能够完全发挥。在新的包衣机中,可以实现多次包 衣,在一次包衣的过程中,使用不同的包衣药剂分批次来包衣。从目前的相关 的资料来看,这是国产包衣机没有实现过的。 ( 6 ) 种子丸化,由于种子丸化需要多次包衣成型,在传统的包衣机中是难 以实现的,所以在国内种子业界的应用还是不多的,在使用了新的控制系统之 后,一定程度上可以实现该功能,具体的做法是在包衣完成之后停止加入药液 和药粉,并喷入丸化粉剂,按照种子丸化操作完成种子丸化。 进一步考虑,现代农业生长正在趋向于工业化、集约化,多套、多类设备 共同工作的场合必将出现。因此,对于多台设备实行网络化远程管理的设计能 大大减轻人力负担。在系统的设计中预留了r s 2 3 2 串行接口,使得以r s 2 3 2 为 基础的网络通讯成为了可能。 6 第2 章嵌入式实时操作系统和uc ,o s 一 第2 章嵌入式实时操作系统和i lc o s i i 2 1 实时操作系统的特点 实时操作系统( r e a lt i m eo p e r a t i o ns y s t e m ,r t o s ) 区别于一般操作系统的是 一般操作系统不仅向用户提供开发应用程序的各种a p i ,而且,还必须以命令行 的形式或图形的形式提供一个界面。但是实时操作系统只有a p i 而没有通常意 义下的界面,亦即只有一个核心。在核心里只有操作系统的一些基本功能如任 务( 线程) 调度、存储管理、同步机制、中断管理和a p i 等,而这些功能又可以根 据不同的应用系统裁剪或扩充,以便以最小的代码量满足嵌入式系统的需求。 实时操作系统的特点是:如果逻辑和时序出现偏差将会引起严重后果。目前有两 种类型的实时系统:软实时操作系统和硬实时操作系统。软实时操作系统的宗旨 是使各个任务运行的越快越好,并不要求限定某一进程必须在多长时间内完成。 硬实时操作系统要求各个任务不但要执行无误而且要做到准时。“” 实时操作系统是嵌入式应用软件的基础和开发平台。目前大多数嵌入式开 发还是在单片机上直接进行,没有r t o s ,但仍要有一个主程序负责调度各个任 务。r t o s 是一段嵌入在目标代码中的程序,系统复位后先初始化各个任务,然 后在r t o s 的调度下,将c p u 时间、中断、m 0 、定时器等资源分片的分配给各 个任务。从而使系统资源得到很好的利用,并使各个任务对事件有更好的响应。 r 1 的s 是针对不同处理器优化设计的高效率实时多任务内核,r t o s 可以面 对几十个系列的嵌入式处理器m p u 、m c u 、d s p 、s o c 等提供类同的a p i 接口, 这是r :i d s 基于设备独立的应用程序开发基础。因此基于r t o s 上的c 语言程 序具有极大的可移植性。据专家测算,优秀r t o s 上跨处理器平台的程序移植只 需要修改1 4 的内容。在r t o s 基础上可以编写出各种硬件驱动程序、专家库 函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产品销 售,促进行业的知识产权交流,因此r t o s 又是一个软件开发平台。o ” r t o s 是操作系统研究的一个重要分支,它与一般商用多任务o s 如u n i x 、 w i n d o w s 等有共同的一面,也有不同的一面。对于商用多任务o s ,其目的是方 便用户管理计算机资源,追求系统资源最大利用率;而r t o s 追求的是调度的实 时性、时间响应时间的可确定性、系统的高度的可靠性。评价一个实时操作系 7 第2 章嵌入式实时操作系统和uc o s - i i 统一般可以从任务调度、内存管理、任务通讯、内存开销、任务切换时间、最 大中断禁止时间等几个方面来衡量: 1 ) 任务调度机制 r t o s 的实时性和多任务能力在很大程度上取决于它的任务调度机制。从调 度策略上来讲,分优先级调度策略和时间片轮转调度策略:从调度方式上来讲, 分可抢占、不可抢占、选择可抢占调度方式;从时间片来看,分固定与可变时间 片轮转。在大多数商用的实时系统中,为了让操作系统能够在有突发事件时, 迅速取得系统控制权以便对事件作出反应,所以大都提供了“抢占式任务调度” 的功能,也就是操作系统有权主动终止应用程序( 应用任务) 的执行,并且将执行 权交给拥有最高优先级的任务。 2 ) 内存管理 如同分时操作系统一样,实时操作系统使用内存管理单元( m m u ) 进行内存 管理。实时操作系统内存管理模式可以分为实模式与保护模式目前主流的实时 操作系统一般都可以提供两种模式,让用户根据应用自行选择。当然前提是需 要处理器有m m u 功能。 3 ) 最小内存开销 r 1 d s 的设计过程中,最小内存开销是一个较重要的指标,这是因为嵌入式 系统由于成本的考虑,其内存的配置一般都不大,而在这有限的空间内不仅要 装载实时操作系统,还要装载用户程序。因此,在r t o s 的设计中,其占用内存 大小是一个很重要的指标,这是r t o s 设计与其它操作系统设计的明显区别之 一o 4 ) 任务切换时间 当由于某种原因使一个任务退出运行时,r t o s 保存它的运行现场信息、插 入相应队列、并依据一定的调度算法重新选择一个新任务使之投入运行,这一 过程所需时间称为任务切换时间。更准确地说,任务切换时间是实时操作系统 将控制权从一个任务的执行中取回,然后交给另外一个任务所需要的时间。它 包括保存目前正在执行任务的现场信息所需要的时间、r t o s 决定下一个调度任 务所须的调度时间以及r t o s 把另外二个任务调入系统执行所需要的时间。 5 ) 中断禁止时间与中断延迟事件 当r t o s 运行在核心态或执行某些系统调用的时候,是不会因为外部中断的 到来而中断执行的。只有当r t o s 重新回到用户态时才响应外部中断请求,这一 8 第2 章嵌入式实时操作系统和uc o s i i 过程所需的最大时间就是中断禁止时间。中断延时时间是指系统确认中断开始 直到执行中断服务程序的第一条指令为止整个处理过程所需要的时间。实时操 作系统的中断延迟时间由下列三个因素决定:处理器硬件电路的延迟时间,通 常这个时间可以忽略;实时操作系统处理中断并将控制权转移给相关处理程序 所需要的时间;实时操作系统的中断禁止时间。 上述几项中,最大中断禁止时间和任务切换时间是评价一个r t o s 实时性最 重要的两个技术指标。 2 2 实时操作系统uc o s u 的特点 i lc o s i i 读做“m i c r oc o s 2 ”,意为“微控制器操作系统版本2 ”,是一个 实时内核,主要提供任务管理功能。它是由i tc o s 升级而来的,并且做了很大 的改进。i tc o s i i 的使用对象是嵌入式系统,并且很容易移植到不同构架的微 处理器上。“”下面简单介绍一下它的特点: 1 ) 公开源代码 源代码清晰易读且结构协调,注解详尽,组织有序。 2 ) 可移植性 绝大部分i tc o s i i 的源代码使用移植性很强的a n s ic 写的,和微处理器 硬件相关部分采用汇编写,并且压到了最低限度。只要该处理器有堆栈指针, 有c p u 内部寄存器入栈出栈指令就可以移植协l ic o s i i 目前林uc o s i i 已 经移植到8 位、1 6 位、3 2 位以及6 4 位微处理器上。 3 ) 可裁剪 可以只使用uc o s 中应用程序需要的那些系统服务。这种可裁剪性是靠 条件编译实现的。 4 ) 占先式内核 pc o s i i 是完全占先式实时内核,即总是运行就绪条件下优先级最高的任 务。 5 ) 多任务 可以管理6 4 个任务,但系统保留了8 个任务,应用程序最多可以有5 6 个 任务。赋予每个任务的优先级必须是不相同的。 6 ) 可确定性 9 第2 章嵌入式实时操作系统和uc o s i i 全部l - tc o s i i 的函数调用和服务的执行时间具有可确定性,即它们的执行 时间是可知的,进而言之,| ic o s i i 系统服务的执行时间不依赖于应用程序任 务的多少。 7 ) 任务栈 每个任务有自己单独的栈,l - tc o s i i 允许每个任务有不同的栈空间。 8 ) 系统服务 pc o s i i 提供多种系统服务,如邮箱、消息队列、信号量、块大小固定的 内存的申请与释放、时间相关函数等。 ;9 ) 中断管理 中断可以使正在执行的任务暂时挂起,中断嵌套层数可达2 5 5 层 1 0 ) 稳定性与可靠性 uc o s i i 是基于| lc o s 的,pc ,o s 自1 9 9 2 年以来己经有好儿百个商业 应用。l - t c o s i i 与l - t c o s 的内核是一样的,只不过提供了更多的其他功能。 2 3uc o s 的体系结构 像其它r t o s 一样,l jc o s i i 也是一段嵌入在目标代码中的程序,系统复 位后首先执行,相当于用户的主程序,用户的其它程序都建立在r t o s 之上。不 仅如此,uc o s i i 采用微内核结构,所谓微内核是将必需的功能( 如进程管理、 任务通信、存储管理、中断处理、进程调度) 放在内核中,留给用户一个标准的 a p i ( 系统调用1 ,并根据各个任务的优先级,合理地在不同的任务之间分配c u p 时间。而将那些不是非常重要的核心功能和服务( 文件系统、网络通信、设备管 理1 等作为内核之上可配置的部分,方便系统扩展。相对于传统的宏内核而 言,它把原先内核中的部分内容移到内核外边,作为服务进程运行,并通过进 程间通信机制在要求服务的进程于提供服务的进程之间建立起一种客户一服 务员关系。这样,就可以由一些服务进程,而不是内核的部分模块来为应用 进程提供服务。这些服务进程对用户而言,是可配置的,显然这样的操作系统 显得灵活多了,根据用户的配置需求可大可小。最小的微内核只包括进程管理、 存储管理、进程间通信三个主要成分,加上一个中断响应框架,也许还有一些 不得不放在内核中的底层操作。至于系统调用,那是内核与进程之间的界面。 无论是进程管理,存储管理还是进程间通信,许多功能和资源都要通过系统调 1 0 第2 章嵌入式实时操作系统和1 1c o s i i 用提供给用户进程,所以从结构上说这个界面也是内核的一个部分。【l l 】 牡c o s i i 操作系统的多任务内核,包括任务管理、任务之间的通信与同步、 时间管理、中断管理和内存管理五个模块。这些功能是通过内核函数的形式交 给用户调用的。其体系结构如图2 1 所示。注意用户多任务是建立在uc o s i i 的各种系统服务之上,系统并没提供与硬件的接口程序,需要用户直接与硬件 打交道。 用户多任务 i o 管 理和 驱动 程序 堡垒望堡皇堕垄i 堡墅篁里i 堕塑篁翌l 塑! 竺翌 l lc o s i i 与硬件无关代码 pc o s i i 与硬件相关代码 硬件层 图2 1uc o s - i i 的体系结构 2 4l i c o s 内核 2 4 1 临界段 一个任务在某些时候可能会访问共享内存或者共享文件,或者其他的共享 资源,我们把对共享内存进行访问的程序片断称作临界段( c r i t i c a ls e c t i o n s ) 。为 了防止不同的任务同时处于临界段中,必须使用一定互斥的方法来避免这种情 况的发生。而对于防止不同的操作系统内核来说,关中断肯定是首选。和其他 内核一样,uc o s i i 处理临界段代码需要关中断,处理完毕后再开中断。这使 得p c o s i i 能够避免同时有其他任务或中断服务进入临界段代码。关中断的时 间是实时内核开发商提供的最重要的指标之一。因为这个指标影响用户系统对 实时事件的响应性。但就使用1 tc o s i i 而言,关中断的时间很大成都上取决于 处理器的架构以及编译器生成的代码质量。 微处理器一般都有关中断开中断指令,用户使用的c 语言编译器必须有某 种机制能够在c 中直接实现关中断开中断地操作。某些c 编译器允许在用户的 c 源代码中插入汇编语言的语句。这使得插入微处理器指令来关中断开中断很 第2 章嵌入式实时操作系统和u c i o s i i 容易实现。而有的编译器把从c 语言中关中断开中断放在语言的扩展部分。i l c o s i i 定义两个宏( m a c r o s ) 来关中断和开中断,以便避开不同c 编译器厂商选 择不同的方法来处理关中断和开中断。uc o s i i 中的这两个宏调用分别是: o s _ e n t e r _ c r i t i c a l 0 和o se x i tc r i t i c a l 0 。因为这两个宏的定义取决于 所用的微处理器,故在文件o sc p u h 中可以找到相应宏定义。 2 4 2 任务 一个任务,也称作一个线程,是一个简单的程序,该程序可以认为c p u 完 全只属于该程序自己。实时应用程序的设计过程,包括如何把问题分割成多个 任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有 它自己的一套c p u 寄存器和自己的栈空间。 每个任务都是一个无限的循环。一个任务看起来像其它c 的函数一样,有 函数返回类型,有形式参数变量,但是任务是绝不会返回的。故返回参数必须 定义成v o i d 。下面就是一个简单的任务函数: v b i dt a s k ( v o i d ) f o “;) 产用户代码+ 严调用pc o s i i 某种系统调用 不同的是,当任务完成以后,任务可以自我删除。注意任务代码并非真的 删除了,l l c o s 1 1 只是简单地不再理会这个任务了,这个任务的代码也不会再 运行,如果任务调用了o s t a s k d e l o ,这个任务绝不会返回什么。每个任务都处 在以下5 种状态之一的状态下,这5 种状态是休眠态,就绪态、运行态、挂起 态( 等待某一事件发生1 和被中断态( 参见图2 3 ) 休眠态相当于该任务驻留在内存中,但并不被多任务内核所调度。 就绪意昧着该任务已经准备好,可以运行了,但由于该任务的优先级比正 在运行的任务的优先级低,还暂时不能运行。 运行态的任务是指该任务掌握了c p u 的控制权,正在运行中。 1 2 第2 章嵌入式实时操作系统和i tc o s i i 挂起状态也可以叫做等待事件态w a i t i n g ,指该任务在等待,等待某一事 件的发生,( 例如等待某外设的i o 操作,等待某共享资源由暂不能使用变成能 使用状态,等待定时脉冲的到来或等待超时信号的到来以结束目前的等待,等 等) 。 最后,发生中断时,c p u 提供相应的中断服务,原来正在运行的任务暂不 能运行,就进入了被中断状态。图2 3 表示uc o s 中一些函数提供的服务, 这些函数使任务从一种状态变到另一种状态。 图2 3 任务的状态转换 2 4 3 任务控制块 l - tc o s i i 系统中可以使用6 4 个任务,不过由于系统自留了8 个任务,用 户可以使用的就是5 6 个任务。每个任务在建立的时候就有了自己的优先级。同 时,优先级是任务的标识。优先级号越小,任务的优先级就越高,而i t c o s i i 总是执行进入就绪态的优先级最高的任务。任务控制块是一个数据结构,用来 描述任务的一些属性。当一个任务建立时,任务控制块将被初始化。当任务的 c p u 使用权被剥夺时,1 tc o s i i 的任务控制块将保存任务的状态,当任务重新 得到c p u 的使用权时,任务控制块将恢复任务之前的寄存器状态。任务控制块 的代码如下所示。 t y p e d e fs t r u c to s _ t c b o ss t k + o s t c b s t k p t r ; 第2 章嵌入式实时操作系统和pc o s i i # i f o s j 九s k c r e a t e e x t e n v o i d + 0 s t c b e x t p t r ; 0 ss t k i n t 3 2 u i n t l 6 u i n t l 6 u # c n d i f o s t c b s t k b o t t o m ; o s t c b s t k s i z e ; o s t c b o p t ; o s t c b i d ; s t r u e to s _ t c b + o s t c b n e x t ; s t r u c to s _ t c b + o s t c b p r e v ; # i f ( o s q e n & & ( o s m a xq s 22 ) ) | io s _ m b o xe n | | o s s e m e n o s e v e n t 4 0 s t c b e v e n t p t r ; # e n d i f # i f ( o sq _ e n & & ( o s _ m a ) ( _ q s = 2 ) ) 0o s _ m b o x _ e n v o i d + o s t c b m s g ; 托n d i f 玎q t l 6 u 玳t 8 u i n t 8 u i n t 8 u 巧r r 8 u i n t 8 u d j t 8 u o s t c b d l y ; o s t c b s t a t ; o s t c b p f i o ; o s t c b x : 0 s t c b y : o s t c b b i t x : o s t c b b k y ; # i f o s t a s k d e l e n b o o l e a n o s t c b d e l r e q ; 1 4 第2 章嵌入式实时操作系统和1 1c o s i i 抛n d l f o s _ t e b ; o s t c b s t k p t r 是指当前任务栈顶的指针。每个任务都有自己的栈,i ic o s i i 中栈的容量是可以任意大小的。 o s t c b s t l d 墙是o st c b 中唯一的一个能用汇编语言来处理的变量。 0 s t c b e x t p 仃指向用户定义的任务控制块扩展。 o s t c b s t k b o t t o m 是指向任务栈底底指针。 o s t c b s t k s i z e 存有栈中可容纳的指针数目而不是用字节( b y t e ) 来表示。 o s t c b o p t 把选择项传给o s t a s k c r e a t e x t 0 ,目前uc o s 1 1 只支持3 个选项。 o s t c b i d 用于存储任务的识别码。现在还没用用到这个变量。 o s t c b n e x t 和o s t c b p r e v 用于任务控制块o st c b s 的双重链接。 0 s t c b e v e n t p 仃是指向事件控制块的指针。 o s t c b m s g 是指向传给任务的消息的指针。 o s t c b d i y 当需要把任务延时若干时钟节拍或者挂起一段时间,就要用到这 个变量。 o s t c b s t a t 是任务的状态字。为0 时,表示进入就绪态。 o s t c b p d o 是任务优先级。 o s t c b x ,o s t c b y ,0 s t c b b i t x 和0 s t c b b i t y 用于加速任务进入就绪态 的过程或者进入 等待事件发生状态的过程。 o s t c b d d r e q 是一个布尔量,用于表示该任务是否需要删除。 2 4 4 任务切换、调度和优先级 任务切换: 当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态( e p c p u 寄存器中的全部内容) 。这些内容保存在任务的当前状态保存区,也就是任 务自己的栈区:入栈工作完成以后,就把下一个将要运行的任务的当前状态从该 任务的栈中重新装入c p u 的寄存器,并开始下一个任务的运行。这个过程就称 为任务切换。任务切换过程增加了应用程序的额外负荷。c p u 的内部寄存器越 多,额外负荷就越重。任务切换所需要的时间取决于c p u 有多少寄存器要入栈。 任务调度: 第2 章嵌入式实时操作系统和uc o s i i 系统响应时间很重要,1 1c o s i i 为占先式内核。最高优先级的任务一旦就 绪,总能得到c p u 的控制权。当一个运行着的任务使一个比它优先级高的任务 进入了就绪态,当前任务的c p u 使用权就被剥夺了,或者说被挂起了,那个高 优先级的任务立刻得到了c p u 的控制权。如果是中断服务子程序使一个高优先 级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任 务开始运行。使用占先式内核,最高优先级的任务什么时候可以执行,可以得 到c p u 的控制权是可知的。使用占先式内核使得任务级响应时间得以最优化。 任务优先级分配: 嵌入式系统中的每个任务都有自己的优先级,任务越重要,赋予的优先级 就越高。在嵌入式系统,有两种优先级,即静态优先级和动态优先级。所谓静 态优先级是说在应用程序执行的过程中诸任务的优先级不变:而动态优先级恰恰 相反,它是指应用程序执行的过程中,任务的优先级是可变的。我们采用静态 优先级的方法。在静态优先级中优先级是固定的,所以任务的优先级分配也是 一件非常重要的工作。在这里使用一个成型的算法:单调执行率调度法m r s ( r a t e m o n o t o n i cs c h e d u l i n g ) 用来分配任务优先级。这种方法基于任务执行的频率来确 定任务的优先级,执行频率越高的任务,其优先级越高。 动态改变任务的优先级在pc o s i i 中是允许的,系统是通过调用 o s t a s c k h a n g e p r i 0 0 来实现的。注意用户不能改变空闲任务的优先级,但用户可 以改变调用本函数的任务或者其他任务的优先级。 2 4 5 时钟节拍 uc o s 需要用户提供周期性信号源,用于实现时间延时和确认超时。节拍 率应在每秒1 0 次到1 0 0 次之间,或者说l o 到i o o h z 。时钟节拍率越高,系统的 额外负荷就越重。时钟节拍的实际频率取决于用户应用程序的精度。时钟节拍 源可以是专门的硬件定时器,也可以是来自5 0 6 0 h z 交流电源的信号。 用户必须在多任务系统启动以后再开启时钟节拍器,也就是在调用o s s t a r t o 之后。换句话说,在调用o s s t a r t 0 之后做的第一件事是初始化定时器中断。通 常,容易犯的错误是将允许时钟节拍器中断放在系统初始化函数o s l n i t 0 之后, 在调用多任务系统启动函数o s s t a r t o 之前。 1 6 第2 章嵌入式实时操作系统和u c o s i i 2 4 6 任务问的通信与同步 在操作系统中,有多种方法可以保护任务之间的共享数据和提供任务之间 的通信。在1 1c o s i i 中,当两个任务或者一个任务和一个中断服务程序共享某 些数据时,我们常常使用o se n t e rc r i t i c a l o 和o se x i tc r i t i c a l ( ) 来 关闭中断和打开中断。当用于数据共享和任务通信时,则常使用信号量、邮箱 和消息队列。 信号量: 岷o s 中的信号量由两部分组成:一个是信号量的计数值,它是一个1 6 位的无符号整数( o 到6 5 ,5 3 5 之间) ;另一个是由等待该信号量的任务组成的等 待任务表。用户要在o sc f c t h 中将o ss e me n 开关量常数置成l ,这样 l a c o s i i 才能支持信号量。 o c o s i i 提供了5 个对信号量进行操作的函数,它们分别是用来建立一个信 号量的函数o s s e m c r e a t e o ;用来等待一个信号量的函数o s s e m p e n d o :用来发 送一个信号量的函数

温馨提示

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

评论

0/150

提交评论