APP下载

机载战术数据系统框架设计

2012-06-07苏玉强

电光与控制 2012年1期
关键词:看门狗数据系统战术

苏玉强,刘 颖

(1.中国人民解放军驻航天二院二十三所军事代表室,北京 100854; 2.海军装备研究院,北京 100161)

1 战术数据系统及其需求

机载战术数据处理系统主要功能是根据当前战场态势进行战术解算,实现空空、空地、空舰战术数据共享,为飞行员及指挥员提供辅助决策。例如进行飞行航路解算、目标威胁判断、飞机编队间武器协同和编队内及地空战斗协同等。不同机型的机载战术数据处理系统因飞机作战功能的差异而使其具体功能有区别,但都有一些共同特点,如下所述。

1)战斗行动指挥的最大特点是实时性[1]。战斗机上各分系统目前大多数采用VxWorks嵌入式操作系统。

2)与多种机载设备交联。机载雷达、大气机、导航设备、平视显示器、武器外挂物管理、数据链设备、音响中心、显控系统和综合航电系统都可能与战术数据处理系统交联,它们或者是计算数据来源,或者在其上进行显示控制。

3)数据记录下载要求。为了进行飞行后数据分析,需要对飞行数据进行记录,并能在飞行后下载。

4)安全性要求。机载计算机在设计时都有硬件看门狗,当应用程序运行异常时触发看门狗,使计算机重启,其适用于无操作系统或者单任务系统。

目前机载设备程序大多数采用多任务设计,因此需要对各任务进行监控,当任务运行异常时,实现硬件重启和看门狗功能。

不同机型的战术数据系统功能可能差异较大,其差异主要体现在战术解算部分,在程序结构方面都体现出一致性,程序员在软件开发过程中将软件功能与程序结构紧密结合,未能提炼出软件体系结构方面的共同点,造成软件结构比较混乱,不利于软件的维护性和重用性。设计机载战术数据系统的通用框架不仅可以缩短开发周期,并且可以提高程序的可读性和可维护性等。该框架基于VxWorks操作系统,采用层次化的设计方式,利用抽象化设计,将框架与操作系统分离,能移植到其他操作系统下,并实现几个典型的物理接口,包括 ARINC429、1553B、RS422和 UDP等,使程序员将重点放在战术解算部分的设计。

2 框架层次结构

战术数据系统程序框架为各种飞机平台的战术数据系统提供统一体系结构,为应用程序屏蔽了操作系统接口,通常战术数据系统包含3个层次:共用框架层、通信接口处理层和战术信息综合处理层。战术信息综合处理层主要完成战场综合态势形成,包括航迹管理和航迹融合,以及目标威胁判断、飞行航路解算、战斗协同、指挥交接等战术数据处理,不同机型的战术要求会有一些区别,设计共用框架的目的就是要开发人员集中注意力于战术信息综合处理。通信接口处理层的功能是完成与各类机载设备的交联以及接口控制协议解析。共用框架层包括:任务监控、通信管理、数据记录、消息管理和定时器,其中消息管理和定时器是借助操作系统实现的通用功能,其功能类似于Windows下的消息机制和定时器,实现消息驱动功能。任务监控完成类似硬件看门狗功能,当有任务运行出现异常时实现硬件重启;通信管理为所有交联的机载设备提供统一抽象接口,包括数据发送、接收和订阅。数据记录为战术数据系统提供异步数据记录功能,不仅可以记录战术数据,还可以记录系统标准输出和标准错误输出信息。这些信息就是用户使用printf、logMsg语句等输出的信息,以及系统出错时由操作系统自行输出的信息。这些信息在我们日常的开发中经常使用,在地面开发状态可以通过超级终端或者虚拟控制台看到,是程序开发调试的重要手段。但是在飞行状态时无法获得,可以通过数据记录获得。

图1 机载战术数据系统典型层次结构Fig.1 Typical hierarchical structure of airborne tactical data system

3 框架设计

