漆先虎 张 军 张博君
(西安电子工程研究所 西安 710100)
雷达操控显示终端作为雷达系统的重要组成部分,用于雷达空情目标显示、原始视频显示、雷达控制、系统监测、情报上报等,随着计算机性能的提高和多功能需求的日益增强,将雷达的实时控制、数据处理等实时应用集成在雷达的操控显示终端中日益成为趋势,同时用户的界面审美需求也对终端的图形加速、多媒体以及三维场景的显示性能提出更高的要求。目前,国内外的雷达操控显示终端产品很难同时满足上述要求,典型的一类是以VxWorks和Dos操作系统为平台具备实时控制处理和简单图形显示的操控显示终端;另一类是以Windows和Linux为平台设计,虽然能够提供直观的图形用户控制界面和丰富的多媒体图形显示接口,能够方便的设计出友好美观的人机界面,但其内核实时性较差,不能满足雷达实时控制、数据处理等实时性要求较高的应用,雷达的实时处理任务只能通过其他实时控制计算机来完成。通常实时操作系统为保证其实时性,对图形的支持能力都较弱,一般只支持简单的图形显示,目前尚没有一款独立的操作系统既能满足实时性要求又能够为用户提供强有力的图形处理支持[1]。
为了兼顾雷达操控显示终端的实时性能和强劲的图形显示能力,本文提出了一种基于INtime实时操作系统+嵌入式Window XP(XPE)的雷达实时操控显示终端设计方案。该方案基于兼容PC硬件平台,利用实时多任务操作系统INtime的实时性完成雷达系统的实时控制和数据处理任务,同时充分利用Windows操作系统强大的图形界面功能,实现雷达目标、状态、原始视频、电子地图等显示功能。
INtime是TenAsys公司为了满足Windows平台上硬实时系统严格的响应时间要求而开发的一个实时子系统。它是与Windows操作系统共享硬件平台的实时操作系统,其系统结构体系如图1所示。
图1 INtime系统结构图
INtime实时系统在计算机启动加载Windows操作系统时同时被加载,共享相同的CPU和中断硬件,但在其他方面相互独立。每个操作系统都被封装为一个虚拟机,各自具有自己的描述符表、内存管理等。当实时活动必须发生时,计算机上下文将切换到该实时操作系统,这些活动完成后,计算机上下文将切换回Windows操作系统。实时进程运行在INtime内核上,进程中的代码以用户模式执行,防止意外访问系统对象和数据,保证系统的稳定性。非实时进程运行在Windows内核上。INtime为Windows进程提供了扩展函数库(NTX API),使Windows进程能够共享在实时内核上创建的对象,从而实现Windows进程和INtime进程之间的数据共享和同步[2]。
INtime内核提供了一个基于优先级的抢先式多任务调度系统,最多可支持256个线程优先级,优先级高的线程优先调度执行,同一优先级的线程采用时间片轮转调度算法。通过对线程赋予不同的优先级,严格保证各个任务的执行先后次序。在进程通信和同步方面,INtime通过共享内存与Windows进程进行数据交换,通过信号量进行进程的同步控制。INtime内核提供了高精度的系统计时器,最高精度可达100μs,可以满足大多数要求苛刻的应用程序的实时性要求。INtime具有独立于Windows网络的实时TCP/IP通信堆栈,能够满足实时通信的要求。INtime可以支持单处理器和多处理器系统,在多处理器系统中,可以划分出一个处理器为INtime操作系统及其实时进程专用,提高了系统的可靠性。INtime还提供了与Windows环境兼容的实时编程接口,支持Win32的API,实现了一套实时扩展函数,通过VC++编译环境开发,具备良好的实时调试器。
雷达实时操控显示终端是一个集实时通信、控制、数据处理及显示的综合多任务系统,既有实时性要求很高的雷达设备控制、跟踪数据采集任务和跟踪数据处理等任务,又有实时性要求较低的数据管理、状态控制、雷达目标、原始视频、电子地图显示等任务。所以在系统结构设计时,把实时和非实时任务分开运行。实时任务运行在INtime内核中,主要完成对跟踪雷达分系统、光电跟踪分系统的跟踪数据实时采集和处理,根据处理结果实时控制跟踪伺服分系统将跟踪天线对准目标,以达到跟踪功能,同时完成与非实时进程的数据同步;非实时任务运行在Windows内核中,主要完成雷达分系统非实时的状态控制和数据显示,同时完成系统数据的存储回放等管理。其系统结构如图2所示。
图2 系统结构图
雷达操控显示终端在硬件选型上,选用加固一体计算机,为更好的发挥计算机的图形处理能力,计算机显卡具备2D/3D硬件加速能力。CPU选用Intel酷睿双核,并将INtime配置成独占模式,即IN-time独自占用一个CPU核运行实时进程,Windows占用另一核,这样可提高系统的稳控性和实时性。终端计算机内置一块定时接口板,用于产生雷达系统同步时钟,板卡通过PCI总线向终端计算机产生时钟中断信号。终端与雷达其他分系统之间通信通过网络传输。
为保证系统的健壮稳定,Windows操作系统采用裁剪的嵌入式XPE操作系统,该系统设计成基于休眠方式启动、内存保护方式运行模式,既保证了系统的快速启动,又保证了系统的稳定可靠[3]。关于XPE操作系统的设计已有较多文献资料参考,本文将不作详细介绍。
终端软件采用VC++进行开发,基于上述系统结构,软件主要包括INtime的实时进程和Windows的非实时进程,各进程中根据任务需求划分相应的任务和功能模块,软件功能结构图如图3所示。
图3 软件功能结构图
INtime实时进程在INtime内核中运行,根据其功能划分主要包括系统定时功能模块、实时跟踪控制功能模块、跟踪数据处理功能模块、网络接口通信功能模块和进程通信管理模块。软件采用多线程方式设计,按实时性要求划分不同优先级的任务,采用适当的任务调度策略,使每个任务按要求适时执行。进程的软件结构如图4所示。
图4 实时进程软件结构图
实时进程采用计数器对外部定时接口板的10ms硬件定时中断进行计数分别产生40ms和200ms中断信号量,根据系统处理实时性要求,将40ms定时处理线程相对优先级设置为1(高),将200ms定时处理线程相对优先级设置为2(中),将雷达各分系统与INtime进程的通信线程优先级均设置为0(最高),以保证跟踪传感器的跟踪数据实时可靠。
通信线程主要用于接收网络上的跟踪传感器的跟踪距离、角度偏差和状态数据。线程通过网络中断方式实时接收数据,并将数据存入相关的接收数据数组,供40ms定时处理线程使用。
40ms定时处理线程用于将多跟踪传感器的跟踪数据进行融合处理,并建立跟踪航迹,采用卡尔曼滤波进行航迹的平滑和外推。根据目标预测位置和天线位置求取角度偏差量,采用位置闭环控制跟踪伺服分系统,以使跟踪天线保持对准目标方向,实现对目标的实时跟踪。40ms定时处理线程同时将光电及跟踪雷达传感器的状态数据、系统状态和目标航迹的跟踪处理结果等写入数据队列用于Windows进程显示。
200ms定时处理线程主要用于实现INtime实时进程与Windows进程间的数据交互。采用共享内存和信号量机制,创建共享内存对象和信号量对象,定时将数据队列中的数据写入共享内存中。Windows进程在与INtime进程通信时,通过调用INtime的NTX API,获得INtime实时内核上创建的对象。
该雷达操控显示终端中Windows进程与普通桌面Windows系统下的进程设计方法完全兼容。其主要核心任务是图形的快速显示。本终端的显示设计采用多线程方式,利用Windows平台的DirectX图形接口,通过DirectDraw进行快速、多层次的页面绘制和显示。根据其功能划分主要包括系统界面操控模块、数据存储回放模块、显示模块、网络接口通信模块和进程通信管理模块。
系统界面操控模块主要采用图形控件进行界面布局,通过各控件的功能定义和相应的消息机制来驱动人机界面操控事件,以完成界面中各功能按钮、对话框、列表框等的操控功能。
数据存储回放模块用于对雷达工作状态、雷达各目标数据进行实时存储和回放。该模块以INtime系统定时器为基准,对终端接收到的所有网络数据进行打时标和报文重组,并将重组报文以二进制方式记录在存储介质中。数据回放时,读取报文文件,并拆分报文时标和原始数据报文,以记录的时标为驱动,将数据报文进行重新解析和处理,实现回放功能。
显示模块主要用于显示PPI坐标背景、电子地图背景、雷达原始视频图像、各种目标点迹、航迹以及天线码盘等信息。采用DirectDraw图形加速显示技术和页面的分层设计,将DirectDraw页面分为背景层页面、电子地图显示页面、雷达原始回波视频页面、目标页面和动态状态数据页面。通过多线程对各页面显示内容独立进行快速绘制,在Windows进程的主定时器中将各页面叠加绘制到DxDraw主页面,最后调用DirectDraw的换页函数(Flip)进行显示[4]。
网络接口通信模块与INtime进程中的网络接口通信模块类似,但主要用于终端与雷达其他分系统非实时数据和命令的通信。
进程通信管理模块主要用于Windows进程对INtime系统中的共享内存和信号量进行调用,以实现INtime进程和Windows进程之间能够进行数据交互。
使用XPE+INtime构筑的系统作为雷达操控终端软件运行环境,主要由Real-time控制应用(IN-time进程)和GUI应用(Windows进程)两部分构成。终端软件的Windows进程可直接双击运行,由XPE操作系统载入内存并执行,INtime实时进程由其系统配套的实时控制应用软件载入器LDRTA.EXE进行加载到内核并执行。INtime内核将自动创建一个最低优先级线程,用于将计算机上下文切换回Windows进程,以保证两进程在同一硬件平台同时运行。两进程通过共享的内存和信号量进行数据交互,并各自独立运行完成雷达的实时操控显示功能。
通过对基于INtime的雷达实时操控显示终端的实验室测试与仿真,以及与雷达实装的现场试运行,实时操控显示终端能够较好的完成对雷达的实时控制和数据处理运算,满足系统实时性要求,同时能够流畅显示雷达的原始视频回波、检测点迹以及雷达工作状态,表明了该方案能够成功的将雷达实时控制和实时性要求不高的显示集成在一起进行设计,降低成本的同时增加了系统的可靠性。
[1]刘巍,丁尔刚.嵌入式雷达终端软件的实时性设计[J].测控技术,2007,26(6):65.
[2]TenAsys Corporation.INtime software user guide[M].Beaverton,Oregon,USA:TenAsys Corporation,2005:32-35.
[3]郭敏,史乘龙,宋长生.基于XPE的嵌入式雷达显控终端系统[J].火控雷达技术,2008,37(3):91-95.
[4]漆先虎.基于DirectDraw的雷达操控显示终端设计[D].西安:电子科技大学,硕士学位论文,2010:52-54.