APP下载

US3仿真系统的网络通信系统的设计与实现

2014-09-24张渊博彭汉国雷波

软件工程 2014年6期
关键词:网络结构关键技术

张渊博+彭汉国+雷波

摘 要:针对US3仿真系统的特殊功能和要求,网络系统设计采用了二层的星型以太网物理拓扑结构,并依据US3系统内程序开发的固定结构和模式,开发设计实时、可靠的网络通信软件,最后有针对性的分析了关键技术。

关键词:网络结构;US3系统;关键技术

中图分类号:TP302 文献标识码:A

Design and Implement of Network Communications System of US3 Simulation System

ZHANG Yuanbo,PENG Hanguo,LEI Bo

(Navy College of Submarine,Simulation Training Center,Dalian 116085,China)

Abstract:Based on special function and demand of US3 simulation system,a two-tier star Ethernet physical topology was presented for network system.Based on stationary struction and mode for program developing on US3 system,a real-time and reliable network communications software was developed and designed.Finally,the targeted key technology was analysised.

Keywords:network structure;US3 system;key technology

1 引言(Introduction)

实时仿真系统是一个复杂的多功能训练系统,实时仿真是指系统在实时条件下接收动态输入,并能实时产生一个动态的输出[1],系统拥有强大的运算能力和数据吞吐能力,对网络通信提出了极高的要求。针对实时仿真系统的特殊功能及要求,网络通信系统的网络构架严格遵循可靠适用的原则,采用标准的通信协议和模块化的程序设计方法设计可靠、实时的网络通信软件。

2 需求分析(Demand analysis)

2.1 功能要求

实时仿真系统具有独立训练(包括岗位训练和科目训练)和协同训练的功能,计算机网络通信系统是实现系统各项功能的基本组成部分,概括起来网络通信系统的主要功能包括:

(1)为仿真系统各仿真子系统(包括热工水力仿真系统、轴系仿真系统、综合控制仿真系统、电力仿真系统、电力推进与应急动力仿真系统等)之间提供通信手段。

(2)为仿真主计算机与终端计算机(包括工业控制计算机、接口计算机、软台屏计算机、监控计算机、数据库计算机)之间提供通信手段。

2.2 设计要求

为确保满足系统仿真的实时性需要和可扩展性的需要,网络通信系统的设计应满足以下设计准则:

(1)通信传输时延<10ms。在网络系统中,用户对数据通信的响应时间最为敏感,因此网络系统应满足高速度和低延迟的要求。

(2)可靠性和安全性。网络系统的安全可靠性直接关系到实时仿真系统性能的发挥,因此系统应选用成熟可靠的网络产品,并考虑适当的设备冗余备份。

(3)开放性和标准化。由于网络系统涉及不同的软硬件平台,为确保网络的成功互连,网络通信软件必须满足标准化、模块化和通用化要求。通信软件应尽量采用通用的、开放的国际标准协议和通信方式,包括网络拓扑结构、网络通信协议以及网络综合化布线标准等,通信程序必须模块化,以便控制系统的复杂度,提高系统的可靠性,灵活性和可扩展能力。

(4)可管理性。方便的网络管理可以有效地提高系统的使用效率,以及有效地维护和监控网络系统,还可以根据应用特点优化系统资源的分配,确保网络系统的正常和高效使用。

(5)可扩充性。网络系统应能随着技术的发展和应用要求的不断提高,可以方便地进行扩充和升级,以便保护系统的投资。

3 系统设计(System design)

3.1 网络系统

计算机网络系统是联系仿真系统中各个节点的纽带,是将各计算机集成为系统的重要环节,网络系统的组成包括网络拓扑结构以及网络采用的基本通信协议等。

3.1.1 网络拓扑结构

一般地,网络的实际组网方法有两种即单层设计和多层设计,典型地为三层设计。虽然多层设计的传输延迟略大一些,但多层设计较之单层设计有诸多方面的优点[2]:

(1)多层设计配置灵活,管理方便,可优化局部的层次访问。

(2)多层设计可提供多层的流量控制功能。流量控制功能使高速端口的信息在低速端口上不发生丢包。

(3)多层设计可以使网络同时打开多个端口,从而避免由于遇到小的阻塞而关闭端口,低层端口的信息过载只关闭一个本层的上行端口而不会关闭上层的上行端口。