3.1 定时器

在应用软件开发过程中经常会用到定时器,如在Windows下,用VC++开发应用程序时,操作系统提供接口简洁的定时器调用函数,程序员需要做的就是设置定时回调函数和定时周期,不需要更深地了解其实现的机制,系统对回调函数也没有任何限制。但是,机载战术数据系统通常采用的VxWorks操作系统并没有提供类似于Windows下的定时器支持,要实现定时功能有两个途径:1)借助taskDelay函数实现;2)使用VxWorks提供的看门狗(watchdog)。使用taskDelay实现定时器的缺点在于它是基于任务的,由于任务优先级的原因会导致定时不准;相比之下看门狗是基于系统时钟中断,定时精度大大优于前者,但是由于看门狗是基于中断机制,因而对用户的回调函数有诸多限制,如不允许使用semTake,printf等需要等待获取某种资源的函数,否则会引起程序死机。另外,看门狗只触发一次回调函数,如果用户需要周期定时器就需要重新启动看门狗。

基于看门狗机制设计实现异步通用定时器,异步是指该定时器运行于任务中,相对于中断下对用户回调函数的限制,对用户没有任何限制。该定时器提供类似于Windows定时器的操作接口,接口简单,使用方便,并根据实际需要设计了周期定时和一次性定时两种定时器。

3.2 消息机制

为降低模块之间的耦合度,机载战术数据系统采用事件驱动模式,事件驱动模式借助消息机制实现,程序模块利用发布—订阅模式注册模块关注的消息,通过消息经消息中心实现事件驱动以及数据交换[2-4]。

图2 基于消息的应用框架示意Fig.2 Application framework based on message mechanism

消息映射表是发布和订阅者之间的联系纽带。消息映射表的索引是消息响应句柄,一个消息响应句柄可以对应多个消息,但是不能重复响应同样一个消息。消息映射表以链表形式存储,每个节点的第一个元素是消息响应句柄,第二个元素是消息槽。消息槽由响应消息类型标识集合、消息池、消息触发信号量和异步消息响应任务等4部分组成。

消息引擎是应用框架的处理核心,负责消息映射表和消息槽的建立、维护,订阅—发布模式驱动。下面为订阅、发布和响应3个方面消息引擎的处理流程。

1)消息订阅。

应用程序模块以消息响应句柄和响应消息标识作为参数,调用消息引擎的消息订阅接口,消息订阅实际是创建消息映射表和消息槽的过程,首先消息引擎扫描消息映射表,如果消息表中没有注册该消息响应句柄,则注册该消息句柄,并且创建对应消息槽,同时将消息标识添加到消息槽的响应消息集合中;否则只是将消息标识添加到响应消息集合中。

消息槽的创建过程:初始化响应消息集合、初始化消息池、创建一个初始计数为零的计数信号量,生成一个线程或者任务作为异步消息响应任务,并且等待消息触发信号量,此时该任务处于挂起状态。

2)消息发布。

应用程序模块发布消息时并不关心哪个模块会响应该消息,只是将消息标识和对应的消息内容提交给消息引擎。当发布异步消息时,消息引擎遍历消息映射表,查找响应该消息标识的消息响应句柄,拷贝该消息内容和消息标识存入消息池,释放消息触发信号量,此时异步消息的发布就已经完成。发布同步消息不同于异步消息在于,不拷贝消息和释放消息触发信号量,在发布消息的任务空间中调用消息响应函数。

3)消息响应。

在消息发布中已阐述了同步消息的响应过程,此处着重异步消息响应,在消息订阅中创建消息槽时创建的异步消息响应任务挂起于消息触发信号量,异步消息发布时释放消息触发信号量,此时任务解锁,从消息池中取出消息标识和消息内容,调用消息响应函数,然后释放在消息发布中生成消息内容,否则会引起内存泄漏。

3.3 通信设备管理

