PCI5565 PCI-5565 PMC5565 VMIC5565 反射内存 反射内存卡 GE反射内存
1引言
半实物仿真是评价反舰导弹抗干扰性能的一种有效技术手段,在导弹武器系统作战效能评估的整个过程中占有重要地位。在导弹半实物仿真中,实时数据采集系统发挥着重要作用,一方面,在仿真运行过程中需要实时采集导引头及各仿真设备的输出数据用于解算弹道模型,实现闭环仿真另一方面,在实验结果分析过程中,需要丰富、详实的实验过程数据作为支撑,以保证实验结论的准确、可靠。鉴于导弹半实物仿真数据采集的实际需求,需要综合考虑体系结构、软硬件组成及技术实现细节等多个方面的因素,设计实时数据采集系统以满足数据采集的准确性、实时性和灵活性要求。本文以主动式雷达制导反舰导弹半实物仿真系统为应用背景,分析数据采集任务特点,通过软硬件体系结构设计和实时性优化设计,实现对实验数据的实时采集,以满足反舰导弹半实物仿真的数据采集需求。
2实时数据采集任务分析
2.1数据采集的内容
反舰导弹半实物仿真系统采用分布式体系结构,利用通信网络将被试雷达导引头、三轴飞行转台、射频环境模拟器和仿真主机相连,基于通用计算机和通用操作系统实现导弹闭环仿真,系统组成结构见图1。在半实物仿真中,依据信息的来源不同,可将待采集的信息分为以下几类l2I【:被试雷达导引头工作状态信息及目标检测信息;三轴飞行转台角位置反馈信息;射频环境模拟器目标信号及干扰信号控制信息;模型解算所得弹道及控制信息;以及实验过程状态信息。可见,本系统的采集数据具有来源分散、形式多样、实时性要求高、记录内容多变等特点。

图1反舰导弹半实物仿真系统结构图
2.2数据采集实时性分析
数据的实时采集、处理和交互,是实现闭环仿真实验的必要前提。而在仿真系统中由于实物(导引头)的引入,要求仿真的推进应该与实时的外部事件相适应…。因此,数据的采集与处理应该在仿真模型解算要求的时限内完成,从而对数据采集系统的实时性提出了很高的要求。在仿真运行过程中,仿真系统在每一个帧周期内需要完成数据的采集、处理、交互和保存等工作,于是可将仿真运行帧周期大致划分为六个部分,如图2所示。

图2仿真运行帧周期组成图
在图2所示的帧周期中,有效工作内容包括:以A/D转换为核心的数据采集、节点的数据处理、数据传输与交互、数据保存等。如果系统采用非实时操作系统,会因为任务调度及资源分配等因素导致进程挂起,形成操作系统打断时间。为了弥补操作系统打断时间等不确定性,结合系统实时性需求,一般设置帧周期稍大于有效工作时间,形成帧等待时间。半实物仿真中的实时性问题,可以从快速性、稳定性和同步性三个方面进行考虑:
1)在快速性方面,数据的采集和传输部分可通过高性能硬件提高A/D转换效率,减少数据传输时间;在数据保存部分,写人数据库一般耗时较多,需要在软件设计与实现中进行优化设计,提高数据保存效率。
2)数据采集时间的稳定性,主要是指数据采集、传输和存储过程所用时间的稳定性。在本系统中,由于采用通用计算机平台和非实时操作系统(WindowsNT),必然带来操作系统打断问题,影响数据采集时间的稳定性。
3)数据采集的同步性,是指各仿真节点所采集数据在时间上的一致性。导弹半实物仿真实验采用固定帧周期控制,为数据采集的同步性提供了实现基础。针对系统分布式结构特征,分解数据采集任务,并可通过帧周期内部的时间片划分可以实现时间同步的数据采集。
3系统体系结构设计
3.1系统体系结构
导弹半实物仿真按工作时序可划分为实验准备、仿真运行和实验后结果分析三个阶段,在实验准备和实验后结果分析两个阶段,要求数据交互形式灵活,但实时性要求较低;在仿真运行阶段,数据交互内容可事先确定,但需要严格按照系统工作帧周期进行,对实时性要求严格。鉴于此,实时数据采集系统的通信网络采用以太网和实时网,以太网用于实验准备和实验后结果分析两个非实时工作阶段,满足数据传输灵活的需求;实时网用于仿真运行阶段,满足数据传输的强实时要求。系统其它硬件主要包括:数据库服务器、数据采集上位机及I/O接口子系统,其中,数据库服务器为实验数据存储及管理的平台;数据采集上位机通过I/O接口子系统与导引头进行信息的实时交互,系统硬件组成如图3所示。

