已阅读5页,还剩61页未读, 继续免费阅读
(机械电子工程专业论文)基于嵌入式与现场总线陶瓷窑控制系统的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文针对嵌入式陶瓷窑控制系统进行了研究,内容涉及嵌入式系统的基 本理论及设计方法、c a n 总线、组态软件、集散控制系统,设计了一个基于嵌 入式与c a n 总线的陶瓷窑控制系统。具体进行了以下工作: 1 研究了嵌入式系统的基本理论及其设计方法,对目前市场上的实时操 作系统v x w o r k s 、p s o s 、n u c l e u s 、uc o s i i 作了简要的比较,以uc o s i i 实时操作系统为研究对象,并将其应用于工业控制系统的设计,完成了陶瓷 窑控制系统嵌入式软件的设计。 2 对c a n 总线的基本原理和特点作了比较深入的研究,使用m c s 5 1 单片 机、独立c a n 通信控制器s j a l 0 0 0 、c a n 总线收发器t j a l 0 5 0 和高速光电 耦合器6 n 1 3 7 ,完成了一个c a n 总线最小系统节点的软硬件设计。 3 在比较、分析目前陶瓷窑控制系统的优缺点的基础上,运用嵌入式系 统、c a n 总线等技术提出了一种新的控制方案,并完成了陶瓷窑控制系统硬 件的设计,具体包括:c a n 总线接口电路、l e d 的显示及驱动、按键电路、温 度检测及v f 转换电路、电磁阀驱动电路、p l c 控制电路等。 4 研究了组态软件的特点及其设计方法,并运用组态软件m c g s 的实时 数据库、用户界面、主控窗口、设备窗口等工具,初步完成了陶瓷窑上位机 控制软件的设计。 关键词:嵌入式系统,实时操作系统,c a n 总线,组态软件 a b s t r a c t t h i sa r t i c l ec a r r i e sr e s e a r c ho nt h ee m b e d d e dk i l nc o n t r o ls y s t e m i ti n v o l v e st h eb a s i c p r i n c i p l e s a n dd e s i g n i n gm e t h o d so ft h ee m b e d d e ds y s t e m ,c a nb u s ,c o n f i g u r a t i o n s o f t w a r e ,t h ed i s t r i b u t e dc o n t r o ls y s t e m i nt h i sa r t i c l e ,w ed e s i g nat h ec e r a m i ck i l n c o n t r o ls y s t e mb a s eo ne m b e d d e ds y s t e ma n df i e l dc o n t r 0 1 t h ed e t a i l e d w o r ki sa s f o l l o w i n g : 1 w ei n v e s t i g a t et h eb a s i cp r i n c i p l e sa n dd e s i g n i n gm e t h o d so ft h ee m b e d d e ds y s t e m a f t e rc o m p a r i n gs o m ec u r r e n tr e a l - t i m eo p e r a t i o ns y s t e m s ,s u c ha sv x w o r k s ,p a n s ,n u c l e u s a n dp c o s i i ,w et a k ep c o s - i ir e a l - t i m eo p e r a t i o ns y s t e ma st h em a i no b j e c ta n da p p l yi ti n t o t h ed e s i g no fi n d u s w i a lc o n t r o l l i n gs y s t e m ,t h u sc o m p l e t i n gt h ed e s i g no ft h ee m b e d d e d s o f t w a r eo fk i l nc o n t r o ls y s t e m 2 w em a k ed e e pr e s e a r c ho nt h eb a s i cp r i n c i p l e sa n dc h a r a c t e r i s t i c so fc a nb u s b y u s i n gm c s 5 1 ,i n d e p e n d e n tc a n c o m m u n i c a t i o nc o n t r o l l e rs j a l 0 0 0 ,c a nb u sr e c e i v e r t j a l 0 5 0a n dh i g hs p e e dp h o t o e l e c t r i c i t yc o u p l e r6 n 13 7 ,w ec o m p l e t et h ed e s i g no f h a r d w a r ea n ds o f t w a r eo f c a nb u sm i n i m u ms y s t e mn o d e 3 a f t e rc o m p a r i n ga n da n a l y z i n gt h ea d v a n t a g e sa n dd i s a d v a n t a g e so fc u r r e n tk i l n c o n t r o ls y s t e m ,w er a i s eu pan e w c o n t r o l l i n gp r o j e c ta n dc o m p l e t et h ed e s i g no f h a r d w a r e a n ds o f t w a r eo fk i l nc o n t r o ls y s t e mb yu s i n gs o m et e c h n o l o g i e s ,s u c ha st h ee m b e d d e d s y s t e ma n dc a n b u s t h ed e t a i l e dw o r ki n c l u d e sc a nb u si n t e r f a c ec i r c u i t ,l e dd i s p l a y a n dd r i v e r c i r c u i t ,k e yc i r c u i t ,t e m p e r a t u r e m e a s u r ea n dv f e x c h a n g e c i r c u i t , e l e c t r o m a g n e t i s mv a l v ed r i v e rc i r c u i t p l cc o n t r o ls y s t e m 4 w ei n v e s t i g a t et h ec h a r a c t e r i s t i c sa n dd e s i g n i n gm e t h o d so f c o n f i g u r a t i o ns o f t w a r e a n dw e p r i m a r i l yc o m p l e t et h ed e s i g no nc o n t r o ls o f t w a r eo fk i l nh o s tc o m p u t e r , b y t h eu s e o fs o m et o o l s ,s u c ha sr e a l - t i m ed a t a b a s e ,u s e ri n t e r f a c e ,m a i nc o n t r o lw i n d o wa n dd e v i c e w i n d o w o f c o n f i g u r a t i o ns o f t w a r em c g s k e y w o r d s :t h ee m b e d d e ds y s t e m ,r e a l - t i m eo p e r a t i o ns y s t e m c a nb u s , c o n f i g u r a t i o ns o f t w a r e i i 第1 章绪论 1 1 国内外研究应用现状分析 1 1 1 嵌入式系统的发展现状“1 近2 0 年来是p c 机领导i t 业潮流的时期,从p c 机到局域网、广域网、 再到全球互联网i n t e r n e t ,几乎近于登峰造极,现在步入将p c 机成熟技术向 嵌入式产品转化的后p c 机时代。嵌入式系统泛指嵌入于宿主设备的计算机系 统,嵌入的目的主要是用智能化提升宿主设备的功能。嵌入式系统可大可小, 位数可多可少,完全由能满足宿主设备的功能要求来决定。它可以是适于低 端应用的4 位、8 位、1 6 位的单片微控制器( 单片机) ,也可以是高端应用的 由1 6 位、3 2 位、6 4 位的微处理器和d s p 构成的计算机系统。嵌入式产品的 生命期普遍长于一般的计算机系统,4 位的单片机直到今天仍然大量用于电风 扇、电饭煲、洗衣机和简单电话机之中。嵌入式操作系统种类繁多,有w i n d o w s c e 、p s o s 、v x w o r k s 、p a l m 以及源代码开放的uc o s - i i “1 等。在嵌入式系统 的应用中,实时嵌入式系统又占有极其重要的地位。实时系统按照其对实时 响应要求的程度,可分为硬实时系统和软实时系统,在硬实时系统中,如果 未能在指定时间内就某一事件做出响应而失败,该失败被认为是一种全面的 系统失败,在软实时系统中,响应时限虽重要但不是人命关天。目前,嵌入 式系统发展迅速,渗透到人们生活的每一个角落,从可编程微波炉到机顶盒、 路由器,从调制解调器到电子游戏机的处理器,都可以看到嵌入系统的存在。 为了满足用户专用系统的需要,嵌入式的设计和生产近几年来走了一条: 模块化一可配置模块一多硅片连接模块一单硅片片上系统s o c ( s y s t e m0 nc h i p ) 的进化道路。新一轮嵌入式的最高形式,即s o c 如何实现。s o c 的核心技术是 i p 核( 知识产权核i n t e l l e c t u r a lp r o p e r t yk e r n e l s ) 模块。i p 核有硬核、 软核,还有固件核。硬i p 核有1 6 3 2 1 6 4 位r i s c c i s c 结构的m p u 核、8 1 1 6 1 3 2 位m c u 核、1 6 3 2 6 4 位d s p 核、存储器单元、标准逻辑宏单元、特殊逻辑宏 单元、模拟器件模块、m p e g j p e g 模块、网络单元、标准接口单元如u s b 等。 软i p 核有图像c o d e c 、声音c o d e c 、软m o d e m 单元、软f a x 单元等。硬核直 接给的是版图或网表,对于用户没有灵活性,但是可靠:软核有灵活性,但 是会因用户使用不当而降低可靠性;固件核则介于其间。p l d 、c p l d 和f p g a 迅速兴起,a s i c 曾被冷落。现在,由于s o c 的起步,a s i c 又可以以i p 核的 形式出售,使a s i c 厂家从新萌发了生机。加上混合a s i c 的面世,a s i c 更显 风采。混合a s i c 已能生成包括:d s p 、数据转换器、通信i c 、接口i c 、大容 量快速存储器、s o c 等六大类产品。 1 1 2 陶瓷工业的发展现状口4 中国的制陶工艺可以追溯到一万年以前,在经历了陶一印纹硬陶一原 始瓷的漫长历程后,才终于发明了瓷。之后,随着经贸活动和文化交流的 扩大,中国的制瓷技术流传到世界各国。陶瓷工业从2 0 世纪5 0 年代末至 7 0 年代初,随着燃油结构的改变,即由燃煤、重油等转向使用天然气、液 化石油气和轻油等,实现了窑炉热工技术的三大突破:( 1 ) 高速调温烧( 喷) 嘴的发明和使用;( 2 ) 新型、高级耐火材料和隔热材料的广泛使用:( 3 ) 精密完善的自动控制系统的采用。在这三大技术突破的基础上,产生并发 展了以推板窑、轨道窑为连续式作业窑炉代表,以梭式窑( 抽屉窑) 、高帽 窑( 钟罩窑) 为间歇式作业窑炉代表的全新一代窑炉。它们的经济技术指 标比原有窑炉高得多,从而使窑炉由传统的土木砖石“构筑物”变成了机 电一体化、有较高技术含量的“烧成机器”。与国外相比,中国的陶瓷工业 多年来一直使用原来的工艺设备,消耗大,产出少,废品多,污染大,经 济效益差。自8 0 年代后,我国陆续引进了一批先进的窑炉设备,同时也引 进了相关的热工技术,对于陶瓷工业及窑炉的要求,由“高产、优质、低 消耗”逐渐转向追求“优质、低耗、灵活、无污染、轻体力”。由于陶瓷窑 热工对象时滞大,是一个具有多对多的输入一一输出、非线性、被控制变 量( 如温度、气氛) 之间有强耦合的复杂的大系统,动态性差且具有某些 “时变性”。陶瓷窑存在需进一步提高其热工效率,解耦以简化自动控制系 统,解决同一水平面温差以提高其质量等问题。 1 2 课题研究的目的及意义 课题研究的目的和意义是由于嵌入式系统大多具有可移植性、可固化性、 武汉理t :人学硕士学位论文 可裁剪性、占先式、多任务、可确定性、系统服务、中断管理、稳定性和可 靠性,而工业控制系统对可靠性、灵活性和实时性的高要求,考虑到工业控 制系统的成本和经济效益,将嵌入式系统应用于工业控制具有十分广阔的前 景。另一方面,工业控制系统的发展表现为:控制面向多元化,系统面向分 散化。即负载分散、功能分散、危险分散和地域分散,由于控制系统的分散 性,现场总线( f i e l db u s ) ”。被用作工业控制系统中各种设备的通信,就显 得十分重要。c a n 以其卓越的特性、极高的可靠性和独特的设计,特别适合工 业过程监控设备的互连,越来越受到工业界的重视,并已公认为最有前途的 现场总线之一。本课题旨在将c a n 总线和嵌入式系统结合起来,为工业控制 系统寻找一种廉价、可靠、实用的解决方案。 1 3 课题的研究工作 1 3 1 嵌入式系统哺t 6 7 嵌入式系统包括嵌入式软件和嵌入式硬件,一个典型的嵌入式系统如图 1 1 所示。 一 嵌入式软件 :应用程序f f 嵌入式操作系统j 嵌入式硬件 f内存 | i 、,。,。一 输入外设j = = = 输出外设 图1 i 典型的嵌入式系统 嵌入式软件由嵌入式操作系统和应用程序两部分组成。嵌入式操作系统, 又称实时操作系统,是嵌入式软件的核心。实时操作系统根据其响应时限的 要求,分为软实时操作系统和硬实时操作系统。实时操作系统主要是完成任 务的调度和对系统资源的管理的功能,从而为用户提供一个多任务、实时、 亟堡里王查堂堡主兰垡堡墨 可靠的软件平台。应用程序通过实时操作系统、处理器来控制输入输出外设, 在编写应用程序时,要根据实时操作系统提供的软件接口,针对具体的应用 而专门设计。 嵌入式硬件包括输入设备和输出设备,输入设备如键盘、鼠标、触摸屏 等,输出设备如l e d 、l c d 、显示器、打印机等。对于工业控制设备而言,其 主要包括按键输入电路、a d 采样及转换电路、显示电路、功率驱动放大电路 等。 市场上的嵌入式操作系统有v x w o r k s 、p s o s 、n u c l e u s 、uc o s i i 等。u c o s i i 操作系统的源代码开放、免费,有很多成功的应用例子可供参考:其 次,uc o s - i i 操作系统移植方便,如果在某一硬件平台上调试成功,将其在 移植其他硬件平台上移植只需修改其中与c p u 相关的几个文件,嵌入式操作 系统内核便可正常运行;另外,uc o s i i 操作系统有比较好的可扩充性,运 行稳定,对硬件资源的要求不高,比较适合于工业控制现场。 我们研究了嵌入式系统的基本理论及设计方法,设计了陶瓷窑的嵌入式 控制方案,并以应用uc o s - i i 操作系统,完成了陶瓷窑嵌入式控制系统的详 细设计。 1 3 2c a n 总线8 3 c a n 总线是一种多主串行数据通信总线,c a n 总线废除了传统的站地址编 码,取而代之以对通信数据块进行编码,这样可使不同的节点收到相同的数 据,在分布式控制系统中非常有用。c a n 总线数据段长度最多为8 个字节,可 满足通常工业领域中控制命令,工作状态及测试数据的一般要求。同时,8 个 字节不会占用总线时间过长,从而保证了通信的实时性。c a n 协议采用c r c 检 验并可提供相应的错误处理功能,保证了数据通信的可靠性。 c a n 总线的系统总体结构如下图1 2 所示考察到作为系统模型,这里只 选择两个具有代表性的现场节点:智能节点和最小系统节点。c a n 接口适配卡 是p c 机的c a n 总线接口电路,作为一种标准的设备,可以自己制作,也可以 外购。智能节点可以是p l c 或某个智能仪表等,最小系统节点是单片机组成 的小系统,它们可能直接支持c a n 总线,也可能不支持,这时则需要设计接 口电路,接口电路可由多种方案,技术也比较成熟,如用8 2 c 2 0 0 、8 2 c 2 5 0 , 亟坚里三查兰堡主堂垡丝茎 图1 2c a n 总线系统总体结构 市场上有多家厂商可提供c a n 接口适配卡及其相应的驱动程序,因此 我们在研究c a n 总线时,主要研究了c a n 总线最小系统节点的软硬件实现。 1 3 3 组态软件 组态软件基于m i c r o s o f t 的各种3 2 位w i n d o w s 平台上运行,通过对现场 数据的采集处理,以动画显示、报警处理、流程控制和报表输出等多种方式 向用户提供解决实际工程问题的方案,在工业控制领域有着广泛的应用。 组态软件的设计主要包括:可视化操作界面、实时数据库、用户窗口、 主控窗口、设备窗口、用户报表、实时曲线等。运用组态软件的这些强大功 能,我们初步完成了陶瓷窑上位机监控系统的软件设计。 1 3 4 陶瓷窑控制系统“5 1 刚 陶瓷窑控制系统的结构如图1 3 所示 ! l c a n , g t 戋 ii i 兰竺兰兰! |l 竺型兰兰! i 图1 3 陶瓷窑控制系统的结构 陶瓷窑控制系统是一个复杂的机电控制系统,工作的可靠性、性能、控 武汉理工大学硕士学位论文 制系统成本等都必须认真考虑。在研究了当前的陶瓷窑控制方案后,我们提 出了一种新的解决方案,控制系统采用上位机和下位机的结构,下位机采用 嵌入式系统,负责工业设备的实际控制,上位机对整个系统进行监控和管理, c a n 总线负责上位机和下位机之间的通信。 陶瓷窑控制系统下位机是典型的嵌入式系统,对系统的实时性、可靠性等 都有比较高的要求。我们研究了陶瓷窑控制系统的具体要求后,完成了下位 机的软硬件设计。数据采集到上位机后,上位机将数据存储到实时数据库, 使用实时数据库中的数据,输出数据报表,动态显示实时曲线,并对用户界 面刷新。运用组态软件,我们初步完成了上位机的软件设计,模拟运行达到 了满意的效果。 墨坚望:e 签堂堡主堂笪堡塞 、 、第2 章嵌入式系统的基本理论及设计 嵌入式系统( e m b e d d e ds y s t e m ) 在于结合微处理器或微控制器的系统电路 与其专业的软件,来达到系统操作效率成本的最高比。如移动电话、手表、 电子游戏机、p d a 、电视、冰箱等民用电子与通信产品、电动机车、电动脚踏 车,乃至于电动汽车等电动交通工具的控制核心,无不与嵌入式系统息息相 关。而在后p c 时代的来临,家电、玩具、汽车、新一代手机、数码相机、先 进的医疗仪器乃至于即将到来的智能型房屋、智能型办公室、与其他跟电有 关的器材设备更是缺少不了嵌入式系统这个核心技术。 2 1 嵌入式系统概述 2 1 1 嵌入式系统的概念 何谓嵌入式系统? 根据英国电机工程师协会的定义所做的翻译,“嵌入式 系统为控制、监视或辅助设备、机器或甚至工厂操作的装置”。它具备了下列 四项的特性: ( 1 ) 通常执行特定功能 ( 2 ) 以微电脑与外因构成核心 ( 3 ) 严格的时序与稳定性要求 ( 4 ) 全自动操作循环 2 1 2 嵌入式系统的组成 嵌入式系统是电脑软件与硬件的综合体,亦可涵盖机械或其他的附属装 置。整个综合体设计的目的在于满足某种特殊功能。嵌入式系统的架构可分 成五个部分:处理器、内存、输入与输出、操作系统与应用软件。它们常见 于各类实验仪器、办公设备、交通运输设备、电信设备、制造设备、建筑设 备、医疗设备及个人电脑等。 嵌入式系统可以分为硬件及软件两部分,其中硬件的设计包括单片机控 制电路的设计、网络功能设计、无线通信设计及使用接口等等;嵌入式软件 垫望望兰查兰堡主堂堡垒壅 一 为信息、通信网络或消费性电子等产品系统中的必备软件,专司硬件产品的 驱动、控制处理或基本接1 2 1 功能,以提升硬件产品的价值,为该硬件产品不 可或缺的重要部分,它常以韧件形式,如控制器或驱动程序等方式呈现。现 今嵌入式系统大多数的产品仍然以低级的8 位处理器配合少量的内存与电路 来作控制,不过高级的嵌入式系统产品也逐渐增加。 嵌入式系统与一般桌上型电脑或是通用型电脑的最大不同之处在于量身 订做,所以很难不经过“重大”的修改直接套用到其他的嵌入式产品上去。 主要是因为嵌入式产品的硬件具有很高的多样性,就像无法将空调控制系统 直接搬到电冰箱上使用,而且通常为了降低整个系统购成本,会尽量简化不 必要的软硬件设计,因此每一项嵌入式产品都有其特殊性,这更加深了所谓 移植不同机器上的困难性。 事实上,嵌入式系统只是计算机架构中的一个分支,一个标准的计算机 架构中必然包含了中央处理器、内存、输出装置、输入装置,只不过在嵌入 式系统里,这些单元以较为特殊的形式存在,例如电脑的标准输入装置为键 盘,但是微波炉的标准输入装置可能就是它的触控面板,在这些方面,嵌入 式系统与一般通用型电脑之间有着明显的差异。 2 1 2 嵌入式系统的发展趋势阳7 未来的嵌入式系统发展趋势将向软硬系统整合、s o c 设计、应用程序研发 以及内容服务这几个方面来发展: ( 1 ) 系统:嵌入式操作系统( r t o s ) 与p c 操作系统( w i n 9 5 9 8 ) 比较,嵌入式操作系统并未要求全能,但必须 能够依据系统的设计规格,有效率地发挥出硬件的运算能力,使得产品达到 效率价格比的优化,大多数的系统会要求全自动完成所设置的工作,例如 工厂或是银行的系统;除了原本在嵌入式领域耕耘已久的v x w o r k s 、q n x 、 n u c l e u s 等等之外,新兴的主要竞争产品包括p a l m0 s 、w i n d o w sc e 、l i n u x 等,其中e m b e d d e dl i n u x 操作系统免费授权的特性,已被广泛采用。 ( 2 ) 整合式芯片:s o c 嵌入式产品所需的处理器及芯片组较p c 要求体积小、散热佳、省电,因 此多采用高整合度的s o c ( s y s t e m o n c h i p ) 为其处理器核心,为了尽快缩小制 程技术进步与设计生产力闻的差距,并加速s o c 的实现,s i p ( s i l i c o n 武汉理= r = 大学硕士学位论文 i n t e l l e c t u a l p r o p e r t y ) 的重复使用( r e u s e ) 蒯s 各方瞩目的焦点。s i p 即所谓硅 知识产权,或半导体知识产权,在智财权前面加上硅或半导体,是为了要与 一般所称的智财权有所区分。 f 3 1 应用软件 嵌入式软件可区分为用户端的应用软件及服务器端的整合软件,服务器 端的软件可能以l i n u x 或是w i n d o w s 为核心,并搭配各种数据库系统:用户 端由于各种产品种类繁多,可开发出的软件也相对增加,例如p a l m 号称有上 万种应用软件可以使用。除了原本各种平台专属的应用软件之外,现在更有 利用j a v a 跨平台程序开发的软件加入这个阵容,软件的种类变得更多。 ( 4 ) 服务 由于嵌入式产品必须能随身携带或走入家居生活,故其体积上要求轻薄 短小、造型及颜色必须个人化、输入必须自然化、输出必须多媒体化才能吸 引消费者;另一方面由于嵌入式产品与网络结合,所以与网络服务提供者或 电子商务业音极易结合,也就是嵌入式产品连上网络的入口网站及其内容 ( h 1 m l j 3 ( m l ) ) 可能由厂商负责提供。 2 嵌入式系统的基本理论乜2 0 嵌入式系统一般都是实时系统“,实时系统的特点是,如果逻辑和时 序出现偏差将会引起严重后果的系统。 实时系统有两种类型:软实时系统和硬实时系统。在软实时系统中系统 的宗旨是使各个任务运行得越快越好,并不要求限定某一任务必须在多长时 间内完成。在硬实时系统中,各任务不仅要执行无误而且要做到准时。大多 数实时系统是二者的结合。实时系统的应用涵盖的领域十分广泛,而多数实 时系统又是嵌入式的,这意味着计算机内置在系统内部,用户看不到有个计 算机在系统里面。 2 2 1 前后台系统( f o r e g r o u n d g a c k g r o u n ds y s t e m ) 不太复杂的小系统一般设计成前后台系统或超循环系统( s u p e r l o o p ) 。 应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部 分可以看成后台行为。中断服务程序处理异步事件,这部分可以看成前台行 为,后台也可以叫做任务级,前台也叫中断级。时间相关性很强的关键操作 一定是靠中断服务程序来保证的。因为中断服务提供的信息一直要等到后台 程序走到该处理这个信息这一步时才能得到处理,这种系统在处理信息的及 时性上,比实际可以做到的要差,这个指标称作任务级响应时间。最坏情况 下的任务级响应时间取决于整个循环的执行时间。因为循环的执行时间不是 常数,程序经过某一特定部分的准确时间也是不能确定的。进而,如果程序 修改了,循环的时序也会受到影响。 2 2 2 多任务的切换 一个任务,也称作一个线程,是一个简单的程序,该程序可以认为c p u 完全只属该程序自己。实时应用程序的设计过程,包括如何把问题分割成多 个任务,每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级, 有它自己的一套c p u 寄存器和自己的栈空间。 典型地,每个任务都是一个无限的循环。每个任务都处在以下5 种状态 之一的状态下,这5 种状态是休眠态,就绪态、运行态、挂起态( 等待某一事 件发生) 和被中断态。休眠态相当于该任务驻留在内存中,但并不被多任务内 核所调度。就绪态意味着该任务已经准备好,可以运行了,但由于该任务的 优先级比正在运行的任务的优先级低,还暂时不能运行。运行态的任务是指 该任务掌握了c p u 的控制权,正在运行中。挂起状态也可以叫做等待事件态 w a i t i n g ,指该任务在等待,等待某一事件的发生,( 例如等待某外设的i o 操作,等待某共享资源由暂时不能使用变成能使用状态,等待定时脉冲的到 来或等待超时信号的到来以结束目前的等待,等等) 。最后,发生中断时,c p u 提供相应的中断服务。原来正在运行的任务暂不能运行,就进入了被中断状 态。 多任务运行的实现实际上是靠c p u ( 中央处理单元) 在许多任务之间转换、 调度。c p u 只有一个,轮番服务于一系列任务中的某一个。多任务运行很像前 后台系统,但后台任务有多个。多任务运行使c p u 的利用率得到最大的发挥, 并使应用程序模块化。在实时应用中,多任务化的最大特点是,开发人员可 以将很复杂的应用程序层次化。使用多任务,应用程序将更容易设计与维护。 多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态, 即c p u 寄存器中的全部内容。这些内容保存在任务的当前状态保存区,也就 垫竖里三查兰堕主兰堡丝奎 是任务自己的栈区之中。入栈动作完成以后,就把下一个将要运行的任务的 当前状态从该任务的栈中重新装入c p u 的寄存器,并开始下一个任务的运行。 这个过程就称为任务切换。任务切换过程增加了应用程序的额外负荷。c p u 的 内部寄存器越多,额外负荷就越重。做任务切换所需要的时间取决于c p u 有 多少寄存器要入栈。实时内核的性能不应该以每秒钟能做多少次任务切换来 评价。 任务的状态转换如下图2 1 所示: 等待或挂起 f 任务被删除f 运行条件满足f 运行条件不满足 l 任务被创建广上 时间片到广上 中断广一 休眠e 二j 就绪e 二二二j 运行口中断服务 r _ j 任务被删除l _ j 任务被占先l t 一j l 一 i 任务被删除 图2 i 任务的状态 2 2 3 内核( k e r n e i ) 和调度( s c h e d u i e r ) 多任务系统中,内核负责管理各个任务,或者说为每个任务分配c p u 时 间,并且负责任务之间的通信。内核提供的基本服务是任务切换。之所以使 用实时内核可以大大简化应用系统的设计,是出为实时内核允许将应用分成 若干个任务,由实对内核来管理它们。内核本身也增加了应用程序的额外负 荷,代码空间增加r o m 的用量,内核本身的数据结构增加了r a m 的用星。但 更主要的是,每个任务要有自己的栈空间,这一块占起内存来是相当厉害的。 内核本身对c p u 的占用时间一般在2 到5 个百分点之间。通过提供必不 可缺少的系统服务,诸如信号量管理,邮箱、消息队列、延时等,实时内核 使得c p u 的利用更为有效。单片机一般不能运行实时内核,因为单片机内部 的r a m 很有限。但是,单片机可扩展外部r a m ,8 位单片机最多可扩展6 4 k 的 r a m ,这样,就可以运行实时内核了。 调度,是内核的主要职责之一,决定该轮到哪个任务运行了。多数实时 内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的 亟堡翌三查堂堕主兰堡堡墨 优先级。基于优先级的调度法指c p u 总是让处在就绪态的优先级最高的任务 先运行。然而,究竟何时让高优先级任务掌握c p u 的使用权,有两种不同的 情况,这要看用的是什么类型的内核,是非占先式的还是占先式的内核。 非占先式内核要求每个任务自我放弃c p u 的所有权。非占先式调度法也 称作合作型多任务,各个任务彼此合作共享一个c p u ,异步事件还是由中断服 务来处理。中断服务可以使一个高优先级的任务由挂起状态变成就绪状态, 但是中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主 动放弃c p u 的使用权时,那个高优先级的任务才能获得c p u 的使用权。非占 先内核的优点有:响应中断快,允许使用不可重入函数,任务级响应时间比 前后台系统快得多,任务响应时间取决于最长的任务执行时间;几乎不需要 使用信号量来保护共享数据。非占先内核的最大缺点有:任务级响应时间是 不确定的,高优先级的任务已经进入就绪态。还不能运行,也许要等很长时 间直到当前运行的任务释放c p u 。目前商业软件几乎没有非占先式内核。 对于占先式内核,最高优先级的任务一旦就绪,总能得到c p u 的控制权。 使用占先式内核,最高优先级的任务什么时候可以执行,可以得到c p u 的控 制权是可知的,从而使得任务响应时间得以最优化;使用占先式内核时,应 用程序不应直接使用不可重入型函数,调用不可重入型函数时,必须满足互 斥条件,互斥条件可用互斥信号量来实现。 2 2 4 可重入性 可重入型函数可以被一个以上的任务调用,而不必担心数据的破坏。可 重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据 不会丢失。可重入型函数只使用局部变量,即变量保存在c p u 寄存器中或堆 栈中。 如下面的函数s t r c p y 0 就是可重入函数,而函数s w a p ( ) 就是不可重入函数: v o i ds t r c p y ( c h a r + d e s t ,c h a r + s f c ) w h i l e ( + d e s t + + = + s r c + + ) ; + d e s t = n u l l ; ) i n tl e m p ; v o i ds w a p ( i n t + x ,i n t + y ) t e m p = + x : + x = + y ; + y = t e m p ; ) 函数s t r c p y o 作字符串复制,因为函数是存在堆栈中的,故函数s t r e p y o 可以被多个任务调用,而不必担心各个任务调用函数期间会破坏对方的指针。 对于不可重入函数s w a p ( ) ,被多个任务调用,假定的优先级任务交换的两个 数是i 和2 ,高优先级任务交换的两个数是3 和4 。如果低优先级的任务正在 执行s w a p ( ) 函数时,中断发生了,此时t c m p 被赋值l ,中断服务子程序使更 高优先级的任务就绪,中断完成后,高优先级的任务运行,高优先级任务调 用s w a p ( ) 函数后,两个数交换后变成了4 和3 ,t c m p 被赋值为3 。高优先级 任务系统延时,释放c p u 的使用权,低优先级的任务得以继续运行。低优先 级任务执行完s w a p ( ) 函数后,由于t e m p 值仍为3 ,两个数交换后变成了2 和 3 。而不是2 和1 ,数据交换出现错误。 避免出现上述错误的方法有: ( 1 ) 把t c m p 定义为局部变量,使函数s w a p ( ) 成为可重入函数; ( 2 ) 调用s w a p ( ) i 函数之前关中断,调用后再开中断; ( 3 ) 用信号量禁止该函数在使用过程中被再次调用。 2 2 5 任务优先级和优先级反转 每个任务都有其优先级( p r i o r i t y ) 。任务越重要,赋予的优先级应越高。 使用实时内核,优先级反转问题是实时系统中出现得最多的问题。图2 2 解释优先级反转是如何出现的。如图,任务l 优先级高于任务2 ,任务2 优先 级高于任务3 。任务l 和任务2 处于挂起状态,等待某_ 事件的发生,任务3 正在运行如图2 2 ( 1 ) 所示。此时,任务3 要使用其共享资源。使用共享资源之 前,首先必须得到该资源的信号量( s e m a p h o r e ) 。任务3 得到了该信号量,并 开始使用该共享资源【图2 2 ( 2 ) ,由于任务1 优先级高,它等待的事件到来之 后剥夺了任务3 的c p u 使用着的资源 图2 2 ( 3 ) 】,任务1 开始运行 图2 2 ( 4 ) 】。 坚堡墨三查兰堡主堂堡垒塞 运行过程中任务l 也要使用那个任务3 正在使用着的资源,由于该资源的信 号量还被任务3 占用着,任务1 只能进入挂起状态,等待任务3 释放该信号 量 图2 2 ( 5 ) 】。任务3 得以继续运行【图2 2 ( 6 ) 】。由于任务2 的优先级高于任务 3 ,当任务2 等待的事件发生后,任务2 剥夺了任务3 的c p u 的使用权【图2 2 ( 7 ) 】 并开始运行。处理它该处理的事件【图2 2 ( 8 ) 】,直到处理完之后将c p u 控制权 还给任务3 【图2 2 ( 9 ) 】。任务3 接着运行【图2 2 ( 1 0 ) 】,直到释放那个共享资源 的信号量 图2 2 0 1 ) 】。直到此时,由于实时内核知道有个高优先级的任务在等 待这个信号量,内核进行任务切换,使任务1 得到该信号量并接着运行【图 2 2 ( 1 2 ) 】。 纠正的方法可以是,在任务3 使用共享资源时,提升任务3 的优先级。 任务完成时予以恢复。任务3 的优先级必须升至最高,高于允许使用该资源 的任何任务。多任务内核应允许动态改变任务的优先级以避免发生优先级反 转现象。然而改变任务的优先级是很花时间的。如果任务3 并没有先被任务l 剥夺c p u 使用权,又被任务2 抢走了c p u 使用权,花很多时间在共享资源使 用前提升任务3 的优先级,然后又在资源使用后花时间恢复任务3 的优先级, 则无形中浪费了很多c p u 时间。真正需要的是,为防止发生优先级反转,内 核能自动变换任务的优先级,这叫做优先级继承。 任务l ( 高) : : : :( 8 ): : 任务2 ( 中) i li 医巫弦巫勉囫j : : ( 1 ) : :( 6 l:00):i 任务,( 低) 二二j 冱互 二j z z 艺二二二二二二二二二二二二蔓z 羽 任务3 得到信号量( 2 ) : : : 任务3 重新运行( 9 ): 。 : 任务1 剥夺任务3 的c p u 使用权( 3 ):任务3 释放信号量( 1 i ) 任务l 试图得到信号量( 5 ) 任务2 剥夺任务3 的c p u 使用权( 7 ) 图2 2 优先级反转问题 并不是所有的嵌入式操作系统都支持优先级继承,v x w o r k s 等嵌入式操 作系统支持优先级继承,而斗c o s - i i 等一些小型的嵌入式操作系统大多不支 塾坚里:e 叁堂堡主兰垡堡苎 持优先级继承。 2 2 6 互斥条件 实现任务间通信最简便的办法是使用共享数据结构。特别是当所有到任 务都在一个单一地址空间下,能使用全程变量、指针、缓冲区、链表、循环 缓冲区等,使用共享数据结构通信就更为容易。虽然共享数据区法简化了任 务间的信息交换,但是必须保证每个任务在处理共享数据时的排它性,以避 免竞争和数据的破坏。与共享资源打交道时,使之满足互斥条件最一般的方 法有: ( 1 ) 关中断; 处理共享数据时保证数据互斥,最简便快捷的方法是关中断和开中断。 但必须注意,关中断的时间不能太长,因为它影响整个系统的中断响应时间, 即中断延迟时间。当改变或复制某几个变量的值时,应想到用这种方法来做, 这也是中断服务子程序中处理共享变量或共享数据结构的唯一方法。在任何 情况下,关中断的时间都要尽量短。 ( 2 ) 使用测试并置位指令: 当两个任务共享一个资源时,一定要约定好,先测试某一全程变量,如 果该变量是0 ,允许该任务与共享资源打交道。为了防止另一个任务也使用该 资源,前者只要简单地将全程变量置为1 ,这就是称作测试并置位( t e s t - - a n d - - s e t ) 。或称作t a s 。t a s 操作可能是一个微处理器的单独一条不会被中断的 指令,或者是在程序关中断作t a s 操作再开中断。 ( 3 ) 禁止做任务切换; 如果任务不与中断服务子程序共享变量或数据结构,可以使用禁止、然 后允许任务切换。此时任务切换虽然是禁止了,但中断还是开着的。如果这 时中断来了,中断服务子程序会在这一临界区内立即执行。中断服务子程序 结束时,尽管有优先级高的任务已经进入就绪态,内核还是返回原来被中断 了的任务,直到执行完给任务切换开锁函数o s s c h e d u n l o c k0 ,内核再看有没 有优先级更高的任务被中断服务子程序激活而进入就绪态,如果有,则任务 切换。 ( 4 ) 利用信号量。 信号量是一种约束机制,在多任务内核中普遍使用信号量用于:控制共 享资源的使用权( 满足互斥条件) ;标志某事件的发生;使两个任务的行为同 步。 要得到信号量的任务执行等待操作,如果该信号量有效,则信号量值减 l ,任务得以继续运行;如果该信号量的值为0 ,则等待信号量的任务就被列 入等待信号量任务表。多数内核允许用户定义等待超时,如果等待时间超过 了某一设定值时。该信号量还是无效,则等待信号量的任务进入就绪态准备 运行,并返回出错码。 任务以发送信号量后,如果没有任务在等待信号量,信号量的值简单地 加l :如果有任务在等待该信号量,那么会有一个任务进入就绪态,信号量的 值也不加1 。收到信号量的任务可能是以下两者之一:等待信号量任务中优先 级最高的任务;最早开始等待信号量的那个任务,即按先进先出的原则 ( f i f o ) 。 2 2 7 消息邮箱 通过内核服务可以给任务发送消息。典型的消息邮箱( m e s s a g em a i lb o x ) 也称作消息交换( m e s s a g ee x c h a n g e ) ,是用一个指针型变量,通过内核服务, 一个任务或一个中断服务程序可以把一则消息( 即一个指针) 放到邮箱里去。 同样,一个或多个任务可以通过内核服务接收这则消息。发送消息的任务和 接收消息的任务约定,该指针指向的内容就是那则消息。 每个邮箱有相应的正在等待消息的任务列表,要得到消息的任务会因为 邮箱是空的而被挂起,且被记录到等待消息的任务表中,直到收到消息。一 般地况,内核允许用户定义等待超时,等待消息的时间超过了。仍然没有收 到该消息,这任务进入就绪态,并返回出错信息,报告等待超时错误。消息 放入邮箱后,或者是把消息传给等待消息的任务表中优先级最高的那个任务 ( 基于优先级) ,或者是将消息传给最先开始等待消息的任务( 基于先进先出) 。 图2 3 示意把消息放入邮箱。用一个i 字表示邮箱,旁边的小砂漏表示 超时计时器,计时器旁边的数字表示定时器设定值,即任务最长可以等多少 个时钟节拍( c 1 0 c kt i c k ) 。 消息邮箱也可以当作只取两个值的信号量来用。邮箱里有消息,表示资 源可以使用,而空邮箱表示资源已被其他任务占用。 邮箱 2 2 8 消息队列 1 0 图2 3 消息邮箱 使任务挂起 消息队列( m e s s a g eq u e u e ) 用于给任务发消息。消息队列实际上是邮箱阵 列。通过内核提供的服务,任务或中断服务子程序可以将一条消息( 该消息的 指针) 放入消息队列。同样,一个或多个任务可以通过内核服务从消息队列中 得到消息。发送和接收消息的任务约定,传递的消息实际上是传递的指针指 向的内容。通常,先进入消息队列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年小学六年级科学下学期综合试卷
- 2025年标准合同范本:某市汽车销售买卖合同
- 2025年合作合同 汽车租赁服务合作协议书
- 养老护理员年终总结
- 2025年国企人力资源管理岗招聘考试专业卷(含岗位说明书)解析与答案
- 2025年电工个人工作总结(3篇)
- 2025银行同业拆借借款合同范本
- 2025年医院基肯孔雅热防治知识培训考试试题带答案
- 2025年下半年嘉兴桐乡市屠甸镇招考动物防疫员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年商务部配额许可证事务局招聘工作人员8人易考易错模拟试题(共500题)试卷后附参考答案
- 养老院福利院消防安全培训课件
- 第十八届“振兴杯”(学生组)机床装调维修工赛项考试题库汇总(附答案)
- 花生脱壳机结构设计
- 部编版九年级历史下册第10课-《凡尔赛条约》和《九国公约》优质课件
- 供应商申请表
- GB/T 13530-2023乙氧基化烷基硫酸钠试验方法
- 建筑节能分部工程质量验收记录
- GA/T 2008-2022法庭科学枪支检验技术规范
- 幼儿园幼小衔接拼音全教案
- FZ/T 13012-2014普梳涤与棉混纺本色布
- 500kV变电站事故油池施工方案
评论
0/150
提交评论