[精品论文] 基于rtx的高速实时数传控制技术研究与应用.pdf_第1页
[精品论文] 基于rtx的高速实时数传控制技术研究与应用.pdf_第2页
[精品论文] 基于rtx的高速实时数传控制技术研究与应用.pdf_第3页
[精品论文] 基于rtx的高速实时数传控制技术研究与应用.pdf_第4页
[精品论文] 基于rtx的高速实时数传控制技术研究与应用.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

[精品论文] 基于rtx的高速实时数传控制技术研究与应用.pdf.pdf 免费下载

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

文档简介

西南科技大学 硕士学位论文 基于rtx的高速实时数传控制技术研究与应用 姓名:杨绪迎 申请学位级别:硕士 专业:模式识别与智能系统 指导教师:陈泉根;姚远程 2012-06-10 西南科技大学硕士研究生学位论文第1 页 摘要 当今,高速实时数传测控技术在世界各国的不同领域都有着广泛而不同 层次的应用,是目前各领域中的一个研究热点。针对当前大多数高速实时数 传测控系统的专用性,本文提出了基于r t x 和工控机的实时数传测控技术, 它具有良好的通用性和扩展性,并且是实时的,友好的。 本文提出了一种高速实时数传测控方法,以c p c i 工控机结合多种程控 仪器为平台,在w i n d o w sx p + r t x 8 1 构成的实时环境下,利用可编程仪器 标准命令( s c p i ) 和虚拟仪器软件结构体系( v i s a ) 与v c + + 6 0 混合编程。 针对w i n d o w s 操作系统在实时性方面的不足,本文研究了美国a r d e n c e 公司 发行的实时软件r t x ,并提出了实时数传测控系统的整体设计方案。该测控 系统包括在r t s s 实时子系统下的控制层任务和在非实时的w i n 3 2 子系统下 的管理层任务两个方面。这两者之间通过共享内存实现通信,并利用指针和 句柄进行内存读写。在实际应用中,在v i s u a lc + + 6 0 环境下,本文采用r t x 提供的r t a p i ,s c p i 和v i s a 设计实时任务的程序,主要包括示波器信号的 采集与分析,计数器、真空度的采集,继电器和采集卡的控制等,同时利用 m f c 和b c g s o f t l 0 1 以及p r o e s s e n t i a l sv 6 设计非实时任务的程序,包括用 户界面搭建、数据信息显示和保存等 最后,本史将控制层任务和管理层任务组合成一个完整的实时数传测控 系统,并利用r t x 提供的工具测试程序的性能,同时开发出一套较完整的人 机交互界面。实验表明,此测控系统避免了人员和时间的浪费,满足了稳定 性和实时性的要求,提高了测控效率。 关键词:r t x 系统测控系统控制层管理层共享内存 西南科技大学硕士研究生学位论文第1 i 页 a b s t r a c t n o w , h i g h - s p e e da n dr e a l - t i m ed a t et r a n s m i s s i o nm e a s u r e m e n ta n dc o n t r o l t e c h n o l o g yi s ah o tt o p i ci nv a r i o u sa r e a s at e c h n o l o g yo fr e a l - t i m ed a t e t r a n s m i s s i o nm e a s u r e m e n ta n dc o n t r o lb a s e do nr t xa n di n d u s t r i a lc o m p u t e rh a s a d v a n t a g e so fu n i v e r s a l i t ya n de x p a n d a b i l i t y i ti sr e a l t i m ea n df r i e n d l y t h ep a p e rp r o p o s e sah i g h - s p e e da n dr e a l - - t i m ed a t et r a n s m i s s i o na n d c o n t r o lm e t h o d t h i st e c h n o l o g yi sp r o g r a m m e db ys c p i ,v i s aa n dv c + + 6 0i n w i n d o w sx p + r t x 8 1 w h i c hi su s e di ni n d u s t r i a lc o m p u t e ra n dp r o g r a m m i n g i n s t r u m e n t s f o rt h ed i s a d v a n t a g e so fw i n d o w si nn o n r e a l - t i m e ,t h ep a p e r r e s e a r c h e sr t xt h a tr e l e a s e db y a r d e n c e a n dg i v e sao v e r a l ld e s i g no fr e a l t i m ed a t at r a n s m i s s i o na n dc o n t r 0 1 s y s t e m t h i ss y s t e mi sd i v i d e di n t oc o n t r o ll a y e ra n dm a n a g e m e n tl a y e r t h e c o n t r o ll a y e ri sr u n n i n gi nr t s ss u b s y s t e m ,w h i l em a n a g e m e n tl a y e ri nw i n 3 2 s u b s y s t e m t h e yc o m m u n i c a t ew i t he a c ho t h e rb ys h a r e dm e m o r y ,a n do p e r a t e r e a d i n go rw r i t i n gb yp o i n t e ra n dh a n d l e d e s i g n i n gr e a l - t i m et a s kp r o g r a m u s e s r t a p i s c p ia n dv i s ai nv i s u a lc + + 6 0 i tc o n t a i n st h eo s c i l l o s c o p es i g n a l a c q u i s i t i o n ,t h ec o u n t e ra n dv a c u u mc o l l e c t i o n ,t h er e l a y sa n da c q u i s i t i o nc a r d c o n t r 0 1 u s i n gm f c ,b c g s o f t l o 1a n d p r o e s s e n t i a l s v 6d e s i g nn o n - r e a l - t i m e t a s kp r o c e d u r e s ,i n c l u d i n gt h eu s e ri n t e r f a c e ,t h ed a t ad i s p l a y i n g n ds a v i n g f i n a l l y ,t h ec o n t r o la n dm a n a g e m e n tl a y e r sa r ec o m b i n e di n t oac o m p l e t e r e a l t i m ed a t at r a n s m i s s i o nm e a s u r e m e n ta n dc o n t r o ls y s t e m t h es y s t e mi s t e s t e db yr t x t o o l s d e v e l o pah u m a n c o m p u t e r i n t e r a c t i o ni n t e r f a c ew i t hm f c , b c g s o f t l0 1a n dp r o e s s e n t i a l s v 6 t h ee x p e r i m e n t ss h o wt h a t t h es y s t e m s a t i s f i e ss t a b i l i t ya n dr e a l t i m e ,a n da v o i d st h ep e r s o n n e la n dt i m ew a s t i n g k e yw o r d s :r t xs y s t e m ;t e s t a n dc o n t r o ls y s t e m ;c o n t r o ll a y e r ; m a n a g e m e n tl a y e r ;s h a r e dm e m o r y ; 西南科技大学硕士研究生学位论文第1 页 1 绪论 1 1课题来源 课题来源于中物院电子工程研究所,为某测控系统的一部分。在r t x 的 基础上研究测控系统的整体实时性,以及整个测控系统的自动测试功能。 1 2 课题背景及研究意义 伴随着社会信息化和知识经济化的浪潮,网络化、实时性、高速性成为 2 1 新世纪人类社会的新特征。由于实时性和高速数据传输技术在军工、交通、 日常生活等领域已经开始广泛运用,人们对二者的研究也日益白炽化。实时 性以及高速数据传输技术成为当前不可或缺的研究热点。其发展将影响到国 家的实力,国家、民族的竞争力,甚至生存。其必将随着软硬件技术水平的 提高而迅速发展,并在未来的科技道路上发挥不可巨量的作用。 实时系统( r e a l t i m eo p e r a t i n gs y s t e m ,r t o s ) 与非实时系统的最大区 别是对需求和时间之间关系的处理。“对于实时系统的运行,其正确性不但依 赖整个系统计算的逻辑结果,还依赖于产生此结果的时间,如果在时间约束 内,条件得不到满足,系统将会出现错误”心1 。因此实时系统应该也必须 具有两种最重要的能力:在事先定义的时间约束条件内响应和处理需求事件 的能力;能够及时处理和储存测控系统所需要的大量数据的能力。其中一个 普遍被大家认可的定义是“一个能够在事先指定或确定的时间内完成系统功 能和对外部或内部、同步或异步时间做出响应的系统”口1 。 实时测控系统广泛应用于世界经济的各个方面,从卫星、导弹的控制, 到某些居民生活家电的控制,都时刻体现在人们眼前。它的实时性分为“硬 实时”和“软实时”。“硬实时”是指在时间约束条件内,系统必须完全完 成任务,不能有丝毫误差,否则就造成重大事故。例如,在航空航天领域, 差之毫厘,谬之千里。“软实时 是指系统在时间约束条件内偶尔完不成任务, 也不会产生很大影响,如上网看视频、浏览网页等。 大多数实时测控系统都是专用的,例如,基于数字信号处理( d i g i t a ls i g n a l p r o c e s s i n g ,d s p ) 的专用硬件设计,是实时高速控制系统实现主流,但其通用 性差;在实时性要求不高的控制场合,数据采集卡也得到广泛应用抽1 ,然而, 采集卡必须有实时软件配合才能保证实时精度,并且要求编写底层驱动程序, 西南科技大学硕士研究生学位论文第2 页 直接操纵系统核心层,同时编写过程复杂、周期较长。一般来说,专用系 统具有通用性差,可扩展性小等缺点。随着现代科技在军事上的应用,军工 行业对实时性和高速性要求越来越高,从而对运行硬件资源之上的控制软件 提出了越来越严峻的要求。 实时测控系统由硬件和软件两部分组成:在硬件方面,基于工控机的实 时测控系统可以充分利用工控机的可扩展性、模块化等优点来实现测控需求; 在软件方面,又分为系统软件和应用软件:系统软件是指操作系统,一个优 秀的实时操作系统在实时多任务数传测控系统中起到至关重要的作用;而应 用软件主要是用来完成数据的采集、处理以及控制等功能h ,。在实际应用中, 实时数传测控系统不仅需要硬件支持,而且依赖软件,而在软件中最关键的 是实时操作系统。 1 3国内外研究现状 在目前流行的众多操作系统当中,w i n d o w s 操作系统无疑脱颖而出,成 为最出众的一个。作为一个通用的操作系统,w i n d o w s 具有强大的优势:支 持最新的多种类的网络硬件技术,可运行丰富的应用程序:同时打开多个程 序,支持多种开发工具:v b 、v c + + 、o p e n c v 等,具有良好的g u i ,丰富 的w i n 3 2 应用程序接口等特点,且具有服务和管理的高可靠性及高效性【8 1 。 在w i n d o w s 平台下开发测控系统的应用软件具有多种。其中v i s u a lc + + 是美 国m i c r o s o f t 公司开发的面向对象的可视化集成系统。它为广大程序员提供多 种编程语言:c 语言,c + + 以及c + + c l i 等,方便更多的人应用。v i s u a lc + + 集自动生成框架、灵活管理类、界面设计、开发多种程序等功能于一身。采 用v i s u a lc + + 中的m f c ( m i c r o s o f tf o u n d a t i o nc l a s s e s ) 搭建数传测控系统的 软件系统,不仅仅能够实现优良的人机交互界面,强大的信息处理、网络传 输以及构建数据库等功能,并且能大大节省系统开发时间。 虽然w i n d o w s 操作系统具有如此多的优势,但是为了更好的满足实时性 的要求,最佳选择无疑是实时操作系统。现今国内外比较流行的嵌入式实时 操作系统主要有v x w o r k s 、u c o s i i 、r t l i n u x 、q n x 、w i n c e 等,但是这 些实时操作系统不仅市场占有率低,应用不普遍,而且其应用开发环境及支 持软件缺乏、不宜移植、开发难度大- 。为满足系统开发方便和系统的实时 性要求,美国a r d e n c e 公司开发出一种新的实时系统一r t x ( r e a l t i m e e x t e n s i o n ) ,其在众多领域得到广泛使用,颇受欢迎。 西南科技大学硕士研究生学位论文第3 页 1 3 1win d o w s 实时性不足及其改进 m i c r o s o f t 的w i n d o w s 系列是一个高性能的通用操作系统,虽然具有非常 低的平均响应时间和中断丢失率等优点,但它不满足苛刻的实时性,不是强 实时操作系统,而是一个优秀的弱实时操作系统。w i n d o w s 实时性的缺陷表 现为:线程优先级太少( 3 2 个) 、隐含的不确定的线程调度机制、优先级倒 置( 尤其体现在中断处理中) ,。 w i n d o w s 的非实时特性使之只能应用在“弱实时”领域。w i n d o w s 不是 实时操作系统的原因归结于三个方面阳,: ( 1 ) 定时精度问题 w i n d o w s 具有w m t i m e r 时钟消息和多媒体定时器两种方式获取定时 时钟。w m t i m e r 时钟消息不是异步的,可以和程序的消息队列中的其他 消息共存。但是由于其优先级很低总是排在最后面而被认为是_ 个不太重要 的消息,程序不能保证每次都能接受到w m t i m e r 时钟消息,而且当消息 队列中持续有多个w m t i m e r 消息时,w i n d o w s 系统会将剩余的 w m t i m e r 合成一个w m t i m e r 消息。这不仅影响其实时性能而且可能会 漏失消息。关于多媒体定时器方式,w i n 3 2 自身提供了实时多媒体时钟函数 t i m e r b e g i n p e r i o d ,此函数可以设置定时器的精度,但是精度不高,只有l m s n 。 因此,只依靠w i n d o w s 系统本身的定时器是不能完全满足数传测控系统实时 要求的。 ( 2 ) 线程调度问题 乙 w i n d o w s 中处理器的调度单位是线程而不是进程,每个线程都有优先级。 线程调度机制是基于优先级的抢占式多处理器调度,通过优先级的高低和时 间片的分配来调度。w i n d o w s 一共拥有3 2 个线程优先级,线程优先级太少。 从0 到31 ,数值越大,优先级越高。0 表示系统优先级,从1 到15 表示可变 优先级,从1 6 到3 1 表示实时优先级1 。 一个线程有只有两种状态:基本优先级状态和当前优先级状态。w i n d o w s 并不调整实时线程的优先级状态,也就是说实时线程的当前优先级和基本优 先级状态是相同的。而可变优先级的当前优先级在一定范围内是动态的。处 理器调度时,它总是首先运行级别最高的就绪线程,同级线程按照时间片轮 转调度;但是也会出现例外情况,即在轮转时间片内,当前运行的线程主动 退出,或者其被他线程抢占。每当时间片轮转时,或者出现线程切换时,处 理器就被重新调度。虽然w i n d o w s 是一个优秀的多任务系统,但是它的线程 调度机制并不完善,存在优先级倒置的现象,即优先级较低的线程阻止较高 西南科技大学硕士研究生学位论文第4 页 的优先级线程抢占c p u 。w i n d o w s 的这种现象对于强实时性任务来说是一个 致命的缺点,违背实时系统中典型特性:抢占式调度机制。 ( 3 ) 中断响应问题 中断优先级与线程优先级的关系:用户态线程运行在中断优先级0 ,内 核态的异步过程调用( a p c ) 运行在中断优先级1n “,线程调度代码运行在 d p c d i s p a t c h 优先级,用户线程无论优先级高低都不能中断硬件中断。 w i n d o w s 处理中断按照两个阶段进行:首先使用中断服务程序( i s r ) 保存硬件 状态并确认中断,然后通过延迟过程调用( d p c ) 执行剩下的工作。d p c 保存 在一个全局的先进先出( f i f o ) 队列中,由于队列中的d p c 优先级相同,所以 d p c 按照顺序执行。高级别i s r 可中断低级别的i s r ,但d p c 或线程不会抢 先i s r ,而d p c 可以被i s r 抢先,但不会被线程抢先。虽然i s r 按照优先级 以抢占方式运行,但d p c 却是按照排队方式运行。此问题使得w i n d o w s 在 时间约束条件内对异步事件的响应不能实现。 一 ( 4 ) 即时反应问题 w i n d o w sx p 没有保证很准确的定制器时钟( t i m e rc l o c k ) 触发信号 ( t i m e d e t e r m i n i s t i c ) 。w i n d o w s 在某一个或某几个程序占用c p u 资源时, 整个程序的反应时间( r e s p o n s et i m e ) 会变迟缓。也就是,w i n 3 2 程序会受 到其他w i n 3 2 程序抢占c p u 资源的影响,而降低即时反应能力。有些感应 时间非常短的信号,有可能会收不到。因为在信号感应的这几个m s 内,c p u 的使用权可能不在这个执行程序上,因而错失信号。在很多执行程序的情沉 下,用w h i l e l o o p 和s l e e p ( 1 ) 都略嫌不足。 针对上述w i n d o w s 系统的“弱实时性”问题,当今国内外主要有两种改 进方案: ( 1 ) 传统方案即采用上下位机的双机结构。系统一共需要两台计算机: 一台运行实时操作系统,例如v x w o r k s ,另一台运行w i n d o w s 系统。此方案 实时性能非常优越,但是也增加很多缺点:硬件成本提高、系统开发困难、 集成变的复杂。此方案大都运用在军工领域,并不是一种通用的、高效率的 解决方案。 ( 2 ) 在软件上,针对w i n d o w s 的缺陷进行实时扩展,弥补w i n d o w s 操 作系统对于实时性的需求,在其环境下逻辑实现一个子系统。此系统必须满 足一些基本条件:在任何时间,其优先级都要高于w i n d o w s ,至少在w i n d o w s 中断处理程序代码的临界区以外。子系统执行实时任务时,必须能够处理 w i n d o w 的中断和错误。 西南科技大学硕士研究生学位论文第5 页 考虑到各种现实问题,本文采用的是第二种方案。利用美国a r d e n c e 公 司的r t x 来扩展w i n d o w sx p 系统。r t x 提供了确定性的实时线程调度、高 精度的时钟和优良的进程问通讯机制等特点,对w i n d o w s 的硬件抽象层 ( h a l ) 进行了修改和扩展,并在h a l 的基础上形成了r t x i 汀s s ( r e a lt i m e s u b s y s t e m ) 实时子系统,其中r t s s 拥有自己的编程和运行环境。r t x + w i n d o w sx p 方案作为实时操作系统的代表,可以运行于工控机或普通p c 上。 1 3 2 采用v c + + 开发测控系统的优势 r t x 实现了对w i n d o w s 系统的实时性扩展,提供了实时方面的服务,但 是在其他方面它还是有不足之处:大量数据的处理、人机交互界面的设计以 及网络通讯,而v c + + 恰好在这些方面具有明显的优势,因此本文采用v c + + 来弥补r t x 的不足。 ? 美国m i c r o s o f t 公司的v c + + 是面向对象的可视化高级编程的应用开发环 境,它是一种功能强大的支持w i n d o w s 应用程序的开发平台。v c 十十有两种 开发模式,即基于m f c 和基于w i n d o w sa p i 的w i n 3 2 程序。而m f c 比 w i n a p i 更具优势。其特点是生成的代码效率高,程序运行的速度快,具有 风格多样的界面。v c + + 是w i n d o w s 程序设计的利器,与w i n d o w s 操作系统 有着天然的兼容性。它凭借面向对象和可视化编程技术的优势,广泛应用于 军事、工业及日常生活等领域。在系统设计中协调使用v c + + 共享软件及信 、息资源,可使用户节约大量的时间和资金。 v c + + 拥有属于自己的一套集成开发工具,包括各种编辑器、编译工具、 集成调试等n “。它以高级除错功能、预编译头文件、i n t e l l i s e n s e ( 自动编译 功能) 、最小重建功能及累加连结及“语法高亮”等诸多优点闻名于世。这些 优势在大型软件计划上尤其显著,大大的缩短了程序编辑、编译及连结的时 间。它不但具有程序框架自动生成、灵活的类管理、代码编写和界面设计集 成交互操作、可开发多种程序等优点,而且通过简单设置生成的程序框架可 以支持数据库接口、o l e 2 、w i n s o c k 网络、3 d 控制界面n “。利用v c + + 的模 块化和继承性结构,用户可以在极短的时间内完成系统构建,设计和修改。 v c + + 开发方式要比传统编程方式快4 1 0 倍1 1 4本文主要的研究内容 本文根据实验室当前具有的软硬件平台,成功开发出了一套基于r t x 和 西南科技大学硕士研究生学位论文第6 页 m f c 的高速实时数传测控系统,并验证该系统的实时性、稳定性和可靠性。 文中的实时数传测控系统以c p c i 工控机搭配数据采集卡、g p i b 卡等,结合 程控直流稳压电源、数字示波器、数字万用表、计数器、真空计等构成硬件 平台。软件平台以r t x 8 1 + w i n d o w sx p 构成操作系统部分,在v i s u a l c + + 6 0 、b c g s o f t l o 1 和p r o e s s e n t i a l sv 6 下开发人机交互界面等。数据库采 用是a c c e s s 2 0 0 3 。本系统的任务包括示波器波形的采集、采集卡数据的采集、 g p i b 仪器的控制、用户界面上数据的显示等等。同时,本文将整个软件系 统分为控制层任务和管理层任务两部分,前者运行在实时子系统r t s s 下, 后者运行在非实时的w i n 3 2 系统下,二者之间通过共享内存的方式进行通信。 本论文的主要研究内容主要分为以下几个部分: ( 1 ) 分析r t x 与w i n d o w s 的关系,并研究r t x 能够实现实时性的原 理机制。深入研究了r t x 的体系结构、编程接口、通信机制以及动态链接库 等等。研究r t x 和w i n d o w s 环境下的多线程程序设计。了解r t x 所提供的 测试工具,同时测试比较了r t x 和w i n d o w s 在实时性方面的性能。 ( 2 ) 全面规划整个测控系统,提出将数传测控系统分为管理层和控制层 两部分,明确限定了各任务的优先级和运行时间限制。其中,控制层任务多 线程程序的设计运行在r t s s 下。同时利用s c p i 和v i s a 与v c + + 6 0 混合编 程,解决文中提到的u s b 和g p i b 接口问题。 ( 3 ) 利用r t x 的r t a p i 和w i n 3 2 的a p i ,设计并编写控制层任务和管 理层任务的通信程序,使得二者之间通过共享内存相互通信。 ( 4 ) 在v c + + 6 0 平台下,采用基于m f c 、b c g s o f t 和p r o e s s e n t i a l s 的模式开发人机交互界面程序,构建整个测控系统软件功能平台。此软件平 台非常灵活,自成一个自动测试系统,不仅可以全自动测试,也可以根据用 户的不同需要有选择的对部分项目组或单个项目进行自动或手动测试。 ( 5 ) 通过频繁而大量试验以及对试验数据的分析,逐渐对系统进行优化, 使系统性能达到了稳定性和实时性的要求,验证以r t x 和m f c 构建的实时 数传测控系统的可行性。 1 5文章的结构框架 本课题主要是基于r t x 的高速数传测控技术的研究。利用 r t x + w i n d o w s 方式解决本测控系统面临的问题,通过s c p i 命令和v i s a 库 实现各种程控仪器的自动测控,文中的各章节安排如下: 西南科技大学硕士研究生学位论文第7 页 第一章主要阐述了实时系统的研究背景及研究意义、实时系统的国内外 研究现状以及在具体的研究过程中所面临的困境与挑战。 第二章主要研究了r t x 的原理,分析了r t x 的实时性及特点。详细分 析了r t x 的线程调度机制、中断服务、进程间通信机制以及定时器精度等功 能。着重分析了r t x 的特殊内存管理机制。简要介绍了r t x 的工具。介绍 选择i h x + w i n d o w s 设计方案的缘由,以及r t x 在此测控系统下所采用的开 发环境。 第三章主要阐述实时测控系统的设计方案。详尽介绍了硬件设计方案, 软件设计方案,研究并设计在r t x 基础之上的任务构成、划分及调度,并介 绍了任务间的通信方式。 第四章主要介绍了实时测控系统的实现。介绍了实时任务的实现过程, 对控制层程序设计以及流程图进行系统的介绍。对于非实时任务的实现,文 中着重介绍了人机交互界面的设计,用户接口的处理。 第五章介绍了整个测控系统构架以及软件测控流程,分析测试流程以及 测试数据。 最后对全文进行总结,提出下一步的工作计划。 西南科技大学硕士研究生学位论文第8 页 2 r t x 基本原理及开发环境简介 2 1 r t x 的简介 r t x 是美国a r d e n c e 公司发行的基于w i n d o w s 平台的通用硬实时系统。 r t x 不但为用户提供优秀的实时控制性能,而且具有高效的可扩展性和稳定 性,是迄今为止在w i n d o w s 平台上唯一的基于软件的“硬实时”解决方案。 针对w i n d o w s 操作系统的不足之处,r t x 在线程调度、中断机制、进程间通 讯机制等多方面进行了确定性和实时性的延拓及提高。 2 1 1 r t x 的原理机制 为了能够带给w i n d o w s 无与伦比的实时性,r t x 扩展并修改w i n d o w s 系统的硬件抽象层( h a l ) ,并在w i n d o w s 系统原有系统文件上添加了一个 实时子系统r t s s ,形成一个独立的模块。r t x 具体架构如图2 1 。 图2 - 1r t x 的架构 从图2 1 可以看出,r t x 对w i n d o w s 的h a l 做了修改和扩展,而且在 r t x 的h a l 基础上形成了r t x r t s s 实时子系统,同时提供了一套被称作 r t w i n a p i 的标准动态链接库。此库可应用于标准w i n 3 2 环境和r t s s 环境, 西南科技大学硕士研究生学位论文第9 页 但是在这两个环境下有不同的性能特点及响应时间m ,。虽然在w i n 3 2 环境中 使用r t w i n a p i 不能明确体现在r t s s 环境下的确定性,但是却可以在更加友 好的w i r n 3 2 编程环境中而不是驱动程序开发工具( d d k ) 环境开发应用程 序。另外只需重新链接一套不同的库就能将w i n 3 2 程序转化为r t x 程序, 而r t x 进程和动态链接库( d l l ) 的可执行映像被w i n d o w s 服务控制管理 器直接装入内核的不分页内存中【- “。w i n 3 2 与r t s s 子系统通过i p c 进行相 互通信。 r t x 具有一些主要特性如下: ( 1 ) r t x 拥有属于自己的实时线程调度机制。同w i n d o w s 一样,依据 优先级竞争c p u 资源,但是,在单处理器环境下,r t s s 线程调度都发生在 所有w i n d o w s 调度之前,包括w i n d o w s 管理的中断和延迟过程调用( d e f e r r e d p r o c e d u r ec a l l s 一一d p c s ) 。r t s s 调度器采用优先级反转和顺序优先级 ( d e f e r r e dp r i o r i t y ) 降低机制来避免优先级倒置。r t s s 调度器的操作是低延 迟的,并且不受线程数的影响。 r t s s 提供了1 2 8 个优先级,其中1 2 7 级表示最高优先级,与w i n 3 2 的 3 2 个线程优先级相互应。优先级在创建线程的时候设定,且在程序运行过程 中可修改。一个低优先级的线程会随着其获取对象的优先级而改变,在拥有 此对象的期间会被自动提升到较高的优先级别。每个优先级都有一个等待队 列,该队列可视为一个双向链表,对等待队列的执行时间不受线程数的影响。 所有的线程都依照优先级和“先进先出”原则运行,这是一种经典的优先级 提升的解决方案。 ( 2 ) 在r t s s 环境下,进程由一系列的对象句柄,进程地址空间,至少 一个线程和一个可执行文件等构成“。当要创建一个进程时,r t s s 完成以下 三个任务:把r t s s 的进程文件看作一个驱动,通过加载此驱动创建进程; 创建主要的线程;利用r t x 的工具在非分页池内存中分配进程堆栈。 进程的启动一般有三种方式陆“:通过w i n 3 2 的应用程序直接启动r t s s 的进程;通过命令直接启动r t s s 的可执行程序;在系统启动时,把进程作 为一个设备驱动程序装载( 运用r t s s r u n 的b 命令) 。 进程一般通过三种方式退出运行:通过r t s s k i l l 应用程序终止进程,或 者通过r t x 的工具r t s s 任务管理器中止3 】一个线程调用e x i t p r o c e s s o 函 数终止;最后的线程退出时终止。 ( 3 ) r t x 特殊的中断管理机制。r t x 的有实时功能的h a l 扩展,增加 了w i n d o w s 与r i x 之间中断间隔。r t x 通过隔离中断屏蔽了可编程中断控 西南科技大学硕士研究生学位论文第1 0 页 制器( p i c ) 或者高级可编程中断控制器( a p i c ) 级的中断,完全消除由 w i n d o w s 平台及其驱动的进程内部请求级别( i r q l ) 屏蔽所引起的时间延误 【1 7 】o 当系统在w i n d o w s 与r t x 之间进行切换时,r t - h a l 执行中断隔离,重 新对p i c 进行编程。w i n d o w s 和其驱动不能中断r t s s 线程,不能屏蔽r t s s 管理的设备。当r t s s 线程运行时,所有w i n d o w s 中断被屏蔽,而处理器级 的中断屏蔽并不会失效,因此不用冒险使用x 8 6n m i s ( 不可屏蔽中断, n o n m a s k a b l ei n t e r r u p t s ) n “。r t x 采用一种静态方案解决i r q 锁定,它将多 个中断优先级挂钩,使用旋转锁定( 或者在单处理器上的基于i r q 的同步) 扫描h a l ,寻找操作的信号。 ( 4 ) r t x 提供多种多样的任务问通信和同步机制。交互环境下的进程 间通讯i p c ( i n t e r p r o c e s sc o m m u n i e a t i o n ) 对象是表现r t x 表2 - 1 t a b 2 1 w in d o w s 与r t x 调度延时比较( 平均最坏,单位s ) 托叫 d ela yc o m p a ris o no fs c h e d uin go fw in d o w sa n dr t x ( a v er a g e w o r s t ,u n i t s ) 优越性能的一个重要特征。i p c 设置包括共享内存对象、互斥量、信号量、 事件等n 。无论是r t s s 还是w i n 3 2 都可以管理i p c ,i p c 是r t s s 和w i n 3 2 之间进行数据交互的桥梁,是二者维系关系的纽带。利用i p c 可以完成实时 和非实时任务之间的信息交互,加快数据交互速率,使系统运行稳定性。从 表2 1 中,可以看出r t x 实时性的具体体现。 系统通过两个缓存队列实现w i n d o w s 方面的r t x 驱动和r t s s 环境间的 西南科技大学硕士研究生学位论文第1 1 页 相互通讯。二者之间每个方向一个队列,向其中一个插入命令请求另一方服 务,并且初始化服务请求中断( s e r v i c er e q u e s ti n t e r r u p t 一一s r i ) ,一个服务 线程通过另一个队列执行请求,并传递应答信息,。例如:w i n d o w s 到r t x 的请求是在r t s s 对象上的释放操作或一个与w a i t f o r s i n g l e o b j e c t 类似的 i p c 操作;而r t x 到w i n d o w s 的操作是i o 请求或页内存的分配。 s r i 设计的目的是缩短响应时间,提高响应速度,使其尽快地响应r t s s 请求。s r i 不但可以直接获得r t x 对象,而且能够阻止w i n d o w s 线程进入队 列,为了使i p c 与w i n 3 2 隔离,r t x 使用代理进程和线程的方式实现心“。 w i n d o w s 和r t x 之间的接口是一个无锁中断驱动,实现了本地程序调用 ( l o c a lp r o c e d u r ec a l l 一一l p c ) 机制。r t x 体系架构的特殊性使得r t s s 具 有移植性,它可以在不同的环境之间进行快速而有效的移植。另外,r t x 提 供了丰富的外部通信接口的实时扩展,例如:r t x 在t c p i p 协议族基础之 上开发了自己的协议族r tt c p i p ,此协议对以太网通信能力进行了扩展。 ( 5 ) r t x 能够提供高精度实时服务。r t x h a l 的时钟和定时器精度高 达1 微秒,甚至还可以更高。w i n d o w s 的计时器最小单位为1 毫秒,而r t x 的最小为1 0 0 纳秒并且提供了与计时器同步的时钟。经实验可得,r t x 与 w i n d o w s 系统对定时器的延时响应如图2 2 所示。 鼹! s sy 毒l 鼬s i ) 8 i a :i 搬= 1 照越= 3 g r e a t e s t 翔蝮:8 l i 五笺v d u 鲢k ) i l i a =8 蛔毒= 9 幕镰:1 5 酝e 毫t e = t 赫镊;4 8 s 图2 - 2r t x 与w in d o w s 系统对定时器的延时响应 f i g 2 - 2 t i m e rd e ia yo fr t xa n dw in d o w s 同时,r t x 还对i r q 、i o 、内存进行了精确控制,从而保证实时任务 的可靠性。它的持续中断触发频率为3 0 k h z ,能够保证平均i s t 时延在1 微 秒以内。其调度器能够实现线程在5 0 0 纳秒到2 微秒之间进行切换。在r t s s 西南科技大学硕士研究生学位论文第1 2 页 环境下,由于时钟具有高精度特性,所以能在特定的时间约束条件内平稳的 响应任务,避免操作系统在执行任务时出现时间偶然增大的情况,提高了系 统的实时性能心“。 通过对r t x 原理机制的具体研究,可知r t x 的体系架构极具优越性, 极大地提高了系统的实时性能。 2 1 2 r t x 特殊的内存管理 锁定内存通常从一个非分页内存池中分配并由w i n d o w s 维护。这个内存 池相当小,并在系统启动后很快就会被w i n d o w s 的其他驱动和子系统造成破 碎。为了避免大容量分配的失败,编程者应该最小化它们( 大容量分配) 的 使用,或保证它们在系统启动很短的时间内结束。 进程必须频繁地分配额外的内存以保证它们的运行。r t x 内存分配机制 为:通常情况下,它会分配已经锁定的内存,以避免任何可能导致页失败的 延迟机会。 为避免页失败,并增强关键代码处的非可预见性延迟,实时程序需要锁 定在内存中的数据和代码,包括在操作系统它本身的代码和数据。内存锁定 分为进程锁定和内核锁定。 对于进程锁定: ( 1 ) r t s s 环境编程考虑。默认情况下,r t s s 环境中所有进程和内存 对象都被锁定到物理内存中以避免页失败。r t l o c k * ( p r o c e s s ,h e a p ,s t a c k ) 函 数在r t s s 环境中会一直以成功结束,但并没有执行实际操作。 ( 2 ) w i n 3 2 环境编程考虑。除非显式的锁定到物理内存中,所有w i n d o w s 进程和服务都是分页的。在w i n 3 2 环境中,调用r t l o c k p r o c e s s 函数可以避 免w i n 3 2 进程引起页失败。 对于内核锁定: ( 1 ) r t s s 环境编程考虑与进程锁定是一样的情况。 ( 2 ) w i n 3 2 环境编程考虑。相当一部分w i n d o w s 操作系统组件都是分 页的,包括大部分的w i n d o w s 内核和w i n 3 2 子系统。为了避免实时程序因内 核分页失败带来的延迟,可以使用r t l o c k k e r n e l 函数。 w i n d o w s 设备驱动程序一般不分页;其在启动时时加载并不分页。为了 使驱动在系统中分页,驱动开发者必须仔细地架构其驱动并手工掌管将要分 页的代码。因其复杂性,较少驱动使用此方式进行架构。 锁定w i n d o w s 内核和进程减少了可用物理内存池。这对非实时系统操作 西南科技大学硕士研究生学位论文第1 3 页 是有害的。必须要有足够的内存来确保非实时操作的期待性能。 本地内存( l o c a lm e m o r y ) 是r t x 用来满足所有r t s s 程序内存请求的 本地内存池。从本地内存池分配内存时。r t s s 程序就不需要通过初始化 s r i ( s e r v i c er e q u e s ti n t e r r u p t ) 从w i n d o w s 请求内存。当第一个r t s s 程序开 始时,本地内存池就被创建,并为普通的非确定性函数提供确定性的行为, 同时在w i n d o w s 崩溃( 蓝屏) 后也会有更大的弹性和功能性。 如果在r t xp r o p e r t i e s 控制面板中或者使用r t s s r u n 使能了本地内存池, 则在r t s s 程序中不管是显式还是隐式分配的内存都将从本地内存池请求分 配。 如果默认的内存分配方式不是从本地内存池请求,r t x 会在第一次使用 r t s s r u n 参数时创建本地内存池或者r t s s 程序中第一次调用 r t a l l o c a t e l o c a l m e m o r y 函数时。 在r t xp r o p e r t i e s 的m e m o r y 面板中设置本地内存池的初始大小。如果 r t s s 程序用尽了初始化分配的所有内存,则本地池必须从w i n d o w s 请求更 多的内存。附加的内存将会是初始化的大小或是请求的内存大小,取决于哪 一个更大。从w i n d o w s 请求内存会导致s r i 动作,这是非确定性的,并且不 能在关机处理函数中调用。 为了避免此情况,务必考虑好你的实时程序对内存的需求并指定可以支 持它们的足够大的内存。r t x 函数r t q u e r y l o c a l m e m o r y 可以检查在本地内 存池中是否有足够的空余内存可供使用。这在关机处理函数中是一个有用的 函数调用。 2 1 3r t x 的工具概述 r t x 提供了十多种工具,方便用户订制实时程序,控制r t s s 程序和测 量程序性能。下面主要介绍常用的几种工具: ( 1 ) r t x 属性控制面板。r t x 的

温馨提示

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

评论

0/150

提交评论