首页> 中国专利> 一种基于网络的虚拟仪器实现方法

一种基于网络的虚拟仪器实现方法

摘要

一种基于网络的虚拟仪器实现方法,可以准确快速地将实体仪器采集到的数据共享到局域网内的多台虚拟仪器,虚拟仪器可以将传送过来的数据进行显示和高级信号分析与处理,并对实体仪器进行控制。通过广播的方式使虚拟仪器获得实体仪器的地址,然后虚拟仪器将控制命令发送到实体仪器来实现对实体仪器的控制;实体仪器通过组播的方式将大量的数据发送到网络上,虚拟仪器通过实体仪器公布的组播组号加入该组播组来接收数据,并且可以将数据传送给后续模块进行显示和高级分析处理。实现了各主机对测量仪器的远程控制和数据在不同主机间的快速共享,还可以充分利用主机强大的图形环境和数据处理能力对信号进行显示和高级分析处理。

著录项

  • 公开/公告号CN101626332A

    专利类型发明专利

  • 公开/公告日2010-01-13

    原文格式PDF

  • 申请/专利权人 东南大学;

    申请/专利号CN200910183239.6

  • 发明设计人 高礼忠;孙伟;温荷香;

    申请日2009-07-23

  • 分类号H04L12/28;H04L12/18;H04L29/06;H04L29/08;

  • 代理机构南京经纬专利商标代理有限公司;

  • 代理人叶连生

  • 地址 210096 江苏省南京市四牌楼2号

  • 入库时间 2023-12-17 23:18:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-09-09

    未缴年费专利权终止 IPC(主分类):H04L12/28 授权公告日:20110706 终止日期:20140723 申请日:20090723

    专利权的终止

  • 2011-07-06

    授权

    授权

  • 2010-03-10

    实质审查的生效

    实质审查的生效

  • 2010-01-13

    公开

    公开

说明书

技术领域

本发明涉及一种基于网络的虚拟仪器实现方法,涉及虚拟仪器对实体仪器的有效控制,将实体仪器采集到的数据准确快速地在网络上进行共享,在虚拟仪器中进行显示和高级信号分析。

背景技术

测量仪器设备的重要性在电子领域不言而喻,但其测量到的数据很难再进行高级信号处理。虚拟仪器是在以通用计算机为核心的硬件平台上,由用户设计定义,集软面板和高级信号处理功能于一体的一种计算机仪器系统,灵活性高,速度快。由前端设备完成信号的采集,利用计算机强大的图形环境和数据处理功能对数据进行显示和快速运算、分析和处理是未来仪器的发展方向。但是传统的虚拟仪器技术只能将测量仪器设备与相邻的计算机相连,这样的方式不利于仪器设备更大范围的共享。

因此,如何将仪器设备连入网络,让网络中的多个用户共享一台测量仪器设备,如何对其进行远程控制、快速的数据共享和分析处理就成了需要解决的关键问题。

发明内容

技术问题:本发明提出了一种基于网络的虚拟仪器实现方法。本方法可以使得实体仪器在网络中表明自己加入网络;虚拟仪器搜寻到网络中的实体仪器,知道相互的存在;虚拟仪器可以对实体仪器进行控制;各虚拟仪器通过实体仪器公布的组播组号加入组播组来接收实体仪器发出的数据;实体仪器以组播方式向网络中发送数据;虚拟仪器将接收到的数据进行显示和高级信号处理;虚拟仪器定时向实体仪器发送消息表明自己没有异常退出网络。

为了实现上述发明目的,本发明提供了:一种基于网络的虚拟仪器实现方法,包括以下步骤:

a)实体仪器首先初始化自己的网络设备,并在当前网络中表明自己加入网络;

b)虚拟仪器初始化自己的网络设备,并在当前网络中搜寻实体仪器设备;

c)虚拟仪器对实体仪器进行控制,虚拟仪器向实体仪器发送控制请求,实体仪器查看虚拟仪器是否在CONTROL_LIST中来决定是否响应控制命令,然后对自身的工作状态做相应的改变,主控虚拟仪器连续时间t内没有对实体仪器进行控制则失去对实体仪器的控制权;

d)虚拟仪器向实体仪器请求数据,实体仪器向虚拟仪器发送一个组播地址号,虚拟仪器以此地址号加入组播组,当有其它虚拟仪器向同一实体仪器请求数据时,也加入相同的组播组;

e)当网络中有大于等于1台虚拟仪器向实体仪器请求数据时,实体仪器就以组播的方式向网络中发送数据;

f)虚拟仪器接收到数据后,将数据进行显示和高级信号处理;

g)虚拟仪器定时以UDP方式向实体仪器发送消息STILL_HERE来表明自己未异常脱离网络

