第l9卷 第5期 Vo1.19 No.5 电子设计工程 Electronic Design Engineering 2011年3月 Mal".2011 实时软件开发方法的研究 于峰.孟晓风 (北京航空航天大学测控技术与仪器系,北京100191) 摘要:为解决实时软件设计中实时性能难以保证、开发方法通用性差的问题,设计了一种基于RTX的实时操作系统 环境下。开发实时软件的通用方法。首先,分析了基于RTX的系统平台的实时性能。然后,从一般意义上研究实时软 件的任务调度特性。建立起一个通用的参数化、层次化、模块化结构。最后,利用RTX的实时调度机制,详细设计了任 务模块的调度运行流程,并验证了软件的实时性能。此方法从系统环境和调度机制两个角度提高了实时软件的实时 性能,并从一般意义上给出了实时软件的通用的开发方法。 关键词:实时软件;开发方法;通用性;RTX 中图分类号:11P3l1.1 文献标识码:A 文章编号:1674—6236(2011)05—0o7l一03 Research on general method Of rea1.time software development YU Feng,MENG Xiao-feng (School ofInstrument Science and opto-electronics Engineering,Beihang University,Belling 100191,China) Abstract:T0 find a solution to ensure the rea1.time capability and work out an eflicient develop method in real—time software development,we designed a general method of real—time software development based on RTX,a real—Time extension subsystem.Firstly,it analyses the capability of RTX on real—time performance.Then it extracts the basic characteristic of scheduling in real—time system and establishes a general structure with preferences,hierarchy and modules. At last,it designs a particular flow of task modules scheduling by use of real-time method of RTX.It improve the real—time capability from by RTX and PRI task-schedule and it works out a all—purpose method of real-time software development. Key words:real—time system;method of designing;for general use;RTX 计算机实时技术是计算机应用的一个重要分支领域,在 的开发方法。给实时软件开发提供一套通用的解决方案,使 其具有较高的可重用性和普遍的适用性131。 控制工程和系统工程中有着重要的作用。系统平台是开发实 时软件的底层支撑环境,系统平台的选取直接决定了软件系 统的实时性指标。但是.目前广泛应用的操作系统都有着各 自的不足III。 1 RTX实时扩展系统 实时操作系统可以被描述成具备以下5个方面的要求: 1)可确定性:指可以按照固定的、预先确定的时间或时 间间隔执行操作: Windows不能保证中断响应的确定性.也没有提供让线 程获得确定执行时间的机制,本身不是一个实时操作系统; DOS系统不能提供良好的用户界面和开发环境。 选取具有良好用户界面和开发环境的强实时操作系统, 解决上述操作系统的不足,成为实时软件开发需要解决的首 2)可响应性:主要指操作系统为中断提供服务的时间; 3)用户控制:允许用户细粒度的控制任务优先级: 4)可靠性:保证实时的响应和控制事件; 5)故障弱化操作:系统在故障时尽可能多的保存其性能 和数据的能力『】l。 要问题。为了解决Windows的弱实时性的不足,美国Ardence 公司开发了基于Windows操作系统的硬实时解决方案RTX (Real-Time extension),它可以为用户提供比较优秀的实时控 RTX扩展实时系统是否满足实时性要求直接影响到实 时软件系统的性能,因此,验证该系统的实时性能成为软件 设计的基础。 制性能、高效的扩展性以及稳定性,同时具有图形界面和硬 件兼容性方面的优势121。 同时,在实时软件的开发过程中,以具体应用为出发点 的开发有很大的局限性。本文可以通过分析实时软件的运行 特点,抽取实时软件的共性,设计出一种基于实时软件共性 收稿日期:2010—1 1-03 稿件编号:20101 1014 RTX不对Windows系统本身做任何修改.通过在HAL 层(硬件抽象层)增加RT—HAL(实时HAL)扩展来实现基于 优先级的抢占式实时任务的管理和调度。RTx具有独立的内 核结构,实现独立的内核驱动模式.形成与Windows操作系 基金项目:国家气象局大气综合计量检定系统(GYHY2007O60o3) 作者简介:于峰(1984一),男,河北安国人.硕士。研究方向:实时测控系统的开发和系统仿真。 一7l一 《电子设计工程》2011年第5期 统并列的实时子系统。RTX表现在外部的实时特性主要是中 断处理和任务调度的特性,主要有以下几个方面: 1)RTX内核利用抢占式和时间片轮转算法实现高速调度。 2)RTX最高支持l 000个独立的进程.且每个进程可以 运行的线程数不受限制。 3)RTX提供了高精度的精确时钟和计时器。RTX的时钟 分辨率可以达到100 ns。 4)RTX内存分配都在非分页内存池内,保证进程在运行 2-3软件的层次化、模块化结构 从一般意义上讲.实时软件是一些任务调度模块和一些 任务执行模块的某种形式的组合体。任务调度模块的总体构 成实时软件的管理模块,任务执行模块的全体则椅成实时软 件的功能模块。 通过上述分析,可以建立一个通用的实时软件结构。该 框架结构分为系统任务调度管理、分类任务调度、任务执行3 个层次。设计软件平台结构如图1所示。 一…一………一…一一………一’1 过程中不会被置换出内存,确保了对外部时间响应的确定 性,避免使用虚拟内存因缺页产生的延迟。 5)RTX提供了128个线程优先级,以满足实时系统的 需要。 6)RTx应用高速的IPC信息和同步机制实现与Windows 之间的数据通讯[41。 综合上述特性分析,RTX作为Windows的实时扩展子系 统,具有较高的可靠性和用户控制性,能够满足实时系统的 要求,可以作为实时软件的开发平台。 2实时软件通用结构 在实时软件的开发中,通过分析实时软件的运行特点, 可以抽取实时软件运行的共性。然后从一般特性出发,对实 时任务进行分析并设计合理的调度方式。最终建立一个通用 的层次化、模块化结构。 2.1实时任务分析 从实时系统运行的角度分析,可以从运行周期、执行顺 序的角度将实时软件系统的任务分为以下几类典型任务: 1)速率任务 以帧周期及倍周期重复运行的速率任务 是实时软件任务执行的主要部分。可分为同步速率任务和实 时速率任务。同步速率任务是指每个帧周期必须运行且有较 高时间准点要求的速率任务;实时速率任务是指按帧周期速 率或其分速率运行的速率任务。前者的优先级比后者的高。 2)非周期任务 由于某个事件的发生需要实时程序去 处理的任务。非周期任务又分为紧急任务(如硬件故障)和非 紧急任务(如键盘输入)。前者优先级高于速率任务,在前台 调度;后者优先级低于速率任务,在后台调度。 3)长周期任务调度周期远大于帧周期的周期任务,如 实时软件所需要的定时打印等。优先级低于速率任务,在后 台调度。 4)非周期定时任务从某事件发生起,在指定的时间间 隔后执行的任务。优先级低于速率任务,在后台调度。 5)中断处理任务各类中断请求采用查询的方式处理。 对每一个中断源,设置一个信号量,中断任务根据信号量转 换为前台非周期任务或后台非周期任务I51。 2.2任务调度管理 对6种任务,可以建立6个任务表,对每一个任务表,可 以编制一个固定格式的任务调度模块,组成软件的任务管理 层,完成各类任务的运行调度。 -72- j系统平台厂 : i 两 ‘ 任: :务: ; 表 图t豳t t t I圜 I ̄ 网1实时软件平台结构 Fig.1 Structure of real—time software 3任务调度运行机制 3.1调度方式和优先级设计 实时任务是软件运行的基本单位,实时任务调度方式和 优先级的合理设计能够保证各任务运行的可靠性和可确定 性。任务的优先级和调度方式在调度运行实现之前设计161。 根据实时任务的分类和运行特点,设计任务执行模块调 度方式和优先级如表1所示。 表1任务执行模块分类和优先级 Tab.1 Class and pdod ̄oftaskmodul ̄ 设计任务调度模块调度方式和优先级如表2所示。 3.2任务调度运行机制 在实时软件设计中。一个好的任务调度运行机制也是保 证任务调度快速准确的基本条件。这里,根据上节任务调度 优先级的设计和软件层次结构设计任务调度的运行机制。 总体来说,前后台任务凋度模块的占优运行通过实时中 断来实现.具体流程如图2所示。 任务调度机制描述:平台开始运行首先开启实时中断响 应,准备好响应实时中断。当无实时中断时,转入后台运行调 于峰.等 实时软件开发方法的研究 表2任务调度模块分类和优先级 Tab。2 Class andpriority of schedulemodules ; 丽 一 初始化 I ● 开实时中断l 允许响应 l …一实时钟 f……一 计数各 非紧急中断源的J定时器 中断信号查询l 计数开 ● 实时钟 中断 后台非周期任务l调度模块运动I — 帧周期到 时 钟 t 出 薹各二二[ 断 非周期定时任务l调度模块运动l ● 长周期任务调度l服 l堡堡达塑生 模块运行 I 务 主 t 前台任务 l恢复中断现场 I 队后台任务就绪l调度运行 l转向后台服务 列调度l 曼垒 曼 茎 一 图2前后台任务调度流程 Fig.2 Flow of task scheduling 度,查询中断源,根据优先级调度运行各后台任务。当有实时 中断请求时.转人前台调度,根据中断源和设置的优先级运 行调度前台任务,保证紧急任务的及时响应。其中,整个系统 利用了RTX的中断响应和任务调度机制,采用占优运行的 思想,实现前后台不同优先级模块的准确、及时的调度运行。 4软件实现 在设计完成通用的模块化层次化结构和基本调度运行机制 后,在R r)(系统环境下开发实时软件。将软件设计为上层人机 交互层和下层实时任务层。其中.上层交互层主要完成各种人机 交互的操作和数据监视等。实时任务层作为实时软件的功能层. 分为主进程层和下层功能模块层。其中,RTSS主进程负责进 程的通信和下层功能模块的调度。下层各功能模块实现各中 断服务线程和各实时任务线程。基本结构如图3所示。 需要对软件进行实时性能测试.验证此通用方法的可行 性和有效性 衡量实时性有一系列评价指标,其中最重要的两个性能 指标是中断响应时间和进程切换时间。定时中断响应延时: 二E菖 ………………一 时 任 务 层 豳图豳圜 网3实时软件结构 Fig.3 Structure of real—time software 巾断对所有操作系统环境下的软件来说都会产生一定的影 响,中断响应时间是判断实时软件可确定性和可响应性的重 要指标。进程切换延时:进程切换是在实时系统中频繁发生 的动作,其时间的快慢直接影响到整个实时系统的性能,决定 了软件的可响应性和可靠性f7】。测试结果如表3与表4所示。 表3 RTX实时性指标测试结果 Tab.3 Test results of capability of real—time in RTX 表4 Windows实时性指标测试结果 Tab.4 Test results ofeapabili ofreal—timeinWindows 从上表可以看出。实时软件的两项指标远远小于Windows 下的指标.而且具有更高的稳定性和可靠性。可以满足强实 时性系统的需求。 5结 论 此方法从软件开发的系统环境的选取出发.从底层支撑 环境角度保证了软件实时性的需求;然后,从一般的实时任 务的共性出发,对实时软件的任务进行了分析,建立起一个 通用的层次化、模块化结构.兼顾设计了各任务的优先级和 调度方式。最后.实现了软件的开发并对其实时性能进行了 测试,满足实时性能需求。 此方法从一般意义上解决了实时软件开发中存在的系 统平台选取、任务设计和任务调度的关键问题,普遍适用于 实时软件的开发应用。 参考文献: 【l】William Stallings.操作系统【M】.北京:电子工业出版社, 2006. 【2】Ardence ̄x-司.RTX技术白皮书【z】.北京航天捷越科技有限 公司,译,2004. (下转第77页) -73- 张英梅。等流程图如图8所示。 便携式数字水位传感器无线变送器的设计 加中继路由后的测试实验,测试结果非常理想,能够满足设 计要求。 5 结束语 本文所设计的便携式数字水位传感器无线变送器的突 出特点是采用了ZigBee技术,监测现场无需人T值守,实现 了水位检测的智能化与数字化、数据的无线收发的功能。变 送器体积小,成本低,现场安装简单,可以免去现场大量布 线,降低安装和维护的成本,从而解决了传统水位监测系统 建站投资成本高、施工周期长的问题。由于ZigBee技术具有 图8 中心节点软件流程图 Fig.8 Software flow chart of center node 较大的网络容量(一个星形ZigBee网络最多可容纳255个节 点),因此便于网络的扩容和重新配置,也为便携式数字水位 4实验调试情况 硬件电路和软件设计完成后.将3种具有不同网络功能 的变送器按不同的实验要求组成系统进行测试。实验分两组 进行,分别为:在两个节点之间直接进行数据传输;加巾继路 由后测试节点之间的数据传输情况。两个节点之间直接进行 传感器无线变送器的应用向网络化方向发展提供了硬件上 的支持。 参考文献: 【1】周韵,王志平.无线传输在实时水位监测系统中的应用fJ]. 电子技术应用,2o07,44(3):85—87. ZHOU Yun,WANG Zhi—ping.Application of wireless trans- 数据传输实验数据如表1所示。 表l数据传输实验结果 Tab.1 Test results of data transmission mission in real time water-level monitoring system[J】. Application of Electronic Technology,2007,44(3):85—87. 【2】魏小龙.MSP430系列单片机接口技术及系统设计实例【M】. 北京:北京航空航天大学出版社.2002. [3】马福昌.感应式水位传感器:中国,ZL96110735.9[PI.1997— 06-25. I4】赵景宏,李英凡,许纯信.ZigBee技术简介IJ1.电力系统通 信,2oo6,27(165):57-58. ZHAO Jing—hong,LI Ying—fan,XU Chun・xin.Introduction 由以上实验数据可知,在无障碍物条件下模块的最大传 输距离可达1 500 m.在有墙壁类障碍物遮挡下,传输距离不 足10 m。因为YD04无线模块集成了符合ZigBee协议标准 的射频收发器和微处理器,工作频率是在2.4—2.5 GHz之间 of ZigBee technology【J】.Electirc Power System Communica・ tion,20o6,27(165):57—58. 【5】欧杰峰.基于IEEE 802.15.4的无线传感器网络组网研究 【D】.杭州:浙江大学,2006. 的微波段.所以模块的穿透能力较弱。此时,可采用加路由节 【6】王吉富.无线传感器网络的研究及节点的软件设计【D】.西 安:西北工业大学,2007. :・:・::・} :--:一:}~:…;・}・-÷ ・- 一:一{ 一 点转发数据,从而绕开障碍物,进行数据传输。在现场进行了 0…:一:::・:・:一 ・ ・t:一:・:・::・:・ ::・:・ ::…:…:::・ …:一{・:… … …:・ ・:・::・:・-5 :一l ~:・:・÷・}(上接第73页) . 【3l黄键,宋晓,薛顺虎.RTX平台下实时仿真系统的设计方法 [J】.计算机应用与软件,2009(4):167—169. HUANG Jian,SONG Xiao,XUE Shun—hu.Design method of 航天大学。1995. 【6]周德兴,孟晓风.实时系软件设计方法【J】.计算机自动测 量与控制.2000(4):4—6. ZHOU De—xing.MENG Xiao—feng.The method of real-time system software design Computer Measurement&Control, real—time simulation system based on RTX[J】.Computer Applications and Software,2009(4):167—169. 『41刘晓川,王海涛.RTX技术及其在实时仿真系统中的应用 【J1.舰船电子工程,2001(6):35—38. UU Xiao-chuan.WANG Hai-tao.Application of RTX in 2009(4):4-6. 【7】闫宇壮,杨祚堂.RTX在半实物仿真中的软件开发方法【JJ. 兵工自动化,2006(9):89—90. YAN Yu-zhuang,YANG Zuo—tang.Software development real-time simulation[J].Ship Electronic Engineering,2001(6): 35—38. methods of RTX in HIL simulation[J].Ordnance Indust ̄ Automation,2oo6(9):89—90. -【5】孟晓风.飞行实时仿真软件开发环境的研究【D].北京航空 77-