VMIC_SBS反射内存网络接口系统研究

发布时间:2013.08.30 新闻来源:反射内存-实时仿真技术网 浏览次数:

VMIC—SBS网络接口系统研究

 

摘要:随着半实物仿真试验室的建设,需要在原有基础上进行扩充和升级,在改造的同时保留原有系统的全部功能,并保证其与新加入的系统能够互联并协同工作,共同完成半实物仿真。采用中断屏蔽、内存映射、虚拟内存锁定等技术对WindowsNT操作系统进行实时性改造,大大提高了系统响应的快速性和确定性,同时,利用Windows丰富的第三方资源和技术支持,缩短研制周期,节约成本。详细阐述了多网络半实物实时仿真平台中VMIC与SBS网络接口系统的设计方法、关键技术并给出测试结果。目前,该系统已研制成功并投入运行。

 

关键词:半实物仿真;反射内存;广播内存;网络接口

 

l引言

大型复杂系统的研制过程中,半实物仿真已成为一个必不可少的环节。通过半实物仿真,可使无法准确建立模型的实物直接进入仿真回路,完成某些纯数字仿真无法完成的工作并提高仿真结果的准确性。随着半实物仿真试验室的建设,需要在原有基础上进行扩充和升级,特别是对原有实时仿真网络进行改造。在改造的同时需保留原有系统的全部功能,并保证其与新加入的系统能够互联并协同工作,共同完成半实物仿真。本文以某仿真实验室建设项目为背景,详细阐述了多网络半实物实时仿真平台中VMIC与SBS网络接口系统的设计方法、关键技术并给出测试结果。

2系统总体架构

原有系统基于SBS广播内存网络构建,包括仿真数据显示/处理子系统、SBS—DDC接口计算机等子系统。为了节约实验室的升级改造成本,减少原有设备软件的再开发费用,该系统由实验室现有的SBS广播内存通讯系统和VMIC反射内存通讯系统共同构成。VMIC网络包括干扰与背景生成子系统、DAQ数据采集子系统、数据保存子系统、银河(SIM)仿真工作站、稳态/扫描摆动模拟子系统、红外目标生成子系统、图形工作站等子系统。各节点采用的平台则既包括DOS操作系统,以完成转台信号控制功能,也包括Windows系统,实现仿真运算和上层用户接口功能,还有采用LABVIEWRT实时操作系统,完成数据的实时采集和传递等,因此,整个半实物仿真实验室的所有仪器设备构成了一个复杂的异构半实物仿真平台。考虑硬件升级时原有系统能继续使用,新的VMIC实时网络建成以后,原有设备及SBS实时网络不作改动。各设备分别作为一个节点接入VMIC实时网络或SBS实时网络,如果所建立的系统需要扩展,能够得到有效的保证。VMIC和SBS网络之间没有现成的接口,需要为其开发一个接口系统,以实现网络间数据互传和共享,系统结构如图1所示。

图1半实物仿真系统示意图

3VMIC—SBS接口系统软件设计

半实物仿真需要将实物接入仿真回路,仿真时间标尺须与实际时间标尺相同,因而对半实物仿真平台的实时性提出了较高要求。综合考虑成本、研制周期、性能指标等因素,决定以工控机为平台,基于WindowsNT操作系统进行软件开发。对于本系统而言,要求8个通道并行传输(VMIC至SBS和SBS至VMIC各4个通道)。单个通道数据传输延迟时间低于0.5ms(1600个字节)。平台中两种网络各项参数和性能指标都有较大差异,如表1所示。如何对其进行协调和匹配成为实现其功能的关键,同时也是决定整个半实物仿真平台实时性的关键。

表1主要性能指标比较

3.1工作原理

VMIC与SBS网络协议和电气规范并不兼容,无法直接连接,因此考虑用一台工控机作为VMIC和SBS网络的公共节点,以实现网络间数据互传。系统设计时,有程序查询和中断驱动两种方案。程序查询方式可靠性高、编程简单,但CPU占用率高,系统资源浪费严重,且实际测试证明,查询方式下,因资源长期被占用,系统内部消息得不到处理,长时间工作后易死机,最终采用中断驱动工作方式。

 

 

