CN102438007B - 一种雷达终端虚拟总线模块组织方法 - Google Patents
一种雷达终端虚拟总线模块组织方法 Download PDFInfo
- Publication number
- CN102438007B CN102438007B CN201110305935.7A CN201110305935A CN102438007B CN 102438007 B CN102438007 B CN 102438007B CN 201110305935 A CN201110305935 A CN 201110305935A CN 102438007 B CN102438007 B CN 102438007B
- Authority
- CN
- China
- Prior art keywords
- virtual bus
- client
- virtual
- module
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本发明涉及一种雷达终端虚拟总线模块组织方法,尤其涉及一种基于分布式、跨异构通讯网络的软件模块组织方法。本发明包括虚拟总线服务器模块、虚拟总线客户端模块、软件启动模块、通讯链路模块。虚拟总线服务器模块是整个总线的核心模块,起到对总线上各模块进行数据转发、网络发现、通讯负载平衡功能、工作状态监视和对虚拟总线客户端模块的运行控制的功能;虚拟总线客户端模块,获取上层应用软件模块运行状态信息,并提供上层应用软件模块接入总线的接口。本发明具有较好的扩展性、适应性和开发效率,可广泛应用于各种需要良好扩展性的武器系统控制软件、分布式计算网络、自适应组网等技术领域。
Description
技术领域
本发明属于软件模块组织方法,尤其涉及一种基于分布式、跨异构通讯网络的软件模块组织方法。
背景技术
软件模块组织方法的研究始于20世纪70年代,几十年来,随着软件规模不断扩大以及复杂程度不断提高,在大量软件工程实践的过程中,不断有新的软件模块组织形式出现。归纳起来主要有以下二种:
1)基于单个可执行程序的模块组织方法
该方法是最早的软件模块组织形式,组织结构简单,可扩展性和适应性都较差,软件内各功能模块耦合度高,适合单人开发。在使用版本控制工具后,虽能多人并行开发,但开发过程中需要反复进行开发协调,效率很低。
2)基于单个可执行程序多个动态链接库的模块组织方法
该方法是基于单个可执行文件和多个动态链接库的软件模块组织结构形式,其可以通过添加动态链接库的方式使软件获得扩展性。这种组织形式可以降低软件各功能模块间的耦合度,但可执行文件与动态链接库间是紧密联系的,共用一个进程,所以发生错误后,错误会在整个软件中的扩散,导致整个运行程序停止运行。在这种组织形式下,虽可通过合理的模块划分,将软件功能分配到可执行文件和多个动态链接库中以达到多人并行开发提高开发效率,但由于各动态链接库只能与可执行文件通讯,缺乏动态链接库间的平行通讯手段,常导致模块间功能分配不尽合理。
目前雷达终端软件模块组织多采用基于单个可执行程序多个动态链接库的模块组织方法。中国专利《一种带有动态扩展性的分布式任务调度软总线方法》(申请号:200610097815.1)所公开的是一种通过对单一设备功能节点的增减,实现了在分布式网络中能动态的对设备节点的数据、信息进行有效的管理。现有技术还存在以下不足之处:
1)缺少在异构网络不同平台之间的数据传输功能
在雷达终端数据通讯过程中,底层通讯硬件除了用到以太网以外,还经常会用到如PCI总线、RS232链路等传输方式,而现有技术通常只能适用于以太网的通讯,而无法满足其他通讯链路的需求。
2)有多种通讯链路的情况下,缺少对数据传输的合理分配
数据传输可以通过多种通讯链路进行,在传统传输过程中,机器通常只会选择通过网卡收发数据,这样会很大程度的浪费资源,同时降低了效率。雷达终端系统的数据传输速度要求很高,如何善用现有的资源,最大程度提高通讯链路的使用率,应该作为解决方案的指导原则。
3)缺少对数据传输过程的监测
数据的传输过程中,对数据传输过程的详细情况是我们需要了解的,现有技术没有对传输的数据量和其他应用程序的工作状态的监测,无法很好地把握整体情况,万一出现错误,无法快速地找出问题所在。
4)缺少对应用程序的统一管理
现有技术在对应用程序的管理采用的是从上至下的分级管理模式,这种模式虽然能很好地分配资源,但是无法很直观的进行控制,在发送控制命令的时候需要经过多个节点,降低效率。
5)缺少人为操控能力
现有技术在获取端点信息的时候多采用自动获取,虽然可以省时省事,但是在特定的情况下不利于临时修改,同时,自动获取的信息出现错误,在维护方面会很麻烦。
发明内容
本发明的目的是针对背景技术所述不足,提供一种雷达终端软件模块组织方法,解决现有雷达终端软件设计中面临的扩展性差、适应性不强和开发效率低的技术问题。
一种雷达终端虚拟总线模块组织方法,包含以下步骤:
步骤1:在机器上运行虚拟总线服务器,通过虚拟总线服务器可连接其客户端信息表中的各个虚拟总线客户端或其他平台的虚拟总线服务器;
步骤2:应用程序在生成的时候附加上虚拟总线客户端的动态链接库,初始化程序的同时对虚拟总线客户端进行初始化,为应用程序提供接入总线的接口;
步骤3:虚拟总线服务器在初始化的时候会自动读取本地对应的文件中的信息,获取端口号、虚拟ID号及其客户端信息表中的客户信息;
步骤4:虚拟总线客户端在初始化的时候会自动读取本地对应的文件中的信息,获取端口号、虚拟ID号及其对应的虚拟总线服务器的相关信息;
步骤5:当应用程序要向其他应用程序发送数据的时候,先将数据附加上包头,通过虚拟总线客户端提供的接口发往虚拟总线服务器;
步骤7:虚拟总线服务器根据包头信息的目的ID号,通过底层通讯模块发送查找数据帧到客户端信息表中所列举的异构网络不同平台的虚拟总线服务器,待其找到目的ID号后会返回查找应答帧;
步骤8:根据查找应答帧信息和底层通讯模块返回的情况,虚拟总线服务器会按通讯链路的传输能力的强弱分配数据到可用链路传输数据。
其有益效果是:虚拟总线软件可以通过对通讯链路的驱动实现异构网络不同平台之间的数据传输的功能,拓展了软件的使用范围,实现其扩展性;将能单独完成某些功能的动态链接库写成应用程序的形式,更利于程序员进行调试工作,而不再依赖于主程序,提高开发效率;由虚拟总线软件进行传输数据代替了以往的动态链接库形式的数据交换,避免了数据交换过程中的错误导致的全局瘫痪状况,更有利于找出问题所在。
上述一种雷达终端虚拟总线模块组织方法,其特征在于:它还包括步骤6,虚拟总线服务器根据包头信息查找目的ID所在,若能在客户端信息表中找到目的ID号,则通过环回IP地址进行广播发送数据。其有益效果是:它还可以实现在本系统的数据转发,数据传输过程主要只与虚拟ID号相关,即便更换了物理环境,虚拟ID号不变也能正常传输,同时使用了环回IP地址,数据的传输直接通过内存完成的,大幅提高传输效率。
上述一种雷达终端虚拟总线模块组织方法,其特征在于:它还包括步骤9:虚拟总线服务器需要获取各个虚拟总线客户端的运行状态,实现方法是由虚拟总线服务器定时向虚拟总线客户端发送心跳帧,相应的虚拟总线客户端在接收到心跳帧后会返回心跳应答帧,告知虚拟总线服务器其运行状态。其有益效果是:虚拟总线服务器能监测虚拟总线客户端的工作状态以及数据在传输过程中的大小,保证了数据传输的稳定性。
上述一种雷达终端虚拟总线模块组织方法,其特征在于:它还包括步骤10:虚拟总线服务器需要控制各个虚拟总线客户端,实现方法是虚拟总线服务器提供广播发送控制命令的功能,并让虚拟总线客户端能响应该命令。其有益效果是:能实现虚拟总线服务器对虚拟总线客户端的统一管理和控制。
上述一种雷达终端虚拟总线模块组织方法,其特征在于:步骤3和步骤4中虚拟总线客户端和虚拟总线服务器的信息由人工设定。其有益效果是:便于修改和编辑,人为操控避免不必要的错误。
附图说明
图1为本发明流程框图;
图2为本发明数据本平台转发流程图;
图3为本发明数据跨平台转发流程图;
具体实施方式
本发明提供一种雷达终端虚拟总线模块组织方法,其依赖于虚拟总线服务器模块、虚拟总线客户端模块和底层通讯模块。以图1表示其协作关系。虚拟总线客户端与其他虚拟总线客户端是通过虚拟总线服务器相连的,而不同的虚拟总线服务器是由底层通讯模块连接的。
虚拟总线客户端模块主要是为应用程序提供一个接入总线的接口,使用由MFC所提供的CSocket类创建的UDP通讯对象,通过127.0.0.1的环回IP地址从总线收发数据,保证了数据的高效传输性能。为能让数据准确的发送到其他的虚拟总线客户端,在每个虚拟总线客户端初始化的时候读取相应文件夹中人为设定好的ini文件,获取其虚拟ID号和端口号,以及对应的虚拟总线服务器的虚拟ID号和端口号。虚拟ID号是虚拟总线服务器和虚拟总线客户端的唯一的数字标识,不可重复,它作为一个内部标识号用于引导数据在虚拟总线服务器和虚拟总线客户端之间进行数据传输。端口号则是虚拟总线软件中对收发类型的不同而设置的不同的编号,一般每个虚拟总线客户端的端口号也是唯一的。
由于虚拟总线客户端可以提供接入总线的接口,以前能单独完成某些功能的动态链接库可以写成附带有虚拟总线客户端的应用程序形式。在应用程序初始化的同时初始化虚拟总线客户端,并告知虚拟总线客户端应用程序的工作状态,由其告诉虚拟总线服务器;同时虚拟总线客户端在接收到来自虚拟总线服务器的数据时,会发送UDM_REC_DATA的消息,让应用程序做好接收准备。
雷达终端软件模块之间的通讯主要是进行数据的转发,图1中,在应用程序1要发送数据的时候,会先把数据帧交给虚拟总线客户端1,经其对数据帧加上帧头后,再通过总线发送至虚拟总线服务器1。其中帧头部分包含了该数据帧的数据类型、发送的目的地以及数据来源等信息。数据帧的帧头长度一般为12字节(见表1),包括了:数据类型ID号(4字节)、数据发送目的的虚拟ID号(4字节)和数据发送来源的虚拟ID号(4字节)。
表1
虚拟总线服务器模块是一个连接各虚拟总线客户端的应用程序,它是整个模块的核心,主要起解析并转发数据的功能。在进行初始化的时候会读取相应文件夹中人为设定好的ini文件获取虚拟总线服务器的虚拟ID号、端口号以及IP地址,还有其客户端信息表中的相关信息。客户端信息表中所列举的内容为能与虚拟总线服务器连接的虚拟总线客户端的信息(包括虚拟ID号、端口号、IP号、描述文字和工作状态)。为了实现在不同平台的异构网络中进行数据的传输,虚拟总线服务器的端口号会有内部通讯和外部通讯的2种不同的端口号和IP号,同时客户端信息表中会列举出其他平台上的服务器的相关信息(包括虚拟ID号、端口号、IP号、描述文字和工作状态)。
虚拟总线服务器1在接收到经虚拟总线客户端1处理过的数据帧后,自动解析数据帧的帧头信息:根据数据类型ID号,为数据的转发选择合适的广播通道进行广播;根据目的ID号,虚拟总线服务器1会对其进行查找,遍历整个客户端信息表中所列举的所有虚拟ID号,找到与目的ID号相同的虚拟ID号之后通过内部通讯方式转发数据到应用程序2。数据信息经虚拟总线客户端2解析后,交由应用程序2进行处理,完成本次数据转发,其数据转发流程图详见图2。
对于不同平台的雷达终端软件之间与日常所用的软件之间所用的通讯链路不同之处在于,除了以太网以外,还可能会有其他链路,如PCI总线或RS232链路等。本发明就解决了这一问题。若上述转发过程中,虚拟总线服务器1没能找到相应的虚拟ID号,则利用网络发现功能,对其客户端信息表中的虚拟总线服务器通过外部通讯方式发送查找数据帧。为了能让数据在网络中多途径的高效率的传输到其他平台,我们需要使用底层通讯模块来驱动底层通讯硬件发送数据。
底层通讯模块根据底层的硬件环境不同而不同,为防止突发的错误而导致虚拟总线软件的瘫痪,我们将其独立为一个通过虚拟总线客户端连入总线的应用程序,具有发送数据的功能。底层通讯模块需要整合各种通讯链路(如PCI总线、以太网、RS232链路等)的驱动程序,在传输数据的时候能调用合适的驱动保证数据在通讯链路上的正常传输。
在有多条可用的通讯链路存在的情况下,为了保证网络的最大传输性能及可靠性,我们需要对每条通讯链路上承担的数据做个平衡处理。虚拟总线服务器会根据链路的数据传输能力合理地分配数据到各个通讯链路。数据传输能力则是从虚拟总线服务器上获取的,它可以有2种设定方式:人工设定和动态获取。人工设定是在人能充分了解当前链路的传输能力之后设定的,可以根据人们自己的需要规定了每条数据链路上负责传输的数据量大小。而动态获取则是在不同平台的底层通讯模块都启用的时候,从底层通讯硬件获取可用的通讯链路,单独对各个通讯链路进行测试:底层通讯模块之间通过某一通讯链路互相发送测试帧,其中测试帧是一组有特定长度且无具体意义的数据帧,它的帧头标明了该帧的长度,底层通讯模块在接收到测试帧后自动核实帧内容是否完整,根据接收用时计算链路的传输速度,并返回接收结果。接收结果包含2个信息:(1)是否有帧丢失,(2)接收的速度。底层通讯模块根据测试结果将该链路的上行速度、下行速度和是否故障的情况反馈给虚拟总线服务器,并在之后每10分钟重新测试更新返回的值。虚拟总线服务器根据上行和下行速度确定通讯链路的传输能力,在向异构网络的不同平台发送数据的时候会按与传输能力大小成正比切分数据,交由对应的通讯链路同步传输。
虚拟总线服务器1的查找数据帧在发送到底层通讯模块1后,驱动底层通讯硬件1广播发送到其他平台。经过其他平台的底层通讯模块交递给虚拟总线服务器继续在客户端信息表中进行查找,直至在虚拟总线服务器2发现虚拟总线客户端3的虚拟ID号与目的ID号相同。虚拟总线服务器2会立刻返回一个查找应答帧给虚拟总线服务器1,等待接收需转发的数据。虚拟总线服务器1在接收到查找应答帧后,会立刻发送数据到虚拟总线服务器2,再转发到虚拟总线客户端3,等虚拟总线客户端3解析帧头之后,移交数据给应用程序3进行处理,实现数据跨平台的转发功能,其数据转发流程图详见图3。
虚拟总线服务器需要了解其客户端信息表中的各应用程序对应虚拟总线客户端的工作状态,实现方法是由虚拟总线服务器定时向所有虚拟总线客户端广播发送心跳帧,等待相应的心跳应答帧,根据心跳应答帧的信息确定应用程序的工作状态,并更新客户端信息表。其中心跳帧是一组从虚拟总线服务器指向各虚拟总线客户端数据类型ID号为101且无数据内容的数据帧,而相应的心跳应答帧是由虚拟总线客户端在接收到心跳帧后发送返回至虚拟总线服务器的带有数据内容的数据帧,其中数据类型ID号为102,数据内容表明了虚拟总线客户端的工作状态,如0表示虚拟总线客户端离线,1表示虚拟总线客户端在线,2表示虚拟总线客户端暂停工作。虚拟总线服务器再根据心跳应答帧更新客户端信息表中“是否在线”栏,显示“×”表示该客户端离线,显示“√”表示该客户端在线,显示“○”表示客户端暂停工作。
为实现虚拟总线服务器需要控制虚拟总线客户端的显隐和通讯开关,虚拟总线服务器设立几个能发送客户端控制帧的按钮,在点击后能发出指令让虚拟总线客户端做出指定的响应。其中客户端控制帧指的是数据类型ID号为103,数据长度为1字节且有指定数据内容,由服务器发往客户端的数据帧。根据其数据内容的不同该帧可以完成不同的功能:其中数据内容为0是让客户端隐藏,数据内容为1是让客户端显示,数据内容为2是让客户端暂停通讯,数据内容为3是让客户端恢复通讯。
Claims (4)
1.一种雷达终端虚拟总线模块组织方法,其特征在于:包含以下步骤:
步骤1:在机器上运行虚拟总线服务器,通过虚拟总线服务器可连接其客户端信息表中的各个虚拟总线客户端或其他平台的虚拟总线服务器;
步骤2:应用程序在生成的时候附加上虚拟总线客户端的动态链接库,初始化程序的同时对虚拟总线客户端进行初始化,为应用程序提供接入总线的接口;
步骤3:虚拟总线服务器在初始化的时候会自动读取本地对应的文件中的信息,获取端口号、虚拟ID号及其客户端信息表中的客户信息;
步骤4:虚拟总线客户端在初始化的时候会自动读取本地对应的文件中的信息,获取端口号、虚拟ID号及其对应的虚拟总线服务器的相关信息;
步骤5:当应用程序要向其他应用程序发送数据的时候,先将数据附加上包头,通过虚拟总线客户端提供的接口发往虚拟总线服务器;
步骤7:虚拟总线服务器根据包头信息的目的ID号,通过底层通讯模块发送查找数据帧到客户端信息表中所列举的异构网络不同平台的虚拟总线服务器,待其找到目的ID号后会返回查找应答帧;
步骤8:根据查找应答帧信息和底层通讯模块返回的情况,虚拟总线服务器会按通讯链路的传输能力的强弱分配数据到可用链路传输数据。
2.根据权利要求1所述的一种雷达终端虚拟总线模块组织方法,其特征在于:它还包括步骤9:虚拟总线服务器需要获取各个虚拟总线客户端的运行状态, 实现方法是由虚拟总线服务器定时向虚拟总线客户端发送心跳帧,相应的虚拟总线客户端在接收到心跳帧后会返回心跳应答帧,告知虚拟总线服务器其运行状态。
3.根据权利要求2所述的一种雷达终端虚拟总线模块组织方法,其特征在于:它还包括步骤10:虚拟总线服务器需要控制各个虚拟总线客户端,实现方法是虚拟总线服务器提供广播发送控制命令的功能,并让虚拟总线客户端能响应该命令。
4.根据权利要求1所述的一种雷达终端虚拟总线模块组织方法,其特征在于:步骤3和步骤4中虚拟总线客户端和虚拟总线服务器的信息由人工设定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110305935.7A CN102438007B (zh) | 2011-10-11 | 2011-10-11 | 一种雷达终端虚拟总线模块组织方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110305935.7A CN102438007B (zh) | 2011-10-11 | 2011-10-11 | 一种雷达终端虚拟总线模块组织方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102438007A CN102438007A (zh) | 2012-05-02 |
CN102438007B true CN102438007B (zh) | 2015-02-04 |
Family
ID=45985882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110305935.7A Expired - Fee Related CN102438007B (zh) | 2011-10-11 | 2011-10-11 | 一种雷达终端虚拟总线模块组织方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102438007B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850546B (zh) * | 2016-12-15 | 2020-04-17 | 武汉滨湖电子有限责任公司 | 一种雷达终端的地图模块软件组织方法 |
CN108494651A (zh) * | 2018-03-06 | 2018-09-04 | 中国船舶重工集团公司第七二四研究所 | 一种基于软总线的主被动雷达信息处理路径配置方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626343A (zh) * | 2009-08-05 | 2010-01-13 | 华为技术有限公司 | 数据包交换的方法、装置和通信设备 |
CN101707622A (zh) * | 2009-10-30 | 2010-05-12 | 深圳市深视音电子技术有限公司 | 实现远程数据监控的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7620981B2 (en) * | 2005-05-26 | 2009-11-17 | Charles William Frank | Virtual devices and virtual bus tunnels, modules and methods |
US8762698B2 (en) * | 2009-12-14 | 2014-06-24 | Intel Corporation | Virtual bus device using management engine |
-
2011
- 2011-10-11 CN CN201110305935.7A patent/CN102438007B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626343A (zh) * | 2009-08-05 | 2010-01-13 | 华为技术有限公司 | 数据包交换的方法、装置和通信设备 |
CN101707622A (zh) * | 2009-10-30 | 2010-05-12 | 深圳市深视音电子技术有限公司 | 实现远程数据监控的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102438007A (zh) | 2012-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100353714C (zh) | 一种实现Web服务自动化测试的方法 | |
CN103312528B (zh) | 一种心跳消息发送方法及用户终端 | |
CN102377814B (zh) | 针对嵌入式操作系统的远程协助服务方法 | |
CN111381983B (zh) | 虚拟试验靶场验证系统的轻量级消息中间件系统及方法 | |
CN106685733B (zh) | 一种fc-ae-1553网络快速配置与自动化测试方法 | |
CN106534178B (zh) | RapidIO网络通用套接字的实现系统及方法 | |
CN101887379A (zh) | 一种基于虚拟网卡的无线信道仿真方法 | |
CN109639534A (zh) | 一种测试网络传输性能的方法、装置及计算机存储介质 | |
CN110502212A (zh) | 一种面向多语言的高并发在线开发支撑方法 | |
CN111522727B (zh) | 一种模拟对象测试方法、设备和系统 | |
CN102916833B (zh) | 远程调试方法、系统及调试目标设备 | |
CN110308986A (zh) | 基于优化调度的容器云上分布式训练数据通信的方法 | |
CN107295007A (zh) | 一种支持多种协议的服务方法、装置及系统 | |
CN110995514A (zh) | 一种多维度的端到端网络切片生成装置及方法 | |
CN102438007B (zh) | 一种雷达终端虚拟总线模块组织方法 | |
CN111221265B (zh) | 一种舵系统在回路的总线信息提取装置及半实物仿真方法 | |
CN101030927B (zh) | 基于通信中间件的电信oss子系统间的接口通信方法 | |
CN106375324A (zh) | 一种基于tcp/ip通信协议的网络通信系统及方法 | |
CN109669788A (zh) | 面向直接内存访问互连通信的多核芯片的mpi实现方法 | |
CN102882799B (zh) | 流量可控的集群部署配置系统与方法 | |
CN102629217A (zh) | 多进程多操作系统网络设备及其控制方法 | |
US6973044B1 (en) | Efficient method for collecting statistics via a half-duplex serial bus | |
KR20010055482A (ko) | 통합망 환경에서 서비스관리시스템의 관리명령을 교환기명령어로 변환하는 방법 | |
CN113395293B (zh) | 一种基于rpc的网络套接字实现方法 | |
CN108924237A (zh) | 一种信息传输方法、服务器、系统及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150204 Termination date: 20181011 |
|
CF01 | Termination of patent right due to non-payment of annual fee |