图3采集系统硬件组成示意图
3.2硬件选型
为满足系统数据采集准确性和实时性指标要求,选取系统主要硬件配置如下:
1)数据库服务器和数据采集上位机均采用工控机,其CPU为PD一3.2G,内存为DDR2—1G,和160G硬盘存储器高配置工控机强大的运算能力可以有效缩短数据处理时间提高数据采集的快速性。
2)I/O接口子系统利用32路D/A、32路A/D高速接口进行模拟量处理,32路DI、32路DO高速接口进行开关量处理,8路串行接口进行数字量传输。其中,模拟量采集通过
l2位的ADS7805完成,其A/D转换时间不超过lO微秒,实现了对数据的快速采集。
3)实时网由美国VMIC公司生产的5565系列反射内存卡组成。利用该反射内存卡加上光纤传输介质,可实现174M字节/秒的数据传输速率,同时保证网络传输延迟不超过400纳秒,使得网络传输时间主要取决于共享内存读写时间,保证了数据传输的快速性。
4数据采集流程设计
在本系统中,物理设备的分布式特征决定了数据采集任务的分布实现;数据的时间一致性、管理使用的复杂性又要求集中、统一的综合数据管理。因此,系统软件结构在设计上呈现分布采集与集中管理相结合的特征。基于数据采集系统的数据源分散特征,可将数据采集任务分解为各仿真节点的数据采集和数据库服务器的数据存储两个部分,采集数据通过反射内存网络送至数据库进行存储。为保证数据采集的实时性,在流程主要进行了以下优化设计:
1)利用反射内存网络中断机制实现精确的帧同步。
VMIC反射内存卡支持多个中断事件,利用中断事件可以实现快速的节点通信,推进各仿真节点按帧周期同步运行,有效保证采集数据的时问一致性。
2)通过时间片划分避免读写冲突。由于反射内存机制的特殊性,不同仿真节点有可能同时对同一地址进行操作,发生读写冲突。为了避免读写冲突问题,在统一帧周期的基础上进行时间片划分:在同一帧周期内部,负责数据采集的节点先进行自身的运算处理,在帧周期后半部分采集数据并写入反射内存网;负责数据存储的节点则在帧周期前半部分读取实时网数据,然后进行存储。通过这种时间片划分机制,可以避免读写冲突,而且不会影响各仿真节点的运行效率。
3)实验后数据入库,提高仿真运行实时性。对于数据存储节点,相对于仿真运行帧周期,写入数据库花费时间较长;同时,数据记录长度的灵活多变也给数据入库时间带来了不确定性。为了保证在帧周期内完整记录实验数据,采用如下方法:数据存储节点首先开辟一块较大内存区;然后在仿真运行帧周期内,读取实时网数据,通过内存拷贝记录到已开辟内存区内;仿真运行结束后,将内存区数据写入数据库。
通过以上技术措施,形成优化后的数据采集流程如图4。
5通用操作系统实时性优化设计