反射内存和广播内存都具有完善的中断功能,但两者中断驱动机制不尽相同:反射内存网中每个节点都有固定的节点号,发送中断时需调用其API函数RFM2gSendEvent(),该函数将传递一个RFM2G—NODE类型数据,节点号与之相同

的节点才响应此中断,同时收到RFM2GEVENTINFO数据结构,其定义为:

typedef   struct   rfm2g Eventinfo 

RFM2G_UINT32   ExtendedInfo; 

RFM2GEVENTTYPE  Event: 

RFM2G_UINT32   Timeout; 

RFM2G_NODE  Nodeid; 

void * pDrvSpec;

}RFM2GEVENTINFO; 

 

 

其中包含扩展信息、中断类型、等待时限、节点号和驱动指定数据等信息;而广播内存网则是当某个指定地址上的数据发生变化时,系统自动产生中断。这个地址由API函数btwrirq_set()指定,该地址触发的中断由调用bt—wrirq—set()的节点进行响应。

系统运行后,首先初始化设备,使能网络中断并设定各通道的源节点和目标节点。当有数据从反射内存网传递到广播内存网时,数据发送节点向反射内存网写入数据,并向VMIC—SBS接口节点发送网络中断,接口计算机程序收到中断后,进入VMIC中断服务程序,读取RFM2GEVENrI'INF0数据结构,获取中断类型、等待时限、节点号等信息,与设定参数进行匹配,确定广播内存目标节点号和与之对应的写入地址,然后写入数据并触发该地址中断,通知目标节点接收;当有数据需要从广播内存传输到反射内存时,数据发送节点向广播内存某一指定地址写入数据,并触发中断,接口计算机程序收到中断后,进入与该地址相对应的SBS中断服务程序,将数据写入反射内存网,同时根据事先设定参数向反射内存网中对应的目标节点发送网络中断,其工作流程如图2所示。

网络之间数据的传输采用内存映射方式,即将广播内存和反射内存地址统一映射到用户地址空间上,直接对两个地址的数据进行赋值操作,如图3所示。这样,既省去了通过本地内存中转所需的时间,又避免了反复调用读/写函数造成的系统资源浪费。

3.2实时性措施

仿真平台中各节点间的数据传输具有很强的随机性和突发性。这要求软件系统必须具备实时、确定的中断响应能力。但Windows操作系统并不是实时操作系统,为满足系统实时性要求。有必要对操作系统进行实时性改造。影响系统实时性的主要因素是WindowsNT操作系统的中断响应不确定性和线程调度策略。此外,其内存映射模型也严重影响实时性。但这是由Windows内核控制的,无法深入其内部进行直接改造,只能通过API接口对其进行优化。

图2VMIC—SBS接口系统工作流程图

针对Windows操作系统的中断响应时间具有不确定性这一特点,分析其机理后发现:首先,Windows操作系统的进程、线程调度不是严格按照优先级高低进行的,即便是WindowsNT采用了基于优先级抢占的调度策略,但其总共只提供32个任务优先级,其中留给应用程序的只有15个,这使得大量进程或线程不得不运行在相同优先级下,容易因争抢资源而发生阻塞。其次,Windows操作系统响应一部分中断(如鼠标、键盘中断等)后将会产生相应的消息放到系统的消息队列,然后再分发到前台线程的线程消息队列,若此时前台线程发生阻塞,则会造成中断相应的延迟,甚至影响其它中断的响应。为缓解上述问题,采取如下措施:

●将进程和线程优先级均提升至时间关键级。API函数SetPriorityClass()提升进程优先级,SetThreadPriority()函数提升线程优先级。

●屏蔽多余外部中断,减小中断被阻塞的可能性。Windows操作系统响应一部分中断(如鼠标、键盘中断等)后将会产生相应的消息放到系统的消息队列,然后再分发到前台线程的线程消息队列,若此时前台线程发生阻塞,则会造成中断相应的延迟,甚至影响其它中断的响应。该系统外部中断由两片8259芯片控制,通过对其进行设置即可屏蔽多余的外部中断。

