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

文档序号:7714631阅读:185来源:国知局
专利名称:一种基于网络的虚拟仪器实现方法
技术领域
本发明涉及一种基于网络的虚拟仪器实现方法,涉及虚拟仪器对实体仪器的有效控制,将实体仪器采集到的数据准确快速地在网络上进行共享,在虚拟仪器中进行显示和高级信号分析。
背景技术
测量仪器设备的重要性在电子领域不言而喻,但其测量到的数据很难再进行高级信号处理。虚拟仪器是在以通用计算机为核心的硬件平台上,由用户设计定义,集软面板和高级信号处理功能于一体的一种计算机仪器系统,灵活性高,速度快。由前端设备完成信号的采集,利用计算机强大的图形环境和数据处理功能对数据进行显示和快速运算、分析和处理是未来仪器的发展方向。但是传统的虚拟仪器技术只能将测量仪器设备与相邻的计算机相连,这样的方式不利于仪器设备更大范围的共享。
因此,如何将仪器设备连入网络,让网络中的多个用户共享一台测量仪器设备,如何对其进行远程控制、快速的数据共享和分析处理就成了需要解决的关键问题。

发明内容
技术问题本发明提出了一种基于网络的虚拟仪器实现方法。本方法可以使得实体仪器在网络中表明自己加入网络;虚拟仪器搜寻到网络中的实体仪器,知道相互的存在;虚拟仪器可以对实体仪器进行控制;各虚拟仪器通过实体仪器公布的组播组号加入组播组来接收实体仪器发出的数据;实体仪器以组播方式向网络中发送数据;虚拟仪器将接收到的数据进行显示和高级信号处理;虚拟仪器定时向实体仪器发送消息表明自己没有异常退出网络。
为了实现上述发明目的,本发明提供了 一种基于网络的虚拟仪器实现方法,包括以下歩骤
a) 实体仪器首先初始化自己的网络设备,并在当前网络中表明自己加入网络;
b) 虚拟仪器初始化自己的网络设备,并在当前网络中搜寻实体仪器设备;
c) 虚拟仪器对实体仪器进行控制,虚拟仪器向实体仪器发送控制请求,实体仪器査看虚拟仪器是否在C0NTR0L_LIST中来决定是否响应控制命令,然后对自身的工作状态做相应的改变,主控虚拟仪器连续时间t内没有对实体仪器进行控制则失去对实体仪器的控制权;
d) 虚拟仪器向实体仪器请求数据,实体仪器向虚拟仪器发送一个组播地址号,虚拟仪器以此地址号加入组播组,当有其它虚拟仪器向同一实体仪器请求数据时,也加入相同的组播组;
e) 当网络中有大于等于l台虚拟仪器向实体仪器请求数据时,实体仪器就以组播的方式向网络中发送数据;f) 虚拟仪器接收到数据后,将数据进行显示和髙级信号处理;
g) 虚拟仪器定时以UDP方式向实体仪器发送消息STILLJffiRE来表明自己未异常脱离网络
所述的实体仪器向网络中表明自己加入网络,是通过广播的方式向网络中广播自己的消息,网络中每一台主机都能收到消息,但只有虚拟仪器能够识别该消息,将消息记录和保存;该消息内容包括实体仪器身份标识RI一ID,实体仪器类型RI—TYPE,网络地址RI_ADDR和校验信息C冊CK。
所述的虚拟仪器在网络中搜寻实体仪器,是通过向网络中公布自己的搜寻消息SEARCH_RI来实现,网络中每一台主机都能收到消息,但只有实体仪器能够回复该消息;回复的消息内容包括实体仪器身份标识RI_ID,实体仪器类型RI一TYPE,网络地址RI—ADDR和校验信息CHECK。
所述的虚拟仪器控制实体仪器,是通过在虚拟仪器和实体仪器间建立TCP (传输控制协议)连接来实现的,具体包括三个步骤
a) 发出控制请求;
b) 发出控制命令;C)释放控制;
虚拟仪器和实体仪器通过建立TCP (传输控制协议)连接来实现上述三个步骤;实
体仪器拥有一个地址链表CONTROL—LIST,表明可以响应从这些地址发来的控制命令。CONTROL—LIST初始为空,当第一个虚拟仪器请求控制时,实体仪器将其添加进CONTROL—LIST。此时其它虚拟仪器的控制请求将会被拒绝。拥有对实体仪器控制权的虚拟仪器可以对CONTROL一LIST进行修改,添加或删除其它虚拟仪器,满足多个虚拟仪器对实体仪器的控制需求。
当出现下列情况之一时,C0NTR0L_LIST中排在第一位的主控虚拟仪器将失去控制权,排在C0NTR0LJJST第二位的虚拟仪器将获得主控权
a) 主控虚拟仪器主动向虚拟仪器发送释放控制的消息;
b) 主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;
c) 主控虚拟仪器异常退出网络。
所述的虚拟仪器向实体仪器请求数据,是通过如下三个步骤来实现的
a) 虚拟仪器通过TCP方式向实体仪器发送请求组播号的消息J0IN_GR0UP,实体仪器响应请求返回组播地址号MC—ADDR,虚拟仪器加入该组播组;
b) 实体仪器用组播方式向组播地址号MC_ADDR发送数据DATA;
c) 当虚拟仪器不再需要数据时,向实体仪器发送退出组播组消息QUIT—GROUP;实体仪器拥有一个地址链表MEMBER—LIST,表明组内的各虚拟仪器信息,当
MEMBER—LIST中的成员个数为0时,实体仪器停止向网络中发送数据。所述实体仪器以组播方式向网络中发送的数据,包括以下两个部分
a) 实体仪器当前的运行状态信息;
b) 实体仪器采集缓存的数据;以组播方式向网络中发送数据,实体仪器只要向网络中发送一次数据,知道组播号 并且加入组播组的虚拟仪器就能够收到数据。
所述的虚拟仪器的数据显示与高级信号处理,虚拟仪器利用主机强大的图形环境, 在主机屏幕上建立图形化的软面板来替代常规的传统仪器面板,用户通攻鼠标或者键盘 操作软面板来检验仪器的通信和操作。而且可以利用主机强大的数据处理能力,使用软 件完成高级数据分析与处理。
所述的虚拟仪器定时以UDP (用户数据报协议)的方式向实体仪器发送消息 STILL一冊RE来表明自己未异常脱离网络,当实体仪器超过一定时间还未收到虚拟仪器 发来的STILL—HERE消息时,实体仪器就将该虚拟仪器从MEMBER—LIST中删除。
有益效果通过本发明提供的基于网络的虚拟仪器实现方法,网络中的多个虚拟仪 器用户都可以搜寻和识别到实体仪器,并且能对实体仪器进行共享与控制,实体仪器以 组播方式将数据群发到网络中的虚拟仪器,避免了网络上重复数据的出现,节省了网络 资源,也使数据同一时间到达各个虚拟仪器,虚拟仪器再将数据进行显示和高级信号处 理,弥补实体仪器本身功能和性能的不足。通过虚拟仪器向实体仪器定时发送消息 STILL—HERE表示自己仍然存在网络中,解决了虚拟仪器在异常退出网络而实体仪器无 法获知的情况。