(4)多层设计也能提供多层的缓冲功能。信息缓冲功能可以控制高速数据的快速猝发而不丢失数据分组,提高整个网络的运转效率,多层设计的网络传送的信息量要远高于单层设计[3]。

鉴于以上考虑,仿真系统网络采用如图1所示的二层设计的星型以太网物理拓扑结构,采用交换式快速以太网标准IEEE 802.3u组网。仿真系统采用100Base-TX快速交换式以太网标准按两个层次组网,中心层连接仿真主机、教控台、网管工作站、接口计算机以及下层交换机,下层交换机主要连接工业控制计算机、监控计算机、软台屏计算机等。

图1 网络拓扑图endprint

Fig.1 Network topology

3.1.2 网络通信协议

模拟系统物理层采用快速交换式以太网协议标准IEEE 802.3u,链路层支持IEEE 802.1d透明网桥协议标准,网络层采用TCP/IP通信协议标准,确保异种机(IRIX系统和WINDOWS系统)之间的互连和有效通信。

3.2 网络通信软件

3.2.1 网络通信软件类型

本系统网络通信软件可分为两种类型,一种是仿真系统各仿真子系统之间的通信,即IRIX和IRIX之间的通信,另一种是仿真主计算机与终端计算机之间的通信,即IRIX和WINDOWS之间的通信。

IRIX-IRIX间的通信是仿真服务器上的仿真平台(US3)与仿真服务器上各仿真子系统间的数据通信。US3将仿真的计算结果等传送给各仿真子系统,供各子系统调用,各仿真子系统发送指令信息给US3来控制仿真任务的进程。IRIX和IRIX之间的通信实现方式采用共享数据技术,交互的数据全部存放在仿真主机共享数据区,供仿真平台和各仿真子系统进行访问,该功能已由研发机构GSE公司实现。

IRIX和Windows之间的通信是指仿真主计算机与终端计算机间的数据通信。仿真主计算机从终端计算机获得模拟硬台屏的设备状态参数,终端计算机则从仿真主计算机获得终端计算机显示的变量参数、教控台指令等,通信程序通过动态数据交换机制(DDE)方式进行数据交换[4],交换媒介为通信点表文件。它们两者间的通信是仿真通信系统的主体部分,是开发设计的主要工作内容,这部分的设计和实现严格遵循优化可靠的准则。

3.2.2 US3仿真平台下的程序开发

通信软件的功能是实现仿真主机与终端计算机之间的通讯,通信软件一方面需要实时的接收设备状态的参数,同时将接收的数据写入到共享数据区,另一方面通信软件还需要将共享数据区的数据发送到终端计算机。由于通信软件是在US3系统内开发实现的,因此通讯软件的程序开发必须严格遵循US3系统所固有的程序开发模式和程序结构。

(1)共享数据区。共享数据区是进程通信中最快的方式,而且传递的信息量非常大,共享数据区是系统内一块特定的内存区域,系统通过建立允许各个进程之间的共享数据区的映射关系进行数据变量的共享和存储。在共享数据区中的数据分为系统级和用户级两个级别,系统内的所有用户都可以不受限制的任意调取和使用共享数据区内系统级的数据,但是针对用户级的数据的调取和使用只能局限于定义该变量的用户,在进行网络通信程序开发之前必须先将程序所需要使用变量添加到共享数据中。

(2)开发语言。US3系统的开发语言为c语言,在US3系统内的c语言程序遵循一个特定的程序结构和编译/执行方式,该程序与通常结构的c语言程序有着很大的不同,它的主程序不是通过传统的main()来指定的,而是指添加到模块说明文件中的模块名称。正是因为其程序结构所具有的特殊性,要求我们在开始编写程序的时候必须编写一段特别的说明,在说明中指出:使用programs说明本程序提供给其他程序调用以及模块说明文件使用的名称,使用globals说明在本程序中所需要调用的共享数据区的数据变量,使用modules说明在本程序中所需要调用的其他的程序模块的名称,并且必须引用一个与本程序名称相同的函数库文件。例如:

/*programs network */ 程序模块的名称

/*globals network1 */ 需要调用的公共变量

/*modules network2 */ 需要调用的程序模块的名称

#include “network.h”

void network()

{

}

(3)程序描述列表。程序描述列表是US3系统内的程序信息库,在信息库内包含有每一个程序模块的相关信息,US3系统可以通过该信息库来管理系统数据在所有程序模块,所有需要在US3系统内运行的程序模块都必须添加到程

序描述列表中,任何描述列表以外的程序都是无法被正常调用和运行的。