●使用虚拟内存锁定技术。由于Windows的内存映射机制并非针对实时系统设计,数据缓冲区可能并没有映射到真正的物理内存上,需使用虚拟锁将这块区域锁定到物理内存。使用HeapLock()进行关键数据访问权限保护;Virtual_Lock()进行物理内存锁定。

●反射内存读写方式采用Peek/poke与DMA相结合。根据实际测试,反射内存在传输量小于120字节时Peek/poke方式读写速率较快,否则DMA方式较快。

●关闭多余的系统服务和进程。

图3内存映射示意图

4测试结果

为保证半实物仿真时,数据在确定的一帧时间内传输不出现丢失,有必要对系统进行性能指标的测试。对VMIC SBS接口传输延迟时间的测试采用循环读写的方式,广播内存节点1写数据,写完后向接口计算机发送中断,接口计算机向广播内存节点2读取广播内存对应地址的数据,数据读完后,再向反射内存写数据,写完后向节点3发送中断。依次反复,循环测试800次。将每次传输数据的时间记为tl,如图4所示。对广播内存节点之间的传输时间测试采取的同样的方法进行,传输时间记为t2,如图5所示。要测试反射内存到广播内存的过渡过程时间,测试从节点3反射内存一>节点2反射内存一>节点2广播内存一>节点1广播内存的读写传输时间,记为O,如图6所示。由图4—6可看出数据传输时间均能达到指标要求,但不确定性较大,特别是广播内存,这是由Windows系统自身的不确定性引起的。通过采取实时性措施,上述问题已得到明显缓解,但要从根本上解决此问题,只能采用实时操作系统,如VxWorks。

图4反射内存间传输时间

图5广播内存间传输时间

 

图6总传输时间

由于反射内存和广播内存网络本身的传输延迟非常小(分别为0.41xs和4.5p,s),将其忽略。那么广播内存与反射内存之间的过渡过程时间为t=[t3一(tl+t2)/2]/2,测试结果如表2所示。

表2VMIC—SBS传输延迟时间

 

5结论

在原有系统无需很大改动的基础上,通过对VMIC和SBS实施网络的互连,构建出一个新的各项指标都有较大提升的半实物仿真集成平台,解决了集成平台中实时性能指标测试、不同实时网络间传输接口设计等技术问题。该系统对参与仿真的设备提供了较大的灵活性,并易于系统今后的扩展和升级。

参考文献:

[1]刘志国.王仕成.金光军.基于实时网络的激光制导武器半实物仿真系统设计[J].计算机仿真,2003,20(5):20—21.

[2]肖卫国.尔联洁.谢廷毅.曾宁.基于共享内存机制微机实时网的数据传输实时性研究[J].系统仿真学报,2004,16(8):1717—1720.

[3]廖瑛,等编著.实时仿真理论与支撑技术[M].长沙:国防科技大学出版社,2002.

[4]高立娥,等.一种基于反射内存实时网络的半实物仿真系统[J].计算机仿真,2005,22(3):29—32.

[5顾颖彦.反射内存网实时通信技术的研究[J].计算机工程,2002,28(7):143~144.

[6]高立娥,等.YFK一1仿真试验控制台的研究与开发[J].系统仿真学报,2002,28(7):143—144.

[7]康凤举.现代仿真技术与应用[M].北京:国防工业出版社,2002,9

[8]李洪波.吴凤鸽.孙增圻.孙富春.网络控制系统仿真平台的设计与实现[J].系统仿真学报,2006,18(6):1700—1704.

[9]刘志国,张金生,王仕成,高智杰.激光制导炸弹数字仿真研究

[J].系统仿真学报,2005,17(7):1757—1759

 

GE反射内存价格 GE反射内存网 GEPCI5565 VMIC5565 反射内存应用案例 反射内存使用 反射内存卡 PCI-5565 PCIE5565 实时光纤网 联系电话:18612569081 彭先生 网址:www.vmic5565.com 提供反射内存应用案例,反射内存卡测试工具 最新WIN7下驱动程序

本文共分 1