图l、实体仪器和虚拟仪器网络拓扑,
图2、实体仪器结构框图,
图3、虚拟仪器结构框图,
图4、请求控制裁决程序流程图。
具体实施例方式
1、 实体仪器和虚拟仪器各自作为一个端点存在于网络中。
2、 实体仪器拥有信号采集,数据存储,网络通信的功能。具体网络功能包括-
a) 广播标识信息模块;
b) 响应命令模块; C)发送数据模块;
3、 将虚拟仪器程序运行在网络中的各主机之上,具有的网络功能模块包括-
a) 搜索网络中实体仪器模块;
b) 发送命令模块; C)接收数据模块。
基于网络的虚拟仪器实现方法包括以下步骤-
a) 实体仪器首先初始化自己的网络设备,并在当前网络中表明自己加入网络;
b) 虚拟仪器初始化自己的网络设备,并在当前网络中搜寻实体仪器设备;c) 虚拟仪器对实体仪器进行控制,虚拟仪器向实体仪器发送控制请求,实体仪器
查看虚拟仪器是否在CONTROL—LIST中来决定是否响应控制命令,然后对自身的 工作状态做相应的改变,主控虚拟仪器连续时间t内没有对实体仪器进行控制 则失去对实体仪器的控制权;
d) 虚拟仪器向实体仪器请求数据,实体仪器向虚拟仪器发送一个组播地址号,虚 拟仪器以此地址号加入组播组,当有其它虚拟仪器向同一实体仪器请求数据时, 也加入相同的组播组;
e) 当网络中有大于等于1台虚拟仪器向实体仪器请求数据时,实体仪器就以组播 的方式向网络中发送数据;
f) 虚拟仪器接收到数据后,将数据进行显示和高级信号处理;
g) 虚拟仪器定时以UDP方式向实体仪器发送消息STILLJffiRE来表明自己未异常脱 离网络。
实体仪器在当前网络中表明自己加入网络的方法是实体仪器通过广播的方式向网 络中广播自己的消息,网络中每一台主机都能收到消息,但只有虚拟仪器能够识别该消 息,并将消息记录和保存;该消息内容包括实体仪器身份标识RIJtD,类型RI—TYPE, 网络地址RI_ADDR和校验信息CHECK。
虚拟仪器在当前网络中搜寻实体仪器设备的方法是虚拟仪器通过广播的方式在网
络中广播自己的搜寻消息SEARCH一RI,网络中每一台主机都能收到消息,但只有实体仪 器能够回复该消息;回复的消息内容包括实体仪器身份标识RI一ID,类型RIJTPE,网 络地址RI一ADDR和校验信息CHECK。
虚拟仪器对实体仪器的控制包括三个步骤
a) 发出控制请求;
b) 发出控制命令; C)释放控制;虚拟仪器和实体仪器通过建立TCP连接来实现上述三个步骤;实体仪器拥有一个地 址链表CONTROL—LIST,表明可以响应从这些地址发来的控制命令。CONTROL—LIST初始 为空,当第一个虚拟仪器请求控制时,实体仪器将其添加进C0NTR0L_LIST。此时其它 虚拟仪器的控制请求将会被拒绝。拥有对实体仪器控制权的虚拟仪器可以对 CONTROL—LIST进行修改,添加或删除其它虚拟仪器,满足多个虚拟仪器对实体仪器的 控制需求;
当出现下列情况之一时,CONTROLJJST中排在第一位的主控虚拟仪器将失去控制 权,排在C0NTR0L_LIST第二位的虚拟仪器将获得主控权
a) 主控虚拟仪器主动向实体仪器发送释放控制的消息;
b) 主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;
C)主控虚拟仪器异常退出网络;
虚拟仪器向实体仪器请求数据包括三个步骤-
a)虚拟仪器通过TCP方式向实体仪器发送请求组播号的消息JOIN—GROUP,实体仪b) 器响应请求返回组播地址号MC—ADDR,虚拟仪器加入该组播组;
c) 实体仪器用组播方式向组播地址号MC_ADDR发送数据DATA;
d) 当虚拟仪器不再需要数据时,向实体仪器发送退出组播组的消息QUIT—GROUP; 实体仪器拥有一个地址链表MEMBER—LIST,表明组内的各虚拟仪器,当MEMBER—LIST
中的成员为O时,实体仪器停止向网络中发送数据。
实体仪器以组播方式向网络中发送数据,数据包括以下两个部分
a) 实体仪器当前的运行状态信息;
b) 实体仪器采集缓存的数据;
以组播方式向网络中发送数据,实体仪器只要向网络中发送一次数据,知道组播号 并且加入组播组的虚拟仪器就能够收到数据。
虚拟仪器的数据显示与高级信号处理,虚拟仪器利用主机强大的图形环境,在主机 屏幕上建立图形化的软面板来替代常规的传统仪器面板,用户通过鼠标或者键盘操作软 面板来进行仪器的操作和数据的通信。而且可以利用主机强大的数据处理能力,利用软 件完成高级数据分析与处理。
虚拟仪器定时以UDP方式向实体仪器发送消息STILL—HERE来表明自己未异常脱离 网络,当实体仪器超过一定时间还未收到虚拟仪器发来的STILLJiERE消息时,实体仪 器就将该虚拟仪器从MEMBER—LIST中删除。
下面结合