4 关键技术(Key technologies)

(1)仿真系统是由多台运行IRIX操作系统的RISC计算机和若干运行Windows的基于Intel芯片的PC组成的计算机网络,这样一个由多平台和多系统计算机组成的网络系统,必须采用标准的通讯协议来实现整个网络的数据通讯。

(2)部分终端计算机中使用了INTOUCH软件开发,INTOUCH软件规定了软台屏界面与相应通讯模块的通讯方式是动态数据交换机制(DDE),中间连接媒介为通讯点表文件,相应通讯模块的编制必须考虑使用DDE技术。

5 结论(Conclusion)

伴随着计算机科学和信息技术的飞速发展,大型仿真支撑平台在日后的工业生产和教学科研领域得到越来越广泛的应用,针对大型计算机仿真系统多平台和多系统的特点,实现仿真系统网络标准化和模块化的设计特征,是满足仿真训练系统功能和性能的需要的必然要求。

参考文献(References)

[1] 游景玉.实时仿真技术及其应用[M].珠海:珠海出版社,1999.

[2] 张秀山,等.通用分布式仿真I/O体系结构设计及其应用[J].计

算机应用,2005,4(4):926.

[3] 冉隆科.千兆比特以太网的发展机遇[J].今日电子,1998,2(2):

6-8.

[4] 马正午,周德兴.过程可视化组态软件InTouch应用技术[M].

北京:机械工业出版社,2006.

作者简介:

张渊博(1980-),男,工程师.研究领域:仿真系统教学与

研究.

彭汉国(1965-),男,高级工程师.研究领域:电子装备保

障,仿真系统开发.

雷 波(1977-),男,工程师.研究领域:仿真系统教学与

研究.endprint

Fig.1 Network topology

3.1.2 网络通信协议

模拟系统物理层采用快速交换式以太网协议标准IEEE 802.3u,链路层支持IEEE 802.1d透明网桥协议标准,网络层采用TCP/IP通信协议标准,确保异种机(IRIX系统和WINDOWS系统)之间的互连和有效通信。

3.2 网络通信软件

3.2.1 网络通信软件类型

本系统网络通信软件可分为两种类型,一种是仿真系统各仿真子系统之间的通信,即IRIX和IRIX之间的通信,另一种是仿真主计算机与终端计算机之间的通信,即IRIX和WINDOWS之间的通信。

IRIX-IRIX间的通信是仿真服务器上的仿真平台(US3)与仿真服务器上各仿真子系统间的数据通信。US3将仿真的计算结果等传送给各仿真子系统,供各子系统调用,各仿真子系统发送指令信息给US3来控制仿真任务的进程。IRIX和IRIX之间的通信实现方式采用共享数据技术,交互的数据全部存放在仿真主机共享数据区,供仿真平台和各仿真子系统进行访问,该功能已由研发机构GSE公司实现。

IRIX和Windows之间的通信是指仿真主计算机与终端计算机间的数据通信。仿真主计算机从终端计算机获得模拟硬台屏的设备状态参数,终端计算机则从仿真主计算机获得终端计算机显示的变量参数、教控台指令等,通信程序通过动态数据交换机制(DDE)方式进行数据交换[4],交换媒介为通信点表文件。它们两者间的通信是仿真通信系统的主体部分,是开发设计的主要工作内容,这部分的设计和实现严格遵循优化可靠的准则。

3.2.2 US3仿真平台下的程序开发

通信软件的功能是实现仿真主机与终端计算机之间的通讯,通信软件一方面需要实时的接收设备状态的参数,同时将接收的数据写入到共享数据区,另一方面通信软件还需要将共享数据区的数据发送到终端计算机。由于通信软件是在US3系统内开发实现的,因此通讯软件的程序开发必须严格遵循US3系统所固有的程序开发模式和程序结构。

(1)共享数据区。共享数据区是进程通信中最快的方式,而且传递的信息量非常大,共享数据区是系统内一块特定的内存区域,系统通过建立允许各个进程之间的共享数据区的映射关系进行数据变量的共享和存储。在共享数据区中的数据分为系统级和用户级两个级别,系统内的所有用户都可以不受限制的任意调取和使用共享数据区内系统级的数据,但是针对用户级的数据的调取和使用只能局限于定义该变量的用户,在进行网络通信程序开发之前必须先将程序所需要使用变量添加到共享数据中。

