张晓敏 马鹏飞
上海机电工程研究所,上海201109
指控计算机是导弹武器系统的重要组成,对上连接外部所有情报节点和网络,对下连接发射装置、显控台、导航设备等,在很短的时间内,需要完成数据接收、模型解算、命令解析、数据发送和时间更新等多种不同的任务,对系统的实时性要求很高。多年来,国外软硬件产品,包括核心的CPU和操作系统,在导弹武器以及运载火箭[1]等多个领域中被大量应用和采购,一旦战争到来,装备生产将会面临很大难题,无法自主可控。
近年来,武器装备核心元器件100%国产化的要求也逐步被提出,另一方面,国产CPU和实时操作系统在性能上不断提升[2],国产CPU中龙芯处理器、飞腾处理器和申威处理器,实时操作系统中道系统、锐华操作系统等,都在三军武器装备上得到了验证和使用。
文献[3]基于龙芯2H芯片和道嵌入式操作系统设计研制了某型火控计算机;文献[4]介绍了一种新型的基于龙芯3A+2H的火控计算机的设计方法,并移植了麒麟Linux操作系统内核,实验证明该计算机能满足军用要求;文献[5]在研制雷达中心计算机时,选用了龙芯2F芯片和道3.0操作系统,并通过实际工程应用证明了国产化替代的可行性;文献[6]采用龙芯2F加麒麟操作系统的组合,在多雷达点迹航迹融合处理设备上取得一定效果;文献[7]基于龙芯3A芯片加天熠嵌入式操作系统加中标麒麟系统设计研制了指控系统的嵌入式计算机和桌面应用软件。本文基于龙芯3A3000系列芯片和道6.0操作系统,设计研制指控计算机,测试结果表明该计算机满足相关需求。
指控计算机通常集成在标准显控台上,依军种不同安装在舰船、装备车或地面固定指挥中心上,是C4ISR(指挥、控制、通信、计算机、情报、侦察和监视)系统的核心部分[8]。如图1所示,指控计算机的主要功能有[9]:1)接收各种信息源(如雷达、红外)送来的各类目标参数信息,并建立目标数据库,对目标进行数据融合等综合处理;2)接收硬件操控台和人工发出的数据或命令,进行数据信息的处理显示,如各车态势、各设备硬件状态等;3)依据数学模型,如坐标转换、威胁排序、杀伤区解算等,进行战术计算和辅助决策。
图1 指控计算机功能示意图
通过表1可以看出,Intel i5-7200U、FT1500和SW1600具有高吞吐率计算能力,适合应用于需要处理大量数据和计算的服务器中。与Intel处理器相比,龙芯3A3000综合性能相当于Intel赛扬J1900,单核性能相当于i5-7200U的30%~40%,优化之后能够达到后者的60%。2020年,龙芯将采用14nm生产工艺,其主频有望提升到2.5GHz。龙芯3A4000有望达到Intel I5-7200U水平。
表1 国产CPU与国外常用CPU主要性能比较
综合考虑处理器的成熟度、应用领域、配套软件等情况,这里选择龙芯3A系列作为国产化平台计算机的核心处理器。具体而言:
1)龙芯、申威和飞腾,三家公司有着不同的主攻方向,龙芯主攻方向是嵌入式和PC;而飞腾和申威则把主要精力放在了超算芯片和高性能服务器上。我们的地面装备目前阶段网络化布局还在试验起步,重点还是在嵌入式和PC上;
2)飞腾1500A系列芯片是在与ARM公司授权下,短周期内研发出来的产品,业内认为其内核是对ARM公版内核进行了修改,而非完全自己编写。相比起来,龙芯处理器在性能上稍微落后,但其进步快,单核CPU性能逐步提升,且依托中科院技术支持。
3)国产芯片与国外的差距上,CPU性能只是一小块,重点是在下游产业链上,由于龙芯重点放在了嵌入式和PC方面,所以其与曙光、浪潮、锐捷网络等下游软硬件企业以及舰载火炮、舰载导弹的火控领域有多年的研发经验。
龙芯处理器是中国科学院计算所自主研发的通用CPU,采用类MIPS 指令集,目前已发展到龙芯第二代产品。龙芯3A3000系列[10]就是目前第二代产品中已成熟稳定且性能突出的一款处理器,它是一款4 核处理器芯片,采用28nm工艺制造,最高工作主频为1GHz,主要面向嵌入式和PC应用。其片内集成4个64 位的四发射超标量GS464 高性能处理器核,2个定点、2个浮点、1个访存部件; 每个处理器核包括2 个全流水的64 位双精度浮点乘加部件; 访存部件支持128 位存储访问,虚地址和物理地址各为48 位。龙芯3A3000 的接口主要包括2个DDR 2/DDR3 内存接口,2个16 bits、4个8 bits HT1.0 接口,4个32 位PCI/PCIX 接口,1个LPC 接口。
2.3.1 计算机整体架构设计
中心计算机采用CPCI总线结构、双机的设计方案。两台指控主机互为备份关系,双机置于同一机箱内,机箱设计为19英寸6U机箱。
中心计算机由2块CPU模块、2块时统处理模块、1块BUS板及1个电源等组成,两块CPU板之间的通讯可通过外接网络进行,两块CPU模块、时统处理模块完全相同。
图2 计算机接口方案图
2.3.2 CPU板架构设计
指控计算机采用CPCI总线结构,机箱为6U机箱。CPU板是基于龙芯3A3000CPU和龙芯7A1000桥片进行设计,CPU板实现计算机的基本功能,包括数据处理、总线管理、外设控制以及存储等。CPCI载板根据外围接口要求,完成电源管理、PCIe转CPCI、并提供人机界面接口以及网络等通信接口等。
国产实时操作系统主要有道系统、锐华操作系统、天熠、和欣及RT-THREAD 等操作系统,综合考虑地面装备计算机对操作系统实时性的要求,配套开发工具的完善性以及商业运行模式,选择道系统作为地面装备计算机配套的实时操作系统。
道系统由北京科银京成公司开发,目前最新的是6.0 版本[11],可对标VxWorks-V6.8/6.9。支持多种处理器架构,包括X86、PowerPC、ARM和MIPS。支持多种国产处理器架构,包括龙芯、申威和飞腾,支持32位、64位应用开发,提供基于应用的定制化功能,提供丰富的故障诊断、调试功能,提供丰富的网络组件,提供FTP访问权限设置功能,兼容QT图形组件及扩展QT图形组件。在舰载、车载、机载等装备领域有较成熟的应用,某型护卫舰综合反潜火控分系统已使用道系统作为设备操作系统。
道系统6.0与VxWorks6.8系统的主要功能对比如表2所示:
表2 道系统6.0与VxWorks6.8功能模块对比
道系统为类VxWorks 操作系统,VxWorks下的应用程序作少量修改即可移植到该系统,考虑到软件研制进度紧,周期短,选择道系统也能提供一种更为便捷省时的软件移植方法。
3.2.1 PMON开发
龙芯CPU是基于MIPS架构设计的,目前所支持的固件有uboot,PMON,昆仑固件,UEFI等。这里选用PMON固件,PMON是一种具有BIOS部分功能的开放源码软件,它保存着计算机基本输入输出程序、系统设置信息、开机后自检程序和系统自启动程序。PMON作为龙芯产品的基本输入输出系统,能够完成计算机系统的开机自检,板级初始化,加载操作系统内核以及基本I/O功能。
3.2.2 BSP移植
板卡支持包的作用是使嵌入式操作系统在各种不同的硬件环境下都能较好地工作,通过特定的上层接口与操作系统内核进行交互,向操作系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作。目前龙芯芯片公司会提供相应的BSP包,供硬件集成方进行二次开发,考虑到选择 “道系统”,因此在道开发环境Lambda Tools下,建立BSP项目,在龙芯公司提供的BSP模板上做二次开发,重点完成异常处理和中断的管理、内存管理和各驱动程序的配置。具体步骤如下:
BSP移植开发的常规步骤如图4所示。
图4 BSP移植开发常规步骤
1)配置开发环境。使用道系统的集成开发环境LambdaTools。包含基本的编码、调试等功能。
2)编写BSP初始化代码。选择PMON启动系统,PMON将完成硬件初始化,包括设置时钟和堆栈以及分配存储空间等,并将编译生成的道操作系统镜像文件加载到相应的内存中,然后再启动操作系统。这里要依次调用sysInit()、usrInit()和UsrRoot()等3个启动函数。
3)配置最小内核。在集成开发环境LambdaTools下,建立一个BSP工程,依据硬件及机构具体情况,配置内核。
4)测试最小内核。将内核镜像,下载到计算机上,测试系统能否正常启动。
5)编写和移植驱动程序。首先重新配置中断系统,然后对网卡、窗口卡等外围设备进行驱动适配。常用的配置和管理驱动程序的设备驱动架构为VxBus。
指控软件在道系统上开发设计,采用多任务的设计思想,根据指控计算机的外围接口类型以及自身功能需求,对任务进行合理划分以及优先级的设置。指控软件要接收外部传感器的情报信息、上级指挥单元的控制命令和数据、卫星导航设备的准秒信息、显控计算机的人机交互命令以及自身作战车辆的数据报文等等。因此,将指控软件划分为6个任务,各任务优先级高低及交互关系如图5所示。
图5 软件任务关系图
各任务主要功能如下:
1)网络接收任务:收到网络报文后,保存报文发送地址,打上接收时戳,同时送主处理消息队列和数据记录消息队列。
2)网络重发任务:通过130ms看门狗同步,将网络重发消息队列中的数据发送一遍,还需要重发的数据则再放回消息队列。
3)主处理任务:阻塞在主处理消息队列上,若取的消息是报文,则进行报文处理;若取的消息是83ms定时器所发送,则进行周期处理(如定周期自动分配、心跳报文组织和发送、送显报文组织和发送)。
4)数据记录任务:阻塞在数据记录消息队列上,记录网络接收任务发送来的接收报文,并封装sendto函数,在每次sendto时都同时向数据记录消息队列中发送一份,用于记录。
5)数据回放任务:读硬盘,若为需要送显回放的数据,则发送显控;若不是,则继续寻找。
6)外时统任务:接收外接时统卡的准秒脉冲中断,对本机进行校时。
为充分验证指控计算机的功能和性能,笔者设计了图6所示测试系统,系统由指控计算机、外接时统卡和外围多个模拟器组成。其中指控计算机和外接时统卡之间通过RS232总线连接,指控计算机和外围模拟器之间通过交换机进行网络连接。该测试系统旨在模拟真实工作环境,满负荷运转,检验指控计算机的功能性能。
图6 测试系统框图
指控计算机对实时性有较强的要求,具体而言,指控软件的6个任务中,主处理任务计算量最大,耗时最长。以该任务为例,计算机必须在特定周期内完成该任务的解算。其方法为在任务开始前和任务结束后,分别调用tickGet函数,读取定时器的值t1和t2,t2-t1即为本次任务占用时间,假设做n次试验,取最大值。
经过12小时拷机对数据进行记录和分析,指控计算机在不同场景下主处理任务执行平均时间如表3所示,可以看出:计算机在各种工作场景下,实时性均满足要求。
表3 计算机实时性测试结果
对于一路时统卡准秒脉冲输入信号,验证方法如下:
1)当准秒脉冲第i次到来时,TimeOld更新为i-1次收到准秒脉冲的时间,即将TimeNew首先赋值给TimeOld;
2)同时,TimeNew通过调用tictGet()函数取准秒脉冲第i次到来时的tick值。
3)DeltaT等于TimeNew和TimeOld差的绝对值,如果DeltaT<3,则本次脉冲有效。
4)对DeltaT进行监控,如果连续3次无效,则认为时钟模块不合格。
如图7所示,统计其中一次实验共计1892s,准秒偏差为0或1ms。经过12小时拷机测试,准秒偏差均不超过±3ms。时钟模块满足要求。
图7 准秒偏差分布图
依据测试系统框图,搭建测试环境,依据武器系统工作流程,分别从维护、训练和作战状态验证了指控软件诸如初始化、信息交互、外围设备控制、目标数据接收、模型结算、任务调度、目标控制等流程,最终试验结果和测试结果表明:指控软件功能性能均满足要求。
本文所研究设计的指控计算机,依托国产龙芯3A3000系列CPU和国产嵌入式操作系统道6.0系统研制而成,经过测试,计算机的硬件、驱动和应用软件均满足相关要求,本计算机进一步提升了本武器装备核心元器件的国产化率,保障了装备的信息安全,对领域内相似计算机的研制具有参考意义。