战术数据系统可能会和多种机上设备交联,比如通过ARINC429与导航设备交联、1553B与机载雷达交联。不管是什么样的设备,不外乎数据接收和数据发送两部分,数据接收可能是中断或者数据查询方式。为实现对不同交联设备的统一管理,需对通信设备进行抽象封装。通信设备抽象采用Bridge设计模式,将抽象与实现分离,在抽象部分实现接收数据分发机制,在实现部分实现物理设备收发的抽象[3]。

接收数据分发机制采用Observer设计模式[2],提供接收数据订阅接口,每订阅一次数据就会生成一个任务,在接收到物理设备收发的接收任务提交的通信数据时将数据放在接收缓冲区中,通知订阅任务调用接收处理函数,并将接收到的数据传给接收处理函数。在实现上有点类似消息机制。

物理设备收发抽象封装了两个任务:1)负责接收数据,并将数据提交给数据分发机制;2)负责数据的发送。用户要发送数据时首先是将数据存放在发送缓冲区中,并不是真正地从物理设备发送出去,发送任务不停地从发送缓冲区中向物理设备发送数据,当采用中断方式发送或接收数据时,中断处理程序与发送或接收任务通过消息队列或者环形缓冲区完成数据交换[7]。

图3 通信设备抽象设计类图Fig.3 Class chart with abstract communication device

3.4 数据记录

记录数据写入电子盘的速度是比较慢的,为不影响数据处理的速度,将数据记录从数据处理任务中分离出来,在战术数据系统框架中设计了一个通用的数据记录模块,数据记录采用异步模式,即在数据处理的过程中将需要记录的数据交给数据记录模块,此时只是将数据放入缓冲区中,并不在此时真正写入电子盘文件中,数据记录模块有一个优先级较低的任务负责从缓冲区中取出数据写入文件。同时对于在地面调试时使用printf和logMsg输出的信息,通过操作系统对标准输出文件描述符的重定向功能记录到电子盘。

3.5 任务监控

机载战术数据软件大多采用多任务方式,无法通过硬件看门狗电路在软件运行出错时自动重启,恢复软件运行。因此需要建立软件看门狗机制,监控任务运行情况,在出现异常时记录必要的异常信息,自动重启设备。事后利用记录输出信息辅助分析异常原因。

VxWorks下任务有4种基本状态:READY、PEND、DELAY、SUSPEND[5],另外其他一些组合状态在用户不使用Shell命令人为改变任务状态前提下,如果状态中出现SUSPEND,就说明该任务已经出错。任务监控需要周期性地监测操作系统中所有运行的任务状态,发现某任务出错时记录任务的相关基本信息,并自动重启[6]。

在VxWorks下系统标准错误输出(STD_ERR,文件描述为2)用来输出系统的出错信息,通过ioGlobal-StdSet可以将其重定向到电子盘文件输出。

3.6 实时性保障

在定时器、消息机制、通信设备管理、数据记录和任务监控5部分中,数据记录和任务监控在整个框架中只是补充性的,在程序开发中脱离开框架,数据记录和任务监控也是在负载较小时进行,因此,它们对实时性要求并不高。定时器、消息机制、通信设备管理是使用框架构建战术数据系统应用程序的关键所在,程序运行、调度均通过其完成,例如,外部数据的接收发送通过通信设备管理完成,数据周期性刷新送显通常依赖于定时器,数据处理过程的状态传递、结果分发往往要使用消息机制。因此定时器、消息机制、通信设备管理3部分对实时性的支持非常重要,要为应用程序提供灵活的实时性支持,供应用程序根据自身要求选择。

1)定时器。

定时器通常使用异步模式,即定时用看门狗中断完成,用户处理在另一任务中完成,在这种情况下可以使用任务优先级来保障实时性。如果还无法达到实时性要求则可使用同步模式(不推荐使用,在处理过程简单时适用),即直接在看门狗中断中完成定时器处理。

2)消息机制。