(2)开发语言。US3系统的开发语言为c语言,在US3系统内的c语言程序遵循一个特定的程序结构和编译/执行方式,该程序与通常结构的c语言程序有着很大的不同,它的主程序不是通过传统的main()来指定的,而是指添加到模块说明文件中的模块名称。正是因为其程序结构所具有的特殊性,要求我们在开始编写程序的时候必须编写一段特别的说明,在说明中指出:使用programs说明本程序提供给其他程序调用以及模块说明文件使用的名称,使用globals说明在本程序中所需要调用的共享数据区的数据变量,使用modules说明在本程序中所需要调用的其他的程序模块的名称,并且必须引用一个与本程序名称相同的函数库文件。例如:

/*programs network */ 程序模块的名称

/*globals network1 */ 需要调用的公共变量

/*modules network2 */ 需要调用的程序模块的名称

#include “network.h”

void network()

{

}

(3)程序描述列表。程序描述列表是US3系统内的程序信息库,在信息库内包含有每一个程序模块的相关信息,US3系统可以通过该信息库来管理系统数据在所有程序模块,所有需要在US3系统内运行的程序模块都必须添加到程

序描述列表中,任何描述列表以外的程序都是无法被正常调用和运行的。

4 关键技术(Key technologies)

(1)仿真系统是由多台运行IRIX操作系统的RISC计算机和若干运行Windows的基于Intel芯片的PC组成的计算机网络,这样一个由多平台和多系统计算机组成的网络系统,必须采用标准的通讯协议来实现整个网络的数据通讯。

(2)部分终端计算机中使用了INTOUCH软件开发,INTOUCH软件规定了软台屏界面与相应通讯模块的通讯方式是动态数据交换机制(DDE),中间连接媒介为通讯点表文件,相应通讯模块的编制必须考虑使用DDE技术。

5 结论(Conclusion)

伴随着计算机科学和信息技术的飞速发展,大型仿真支撑平台在日后的工业生产和教学科研领域得到越来越广泛的应用,针对大型计算机仿真系统多平台和多系统的特点,实现仿真系统网络标准化和模块化的设计特征,是满足仿真训练系统功能和性能的需要的必然要求。

参考文献(References)

[1] 游景玉.实时仿真技术及其应用[M].珠海:珠海出版社,1999.

[2] 张秀山,等.通用分布式仿真I/O体系结构设计及其应用[J].计

算机应用,2005,4(4):926.

[3] 冉隆科.千兆比特以太网的发展机遇[J].今日电子,1998,2(2):

6-8.

[4] 马正午,周德兴.过程可视化组态软件InTouch应用技术[M].

北京:机械工业出版社,2006.

作者简介:

张渊博(1980-),男,工程师.研究领域:仿真系统教学与

研究.

彭汉国(1965-),男,高级工程师.研究领域:电子装备保

障,仿真系统开发.

雷 波(1977-),男,工程师.研究领域:仿真系统教学与

研究.endprint

Fig.1 Network topology

3.1.2 网络通信协议

模拟系统物理层采用快速交换式以太网协议标准IEEE 802.3u,链路层支持IEEE 802.1d透明网桥协议标准,网络层采用TCP/IP通信协议标准,确保异种机(IRIX系统和WINDOWS系统)之间的互连和有效通信。

3.2 网络通信软件

3.2.1 网络通信软件类型

本系统网络通信软件可分为两种类型,一种是仿真系统各仿真子系统之间的通信,即IRIX和IRIX之间的通信,另一种是仿真主计算机与终端计算机之间的通信,即IRIX和WINDOWS之间的通信。

IRIX-IRIX间的通信是仿真服务器上的仿真平台(US3)与仿真服务器上各仿真子系统间的数据通信。US3将仿真的计算结果等传送给各仿真子系统,供各子系统调用,各仿真子系统发送指令信息给US3来控制仿真任务的进程。IRIX和IRIX之间的通信实现方式采用共享数据技术,交互的数据全部存放在仿真主机共享数据区,供仿真平台和各仿真子系统进行访问,该功能已由研发机构GSE公司实现。

IRIX和Windows之间的通信是指仿真主计算机与终端计算机间的数据通信。仿真主计算机从终端计算机获得模拟硬台屏的设备状态参数,终端计算机则从仿真主计算机获得终端计算机显示的变量参数、教控台指令等,通信程序通过动态数据交换机制(DDE)方式进行数据交换[4],交换媒介为通信点表文件。它们两者间的通信是仿真通信系统的主体部分,是开发设计的主要工作内容,这部分的设计和实现严格遵循优化可靠的准则。