图4优化的实时采集流程图
为提高系统通用性和可扩展性,本系统采用了通用计算机平台和WindowsNT操作系统。通常情况下,作为非实时操作系统,WindowsNT在任务调度、内存管理等机制上难以满足导弹半实物仿真实验的实时性需求。为完成严格的实时数据采集任务,系统在设计与实现过程中,主要在以下几个方面进行优化设计:
5.1中断管理
在WindowsNT操作系统中,中断主要由I/O设备、处理器时钟或定时器产生,可以被启用(打开)或禁用(关闭)。WindowsNT采用基于优先级可抢先的中断管理机制,通过“中断请求级”(IRQL)可以将中断源按优先级排序,较高优先级的中断可抢先较低优先级中断得到服务l5J。在默认状态下,WindowsNT的外部中断大部分都是开启的,而且其优先级高于任何用户进程。因此,对于实时性要求较高的应用场合,需要屏蔽非必要的外部中断,保证实时进程对CPU资源的优先使用权。
每个处理器都有一个IRQL设置,其值决定了处理器可以接收哪些中断。在WindowsNT系统中,核心态线程可以通过内核函数KeRaiseIrql()提高它所使用的处理器的IRQL优先级,从而可以封锁所有等于或低于此IRQL的中断,确保正在服务于该中断的的处理器不会被同级或较低级的中断抢先。被屏蔽的中断将被另一个处理器处理或阻挡,直到IRQL降低。在本系统中,通过核心态的设备驱动程序设置处理器IRQL优先级来屏蔽非必要中断,保证相应服务的实时性。
5.2优先级控制
通过中断管理可以屏蔽非必要中断,在一定程度上减少了操作系统的不确定性;但WindowsNT是抢先式多任务操作系统,采用基于优先级的抢先式调度策略,从而给线程的执行带来了不可预测性,因此有必要进行优先级控制。在操作系统内部,WindowsNT使用32个线程优先级,范围从0到31。依据Win32API观点,Win32API首先依据在创建进程时分配的优先级等级(实时级、高级、中级或空闲级)组织进程,然后依据进程中各个线程的相对优先级(时间紧要级、最高级、中上级、中级、中下级、最低级和空闲级)组织线程。WindowsNT以线程为单位进行调度,而不考虑给予调度的线程属于哪个进程。
在本系统中,通过win32函数SetPriorityClass()和SetThreadPriority()设置线程优先级为时间关键级J,在系统调度意义上保证数据读写的实时性。
5.3虚拟内存管理
WindowsNT采用基于平面32位地址空间的虚拟内存系统,页面的换入/换出会影响实时系统的可预测性。考虑到实时应用需求,WindowsNT通过以下措施减小影响:实时优先级线程不采用内存交换,不受换页影响;NT允许应用程序把自己锁到内存(使用VirtualLock()API),免受换页的影响。
因此,在本系统中,通过页面锁定方法将关键页面锁定到内存中,不被交换出内存。Win32API函数VirtualLock()可将VirtualAlloc()指定的内存区域进行锁定;当不在需要锁定时,通过VirtualUnlock()进行解锁,最后通过VirrualFree()进行释放。
6仿真结果分析
为了验证所设计数据采集系统的实时性,设计如下条件开展数字仿真:
1)利用一个仿真节点进行数据采集,数据库服务器完成数据存储;
2)为统计实际的数据采集时间,仿真以帧同步方式推进。即完成一次数据采集之后,通过中断事件进行节点间通信,进入下一帧;
3)每个帧周期采集数据量为30个double型数据,采集次数为30万次;
4)仿真运行中,在数据库服务器上运行其它程序作为干扰因素,考察数据采集的稳定性。设置计时区间为实时网写入数据、数据传输、读取实时网数据和内存拷贝的总时间,开展仿真试验,得结果如图5所示。

图5数据采集时间统计结果图
由图5可知,在同时运行其它程序的干扰条件下,一次数据采集时间不超过100微秒,均方差为1.17微秒,表明该实时数据采集系统能够实现快速、稳定的数据采集、传输和存储。
另外,在相同条件下屏蔽针对操作系统的优化程序,发现一次数据采集时间最大可达4.5毫秒,超过了系统帧周期要求,从而验证了通用操作系统实时性优化设计的有效性。
7结束语
通过针对性的系统软硬件结构设计,优化数据采集工作流程,以及通用操作系统实时性优化设计等步骤,实现了功能完备的实时数据采集系统。实践应用表明,该系统能够适应半实物仿真严格的帧周期控制,且运行性能稳定,未出现丢帧或数据错误现象,满足了反舰导弹半实物仿真系统的实时数据采集与管理需求。
应用通用计算机平台和成熟的反射内存网络产品构建
实时数据采集系统,可以有效利用电子、信息技术的最新成果,方便系统的升级和改造,本文的设计思想也可为类似系统建设提供一定的参考和借鉴。
|