维普资讯 http://www.cqvip.com 嵌入式雷达终端软件的实时性设计 ・65・ 嵌人式雷达终端软件的实时性设计 刘巍 ,丁尔刚 (1.南京电子技术研究所,江苏南京210013;2.北京新松佳和控制系统有限公司,北京100038) 摘要:提出了一种提高雷达终端软件实时性的解决方案,详细介绍了在VxWorks实时操作系统下利用三维开放图行库 OpenGL开发嵌入式雷达终端软件的全过程。实际工程结果表明该方案具有良好的实时性和实用性。 关键词:雷达;VxWorks;OpenGL 中图分类号:TP311 文献标识码:A 文章编号:1000—8829(2007)06—0065—03 Realization to Promote the Rea1.Time of Radar Terminal Embedded Software LIU Wei 。DING Er—gang (1-Nanjing Research Institute of Electronic Technology,Nanjing 210013,China;2.Beijing Siasun Control System Co.,Ltd,Beijing 100038,China】 Abstract:An excellent resolution to enhance the real—time character of the radar terminal software is realized.The fuIl development process of the radar terminal software using OpenGL is detailed.The realization is confimr to be with better rea1.time quality and more applicable in practice. Key words:radar;VxWorks;OpenGL 随着信息技术、大规模集成技术的快速发展及实际战略需 WINCE的可裁减性差,内核的响应时间较慢,并且容易受到病 要,雷达终端小型化、一体化设计成为必然。该模式能够充分发 毒的侵袭。出于军工产品信息安全性和高可靠性的需要,决定 挥嵌入式计算机及其实时多任务操作系统的效能,将数据处理 选择VxWorks操作系统作为雷达终端软件的操作系统平台。 用计算机和显示控制用计算机合二为一,减少设备量和接121,提 由于终端软件必须为用户提供良好的人机界面,必须尽可 高系统可靠性。并从结构上将其与显示设备融为一体,达到便 能详细地显示雷达作用范围内的空情信息,通常作图任务需要 携目的。 消耗大量的系统资源如CPU和内存等,这将影响系统的实时 终端软件是雷达终端系统的重要组成部分,它与硬件系统 性。因此图形开发系统的选择就显得至关重要了。目前基于 是终端系统不可分割的部分,随着雷达终端技术的发展,功能也 VxWorks操作系统的雷达终端多采用两种图形处理方案:第一 随之越来越强大。工作在小型化雷达终端上的软件必须是将数 种是使用专用显示芯片(如TMS34010/TMS34020)的图形开发 据处理、显示控制、系统监测、情报上报等功能集于一体,在设计 包,该方案的优点在于应用程序可以直接对显卡进行操作,操作 上存在着较大的难度。这是由于数据处理功能要求既要实时处 直观、简单,但是存在以下缺点:只能进行一些简单的、更新频 理大量高速数据,还需对雷达其他系统进行实时控制,因此必须 率较低的图形操作、缺乏集成的调试、测试环境,只有在目标机 运行在高可靠性的嵌入式实时操作系统上,而显示控制功能除 上才能看到运行结果,出现错误很难排查。第二种方案是采用 了进行常规的雷达空情显示外,需实时显示目标的三维信息,从 风河公司为VxWorks提供的图形开发包——windML+窗口系 用户需求来看,有时还要显示三维背景信息。因此必须运行在 统Zinc,该方法也是目前被VxWorks用户普遍采用的图形解决 对高端显卡具有良好支持能力的操作系统上。通常实时操作系 方法。由于WindML的图形原语是在计算机的CPU端解释完成 统为保证其实时性,对图形的支持能力都较弱,一般都只支持简 的,没有利用显卡的硬件加速功能,在进行高速图形处理显示时 单的图形显示,目前尚没有一款操作系统既能满足实时性要求 将会占用较多的系统资源,严重影响到操作系统VxWorks的实 又能够为用户提供强有力的图形处理支持。 时性。通过以往工程实验证明,当雷达回波数量超过10 000点 l 操作系统及开发平台的选择 时,人机界面就不能实时响应了。且这两种方案都没有对3D 图形的支持,由此可见这两种方案都不适宜在小型化雷达终端 目前广泛运用于雷达终端系统的嵌入式强实时操作系统有 系统中使用。 VxWorks、QNX和WINCE,其中VxWorks的运用范围最广,但对 目前针对高性能图形图像处理领域的高端显卡越来越多, 图形的支持能力较弱;QNX有一定的应用群,但技术支持相对 功能也越来越强。很多高性能图形图像功能都由显卡来完成, 较弱;WINCE的图形支持能力比较强,也有好的技术支持;但 而不是过分依赖于计算机的处理速度。软件包如OpenGL是充 分支持显卡硬件加速能力的开发工具,是国际软件开放组织颁 收稿日期:2006一o5一l8 布的支持2D、3D硬件加速的图形显示规范,与操作系统无关。 作者简介:刘巍(1971一),女,高级工程师,主要研究方向为雷达控制与 显示系统的设计开发;丁尔刚(1976一),男,工程师.主要研究方向为嵌 目前也可以找到支持VxWorks的OpenGL库(如Quantium3D的 入式系统下显示系统的设计开发。 sentiries开发系统)。使用OpenGL作为终端软件的图形开发平 维普资讯 http://www.cqvip.com ・66・ 《测控技术))2007年第26卷第6期 台既可以充分利用显卡的硬件加速功能,大大减轻作图任务对 主处理器的占用,又可以利用文理贴图和渲染以及光照等功能 设计出生动立体的人机界面。 2底层驱动的实时性设计 由于VxWorks操作系统的基本组件BSP包中并不包含用 户自己开发的硬件设备驱动,因此对这部分设备必须自行编写 底层驱动。终端软件中所需要开发的底层驱动程序主要是各类 IO设备如高速回波并口、智能串口、CAN总线和高频数据采集 图1 VxWorks标准I/O设备驱动结构层次示意图 设备,这些设备都是PCI总线设备。 考虑到终端的应用需要,按照对实时性要求的不同将需开 发的设备分为慢速设备和高速设备,按照加载方式的不同分为 需静态加载和动态加载设备。具体开发方式也应有所区别。底 层驱动的设计时应考虑以下几个方面: ①中断。中断是实时操作系统中最重要的一个部分。只有 通过中断,操作系统才可以接收到外部事件的发生。在vx— Works中,所有的中断服务程序使用一个相同的中断堆栈,它在 系统启动时就根据具体的配置参数进行了分配和初始化,因此 必须保证它的大小可以满足最坏的中断嵌套的需要。由于中断 处理是整个操作系统中优先级最高的代码,可以抢占任何优先 级的任务代码,因此中断处理时间应尽可能短,只完成最重要的 工作。 ②定时器。在实时系统中还有一个很重要的部分就是定时 器的管理。因为实时多任务操作系统都需要一个周期性系统时 钟中断支持,用以完成时间片调度和延时处理。在VxWorks下, 系统提供了系统时钟和高精度时戳两种时钟管理方式。系统时 钟就是由硬件定时器中断产生的中断频率的间隔来确定时间的 一种方式。系统时钟的频率不能设定太高,否则会使定时中断 频繁产生,导致内核频繁的调用时钟中断程序,增加系统的负 担,使应用程序的调用时间减少。因此在实现某些对时钟精度 比较高的任务过程中,可以使用VxWorks提供辅助的高精度时 戳,这个高精度时戳的原理就是首先获得CPU的频率值,同时 用查询的方式来查询CPU的记数,用这个记数来计算时间,因 为没有频繁中断的负荷,所以这个高精度时戳可以提供很高的 时钟分辨率,这个分辨率可以为系统时钟分辨率的几十倍。 ③应用挂接方式。在终端软件中需要进行驱动开发的设备 分为慢速设备和高速设备两类。慢速设备驱动程序可以按照 VxWorks标准I/O设备驱动开发模式来做。VxWorks标准I/O 设备的驱动程序结构层次如图1所示。从图中可以看出在这种 模式下应用程序不会与驱动程序直接打交道,而是通过tty层来 沟通。实际上,在系统的drive table上安装的不是底层的驱动 函数,而是咐所提供的函数。tty的作用是承上启下,管理着与 I/O层的交互,同时也管理着与底层硬件驱动的交互。 通过该图可以看出,从应用层到硬件设备之间需要经过两 级以上缓存操作才能完成对硬件设备的读、写,这对于速率要求 不高的慢速设备是完全能够满足需要的,但对于数据量大、传输 速率高的快速设备显然效率不够。因此对于快速设备如数据采 集模块和并口模块绕开tly层,直接向用户提供设备操作的API 函数,这样做虽然可移植性差了些,但仍可以通过中间件的封装 便于应用程序的编程,而不需要过多考虑硬件工作细节。 3应用程序的实时性设计 (1)模块的划分。 通过长期以来的工程实践得出,雷达终端软件可以将数据 处理、情报上报、系统监测等任务放在后台处理,而显示控制放 在前台处理,它们彼此之间只有纯粹的数据交互,没有逻辑接口 关系,因此从功能上将终端软件划分为数据处理、情报上报、系 统监测和显示控制四大模块。出于终端软件的高效率要求考 虑,对上述四大功能模块进行子模块划分时依据的原则是:接口 尽量简单;减少对算法复杂的功能重复调用的次数;数据传输路 径单一,降低由于数据在内存中的多次操作而造成对CPU的占 用率;将与操作系统相关、无关的操作严格区分。 (2)任务的安排和调度。 多任务内核、任务机制、任务间通信和中断处理机制,这些 是VxWorks运行环境的核心。多任务和任务间通信是现代实时 操作系统的基石。一个多任务的环境允许将实时应用构造成一 套的任务集合,每个任务拥有各自的执行线程和自己的资 源集合,完成不同的功能。VxWorks提供了两种任务调度算法 即基于优先级的抢占式调度算法和轮转调度算法。 在实际应用中必须将这两种调度算法结合起来使用,这样 既能保证对紧急事件的及时处理,也可以使级别相同的任务公 平地分享使用CPU。 由于终端软件在CPU中是以任务的方式运行,所以就需要 将系统的处理框图转化为多任务流程图,对处理进行任务划分。 任务划分存在这样一对矛盾:如果任务太多,必然增加系统任务 切换的开销从而影响实时性;如果任务太少,系统的并行度就降 低了,实时性也比较差。在任务划分时遵循H.Comma原则: q)vo原则。不同的外设不同任务。 ②优先级原则。对于突发事件的优先级等价于事件的时间 耗尽线,不同优先级的处理不同任务。 ③大量运算。归为一个任务。 ④功能耦合。归为一个任务,如(f(),g(f()),h(g(f()))。 ⑤偶然耦合。归为一个任务,如fl(), (),O()。 ⑥频率组。对于周期时间,针对不同频率的处理不同任务。 如果在具体分析一个系统的时候发生原则冲突的话,则要 针对具体的系统为每一个原则设定“权重”,必要的时候可以通 过计算“权重”来最终确定如何去划分任务。依此原则在终端 软件中,共划分了22个任务。任务优先级的分配原则是将任务 划分为两类:第一类为对发生频率低但需要实时响应外界事件 的任务,如鼠标、键盘、数采、通信等,对该类任务分配高优先级。 这一类任务的运行时间尽量短,采用自阻塞方式。第二类为发 生频率高的功能性任务,如作图刷新、数据处理等,这类任务的 维普资讯 http://www.cqvip.com 嵌入式雷达终端软件的实时性设计 ・67・ 优先级相对于第一级要低,此类任务可以完成一些复杂的功能, 但对实时性要求并不高。 (3)内存的分配。 VxWoAs为用户提供了两种内存区域:region、partition,re. 估算,并尽量使用静态内存分配,避免CPU在进行动态内存分 配时由于碎片的产生而影响速度,如需进行动态内存分配则尽 量申请大块内存。 gion是变长的内存区,用户可以从创建的region中分配seg. 4结束语 小型化雷达终端软件是VxWo ̄s操作系统上的一个较为 ment,其特点是:容易产生碎片,但灵活、不浪费;partition是定长 的内存区,用户可以从创建的partition中分配buffer,其特点是: 无碎片、效率高,但浪费。 在终端软件中衡量内存分配算法的指标是碎片问题和速度 问题。所谓碎片是指内存中的空间大于被申请的空间,但是没 有一块单独的内存空间大于被申请的空间。要求内存分配算法 使碎片尽量小,分配算法的执行速度尽量快。表1是3种内存 复杂的应用,因此本设计方法具有很强的通用性,为在VxWo ̄s 操作系统上进行实时软件设计提供了很好的借鉴。该软件已应 用于多部国家重点项目的雷达终端系统中。 参考文献: [1] 和平鸽工作室.OpenGL高级编程与可视化系统开发[M].北京: 中国水利电力出版社,2002. 分配算法的比较:最大、最先、最适,其中最大算法执行速度1、 碎片最少。但VxWorks采用的是最先算法。VxWo ̄s没有清除 碎片的功能,因为嵌入式实时系统找不到一个合适的时间把正 在运行的程序暂停下来清理内存,例如Windows NT在夜间有时 会自己响个不停,就是在清理碎片,所以在实时系统的设计中只 能是避免碎片的产生。影响碎片的因素有:region的大小,egrion 越大则碎片越少;task占用segment的时间,占用的时间越短则 碎片越少;segment之间的准方差,segment越规则碎片越少。因 [2](美).WindRiver.VxWorks networks progranuner’s guide(version 5. 5)[z].2003. [3]李强,秦亲.开放式“软”雷达光栅平面显示系统研究[J].现代雷 达,2005,(2):67-70. [4]王顺儒,王成满,等.嵌入式实时操作系统选型分析[J].计算机安 全,2001,(3):22—25. [5]张玉莉,赵月兰,等.嵌入式软件系统的开发研究[J].天津理工学 院学报,2001,(12):82—85. [6] 尚涛,施亮,等.实时操作系统VxWorks下I/0设备驱动程序的编 写技巧[J].微计算机信息,2001,(8):24—26. [7] 梁勇,盂桥.嵌入式操作系统VxWorks操作系统的显控程序设计 [J].计算机应用,2O02,(12):7—9. [8] 罗从南,耿中强,等.嵌入式的图形用户界面[J].测控技术,2000, (4):12—14. 为运行在目标机上的只有终端软件,有足够的内存可以使用。 因此在软件设计过程中的需求分析阶段就对所使用的内存进行 表1 3种内存分配算法的比较 [9]朱一凡,刘云生.面向关键任务实时嵌入式操作系统设计技术研 究[J].仪器仪表标准化与计量,2000,(6)-9—12,36. 口 (上接第6l页) 中进行操作等特点,但在交互性方面尚有不足。 说,它是用来描述三维物体及其行为的,可以构建虚拟境界。用 VRML实现与Imemet虚拟现实交互有下面几个好处:丰富了媒 体表现形式、协同工作角色的可视化管理、改善了协同环境的用 户界面、增强了协同环境的交互性。可见,将VRML融合到网 上虚拟实验室的开发过程中,既可以增强表现力和用户的接受 3 结束语 建设网络虚拟实验室是实现教学资源共享与优化配置的重 要方式,也是提高教学效益的有效途径。随着虚拟实验的普及, 其优越性会被越来越多的人认识。具有智能化、协同化和语音 实时交互等功能的网络虚拟实验室软件的开发将是今后的发展 方向。 力,又可以实现较好的协同工作虚拟化环境。同时,也要注意, VRML技术适宜构建虚拟实验室中的所谓“硬件”部分,在实验 数据处理方面尚有不足。 2.4 ASP技术 参考文献: [1]欧阳星明,姚小龙,谢欣荣.网络虚拟实验室的设计与实现[J].计 算机工程,2004,30(2):185—186. ASP(active server pages,动态服务器端网页)内含在Intemet Information Server 3.0及其以上版本中,提供一个服务器端的脚 [2] 江建军,周毅.基于虚拟仪器的网络虚拟实验室构建[J].仪表技 术,2003,(5):l1—19. [3] 肖兴明,贾皓丽,文西芹.基于WWW的网络虚拟实验室研究[J]. 计算机工程与应用,2002,38(20):232—234. 本环境,用于产生和执行动态、高效率的网络服务器应用程序。 ASP不只是动态的网页,它更是当今众多的Web应用程序的控 制部分。ASP提供5个内建的对象供使用者调用,即Request对 [4]赵再军,周文利.基于网络的虚拟实验环境的软件实现[J].机电 工程技术,2004,33(5):58—62. 象(取得用户信息)、Response对象(传送信息给用户)、Server对 象(提供访问服务器的方法、属性)、Application对象(用于多个 使用者在多个网页间共享信息)和Session对象(用于单个使用 者在多个网页间共享信息)。 2.5交互式Flash技术 Flsh技术用于网络虚拟实验室的开发具有开发速度快、a界 [5][美]Deitel H M,Deitel P J.Java程序设计教程——上册:基础篇 [M].袁兆山,等译.北京:机械工业出版社,2004. [6] 熊静,周定康.Intemet环境下的虚拟现实技术——VRML[J].计算 机与现代化,2004,(2):17—19. [7] 陈浩然,赵景波.基于VRML的网上虚拟现实技术在远程教学中 的应用[J].青岛大学学报,2003,18(2):88—92. U 美观、视觉冲击效果强、体积小、不需要安装、可直接在浏览器