所述的实体仪器向网络中表明自己加入网络,是通过广播的方式向网络中广播自己的消息,网络中每一台主机都能收到消息,但只有虚拟仪器能够识别该消息,将消息记录和保存;该消息内容包括实体仪器身份标识RI_ID,实体仪器类型RI_TYPE,网络地址RI_ADDR和校验信息CHECK。

所述的虚拟仪器在网络中搜寻实体仪器,是通过向网络中公布自己的搜寻消息SEARCH_RI来实现,网络中每一台主机都能收到消息,但只有实体仪器能够回复该消息;回复的消息内容包括实体仪器身份标识RI_ID,实体仪器类型RI_TYPE,网络地址RI_ADDR和校验信息CHECK。

所述的虚拟仪器控制实体仪器,是通过在虚拟仪器和实体仪器间建立TCP(传输控制协议)连接来实现的,具体包括三个步骤:

a)发出控制请求;

b)发出控制命令;

c)释放控制;

虚拟仪器和实体仪器通过建立TCP(传输控制协议)连接来实现上述三个步骤;实体仪器拥有一个地址链表CONTROL_LIST,表明可以响应从这些地址发来的控制命令。CONTROL_LIST初始为空,当第一个虚拟仪器请求控制时,实体仪器将其添加进CONTROL_LIST。此时其它虚拟仪器的控制请求将会被拒绝。拥有对实体仪器控制权的虚拟仪器可以对CONTROL_LIST进行修改,添加或删除其它虚拟仪器,满足多个虚拟仪器对实体仪器的控制需求。

当出现下列情况之一时,CONTROL_LIST中排在第一位的主控虚拟仪器将失去控制权,排在CONTROL_LIST第二位的虚拟仪器将获得主控权:

a)主控虚拟仪器主动向虚拟仪器发送释放控制的消息;

b)主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;

c)主控虚拟仪器异常退出网络。

所述的虚拟仪器向实体仪器请求数据,是通过如下三个步骤来实现的:

a)虚拟仪器通过TCP方式向实体仪器发送请求组播号的消息JOIN_GROUP,实体仪器响应请求返回组播地址号MC_ADDR,虚拟仪器加入该组播组;

b)实体仪器用组播方式向组播地址号MC_ADDR发送数据DATA;

c)当虚拟仪器不再需要数据时,向实体仪器发送退出组播组消息QUIT_GROUP;

实体仪器拥有一个地址链表MEMBER_LIST,表明组内的各虚拟仪器信息,当MEMBER_LIST中的成员个数为0时,实体仪器停止向网络中发送数据。

所述实体仪器以组播方式向网络中发送的数据,包括以下两个部分:

a)实体仪器当前的运行状态信息;

b)实体仪器采集缓存的数据;

以组播方式向网络中发送数据,实体仪器只要向网络中发送一次数据,知道组播号并且加入组播组的虚拟仪器就能够收到数据。

所述的虚拟仪器的数据显示与高级信号处理,虚拟仪器利用主机强大的图形环境,在主机屏幕上建立图形化的软面板来替代常规的传统仪器面板,用户通过鼠标或者键盘操作软面板来检验仪器的通信和操作。而且可以利用主机强大的数据处理能力,使用软件完成高级数据分析与处理。

所述的虚拟仪器定时以UDP(用户数据报协议)的方式向实体仪器发送消息STILL_HERE来表明自己未异常脱离网络,当实体仪器超过一定时间还未收到虚拟仪器发来的STILL_HERE消息时,实体仪器就将该虚拟仪器从MEMBER_LIST中删除。

有益效果:通过本发明提供的基于网络的虚拟仪器实现方法,网络中的多个虚拟仪器用户都可以搜寻和识别到实体仪器,并且能对实体仪器进行共享与控制,实体仪器以组播方式将数据群发到网络中的虚拟仪器,避免了网络上重复数据的出现,节省了网络资源,也使数据同一时间到达各个虚拟仪器,虚拟仪器再将数据进行显示和高级信号处理,弥补实体仪器本身功能和性能的不足。通过虚拟仪器向实体仪器定时发送消息STILL_HERE表示自己仍然存在网络中,解决了虚拟仪器在异常退出网络而实体仪器无法获知的情况。

附图说明

图1、实体仪器和虚拟仪器网络拓扑,

图2、实体仪器结构框图,

图3、虚拟仪器结构框图,

图4、请求控制裁决程序流程图。

具体实施方式

1、实体仪器和虚拟仪器各自作为一个端点存在于网络中。

2、实体仪器拥有信号采集,数据存储,网络通信的功能。具体网络功能包括:

a)广播标识信息模块;

b)响应命令模块;

c)发送数据模块;

3、将虚拟仪器程序运行在网络中的各主机之上,具有的网络功能模块包括:

a)搜索网络中实体仪器模块;

b)发送命令模块;

c)接收数据模块。