本发明在数字荧光示波器(DPO)中的具体实施方式
。 如图1所示,在局域网络中存在多台实体仪器和虚拟仪器,各自以普通主机方式接
入网络。本发明可以使得各虚拟仪器对各实体仪器进行共享与控制,方便虚拟仪器进行
数据分析与处理。
如图2所示,实体仪器负责信号的采集,将采集到的数据缓存入大容量存储设备 DDR2 SDRAM中,这些数据就是实体仪器要发送到网络中的数据。
当用户启动实体仪器的网络功能的时候,实体仪器通过广播模块向当前网络中的主 机发送消息,通过这个方法来告诉当前网络中的虚拟仪器自身已经加入网络。运行在虚 拟仪器上的识别程序,识别此广播消息,从中提取出实体仪器的标识(RI一ID),实体仪 器的类型(RIJTPE)以及实体仪器的网络地址(RI一ADDR),将所有信息进行异或操作, 所得结果与校验位(C服CK)对比,如果相同说明消息是正确可信的。虚拟仪器将实体 仪器信息存储下来,以便之后向实体仪器发送控制命令和请求数据。
当用户启动或刷新虚拟仪器的网络功能时,虚拟仪器通过搜寻模块在当前网络中搜 寻实体仪器。虚拟仪器使用UDP方式向当前网络广播搜寻消息(SEARCH—RI),运行在网 络中的实体仪器响应该搜寻,从发过来的数据包中提取出源地址,向该源地址用UDP 方式发送实体仪器的标识UI一ID),实体仪器的类型(RI一TYPE)以及实体仪器的网络 地址(RI一ADDR)和校验消息(CHECK),运行在虚拟仪器上的识别程序,提取上述信息 并存储下来。
虚拟仪器在识别出网络中的实体仪器后,若想要控制实体仪器,虚拟仪器首先与实体仪器建立TCP连接,向实体仪器发送控制请求。如图4所示,其中VI—l是某一台虚 拟仪器,如果此时实体仪器的CONTROL_LIST为空,那么此请求成功,CONTROL_LIST添 加该虚拟仪器的地址,该虚拟仪器拥有对此实体仪器的主控权,该虚拟仪器根据需要可 以向实体仪器中的CONTROL—LIST中添加其他虚拟仪器的地址,这样其它虚拟仪器就可 以方便地控制实体仪器。当主控虚拟仪器退出控制状态时,实体仪器将CONTROL—LIST 中的主控虚拟仪器标识删除,排在CONTROL—LIST中第二位的虚拟仪器成为主控。当虚 拟仪器向实体仪器发送控制请求时,如果CONTROL—LIST非空且其中没有该虚拟仪器的 地址信息时,请求失败。
当出现下列情况之一时,C0NTR0L_LIST中排在第一位的主控虚拟仪器将失去控制 权,排在CONTROLJJST第二位的虚拟仪器将获得主控权
a) 主控虚拟仪器主动向虚拟仪器发送释放控制的消息;
b) 主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;
c) 主控虚拟仪器异常退出网络。
拥有控制权的虚拟仪器通过TCP方式向实体仪器发送控制命令。实体仪器响应命令, 并向实体仪器主控模块发出调整工作方式的消息。
当虚拟仪器用户要请求指定实体仪器的数据时,虚拟仪器通过TCP方式向实体仪器 发送加入消息JOIN—GROUP,实体仪器返回相应的组播地址号MC一ADDR,虚拟仪器加入 MC一ADDR标识的组播组。实体仪器以组播的方式向MC一ADDR发送大量的数据。所有加入 到MC一ADDR组播组的虚拟仪器都可以接收到数据,虚拟仪器再将数据进行显示与高级信 号处理。同一虚拟仪器可以同时加入多个组播组,以此来接收多个实体仪器发来的数据。 实体仪器拥有一个MEMBER一LIST链表,储存加入到当前组内的各虚拟仪器信息。当虚拟 仪器不再需要实体仪器发送的数据时,向实体仪器发送QUI乙GROUP消息,实体仪器收 到此消息,就将对应虚拟仪器信息从MEMBER—LIST中删除。当MEMBER—LIST中的成员个 数为0时,实体仪器停止向网络中发送数据。
由于网络的不确定性,虚拟仪器可能不正常退出网络,从而没有机会向实体仪器发 送QUIT—GROUP消息,MEMBERJJST中就一直保留该虚拟仪器消息,实体仪器不知道虚 拟仪器己经退出网络,仍然向网络发送大量数据,占用大量网络资源。鉴于此,实体仪 器给MEMBER一LIST中的每个成员分配一个变量LIFE,初始化为nT(5<n<10),虚拟仪器 每隔时间T用UDP方式向实体仪器发送STILL—HERE消息来表示仍然存在网络中。每过 时间T,若实体仪器收到STILL—HERE,对应虚拟仪器的LIFE变量就被赋值为nT,,否 则LIFE变量就会减去T,当某虚拟仪器的LIFE变量变为0时,该虚拟仪器就从 MEMBERJJST中被删除。
以上具体实施方式
仅用于说明本发明,而非用于限定本发明。
权利要求
1.一种基于网络的虚拟仪器实现方法,其特征在于该方法包括以下步骤a)实体仪器首先初始化自己的网络设备,并在当前网络中表明自己加入网络;b)虚拟仪器初始化自己的网络设备,并在当前网络中搜寻实体仪器设备;c)虚拟仪器对实体仪器进行控制,虚拟仪器向实体仪器发送控制请求,实体仪器查看虚拟仪器是否在CONTROL_LIST中来决定是否响应控制命令,然后对自身的工作状态做相应的改变,主控虚拟仪器连续时间t内没有对实体仪器进行控制则失去对实体仪器的控制权;d)虚拟仪器向实体仪器请求数据,实体仪器向虚拟仪器发送一个组播地址号,虚拟仪器以此地址号加入组播组,当有其它虚拟仪器向同一实体仪器请求数据时,也加入相同的组播组;e)当网络中有大于等于1台虚拟仪器向实体仪器请求数据时,实体仪器就以组播的方式向网络中发送数据;f)虚拟仪器接收到数据后,将数据进行显示和高级信号处理;g)虚拟仪器定时以UDP方式向实体仪器发送消息STILL_HERE来表明自己未异常脱离网络。
2. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于实体仪器在当前网络中表明自己加入网络的方法是实体仪器通过广播的方式向网络中广播自己的消息,网络中每一台主机都能收到消息,但只有虚拟仪器能够识别该消息,并将消息记录和保存;该消息内容包括实体仪器身份标识RI一ID,类型RIJTYPE,网络地址RI_ADDR 和校验信息CHECK。
3. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于虚拟仪器在 当前网络中搜寻实体仪器设备的方法是虚拟仪器通过广播的方式在网络中广播自己的 搜寻消息SEARCH一RI,网络中每一台主机都能收到消息,但只有实体仪器能够回复该消 息;回复的消息内容包括实体仪器身份标识RI—ID,类型RI—TYPE,网络地址RI_ADDR 和校验信息CHECK。
4. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于虚拟仪器对 实体仪器的控制包括三个步骤a) 发出控制请求;b) 发出控制命令;c) 释放控制;虚拟仪器和实体仪器通过建立TCP连接来实现上述三个步骤;实体仪器拥有一个地址链表C0NTR0L_LIST,表明可以响应从这些地址发来的控制命令。CONTROL—LIST初始 为空,当第一个虚拟仪器请求控制时,实体仪器将其添加进C0NTR0L_LIST。此时其它 虚拟仪器的控制请求将会被拒绝。拥有对实体仪器控制权的虚拟仪器可以对 C0NTR0L_LIST进行修改,添加或删除其它虚拟仪器,满足多个虚拟仪器对实体仪器的控制需求;当出现下列情况之一时,CONTROL—LIST中排在第一位的主控虚拟仪器将失去控制 权,排在CONTROL—LIST第二位的虚拟仪器将获得主控权a) 主控虚拟仪器主动向实体仪器发送释放控制的消息;b) 主控虚拟仪器连续时间t内没有向实体仪器发送一条实际控制命令;c) 主控虚拟仪器异常退出网络。
5. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于虚拟仪器向 实体仪器请求数据包括三个步骤a) 虚拟仪器通过TCP方式向实体仪器发送请求组播号的消息JOIN—GROUP,实体仪 器响应请求返回组播地址号MC_ADDR,虚拟仪器加入该组播组;b) 实体仪器用组播方式向组播地址号MC一ADDR发送数据DATA;c) 当虚拟仪器不再需要数据时,向实体仪器发送退出组播组的消息QUIT一GROUP; 实体仪器拥有一个地址链表MEMBERJJST,表明组内的各虚拟仪器,当MEMBER—LIST中的成员为0时,实体仪器停止向网络中发送数据。
6. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于实体仪器以 组播方式向网络中发送数据,数据包括以下两个部分-a) 实体仪器当前的运行状态信息;b) 实体仪器采集缓存的数据;以组播方式向网络中发送数据,实体仪器只要向网络中发送一次数据,知道组播号 并且加入组播组的虚拟仪器就能够收到数据。
7. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于虚拟仪器的 数据显示与高级信号处理,虚拟仪器利用主机强大的图形环境,在主机屏幕上建立图形 化的软面板来替代常规的传统仪器面板,用户通过鼠标或者键盘操作软面板来进行仪器 的操作和数据的通信。而且可以利用主机强大的数据处理能力,利用软件完成高级数据 分析与处理。
8. 如权利要求1所述的一种基于网络的虚拟仪器实现方法,其特征在于虚拟仪器定 时以UDP方式向实体仪器发送消息STILL—HERE来表明自己未异常脱离网络,当实体仪 器在超过一定时间还未收到虚拟仪器发来的STILL—HERE消息时,实体仪器就将该虚拟 仪器从MEMBER—LIST中删除。
全文摘要
一种基于网络的虚拟仪器实现方法,可以准确快速地将实体仪器采集到的数据共享到局域网内的多台虚拟仪器,虚拟仪器可以将传送过来的数据进行显示和高级信号分析与处理,并对实体仪器进行控制。通过广播的方式使虚拟仪器获得实体仪器的地址,然后虚拟仪器将控制命令发送到实体仪器来实现对实体仪器的控制;实体仪器通过组播的方式将大量的数据发送到网络上,虚拟仪器通过实体仪器公布的组播组号加入该组播组来接收数据,并且可以将数据传送给后续模块进行显示和高级分析处理。实现了各主机对测量仪器的远程控制和数据在不同主机间的快速共享,还可以充分利用主机强大的图形环境和数据处理能力对信号进行显示和高级分析处理。
文档编号H04L12/28GK101626332SQ200910183239
公开日2010年1月13日 申请日期2009年7月23日 优先权日2009年7月23日
发明者伟 孙, 温荷香, 高礼忠 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1