消息机制分为同步消息和异步消息。同步消息是触发者和响应者在同一任务中运行,也就是类似于函数调用关系;异步消息是触发者和响应者在不同任务中运行,会涉及到信号量释放,任务激活调度等,相对于同步消息实时性稍差。因此可首先使用异步消息,通过任务优先级保障实时性,其次使用同步消息。

3)通信设备管理。

通信设备管理中,数据的接收和发送可以使用中断方式,亦可使用查询方式,用户可以根据设备具体接口选择。在数据的接收和发送传递过程中,与定时器及消息机制一样,可以异步,也可以同步,异步即数据在不同任务之间传递,同步即数据在同一任务的不同函数之间传递,对实时性保障与定时器及消息机制类似。

4 框架应用

某歼击轰炸机的战术数据系统的主要任务是:通过机载战术数据链实现空舰/空地战术数据共享,可将飞机导航信息、油量、武器外挂以及机载雷达的跟踪目标下发;接收地面、舰载或者空中指挥所通过数据链实施的指挥,能接收指挥所的目标信息、目标指示信息、战术命令以及指挥引导信息,完成对机载雷达的目标指示,无线电静默下的目标攻击;根据飞机性能解算攻击敌方目标的有利飞行航路。

机载战术数据处理系统与机载雷达通过1553B交联,与机载数据链通过RS422交联,与惯导设备通过ARINC429交联。对战术数据系统的操作控制通过雷达显示器周边键完成,所有战术数据(如目标、战术命令、飞行航路等)在雷达显示器上显示[8]。

战术数据处理系统分为接口处理层和战术处理层,接口处理层主要负责接口解析,包括雷达接口处理、数据链接口处理和惯导接口处理。战术处理层包括数据链信息协议处理,雷达飞行航路解算、本机飞行平台参数处理、雷达跟踪目标航迹处理、简单战术命令管理、目标指示信息处理、对空指挥引导信息处理、数据链目标航迹处理和显控处理等部分。它们中有使用定时器,如对数据链目标做外推时需要定时器、目标显示时需要定时器;也有使用消息机制实现数据交换,如飞行航路解算的结果以消息的形式发送给显控处理,然后发送给雷达完成航路显示。

图4 某机载战术数据系统结构示意图Fig.4 Structure of a certain airborne tactical data system

5 结束语

本文设计的机载战术数据系统框架已经成功运用于多种机型,虽然不同机型的战术数据系统的任务有不同侧重,但是运用本框架不但降低了开发者的开发成本,使其更注重于战术解算部分,而且在程序的可读性和可维护方面都有很大的提高,框架具有通用性。

[1]夏英明.论航空火力指挥控制系统[J].电光与控制,2007,14(6):1-7,12.

[2]GAMMA E.设计模式:可复用面向对象软件的基础[M].北京:机械工业出版社,2007.

[3]温昱.软件架构设计[M].北京:电子工业出版社,2007.

[4]姚启鹏.基于消息中间件应用框架的研究[J].计算机与现代化,2006(11):84-87.

[5]WindRiver System Inc.VxWorks Programer's Guide[M].USA:WindRiver System Inc.1999.

[6]苏玉强,刘颖,张磊.VxWorks下的任务监控方法及其应用[J].工业控制计算机,2008,21(2):35-36.

[7]王运栋,狄元博,陆小龙,等.UML在战术数据处理系统建模中的应用[J].电光与控制,2007,14(5):149-152.

[8]邵帆,张安.航电综合系统中飞机显示控制系统的仿真与实现[J].电光与控制,2010,17(11):89-92.

猜你喜欢

看门狗数据系统战术
把他叫醒
中间战术
基于Spark的高速收费站大数据系统的设计与实现
基于计算机软件开发技术的物联网数据系统
非均匀采样数据系统的新型模型描述方法
如何对抗毛球!全方位战术考察
把它叫醒
把它叫醒
乳腺影像报告和数据系统分级4和5级的触诊不清乳腺肿块的超声特征
巧用翻边战术