基于网络的虚拟仪器实现方法方法包括以下步骤:

a)实体仪器首先初始化自己的网络设备,并在当前网络中表明自己加入网络;

b)虚拟仪器初始化自己的网络设备,并在当前网络中搜寻实体仪器设备;

c)虚拟仪器对实体仪器进行控制,虚拟仪器向实体仪器发送控制请求,实体仪器查看虚拟仪器是否在CONTROL_LIST中来决定是否响应控制命令,然后对自身的工作状态做相应的改变,主控虚拟仪器连续时间t内没有对实体仪器进行控制则失去对实体仪器的控制权;

d)虚拟仪器向实体仪器请求数据,实体仪器向虚拟仪器发送一个组播地址号,虚拟仪器以此地址号加入组播组,当有其它虚拟仪器向同一实体仪器请求数据时,也加入相同的组播组;

e)当网络中有大于等于1台虚拟仪器向实体仪器请求数据时,实体仪器就以组播的方式向网络中发送数据;

f)虚拟仪器接收到数据后,将数据进行显示和高级信号处理;

g)虚拟仪器定时以UDP方式向实体仪器发送消息STILL_HERE来表明自己未异常脱离网络。

实体仪器在当前网络中表明自己加入网络的方法是:实体仪器通过广播的方式向网络中广播自己的消息,网络中每一台主机都能收到消息,但只有虚拟仪器能够识别该消息,并将消息记录和保存;该消息内容包括实体仪器身份标识RI_ID,类型RI_TYPE,网络地址RI_ADDR和校验信息CHECK。

虚拟仪器在当前网络中搜寻实体仪器设备的方法是:虚拟仪器通过广播的方式在网络中广播自己的搜寻消息SEARCH_RI,网络中每一台主机都能收到消息,但只有实体仪器能够回复该消息;回复的消息内容包括实体仪器身份标识RI_ID,类型RI_TYPE,网络地址RI_ADDR和校验信息CHECK。

虚拟仪器对实体仪器的控制包括三个步骤:

a)发出控制请求;

b)发出控制命令;

c)释放控制;

虚拟仪器和实体仪器通过建立TCP连接来实现上述三个步骤;实体仪器拥有一个地址链表CONTROL_LIST,表明可以响应从这些地址发来的控制命令。CONTROL_LIST初始为空,当第一个虚拟仪器请求控制时,实体仪器将其添加进CONTROL_LIST。此时其它虚拟仪器的控制请求将会被拒绝。拥有对实体仪器控制权的虚拟仪器可以对CONTROL_LIST进行修改,添加或删除其它虚拟仪器,满足多个虚拟仪器对实体仪器的控制需求;

当出现下列情况之一时,CONTROL_LIST中排在第一位的主控虚拟仪器将失去控制权,排在CONTROL_LIST第二位的虚拟仪器将获得主控权:

a)主控虚拟仪器主动向实体仪器发送释放控制的消息;

b)主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;

c)主控虚拟仪器异常退出网络;

虚拟仪器向实体仪器请求数据包括三个步骤:

a)虚拟仪器通过TCP方式向实体仪器发送请求组播号的消息JOIN_GROUP,实体仪

b)器响应请求返回组播地址号MC_ADDR,虚拟仪器加入该组播组;

c)实体仪器用组播方式向组播地址号MC_ADDR发送数据DATA;

d)当虚拟仪器不再需要数据时,向实体仪器发送退出组播组的消息QUIT_GROUP;

实体仪器拥有一个地址链表MEMBER_LIST,表明组内的各虚拟仪器,当MEMBER_LIST中的成员为0时,实体仪器停止向网络中发送数据。

实体仪器以组播方式向网络中发送数据,数据包括以下两个部分:

a)实体仪器当前的运行状态信息;

b)实体仪器采集缓存的数据;

以组播方式向网络中发送数据,实体仪器只要向网络中发送一次数据,知道组播号并且加入组播组的虚拟仪器就能够收到数据。

虚拟仪器的数据显示与高级信号处理,虚拟仪器利用主机强大的图形环境,在主机屏幕上建立图形化的软面板来替代常规的传统仪器面板,用户通过鼠标或者键盘操作软面板来进行仪器的操作和数据的通信。而且可以利用主机强大的数据处理能力,利用软件完成高级数据分析与处理。

虚拟仪器定时以UDP方式向实体仪器发送消息STILL_HERE来表明自己未异常脱离网络,当实体仪器超过一定时间还未收到虚拟仪器发来的STILL_HERE消息时,实体仪器就将该虚拟仪器从MEMBER_LIST中删除。

下面结合附图说明本发明在数字荧光示波器(DPO)中的具体实施方式。

如图1所示,在局域网络中存在多台实体仪器和虚拟仪器,各自以普通主机方式接入网络。本发明可以使得各虚拟仪器对各实体仪器进行共享与控制,方便虚拟仪器进行数据分析与处理。