3.2.2 US3仿真平台下的程序开发

通信软件的功能是实现仿真主机与终端计算机之间的通讯,通信软件一方面需要实时的接收设备状态的参数,同时将接收的数据写入到共享数据区,另一方面通信软件还需要将共享数据区的数据发送到终端计算机。由于通信软件是在US3系统内开发实现的,因此通讯软件的程序开发必须严格遵循US3系统所固有的程序开发模式和程序结构。

(1)共享数据区。共享数据区是进程通信中最快的方式,而且传递的信息量非常大,共享数据区是系统内一块特定的内存区域,系统通过建立允许各个进程之间的共享数据区的映射关系进行数据变量的共享和存储。在共享数据区中的数据分为系统级和用户级两个级别,系统内的所有用户都可以不受限制的任意调取和使用共享数据区内系统级的数据,但是针对用户级的数据的调取和使用只能局限于定义该变量的用户,在进行网络通信程序开发之前必须先将程序所需要使用变量添加到共享数据中。

(2)开发语言。US3系统的开发语言为c语言,在US3系统内的c语言程序遵循一个特定的程序结构和编译/执行方式,该程序与通常结构的c语言程序有着很大的不同,它的主程序不是通过传统的main()来指定的,而是指添加到模块说明文件中的模块名称。正是因为其程序结构所具有的特殊性,要求我们在开始编写程序的时候必须编写一段特别的说明,在说明中指出:使用programs说明本程序提供给其他程序调用以及模块说明文件使用的名称,使用globals说明在本程序中所需要调用的共享数据区的数据变量,使用modules说明在本程序中所需要调用的其他的程序模块的名称,并且必须引用一个与本程序名称相同的函数库文件。例如:

/*programs network */ 程序模块的名称

/*globals network1 */ 需要调用的公共变量

/*modules network2 */ 需要调用的程序模块的名称

#include “network.h”

void network()

{

}

(3)程序描述列表。程序描述列表是US3系统内的程序信息库,在信息库内包含有每一个程序模块的相关信息,US3系统可以通过该信息库来管理系统数据在所有程序模块,所有需要在US3系统内运行的程序模块都必须添加到程

序描述列表中,任何描述列表以外的程序都是无法被正常调用和运行的。

4 关键技术(Key technologies)

(1)仿真系统是由多台运行IRIX操作系统的RISC计算机和若干运行Windows的基于Intel芯片的PC组成的计算机网络,这样一个由多平台和多系统计算机组成的网络系统,必须采用标准的通讯协议来实现整个网络的数据通讯。

(2)部分终端计算机中使用了INTOUCH软件开发,INTOUCH软件规定了软台屏界面与相应通讯模块的通讯方式是动态数据交换机制(DDE),中间连接媒介为通讯点表文件,相应通讯模块的编制必须考虑使用DDE技术。

5 结论(Conclusion)

伴随着计算机科学和信息技术的飞速发展,大型仿真支撑平台在日后的工业生产和教学科研领域得到越来越广泛的应用,针对大型计算机仿真系统多平台和多系统的特点,实现仿真系统网络标准化和模块化的设计特征,是满足仿真训练系统功能和性能的需要的必然要求。

参考文献(References)

[1] 游景玉.实时仿真技术及其应用[M].珠海:珠海出版社,1999.

[2] 张秀山,等.通用分布式仿真I/O体系结构设计及其应用[J].计

算机应用,2005,4(4):926.

[3] 冉隆科.千兆比特以太网的发展机遇[J].今日电子,1998,2(2):

6-8.

[4] 马正午,周德兴.过程可视化组态软件InTouch应用技术[M].

北京:机械工业出版社,2006.

作者简介:

张渊博(1980-),男,工程师.研究领域:仿真系统教学与

研究.

彭汉国(1965-),男,高级工程师.研究领域:电子装备保

障,仿真系统开发.

雷 波(1977-),男,工程师.研究领域:仿真系统教学与

研究.endprint

猜你喜欢

网络结构关键技术
小麦春季化控要掌握关键技术
棉花追肥关键技术
成功育雏的关键技术
老苹果园更新改造的关键技术
跨座式单轨与中低速磁浮信号系统的关键技术
杉木萌芽更新关键技术
大型火力发电厂烟气脱硫控制网络结构渐变趋势
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析