(电力系统及其自动化专业论文)具有实时性的嵌入式linux的研究及其在电力系统中的应用.pdf_第1页
(电力系统及其自动化专业论文)具有实时性的嵌入式linux的研究及其在电力系统中的应用.pdf_第2页
(电力系统及其自动化专业论文)具有实时性的嵌入式linux的研究及其在电力系统中的应用.pdf_第3页
(电力系统及其自动化专业论文)具有实时性的嵌入式linux的研究及其在电力系统中的应用.pdf_第4页
(电力系统及其自动化专业论文)具有实时性的嵌入式linux的研究及其在电力系统中的应用.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

国电自动化研究院硕士学位论文 a b s t r a c t a san o t eo ft h ep o w e rn e t w o r k , s u b s t a t i o nt a k e so nt h er o l eo ft h et r a n s m i s s i o na n d d i s t r i b u t i o no fp o w e r w i mt h ee m e r g e n c eo ft h e ws t a n d a r do ft h es u b s t a t i o n , m o l e h e a v i e rc o s t - b e n e f i ts t l r e $ $ a n ds a f ef a c t o r sd u et ot h et e c h n o l o g yd e v e l o p m e n t w es h o u l d i n c r e a s et h el e v e lo ft h es u b s t a t i o na u t o m a t i o ns y s t e ms o f t w a r ew i t hn e wt e c h n o l o g ya n d t h e o r y t os a t i s f yt h ed e m a n do fs e c u r i t y , d l 戈t e a s et h ec o s t , r e a lt i m i n gt h eo p e nl i n u xi sp u t o i lt h ec a l e n d a r s ot h i sd i s s e r t a f i o nt a k e sa t t e n t i o nt ot h er e s e a r c ho ft h er e a lt i m el i n u x 1 1 1 e m a i nc o n t e n t sa l e 雒f o l l o w s : 1 。ad e e pr e s e a r c hi nt h er e a lt i m eo p e r a t i o ns y s t e ma n de m b e d d e do p e r a t i o ns y s t e m , s u e l a 私i t sd e f i n i t i o n , a na n a l y s i sa n dc o m p a r i s o nb e t w e e nt h ee m b e d d e dl i n u x , w i n c e , v x w o r k s ,d e l t a o sf r o mk e r n e l $ 1 1 3 1 c t u l r e ,s c h e d u l e ra n dt h es u p p o r t i n gt o o l s 2 ,a n a l y z i n gt h et i m e s h a r i n gc h a r a c t e ro fl i n u xa st h eg e n e r a lo p e r a t i o ns y s t e m , u n d e r s t a n d i n gt h ed e v e l o p m e n tp r o c e s s ,t h ea d v a n t a g eo f t h ee m b e d d e dl i n u xa n dt h e r e a lt i m es i t u a t i o n 3 。b a s e do nt h er e s e a r c ho nt h em a i nr e a lt i m el i n u x ,s i xt e c h n o l o g i e sa n ds l r u c t u r c so f i m p r o v i n gt h er e a lt i m ec h a r a c t e ro fl i n u xi ss u m m a r i z e d :m i c r o t i m e r , i n t e r r u p t s i m u l a t i n gt e c h n o l o g y , a d d i n gp r e e m p t i v ep o i n tt e c h n o l o g y , d u a lk e r n e ls t r u c t u r e 。 m o d i f i c a t i o no f t h et a s ks c h e d u l e r , r e $ o t l r c 它k e r n e ls t r u c t u r e 4 。b a s e d0 1 1t h er e s e a r e l ao ft h et i m em e c h a n i s mo fs t a n d a r dl i n u x ,ad e e pr e s e a r c ho n t h ea b s t r a c tl a y e ra n di n t e r f a c el a y e ro ft h em i c r o t i m e ri se n g a g e d , a n dap e r f o r m a n c e t e s tf o l l o w s 5 ,g i v i n gt h ee x a m p l e o fa p p l i c a t i o no ns u b s t a t i o na u t o m a t i o ns y s t e ma n dt h ee m b e d d e d r e a lt i m el i n u xa p p l i e d p r o s p e c ti nt h ep o w e rs y s t e m k e y w o r d s :e m b e d d e d ,r e a l t i m e ,l i n u x ,s u b s t a t i o na u t o m a t i o ns y s t e m ,m i e r o t i m e r 第一章引言 1 1 课题研究的背景 第一章引言 变电站作为整个电网中的重要节点,担负着电能传输、分配的任务。变电站自 动化系统是保证上述任务完成的基础。变电站自动化系统是指在变电站中应用自动 控制技术、信息处理与传输技术,通过计算机硬件系统或自动化装置代替人工进行 各种运行作业,从而提高变电站运行质量和管理水平的一种自动化系统。变电站自 动化系统作为电力系统自动化系统的一个重要组成部分,应确保:监测电网故障, 尽快隔离故障部分;采集变电站运行实时信息,对变电站运行进行监视和计量;采 集一次设备状态数据,供维护一次设备参考;提供当地后备控制。因此,交电站自 动化系统应运行高效、实时、可靠,站内设备统一检测、管理、协调和控制。同时, 又必须与电网调度自动化系统进行实时、有效的信息交换、信息共享,优化电网操 作,提高电网安全稳定运行水平,提高经济效益,并为电力系统自动化的进一步发 展留下空间。 变电站自动化包括横向综合和纵向综合两个方面。横向综合,是利用计算机手 段将不同厂家的设备连在一起,替代或升级老设备的功能;纵向综合,是指在变电 站层,提供信息、优化,综合处理分析信息和增加新的功能,增强变电站内部、各 控制中心间的协调能力。如借用人工智能技术,在控制中心可事先对变电站控制和 保护系统进行在线诊断和事件分析,或在变电站当地功能协助之下,完成电网故障 后自动恢复【2 l 。 传统变电站自动化系统中电力自动化装置软件一般采用单任务方式,即主程序 加子程序调用的形式,由中断来响应外部事件,中断服务子模块完成数据采集、数 据处理,操作控制、内部数据交换、外部通信、人机联系等功能。这种单任务方式 只能处理某一特定应用,系统的可扩展性和可维护性相对较弱;缺乏有效的开发工 具支持,网络通信部分需要自己实现,用户界面不友好。目前,变电站自动化系统 向分布化、智能化、网络化的方向发展,需要为用户提供友好的图形或界面。在这 种情况下,系统中运行的调度程序更为复杂,再靠自行编写的“实时监控程序”将无 法适应系统运行的要求,实时性和可靠性也不能得到保证口1 。实时性满足与否将直 接影响电力系统的稳定性,以电力系统的稳定观测和控制为例,电网的安全稳定性 通常在事故后几十到几百毫秒就有可能受到威胁,过迟的稳定控制措施不仅起不到 预想的作用,甚至可能引起其它的安全问题,因此稳定安全控制装置的动作的实时 性便成为衡量该装置性能的重要指标。同时,随着i e c 6 1 8 5 0 在变电站自动化系统 中的逐步应用,对自动化装置的实时性也提出了更高要求。这里的实时性不仅指获 得数据的实时性,而且包括数据处理、分析、决策的实时性。例如,在i e c 6 1 8 5 0 国电自动化研究院硕士学位论文 的实现中提到的合并单元( m e r g i n gu n i t ) ,其数据输出模块向保护控制单元发送电 流、电压数字信号,要求数据发送频率为1 堍秒,这个时间要求只有实时系统才能 实现。快速的市场变化,导致产品的不断升级,使开发人员不能再将主要精力放在 低层次的硬件实现以及复杂的调度程序上,需要强大的软件平台来屏蔽硬件、提供 调度管理功能、网络协议栈及图形用户界面支持,进行技术创新,为用户提供更好 的服务h 5 l 。 日益成熟的嵌入式实时操作系统满足了这样的应用需求,它可以屏蔽底层的硬 件差异,提供大部分设备驱动程序,为应用程序提供文件系统、i o 系统、标准的 网络协议栈及友好的图形用户界面。与p c 机相比,嵌入式实时操作系统的内核设 计更强调实时性、可靠性,同时为了适应嵌入式应用的各种不同情况,还具有良好 的可裁剪性。由于这些优点,嵌入式实时操作系统在嵌入式领域得到了广泛的应用。 在制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空航天、军事装备、 消费类产品等方面都可以见到其踪迹,并将在嵌入式系统开发中得到越来越广泛的 应用。 1 2 课题研究的目的及意义 成熟的嵌入式实时操作系统,如v x w o r k s 、q n x 等,由于产品的成本高,核心 源代码不开放等因素使之在电力系统应用中存在局限性,尤其是i e c 6 1 8 5 0 的推广, 其互操作性和开放性更是难以满足。同时由于其源代码的封闭性,带来了网络安全 性问题。在现在的电力系统与信息系统、通信系统融合成的高度集成的复杂系统中, 信息系统中的计算机系统是核心,一个关键的计算机系统发生故障会使整个变电站 自动化系统陷于瘫痪,进而失去可控性和可观测性。商用系统由于源代码不公开, 其开发团队人数、智力有限,其内部很可能存在漏洞( b u g ) ,出错后我们自己的开 发人员难以排除。存在安全隐患,不利于电网的安全稳定运行。 目前在嵌入式操作系统的应用开发中,开源软件及工具由于其系统良好的开放 性和稳定性正受到越来越多人的关注。相对于商用的各种实时操作系统( r t o s ) 和 其集成开发环境的高昂价格及封闭性,开源软件及工具为嵌入式系统开发者提供了 绝好机会。比较典型的就是l i n u x 和g n u t o o l k i t 。l i n u x 虽然并不是专门为嵌入式 系统设计的,但是由于其特有的优势使它非常适合于嵌入式系统的开发及应用,已 发展成嵌入式家族中不可忽视的一员。 为了满足变电站自动化系统安全性和实时性的需求,本文选用了l i n u x 操作系 统作为研究对象,充分利用其开源的特点,提高变电站自动化系统软件的安全性和 可控性。由于l i n u x 是分时调度的通用系统,并不具备实时性能,因此,需要对l i n u x 内核进行透彻的分析,并在其上实现实时性,以满足变电站自动化系统的对安全性 和实时性的特殊需求。 2 第一章引言 1 3 课题工作 1 对嵌入式系统和实时操作系统( r t o s ) 进行深入学习、分析、研究 2 对l i n u x 操作系统背景、发展状况、基本结构进行学习、分析 3 对l i n u x 实时化的几种主要方法进行学习、研究 4 选用一种适合变电站自动化系统应用的l i n u x 实时化方法进行研究并尝试实现 5 列举了嵌入式实时l i n u x 变电站自动化系统中的应用案例,展望其在电力系统中 的应用前景 国电自动化研究院硕士学位论文 第二章嵌入式实时操作系统概述 在嵌入式系统中采用的操作系统就是嵌入式操作系统,是实时操作系统( r t o s ) 和嵌入式操作系统的结合体。实时操作系统( r t o s ) 未必是嵌入式操作系统,嵌入 式操作系统未必是实时操作系统( 但嵌入式操作系统一般需要具有一定的实时性) , 他们的交集就是嵌入式实时操作系统。这说明嵌入式实时操作系统既满足实时操作 系统的特征,同时还满足嵌入式操作系统的特征。一般来说,将实时操作系统改造 为嵌入式实时操作系统要更为容易一些,本论文也是基于这样的思路来实现的。 2 1 实时操作系统介绍 2 1 1 实时操作系统( r t o s ) 简介啪6 1 r t o s 不同于普通的分时操作系统。对于分时操作系统,软件的执行在时间上 的要求并不严格,时间上的错误一般不会造成灾难性的后果。而对于r t o s ,它的 主要任务是对事件进行及时的处理,虽然事件可能会在不可预知的时刻到达,但软 件上必须能够在严格的时限内做出反应,即使系统处于高负荷的情况也是如此,否 则就会导致严重的后果。 不同的应用和需求对实时的定义也不一样,一些应用只需要满足平均响应时 间,另外一些则必须满足每一个时间期限。实时系统可以定义为系统的正确性不仅 取决于计算的逻辑结果,而且还依赖于产生结果的时间。为了描述和表征不同类型 的实时系统和调度及资源管理方法,我们介绍一些术语。称能被系统调度和执行的 工作单元为作业( j o b ) ,称共同提供某种系统功能的一组相关作业为任务( t a s k ) 。 所有作业在执行时必须占用资源。在实时操作系统中,把所有这些资源称为处理器 ( p r o c e s s o r ) 。作业的释放时间( r e l e a s et i m e ) 是一个时刻,在这个时刻上,作业能 够执行。从释放时间开始或在此后的任意时间,只要作业的数据和控制依赖条件得 到满足,就可以被调度和执行。作业的时限( d e a d l i n e ) 是一个时刻,在此时刻之前 要求作业完成它的执行。作业的响应时间( r e s p o n s et i m e ) 是指从作业的释放时间 到其完成时间的时间长度。称作业的最大允许响应时间为作业的相对时限( r e l a t i v e d e a d l i n e ) 。实时任务有软实时和硬实时之分,他们都对时限有要求。软实时任务一 般也不希望执行延迟,但个别时限的延迟不会造成严重的后果,如在视频传输过程 中丢失了一帧,用户看到的也只是图像的闪烁;而硬实时任务如错过了时限通常会 产生灾难性的后果,如在工业控制中控制一个阀门。 下面举例来说明实时系统中的一些概念,考虑一下车间零部件喷漆的情况,如 图2 1 。传送带上有需要喷漆的零部件,他们都要经过一个喷嘴。当零部件经过喷 4 第二章嵌入式实时操作系统概述 嘴时,传感器应通知系统打开阀门并将漆喷在零部件上。显然我们需要控制系统在 每一次零部件经喷嘴时都恰到好处的打开阀门,不能过早也不能太迟。也就是说, 不能晚于一个最迟时间来打开阀门。当一喷完漆时就应该关闭阀门,否则就会将漆 喷在传送带上且还会浪费漆。 i 零部件传送带 l i l 实时系统 l 1 _ j 图2 - l 零部件喷漆 上面说的最迟时间就叫时限( d e a d l i n e ) 。如果错过时限将不能正确的对零部件 喷漆。假定时限为l m s ,即传感器通知打开阀门到一个最晚的必须打开阀门的时间。 要确保系统从来不会晚于这个时问,比如说我们设计系统在接受到传感器中断后 9 5 0 u s 开始打开阀门喷漆。由于精度关系,系统不可能每次在中断后9 5 0 u s 开始喷 漆,有时候可能要提前一些,而有时候会有一点延迟,如一次提前了1 0 u s ,而另一 次则晚了1 3 u s ,这个变量被称为抖动( j i t t e r ) 。从中可以看出,如果我们的系统有 一个很大的抖动的话,我们就必须将目标时间提前到远小于l m s 以便能满足最后期 限。因此在实时系统中时限和抖动都是很关键的性能指标,任何一次错过时限都被 称为失败( f a i l u r e ) 。 2 1 2 r t o s 的特征和功能 下面我们将依据操作系统中的几个重要组成部分来看一看在r t o s 每一个部分 区别于普通的分时操作系统所具备的特征: ( 1 ) 任务调度策略 r t o s 中的任务调度策略目前使用最广泛的主要有两种,即静态表驱动方式与 动态优先级抢占式调度方式。静态表驱动方式是指在系统运行前根据各个任务的实 时性要求,通过手工的方式或辅助工具生成一个任务的执行时间表,该表指明了各 个任务的起始时间和执行长度。该时间表一旦生成就不再改变。当任务执行时,调 度器依据该表在预定的时刻启动相应的任务。采用静态表驱动方式,我们可以采用 较复杂的搜索算法来查找较优的调度方案,运行时调度器开销小,而且系统具有很 好的可预测性,实时性验证也方便。但是采用静态表驱动方式,不仅不太灵活,而 且一旦发生变化,就需要重新生成整个时间表,这将带来不必要的额外开销。在动 5 国电自动化研究院硕士学位论文 态优先级抢占式调度方式中,进程的优先级并不是固定不变的,而且优先级是在运 行前通过某种优先级分配策略来指定的。该方式的优缺点与前者正好相反。目前多 数r t o s 都采用动态优先级抢占式调度方式。 ( 2 ) 内存管理 操作系统中的任务在运行过程中如果要动态分配一定数量的内存,那么就会存 在内存分配的开销。更重要的情况是,随着物理内存使用量的增加,而不得不将内 存中某些任务转移到交换分区,导致运行结果的不可预测性。这在实时系统中是不 允许的,普遍采取的办法是将实时任务所用的全部内容锁定在内存中,不允许转存 到交换分区。另一种是采用静态内存分配方式为每一个实时任务划分固定内存区 域。 ( 3 ) 中断处理 r t o s 通常需要快速的中断处理能力,要求操作系统屏蔽中断的时间尽可能短。 如果此中断需要唤醒一个实时任务来做进一步处理,也需要此任务能够被操作系统 调度程序选中并马上投入运行。 ( 4 ) 共享资源的互斥访问 对于r t o s ,倘若任务调度采用静态表驱动方式,共享资源的互斥访问问题在 生成时间表时就已考虑到了。倘若任务调度采用动态优先级的方式,实时操作系统 对传统的信号量机制进行了一些扩展,引入了一些辅助机制,以更好的解决优先级 倒置的问题。 ( 5 ) 系统内部操作的时间开销 为保证系统的可预测性,r t o s 中的所有系统调用以及系统内部操作的时间开 销都是有限制的,且该限制是一个具体的量化数值。 ( 6 ) 系统的可重入性 r t o s 中的核心态系统调用往往设计为可重入的。 r t o s 应具有如下功能: ( 1 ) 任务管理 任务一般由任务控制块、程序区,数据区、堆栈区组成。实时任务的驱动一般 是基于消息或事件的,任务一般都设计成周而复始的一个循环,依次处理可能接收 的消息或事件,r t o s 的任务管理主要包括任务创建、调度、切换。 ( 2 ) 任务间同步与通信( i p c ) 目前,主要的r t o s 中的i p c 机制有:消息、信号、互斥量,在一些r t o s 中 也提供了邮箱、共享内存等任务问通信机制。 ( 3 ) 内存管理 内存管理包括程序地址空间的管理和内存分配,回收管理。程序地址空间的管 理主要是为任务的执行分配必要的内存空间、在程序的逻辑地址与处理器的物理地 址之间建立必要的映射,并在多任务之间以及应用任务与r t o s 内核之间提供保护, 6 第二章嵌入式实时操作系统概述 使他们不会相互影响,并在必要的时候删除、重启任务,提高系统的可靠性。内存 分配、回收主要是为应用任务进行动态内存请求、释放提供服务。 ( 4 ) 实时时钟服务 目前,商用的r t o s 都是在硬时钟中断的基础上,提供了实时时钟服务。实时 时钟是调度的基础,也是系统定时器服务的基础。另外部分优秀的r t o s 还提供了 定时消息机制,即应用任务( 如任务a ) 向系统定时器服务申请定时器,当定时时 间到后,定时服务器返回任务a 一个消息。是否提供灵活的、高精确度的定时服务 器是衡量r t o s 功能完整性的一个重要指标。 ( 5 ) 中断管理服务 如同分时操作系统一样,中断管理服务也是r t o s 的一个核心和基本的功能。 r t o s 的中断管理有自己的特殊要求,那就是i s r 要更加短小、精悍,以减小中断 禁止时间和中断延迟时间。 ( 6 ) 防止发生优先级逆转 使用实时内核,优先级逆转问题是出现的最多的问题。图2 - 2 解释了优先级逆 转是如何发生的。 如图,任务1 优先级最高,任务2 次之,任务3 最低。开始,任务3 运行。在 ( 2 ) 处要使用共享资源,首先得到该资源的信号量s ( s e m p h o r e ) 。在( 4 ) 处任务1 就绪后,由于任务l 的优先级高于任务3 ,任务l 抢占任务3 运行。在( 5 ) 处任务 1 试图得到信号量s ,但该信号量s 还被任务3 占有,任务1 只能进入挂起状态, 任务3 继续运行。在( 7 ) 处,任务2 就绪剥夺任务3 运行很长一段时间( 8 ) 后结 束,任务3 继续运行。在( 1 1 ) 处任务3 释放信号量后,任务l 才能得到所需资源 继续运行。 在这种情况下,任务1 优先级实际上降到了任务3 的优先级。由于任务l 要等 到任务3 释放占有的那个共享资源,而任务2 不需要占有那个共享资源可以抢占任 务3 运行。任务2 使任务1 增加了额外的延迟时间。此时,任务l 和任务2 的优先 级发生了逆转。更有甚者,只要中优先级的任务不断就绪,优先级逆转的现象就不 会停止,显然这会使任务的行为变得难以预测。 在抢占式r t o s 中一般有三种途径来解决优先级逆转问题: 7 国电自动化研究院硕士学位论文 ” ( 4 ) ( 1 2 ) 任务l 熙三分一词 任务 ( 8 ) :中) ( 1 )( 6 )( 1 0 ) 誉豁“i 鬣l i 一攀嚣蔫 到信号量: 任务3 重ji 执行 ( 2 ) ( 9 ) i 壬务1 剥夺1壬务3 的任9, 3 荆r s c p u 使用牺 ( 3 )i i ) 任务1 慈罟得到5 任务2 剥夺任# i - a 的 c p u 慢用祝7 ) 图2 - 2 优先级逆转问题 ( 一) 利用非抢占的低级服务函数来支持高级的抢占式服务函数,这些低级非抢 占式的服务函数的处理都很简单,执行的速度也很快,可以降低对于任务 重调度延迟的影响。 ( 二) 采用“优先级继承”技术。就是当高优先级的任务所需资源被低优先级任务 所占有时,r t o s 内核将低优先级任务的优先级抬高到高优先级的任务, 并且以高优先级运行移植到释放共享资源后,再降回到原来的优先级运行。 这样就能够避免优先级逆转现象的发生。 ( 三) 采用“优先级天花板( p d o r i t yc e i l i n g ) ”技术。对共享资源进行加锁的信号 量中保持一个优先级最大值:优先级天花板。该值是系统中所有可能对该 共享资源进行操作的任务优先级的最大值。当一个任务试图得到信号量时, 就以此优先级运行于临界区对共享资源进行原子操作,对共享资源操作完 成后再将回到原来的优先级运行。 r t o s 除具有以上基本功能外,一般还提供文件系统、网络协议栈、图形接口、 b s p 等支持功能。 8 第二章嵌入式实时操作系统概述 2 1 3 实时操作系统的评价指标 实时操作系统与通用多任务操作系统如u n i x 、w i n d o w s 等有共同的一面,也有 不同的一面。通用操作系统的目的是方便用户管理计算机资源,追求系统资源的最 大利用率和公平对待所有的系统请求。而实时操作系统追求的是实时性、可确定性、 可靠性。评价一个实时操作系统一般可以从任务调度、内存管理、任务通信、内存 开销、任务切换时间、最大中断禁止时间等几个方面来衡量。而最大中断禁止时间 和任务切换时间是其中最为重要的两个技术指标。 ( 1 ) 任务调度机制 实时操作系统的实时性和多任务能力在很大程度上取决于其任务调度机制。从 调度策略来说分优先级调度策略和时间片轮转调度策略;从调度方式上可分为可抢 占、不可抢占、选择可抢占调度方式;从时间片来看又分固定与可变时间片轮转。 单纯从基于优先级的抢占式调度方式而言,又存在多种优先级计算方法。 ( 2 ) 最小内存开销 实时操作系统的设计过程中,最小内存开销是一个较重要的指标,这是因为实 时操作系统特别是消费类的嵌入式系统中,出于成本考虑,其内存的配置一般都不 大,而在有限的空间内不仅要装入实时操作系统,还要装入用户程序。因此,占用 内存的大小就成为实时操作系统的一个重要指标。 ( 3 ) 最大中断禁止时间 当实时操作系统运行在内核态的时候,是不会因为外部中断的到来而中断执行 的。只有当实时操作系统重新回到用户态时才响应外部中断请求,这一过程所需的 最大时间就是最大中断禁止时间。 “) 任务切换时间 当任务进行切换时,实时操作系统保存前以任务的运行状态信息,依据一定的 调度算法重新选择一个任务投入运行,这一过程所需的时间为任务切换时间。 2 2 嵌入式系统介绍嘲 嵌入式系统就是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应 应用系统对功能、可靠性,成本,体积、功耗严格要求的专用计算机系统。简而言 之,它是一个计算机硬件和软件的集合体。软件部分包括操作系统和应用程序,应 用程序控制着系统的运行和行为,而操作系统控制着应用程序与硬件的交互作用。 嵌入式操作系统是嵌入式系统的灵魂,它的出现大大提高了嵌入式系统开发的效 率。按照层次的不同可以将它分为三个部分:最小的基本部分包括一个用作引导的 可用设施,一个具备内存管理、进程管理、定时器服务的微内核,一个初始进程; 为了具备一定的实用性,还需加上硬件驱动程序,一个或几个应用进程完成必需的 9 国电自动化研究院硕士学位论文 功能;随着对系统要求的增加,一般还包括一个文件系统( 放在r o m 或r a m 中) , t c p i p 网络协议栈等。 2 2 1 嵌入式系统的分类 目前,嵌入式系统以惊人的数量被广泛使用,甚至不亚于p c 机的安装数量。 现代汽车中的许多功能由它控制;家用电器和玩具中也会出现他们的身影;还会控 制一些重要的医疗设备;使得远程控制和全球定位系统得以工作;移动电话也在它 的掌管之下。在各种各样的嵌入式操作系统中,通常分为如下两类: ( 1 ) 高端嵌入式操作系统( h i g h e n de m b e d d e do s ) 这种系统通常是从一个已经存在的通用操作系统派生而来,将许多没用的部分 去掉,使它的大小得到精简。以l i n u x 为基础的嵌入式系统就有很多,因为它具有 较高的模块化结构和源代码可利用性。应用的例子有交换机、路由器、个人数字助 理、机项盒等。 ( 2 ) 深嵌入式操作系统( d e e p l ye m b e d d e do s ) 这些系统必须非常的小,仅具备必需的一点点基本功能。因此,他们通常是从 零开始为特定的应用而专门设计。他们通常不具备高性能的图形用户界面和网络通 信功能。这类系统的例子有汽车控制、数字相机以及移动电话。 2 2 2 嵌入式操作系统的特点 嵌入式操作系统是具有区别于通用操作系统的一些重要特征,这些特征主要有 以下几点: ( 1 ) 体积小 设计者不断地在更小的空间、更便宜的c p u 中注入更强的计算能力,并希望将 这些c p u 集成在各种各样的项目中。一个小的嵌入式操作系统也通常只使用几千字 节的r a m 和r o m 内存。通用计算机系统一般要求功能的强大,而在嵌入式系统中, 在满足相应需求的情况下,则要求占用资源尽可能的少。 ( 2 ) 运行时间长 嵌入式操作系统在没有人工干预下应该能运行几年,这意味着硬件和软件永远 都不会出错。因此,系统最好没有机械部分,比如软驱和硬盘。因为机械部分更容 易出问题,而且还会占用更多的空间,需要更多的能量,通信时间更长,以及更复 杂的驱动( 比如,机械部件的移动控制) 。 ( 3 ) 故障重启 尽管已经将嵌入式系统设计的非常坚固可靠( r o b u s t ) ,但我们仍然需要预防系 统出现故障的可能( 比如说内存保护错误) ,因为此系统可能运行在一个无人的环 第二章嵌入式实时操作系统概述 境,无法手工进行复位操作因此,嵌入式系统通常应具备在出现故障时立即启动 到一个安全状态的功能,特别是系统控制着一些关键设备时。 ( 4 ) 低功耗 嵌入式系统一般需要长时间工作,比如手机,在电池功率一定的情况下,就需 要系统尽可能小的消耗能量。大的耗电量还直接影响到硬件的费用,如需要更大功 率的电源等 ( 5 ) 价格便宜 嵌入式系统应该尽可能的便宜。嵌入式系统通常是成千上万的大批量生产,哪 怕是价格低一点点,也会使库存产品销量大增。 ( 6 ) 动态加载 一些嵌入式系统在被启动以后在物理上是没法接触到它的( 比如发射的卫星) , 但还是有许多嵌入式系统仍然可以进行远程访问。为了软件的升级,应该可以支持 动态链接,在开始启动时不存在的目标代码要能被上传到系统,在不需要停止系统 运行的情况下,使得目标码链接到运行的操作系统并运行。 2 2 3 嵌入式实时操作系统的体系结构 嵌入式实时操作系统体系结构如图2 3 1 )硬件抽象层( h a l ) 包含了所有和硬件平台相关的代码,如上下文切换和i o 寄存器访问等等。他 存在于r t o s 的最底层,直接访问和控制硬件,对其上层的r t o s 内核代码或应用 程序提供访问和控制底层硬件的服务。这样可以简化r t o s 内核的移植工作,除了 设备驱动程序之外,在移植的时候只需要修改h a l 的代码就可以了。 图2 - 3 r i d s 体系结构图 l l 国电自动化研究院硕士学位论文 2 ) r t o s 内核( k e r n e l ) 用来为大多数程序乃至操作系统上层模块( 网络、文件系统、驱动程序) 构建 一系列在抽象的服务原语上工作的抽象机,使底层硬件设备对用户程序及o s 上层 组件透明。在这个内核里面需要实现如下接口界面:多任务支持( 任务创建、调度、 同步,互斥) ,内存分配,回收函数,文件操作接口函数,中断、异常及定时器函数, 外设i o 端口操作接口函数。 3 ) 操作系统上层模块 文件系统、i o 子系统、内存管理、网络协议栈、图形函数库、a p i 等,并且提 供驱动程序开发界面,方便开发者对不同需求的设备制定驱动程序。 一般来说,r t o s 内核的实现都采用微内核的体系结构。所谓微内核技术是指 将必需的功能( 如任务同步,通信、中断处理、任务调度管理) 放在内核中,而将那 些不是非常重要、比较庞大的内核功能模块( 文件系统、存储管理、网络通信、设 备管理等等) 作为内核之上可配置的部分。这样操作系统就是一个提供基本服务的 微内核加上一些服务进程构成,系统的各个系统调用和服务都是由内核发消息到不 同的服务进程,服务进程执行效应的操作,然后以消息的方式返回内核再由内核返 回给应用程序。 使用微内核的体系结构,使得r t o s 体积小,便于直接放在r o m 中,实现r o m 固化,同时方便进行模块化的扩展,提高整个系统的可配置性。使用微内核的结构 也有很多的缺点,如操作系统的服务模块在独立的地址空间运行,虽然可以将不同 模块间的内存错误间隔开来,但是使得进程间通信和上下文切换的时间和开销大大 增加,降低了系统效率。 2 3 目前几种常见商用嵌入式实时操作系统的比较脚 目前,国内外有几十家提供r t o s 的开发商。按照这些r t o s 提供的实时性能 保证,可以将他们分为硬实时r t o s 和软实时r t o s 。他们之间的区别主要在选择 的调度算法、硬件中断响应策略、内核体系结构等几个方面。硬实时r t o $ 主要是 面向工业控制、航空航天等领域,如w i n d r i v e r 公司的v x w o r k s 、p s o s ,q n x 系统 公司的q n x ,a t i 公司的n u c l e u s p l u s 等。软实时r t o s 面向消费电子产品、信息家 电、通信领域,比较著名的有微软的w i n d o w sc e ,m i c r o w a r e 公司的o s 9 等。 此外嵌入式l i n u x 正以它独特的优势吸引越来越多的人们投入其中。它的迅速 堀起主要得益于人们对自由软件的渴望与嵌入式系统应用的特制性,要求提供系统 源码层次上的支持。而嵌入式l i n u x 正适应了这一需求,它不仅源代码开放,而且 系统内核小、效果高、网络结构完整,裁减后的内核很适合于一般装置和信息家电 等软实时系统的开发。但是l i n u x 操作系统是作为通用o s 开发的,设计目标是使 系统取得最优平均性能,因此有很多方面无法满足实时系统的要求。特别是要应用 第二章嵌入式实时操作系统概述 于硬实时系统还有很多工作要做。 下面表格就r t - l i n u x ,w i n d o w sc e ,v x w o r k s ,d e l t a o s 四种具有代表性的 r t o s 从内核结构,调度算法和开发工具三个方面进行简单的比较,并在后面进行 了详细的论述。 表2 1 四种r t o s 比较表 操作系统内核结调度算法开发调试环境 名称 构 r 1 :l i n a g双内核实时任务的调度方 现阶段一般采用g c c 。g d b 等工具,没有专 结构。式主要有两种:周期门的交叉开发工具。主要支持的机型是 性调度与中断唤醒。p c - b a s e d 和a i p h a 型机。 已经开发出了基于 最早截止时间优先 和单调率算法的两 种调度器。 w i n c e基于模采用基于优先级的开发、调试环境友好,支持s o c k e t 网络编程, 块化的可抢占调度,同优先支持m i c r o s o f ts d k 编程规范,但与p o s i x 嵌入式级间采用时间片轮实时接口规范上有一定的差距。 系统转调度,有2 5 6 个优 先级。采用优先级继 承技术来防止优先 级逆转。 v x w o r k s采用微基于优先级的可抢 采用交叉开发、调试方式。v x w o r k s 带有完 内核结占调度,同优先级间善的主机端编程,调试、仿真、项目管理配 构采用r r ,支持优先置工具t o r n a d o 。v x w o r k s 不完全的支持 级继承来防止优先p o s i x l 0 0 3 1 b 实时扩展标准,由于历史的原 级逆转,来支持动态因,p o s i x 系统调度是在原v x w o r k s 系统 改变优先级。调用之上封装而成的,效率略低。 d e l t a 0 s 微内核基于优先级的可抢有专门的l a m b d a 开发工具;可以在c 和c h 结构占式调度,对同优先程序中直接使用d e l t a c o r e 的应用编程接 级的任务还可采用口;提供了一个基于c 抖语言的封装类库 时间片轮转调度,d e l t a + + ,可以采用面向对象的编程方法来使 2 5 5 个任务优先级并用d e l t a c o r e 。 支持动态任务优先 级。 国电自动化研究院硕士学位论文 2 3 1 r 暑l i n u x 目前对嵌入式l i n u x 的研究主要集中在两个方面:一是通过裁剪、重配置的途 径去掉内核中对于嵌入式系统无意义甚至会影响嵌入式系统性能的模块,如虚拟内 存交换( s w a p ) ,精简内核,以满足软实时嵌入式系统的需要;二是在精简内核的 同时,在l i n u x 内核的底层中加入一个非常精简的实时内核,处理实时任务。而原 有的l i n u x 内核可以看作是运行于实时内核之上的一个非实时任务。这方面的工作 当要数美国墨西哥理工学院的小组开发的r t - l i n u x 。 内核结构 r t - l i n u x 的系统结构如图2 - 4 所示。实时内核( r t - k e r n e l ) 截获所有的硬件中 断,并用软件向l i n u x 内核模拟硬件中断控制器。对于编程而言,l i n u x 内核对软 件中断控制器的操作如同它原来对硬件中断一样,但是它已不能直接控制硬件中断 的响应。实时任务不同于l i n u x 的进程:首先它相当于线程,使上下文切换延迟缩 短:其次系统为实时任务静态分配内存并锁定,不使用虚拟内存;第三,实时任务 的模式高于l i n u x 的系统模式和用户模式。r t - k e r n e l 本身也是不可抢占的,但是由 于他非常短小精悍,造成的延迟比较短。 图2 - 4r t - l i n u x 的内核结构 调度算法 实时任务的调度方式主要有两种:周期性调度与中断唤醒。r t - l i n u x 带一个纯 优先级调度器,用户可以根据需要编写自己的调度器。l i n u x 良好的模块化结构方 便了实时部分的改进。目前,已经开发出了基于最早截止时间优先( e a r l i e s t d e a d l i n e 第二章嵌入式实时操作系统概述 f i r s t , e d f ) 和单调率( r a t em o n o l i t h i ca l g o r i t h m , r m a ) 算法的两种调度器。 开发与调试环境 采用r t - l i n u x 实现嵌入式设计,现阶段一般采用g c c 。g d b 等工具,没有专门 的交叉开发工具。主要支持的机型是p c b a s e d 和a l p h a 型机。 2 3 2 w i n d o w sc e w i n d o w sc e 是一个具有代表性的、由桌面操作系统演变而成的r t o s ,是精简 的w i n d o w s9 5 。从技术上说,并不能算是优秀的r t o s ,首先,r t o s 非常注重个 性化,而w i n d o w sc e 是非开发性的o s ,第三方很难实现产品的定制;其次,r t o s 追求高效、节能,而w i n d o w s c e 则占用过多的r a m ,不具备真正的实时性能,并 且没有足够的多任务支持能力;第三,w i n d o w sc e 在内核结构的设计中并未考虑 适应嵌入式系统的高度可裁减性要求。w i n d o w sc e 的优点是内置的标准通信能力 使它能够访问i n t e r n e t 并收发e - m a i l 和浏览w e b ,而且w i n d o w sc e 特有的与 w i n d o w s 类似的开发环境易于开发应用。 内核结构 基于模块化的嵌入式系统,其系统架构与w i n d o w s 系列一致。以客户,服务器 模型将整个系统功能有机的连接在一起,提供任务管理、中断管理、虚存管理和i o 管理,可通过临界资源区、互斥量和事件对象实现任务问同步。为使核心不可抢占 区域代码的高效运行,将核心数据全部移至物理内存,以解决页面未命中带来的延 迟。同时,对不可抢占区域代码进行细分,使其占用更少时间。为了缩短中断延迟, 将中断处理过程分为两步:一为i s r ( i n t e r r u p ts e r v i c er o u t i n e ) ,二为i s t ( i n t e r r u p t s e r v i c et h r e a d ) 。将i s r 部分尽可能缩短,而将真正耗时的中断处理交给i s t 部分。 调度算法 采用基于优先级的可抢占调度,同优先级间采用时间片轮转调度,有2 5 6 个优 先级。采用优先级继承技术来防止优先级逆转。 开发、调试环境 开发、调试环境友好,支持s o c k e t 网络编程,支持m i c r o s o f ts d k 编程规范, 但与p o s i x 实时接口规范上有一定的差距。 v x w o r k s 是经过严格验证的商用r t o s ,能够提供良好的实时性、可靠性保证, 已经大量应用于航空航天、工业控制等实时系统。目前市场占有率第一。 内核结构 采用微内核结构,在内核中封装了多任务调度、任务管理、中断响应等基本功 国电自动化研究院硕士学位论文 能,而将其他功能由用户级服务线程实现。用户任务被看作是客户,内核是系统服 务的代理,缩短了c p u 处于内核时的不可抢占延迟。v x w o r k s 具有可配置性和可扩 展性。开发人员可以根据应用需求来配置v x w o r k s ,选择、配置不同的模块,裁减 r t o s 来最好的适应一个应用要求。从需要几k b 内存的嵌入式设计到需求更多的、 高端实时应用,可有多达8 0 种不同的配置。同时,应用还可以利用内核钩子函数 ( h o o k f u n c t i o n ) 来实现特定功能的扩展。 调度算法 基于优先级的可抢占调度,同优先级间采用r r ,支持优先级继承来防止优先 级逆转,来支持动态改变优先级。 开发与调试环境 采用交叉开发、调试方式。v x w o r k s 带有完善的主机端编程、调试、仿真、项 耳管理配置工具t o r n a d o 。v x w o r k s 不完全的支持p o s i x l 0 0 3 1 b 实时扩展标准,由 于历史的原因,p o s i x 系统调度是在原v x w o r k s 系统调用之上封装而成的,效率略 低。 2 3 4d e l t a o s t 7 1 d e l t a o s 是北京科银京成技术有限公司具有自主知识产权的嵌入式实时操作系统。 其内核d e l t a c o r e 是迄今为止国内唯一经过第三方测试的实时操

温馨提示

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

评论

0/150

提交评论