如图2所示,实体仪器负责信号的采集,将采集到的数据缓存入大容量存储设备DDR2 SDRAM中,这些数据就是实体仪器要发送到网络中的数据。

当用户启动实体仪器的网络功能的时候,实体仪器通过广播模块向当前网络中的主机发送消息,通过这个方法来告诉当前网络中的虚拟仪器自身已经加入网络。运行在虚拟仪器上的识别程序,识别此广播消息,从中提取出实体仪器的标识(RI_ID),实体仪器的类型(RI_TYPE)以及实体仪器的网络地址(RI_ADDR),将所有信息进行异或操作,所得结果与校验位(CHECK)对比,如果相同说明消息是正确可信的。虚拟仪器将实体仪器信息存储下来,以便之后向实体仪器发送控制命令和请求数据。

当用户启动或刷新虚拟仪器的网络功能时,虚拟仪器通过搜寻模块在当前网络中搜寻实体仪器。虚拟仪器使用UDP方式向当前网络广播搜寻消息(SEARCH_RI),运行在网络中的实体仪器响应该搜寻,从发过来的数据包中提取出源地址,向该源地址用UDP方式发送实体仪器的标识(RI_ID),实体仪器的类型(RI_TYPE)以及实体仪器的网络地址(RI_ADDR)和校验消息(CHECK),运行在虚拟仪器上的识别程序,提取上述信息并存储下来。

虚拟仪器在识别出网络中的实体仪器后,若想要控制实体仪器,虚拟仪器首先与实体仪器建立TCP连接,向实体仪器发送控制请求。如图4所示,其中VI_1是某一台虚拟仪器,如果此时实体仪器的CONTROL_LIST为空,那么此请求成功,CONTROL_LIST添加该虚拟仪器的地址,该虚拟仪器拥有对此实体仪器的主控权,该虚拟仪器根据需要可以向实体仪器中的CONTROL_LIST中添加其他虚拟仪器的地址,这样其它虚拟仪器就可以方便地控制实体仪器。当主控虚拟仪器退出控制状态时,实体仪器将CONTROL_LIST中的主控虚拟仪器标识删除,排在CONTROL_LIST中第二位的虚拟仪器成为主控。当虚拟仪器向实体仪器发送控制请求时,如果CONTROL_LIST非空且其中没有该虚拟仪器的地址信息时,请求失败。

当出现下列情况之一时,CONTROL_LIST中排在第一位的主控虚拟仪器将失去控制权,排在CONTROL_LIST第二位的虚拟仪器将获得主控权:

a)主控虚拟仪器主动向虚拟仪器发送释放控制的消息;

b)主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;

c)主控虚拟仪器异常退出网络。

拥有控制权的虚拟仪器通过TCP方式向实体仪器发送控制命令。实体仪器响应命令,并向实体仪器主控模块发出调整工作方式的消息。

当虚拟仪器用户要请求指定实体仪器的数据时,虚拟仪器通过TCP方式向实体仪器发送加入消息JOIN_GROUP,实体仪器返回相应的组播地址号MC_ADDR,虚拟仪器加入MC_ADDR标识的组播组。实体仪器以组播的方式向MC_ADDR发送大量的数据。所有加入到MC_ADDR组播组的虚拟仪器都可以接收到数据,虚拟仪器再将数据进行显示与高级信号处理。同一虚拟仪器可以同时加入多个组播组,以此来接收多个实体仪器发来的数据。实体仪器拥有一个MEMBER_LIST链表,储存加入到当前组内的各虚拟仪器信息。当虚拟仪器不再需要实体仪器发送的数据时,向实体仪器发送QUIT_GROUP消息,实体仪器收到此消息,就将对应虚拟仪器信息从MEMBER_LIST中删除。当MEMBER_LIST中的成员个数为0时,实体仪器停止向网络中发送数据。

由于网络的不确定性,虚拟仪器可能不正常退出网络,从而没有机会向实体仪器发送QUIT_GROUP消息,MEMBER_LIST中就一直保留该虚拟仪器消息,实体仪器不知道虚拟仪器已经退出网络,仍然向网络发送大量数据,占用大量网络资源。鉴于此,实体仪器给MEMBER_LIST中的每个成员分配一个变量LIFE,初始化为nT(5<n<10),虚拟仪器每隔时间T用UDP方式向实体仪器发送STILL_HERE消息来表示仍然存在网络中。每过时间T,若实体仪器收到STILL_HERE,对应虚拟仪器的LIFE变量就被赋值为nT,,否则LIFE变量就会减去T,当某虚拟仪器的LIFE变量变为0时,该虚拟仪器就从MEMBER_LIST中被删除。

以上具体实施方式仅用于说明本发明,而非用于限定本发明。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号