VxWorks 下内核映像+可下载模块的发控软件设计研究
2022-07-25蓝志豪王建国冀慧君梁海峰
蓝志豪,王建国,冀慧君,梁海峰
(北方自动控制技术研究所,太原 030006)
0 引言
随着火控系统信息化、智能化程度的提高,研制适应未来信息化战争条件下联合作战的信息化炮兵压制武器装备成为一种必然的要求,科研装备需具备远程精确打击、快速反应、一体化侦指打评、高效毁伤的作战能力,能够遂行多种火力任务,发射精确制导火箭弹和后续发展的制导火箭弹、巡飞弹等,对远纵深面目标进行深层次火力压制和点目标实施精确火力打击。因此,如何在同一发射平台上实现多弹种共架发射控制,成为整个武器系统亟待解决的问题。
对于发射控制软件来说,它的核心使命就是能够成功发射火箭弹,并且要在不影响原有火箭弹的基础上对后续发展的制导火箭弹进行轻松便捷加载并成功发射;传统发射控制软件都是基于实时性低、单线程的DOS 操作系统进行设计,这就造成以往的发射控制软件实时性不强、内存小的弊端,而且由于没有采用构建化、模块化设计,所有弹种代码强耦合,就导致如果想新增弹种,就必须更改源代码重新编译,很有可能会给原有弹种的发射带来未知的风险,因此,就迫切需要一种新型的发射控制软件设计方法。
1 发射控制软件设计需求
如何安全可靠地完成火箭弹的发射,一直是火箭武器系统的一个核心任务,发射控制设备作为火箭武器系统的核心部件,是完成火箭弹发射的最终执行单元,直接关系到火箭弹发射的成败;目前国内现役装备最先进的发射控制设备主要是远火武器系统发射控制设备;军贸型的主要有卫士2d 火箭炮发控设备,国外现役装备及在研的火箭炮发射控制设备主要有美国的“HIMARS”火箭炮、俄罗斯的“旋风”多管火箭炮、以色列的“山猫”火箭炮等。
发射控制软件部署在发射控制设备中,主要完成多种火箭弹的发射时序控制、继电器操作、状态监测及与外围设备的通信等任务;在发射前准备过程中,主要完成对接检测、弹种识别、参数装定、相关回路检测等,发射前准备好后,通过与外围设备通信,接收到发射指令,按照预先规定的发射时序进行热电池激活和发动机点火操作,完成发射任务。
从发射控制软件的使命和任务可以看出,该软件具有实时性、多任务、交互性以及模块化等特点,且任务数量越多,系统的可靠性和每个任务的响应时间必须得靠合理的调度机制和操作系统底层算法来保证,因此,就对操作系统有较高的要求:
1)高性能、高可靠性的微内核;
2)可裁剪、可定制;
3)综合的网络解决方案;
4)高效的调试工具和方法;
5)方便硬件平台移植。
2 VxWorks 操作系统概述
在发射控制软件历史上使用的众多操作系统中,应用最多就是DOS、QNX、VxWorks 和Windows CE 几种,VxWorks 以其良好的持续发展能力、高性能内核以及便捷的开发调试环境成为目前的主流。
VxWorks 是Wind River System 公司推出的一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统,它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,1997 年4 月在火星表面登陆的火星探路者上也使用了Vx-Works,具有以下特点:
1)既是一个操作系统、又是一个可以运行的最小基本程序;
2)有BSP(可以认为是一种低层驱动),可以减小驱动程序的编写过程;
3)具有强大的调试能力,可以在没有仿真器的情况下,通过串口调试;
4)具有软件DEBUG 功能,可以对软件部分进行模拟调试;
5)具有丰富的函数库;
6)自带TCP/IP 协议栈。
VxWorks 是专门为实时嵌入式系统设计开发的操作系统内核,为程序员提供了高效的实时多任务调度、中断管理,实时的系统资源以及实时的任务间通信。在各种CPU 平台上提供了统一的编程接口和一致的运行特性,尽可能地屏蔽了不同CPU 之间的底层差异。应用程序员可以将尽可能多的精力放在应用程序本身,而不必再去关心系统资源的管理。基于VxWorks 操作系统的应用程序可以在不同CPU 平台上轻松移植。
在本文中,内核映像和可下载模块都是Tornado(VxWorks 操作系统开发工具)可以创建的两种工程,其中内核映像包括VxWorks 内核,可直接在目标板上完成自启动、装入内核并运行应用程序;而可下载模块可看作是用户程序,不包含VxWorks 内核,可根据用户不同的需求将不同类型的应用封装成特有的可下载模块。
3 发射控制软件设计方法研究
3.1 软件设计方案
在某远火项目中,发射控制软件的核心使命是能完成现有的6 种火箭弹的发射,同时具备对后续发展的制导火箭弹、巡飞弹等进行发射的能力,这就要求发射控制软件具有相当高的实时性和扩展性,所以,发射控制软件采用了VxWorks 操作系统,并设计一种VxWorks 操作系统下内核映像+ 可下载模块的发射控制软件设计方法,在完成了上述武器系统要求的同时,又提高了系统实时性和可扩展性。
其中,内核映像为主程序,集成了发射控制软件所有弹种通用的底层的通信,包括CAN 通信、DDS 通信、串口通信、TCP 通信等;可下载模块是根据不同弹种的发射时序、通信、继电器操作等特性进行分组,将6 种火箭弹拆分组合成7 个可下载模块,分别是弹种识别模块、2xx km 火箭弹模块、1xx km 箱式火箭弹模块、0xx km 箱式火箭弹模块、1xx km 管式火箭弹模块、0xx km 管式火箭弹模块和0xx km 管式侵彻弹模块,每个可下载模块里包含相应的火箭弹发射时序、发射流程控制、通信协议和继电器操作等,且各个模块之间完全独立;针对后续新加弹种,只需创建包含相应发射时序、发射流程控制、通信协议和继电器操作等的可下载模块,加载后即可完成新加弹种的发射任务,这就实现了现有6 种火箭弹的强解耦和后续新加弹种的便捷加载,完成了发射控制软件的构建化和模块化设计;发射控制软件框架图如图1 所示。
图1 发射控制软件框架图
3.2 实现方法
1)建立内核映像工程,完成CAN 通信、DDS通信、串口通信、TCP 通信的初始化工作,初始化完成后,创建CAN 通信、DDS 通信、串口通信、TCP 通信对应的接收和发送任务,内核映像结构图如图2所示。
图2 发射控制软件内核映像结构图
2)建立可下载模块工程,其中,弹种识别模块要完成弹种识别时序控制、通信协议解析和反馈和军码加注工作;2xx km 箱式火箭弹模块、1xx km 箱式火箭弹模块、0xx km 箱式火箭弹模块、1xx km 管式火箭弹模块、0xx km 管式火箭弹模块和0xx km 管式侵彻弹模块则是主要完成相应的火箭弹发射时序控制、通信协议解析和反馈、继电器操作等工作,弹种识别模块结构图如图3 所示,火箭弹模块如图4 所示。
图3 发射控制软件弹种识别模块结构图
图4 发射控制软件火箭弹模块结构图
3)本步骤主要具体说明内核映像是怎么完成可下载模块的加载和卸载。
首先,在加载可下载模块前要将已有的可下载模块卸载掉,调用模块卸载函数卸载现有可下载模块。然后,加载可下载模块,调用加载模块函数加载选中的可下载模块,即可完成了整个可下载模块的卸载和加载过程。模块动态加载如图5 所示。
图5 模块动态加载流程图
通过上述步骤,即能从设计方法上实现现有6种火箭弹的强解耦,以及后续新加弹种的便捷加载。
4 结论
本文提出的VxWorks 操作系统下内核映像+可下载模块的发射控制软件设计方法,首先从操作系统层面保证了发射控制软件具备多任务、高可靠性和强实时性的基础,其次,该软件设计方法从根本上解决了以前发射控制软件各弹种之间耦合严重的问题,使各弹种之间相互独立,具备便捷的可扩展性。目前该软件设计方法已成功运用到某远火发射控制软件中,且表现安全、可靠。