专利名称:可重构虚拟仪器构件阵列的制作方法
技术领域:
本发明涉及测试仪器领域,具体涉及一种可重构虚拟仪器,可广泛适应用于工业测量和仪器仪表等领域。
背景技术:
所谓虚拟仪器就是利用普通计算机,加上仪器板卡和专用软件,形成具有仪器功能的计算机,它是测试仪器设计、工业测控和仪器仪表领域的一个重要发展方向。从美国国家仪器公司(Ni)提出虚拟仪器概念至今已有20多年历史,软件就是仪器的提法已被业界普遍接受。近年来随着计算机性能提高和成本降低,虚拟仪器性价比不断攀升,在测量仪器中所占分额也不断扩大,应用领域和范围不断增长,其优势日益明显。目前,虚拟仪器技术已成为测量仪器和计算机应用交叉领域的一个重要发展方向。
目前虚拟仪器技术的发展主要由美国国家仪器公司主导,其核心产品LabVIEW几乎成了虚拟仪器的代名词。从最初的图形化程序语言(G语言),到可互换虚拟仪器(IVI)驱动技术、网络化测量功能,以及对现场可编程逻辑器件阵列(FPGA)编程的支持和对多核处理器的支持,几乎虚拟仪器领域的每一次重大技术革命都是由美国国家仪器公司唱主角。
借助虚拟仪器的成功基础,美国国家仪器公司近年来又推出了仪器技术2.0概念。将完全依靠硬件来实现测试测量的时代定义为仪器技术1.0时代;将工程师用软件来设计自己的用户界面并自定义测量任务,获得所需分析结果的时代定义为仪器技术2. 0时代。仪器技术2.0包括以下几项必备要素自定义测试、实时数据传输、自定义界面、模块化硬件以及仪器同PC之间的连接性。
仪器技术2. 0的一个重要特征就是强调用户自定义测量仪器功能和自定义测量仪器界面。我们认为用户应该是测量仪器的使用者,而不应该是测量仪器程序的设计者。从这个角度看,现行的以LabView为代表的虚拟仪器技术只能说是部分满足要求。
目前,虚拟仪器开发技术主要分为两类,一类是以美国国家仪器公司的LabView 为代表的图形化开发平台,其优点是用形象的图形化符号的连线操作代替文本语言编程, 直观、方便,功能强大,缺点是体积庞大、开放性差,很难想象可以将它们嵌入在测量仪器中,为终端用户提供运行环境下的用户自定义虚拟仪器功能服务。另一类是以美国国家仪器公司Measurement Studio为代表的虚拟仪器构件+传统文本语言开发环境,其优点是采用C++、Basic等传统文本语言开发环境,将虚拟仪器部分作为扩展构件添加到开发环境中,可充分发挥文本语言和虚拟仪器构件两者的优势,便于开发集虚拟仪器功能、数据库功能、网络功能为一体的综合系统;缺点是所开发的程序在功能调整时需要对程序重新进行编辑、编译、链接,无法脱离程序开发环境,也不能实现在应用阶段用户对虚拟仪器功能的调整。
可以说以LabView和Measurement Studio为代表的虚拟仪器开发工具在很大程度上都是面向测量仪器设计工程师的开发工具,而不是一个面向终端的虚拟仪器使用用户的应用工具。在测量仪器设计阶段,工程师可以方便的用它们来规划测量仪器功能和布置测量仪器用户界面;但在应用阶段,普通用户则很难对所使用的虚拟仪器应用程序功能和界面进行调整。因此,目前还没有完全符合仪器技术2. O所要求的支持终端用户自定义虚拟仪器测量系统和自定义测量仪器界面的虚拟仪器技术。
发明内容
本发明针对现有虚拟仪器技术在支持终端用户自定义测量仪器功能、修改测量仪器界面,以及测量仪器功能的在系统升级等方面的不足,提出一种可重构虚拟仪器构件阵列,利用该平台开发的测量仪器和测量系统具有在线、在系统功能升级和重构能力,而且支持用户在应用阶段对测量仪器功能进行修改和调整。
本发明借鉴硬件领域现场可编程逻辑器件阵列(FPGA)思想和所开创的硬件可重构电子产品应用模式,提出现场可重构虚拟仪器构件阵列的新概念。将虚拟仪器的内核设计为一个大规模的软件集成构件,它作为一个可编程构件嵌入在测量系统中,提供虚拟仪器功能;虚拟仪器功能的调整则通过对可重构虚拟仪器阵列的配置来实现。与含FGPA元件的硬件板卡相似,在这个过程中嵌入可重构虚拟仪器构件阵列的测量应用自身并不需要修改和调整,也就是说该技术可以实现仪器技术2. 0要求的测量仪器、测量系统的在线系统功能调整和重构,可以为终端用户自定义测量仪器功能和自定义测量仪器界面提供支持。
具体技术方案如下 一种可重构的虚拟仪器构件阵列,用于装配组合虚拟仪器,包括软元件、软件装配面包板、装配记录模块和装配解释模块;所述软元件封装了各种功能模块,用于实现虚拟仪器中的各种功能,所有的软元件以阵列方式集成在一个容器构件中,供用户调用;所述软件装配面包板包括软数据导线和软开关矩阵,用于为各种软元件的组装提供装配环境,其中, 所述软数据导线用来连接软元件和传递测量数据流,所述软开关矩阵用于控制和切换软元件与软数据导线的连接关系,实现软元件与不同软数据导线之间的连接与断开;所述装配记录模块用于对虚拟仪器的装配过程和装配结果进行记录,所述装配解释模块用于解释装配模块的记录结果,以复现或重构装配组合好的虚拟仪器。
作为本发明进一步的改进,所述的软数据导线通过管道技术实现,即将不同的软元件连接在同一管道上,采用一个类型和长度可变的数据类作为软数据导线的数据载体, 利用消息传递机制,从而实现一个软元件向管道中写数据,其他连接在该管道上的软元件可以从该管道中读取数据。
作为本发明进一步的改进,所述的软元件封装的各种功能模块包括软表盘、信号处理单元和标准驱动单元。
作为本发明进一步的改进,所述的软表盘包括各种仪器表盘、按钮、开关和数据输入输出控件,用于完成数据的显示、控制、输入和输出功能;所述的信号处理单元包括各种信号处理芯片,用于完成对各种信号数据的处理;所述的标准驱动单元用于提供虚拟仪器所连接的各种硬件的驱动。
作为本发明进一步的改进,所述的软开关矩阵控制和切换软元件与软数据导线的连接关系的具体过程为,将软元件的管脚设置为一个指针变量,用于指向指定的软数据导线,该指针变量由软开关矩阵对其进行赋值,通过不同的赋值实现软元件与不同软数据导线的插接操作。
作为本发明进一步的改进,所述的装配解释模块包含一个解释器,它读入装配文档,根据文档的内容提取出装配参数,然后根据这些参数重构或组装虚拟仪器。
作为本发明进一步的改进,所述的装配参数包括软元件标识、属性和连接的软数据导线号。
该技术使我们能够在测量仪器产品设计、制造、甚至应用的各阶段对其功能进行重构和调整,增大了仪器产品的使用灵活性。另外,由于可重构虚拟仪器构件阵列能够作为一个嵌入式模块插入数据库等其它应用中,而不是必须以独立应用的方式出现,可以极大地扩展虚拟仪器的应用领域。
本发明的技术效果包括 1、重构性本发明提出的可重构虚拟仪器构件阵列采用软件面包板进行虚拟仪器装配,用软元件的插接装配取代了软件功能模块API的编程调用,不需要编译、链接等环节;由这一技术特征实现的虚拟仪器测量系统具有重构能力,可以形成支持在线、在系统功能调整和升级的新型虚拟仪器测量系统。
2、集成性本发明将传统虚拟仪器中的旋钮、表盘等上百个分离的虚拟仪器控件以阵列形式集成在一个大规模的构件中,具有高度的集成性;由这一技术特征实现的虚拟仪器测量系统结构更简明,应用更方便。
3、嵌入性传统的虚拟仪器系统总是以独立应用程序的方式出现,而可重构虚拟仪器构件阵列则可以按可重用软构件形式出现,它能够嵌入在数据库、浏览器等其他应用系统中,为它们提供虚拟仪器功能。这一技术特征极大地扩展了虚拟仪器的应用场合,使其能够与其它技术一起发挥更大的综合作用。
4、开放性和扩展性可重构虚拟仪器构件阵列采用可扩展标记语言XML进行装配过程记录和描述,在语言上具备扩展性;同时本发明将对装配命令的解释分散在各个软元件中,虚拟仪器装配脚本解释器功能可以随增加的软元件自动扩展。因此,与传统虚拟仪器技术相比,本发明在体系结构上具有更好的扩展性和开放性。
利用该平台开发的测量仪器和测量系统具有在线、在系统功能升级和重构能力, 支持用户在应用阶段对测量仪器功能进行修改和调整。此外,它还能够嵌入在数据库、浏览器等其他应用系统中,为它们提供虚拟仪器功能。
附图1是可重构虚拟仪器构件阵列总体结构。
附图2是管道结构的软导线模型。
附图3是用虚拟仪器软件面包板装配的一个信号发生器波形和频谱分析虚拟仪器应用系统。
附图4是一个用硬件面包板搭建的温度测量电路。
附图5是用软导线实现的虚拟仪器软件面包板。
附图6是管道构件实现的虚拟仪器软元件模型。
附图7是软开关矩阵的结构。
附图8是虚拟仪器软件面包板可视化插接装配环境。
附图9是虚拟仪器装配脚本解释器的结构。
附图10是可重构虚拟仪器构件阵列的结构,它描述了如何将各种虚拟仪器软元件、虚拟仪器软件装配面包板、虚拟仪器装配脚本解释器和虚拟仪器脚本集成在一个大规模的容器构件中,形成一个可重构虚拟仪器构件阵列。
附图11是软表盘类软元件示例。
附图12是信号处理单元类软元件示例。
附图13是用可重构虚拟仪器构件阵列装配的声音信号频谱分析仪。
具体实施例方式以下结合附图和具体实施例对本发明作进一步说明。
图1是本发明提出的可重构虚拟仪器构件阵列结构图。可重构虚拟仪器构件阵列包括软元件2、软件装配面包板4、装配记录模块和装配解释模块,所述软件装配面包板4包括软数据导线1和软开关矩阵3。软元件封装了虚拟仪器中常用功能模块,如常用的软表盘、信号处理单元和标准驱动等,用于实现虚拟仪器的各种功能,所有的软元件以阵列方式集成在一个大的容器构件中,供用户调用;软件面包板为各种软元件的组装提供一个装配环境,一组软数据导线和软开关矩阵的集合就构成了一个软件面包板;其中所述软数据导线用来连接软元件和传递测量数据流,用一个类型和长度可变的数据类配合消息传递机制来实现;所述软开关矩阵用来控制和切换软元件与软数据导线的连接关系,可以实现软元件与不同软数据导线之间的连接与断开;装配记录模块通过采用脚本语言对虚拟仪器的整个装配过程和装配结果进行记录;装配解释模块通过解释器对装配结果进行解释,可以快速复现装配组合好的虚拟仪器测量系统。
1、软数据导线 软数据导线用于连接软元件和传递测量数据流,本发明中采用管道技术(管道技术是计算机进程间通信的方法,连接在管道两端的进程可以通过管道传递数据,一个进程向管道中写入数据后,另一进程就可以从管道的另一端读取出来。利用管道技术可以将一个复杂的系统分解成很多相对独立的模块和处理步骤,每个模块和步骤只完成一项简单任务)来实现软数据导线。将不同的软元件连接在同一管道上,一个软元件向管道中写数据, 其他连接在该管道上的软元件可以从该管道中读取数据,该管道既是软数据导线。
进一步,软数据导线具有如下特征 其一,软数据导线传递的数据类型是可变的。通过采用一个类似Windows中 VARANT的可变数据类型的变量来作为软数据导线的数据载体,此时软数据导线中的数据的类型由连接在该软数据导线上的软元件根据其自身功能自动确定,如温度计测得的温度值采用单变量传递、正弦波形信号数据用二维数组变量传递;其二,支持多输入多输出,也就是一条软数据导线上可以同时插接多个软元件,同一条软数据导线中的数据可供多个插接在该导线上的软元件调用和处理,每条软数据导线都与一个软开关矩阵相关联,该开关矩阵记录了该软数据导线上插接了哪些软元件,通过改变软开关矩阵的内容可以实现将不同的软元件插接在同一条软数据导线上;其三,采用流水线数据驱动结构,即通过软数据导线中的数据流来驱动所有连接在该导线上的软元件工作。具体是通过操作系统的消息机制来实现的。如图2所示,软数据导线收到任何一个上游软元件传递过来的测量数据后,发出消息,通知给下游所有连接在该软数据导线上的软元件,软元件在接收到消息之后可以进行与其功能相对应的操作。
图3是用软数据导线连接的一个典型信号发生器的波形和频谱分析虚拟仪器系统,软数据导线上的测量数据流方向如图中箭头所示。系统运行时通过软数据导线中流动的测量数据流作为动力源,通过消息逐级驱动各软元件顺序运行,直到最后一条软导线的末端。由于采用了管道技术和流水线数据驱动结构,在由软数据导线连接的软元件构成的虚拟仪器系统中,不再需要一个代码程序来进行虚拟仪器运行流程控制和管理。这样做的好处是当修改虚拟仪器功能时,不需要一个设计、开发环境来对控制程序进行修改和编译、 链接,从而可实现虚拟仪器软元件的即插即用,满足本发明目的中所强调的虚拟仪器测量系统功能的用户调整和修改需要。
进一步,在Windows中,软数据导线可以用CStatic类重载来实现,在编辑状态它显示为操作区中的一条直线,用于连接软元件(见图8),在运行状态则不可见。软数据导线类具有Create方法、OnCommand方法,以及一个软开关矩阵类的成员变量、一可变数据类型的变量。其中,Create方法用于创建软数据导线;OnCommand方法通过响应WM_C0MMAND消息实现读写数据,并将消息转播给连接在该软导线上的下游软元件,实现软元件的驱动;软开关矩阵类的成员变量用于记录连接在该导线上的所有软元件;可变数据类型的变量用于软数据导线中保存不同类型的数据。
2、虚拟仪器软元件 软元件是组成虚拟仪器的基本功能单元,具体包括软表盘、信号处理单元和标准驱动等常用功能模块。如图11所示,软表盘类软元件包括各种仪器表盘、按钮、开关、数据输入输出控件等,主要完成数据的显示、控制、输入和输出功能。如图12所示,信号处理单元类软元件包括各种信号处理芯片,如FFT(快速傅里叶变换)频谱分析芯片、FIR(有限冲激响应)、IIR(无限脉冲响应)滤波器芯片、谐波分析芯片、倍频程芯片等,主要完成对各种信号数据的处理。标准驱动模块类软元件主要完成常用板卡如声卡、显卡、数据采集卡的驱动功能。软元件插接在软数据导线上,使用软数据导线作为输入输出接口。软元件从输入管脚读取软数据导线中的测量数据流,处理后进行显示或者将结果从输出管脚向软数据导线输出测量数据流。
软元件的实现方法是将测量仪器的各个功能封装成软件模块,并留出属性和管脚接口,如软表盘主要封装了表盘界面的实现功能和数据的显示功能,其通过输入管脚从软数据导线中读取数据,然后在显示界面上向用户显示出来。信号处理单元主要封装了各种信号处理算法,其通过输入管脚从软数据导线中读取数据,进行相应的处理,然后通过输出管脚向软数据导线中输出处理结果;标准驱动模块封装了一些标准的板卡驱动程序,如声卡、显卡和数据采集卡的标准驱动。
图6是我们提出的虚拟仪器软元件模型,左边是构件的静态属性,如控件显示位置、大小和色彩等参数,这与一般的软件构件的属性参数没有区别,通过修改这些属性参数可以修改软元件的属性;右边用于与软件面包板上的软数据导线相连接的管脚,它封装在软元件内部,由软元件的功能决定,如温度计元件需要显示0-100摄氏度范围的温度,则其数据管脚是0-100范围的整型变量,它与相对应的软数据导线上的数据一致。通过管脚可以动态的接收和发送测量数据、命令。
与传统虚拟仪器编程语言中利用API提供虚拟仪器功能的软件模块相比,使用软数据导线作为输入输出接口的虚拟仪器软元件的连接和装配过程也更简单,只要通过参数配置指出各输入/输出管脚连接的管道就可以了。运行中软数据导线和软元件之间不需要程序代码作为粘接剂和参与工作,十分适合于在虚拟仪器软件面包板中作为虚拟仪器软元件封装模型来使用。
进一步,在Windows中,软元件在实现方法上和自定义的Windows控件相仿,可以用Windows中的CStatic类、CButton类等的重载来实现。软元件的阵列集成也不难实现, 只要将各个软元件的类定义添加到可重构虚拟仪器构件阵列主体的头文件中就可以了。但为了实现软元件在软件面包板上的插接、删除操作,每个软元件必须封装插入元件、删除元件和保存元件三个方法。例如以旋钮为例,其插入方法用于按装配脚本在可重构虚拟仪器构件阵列提供的虚拟仪器面板窗口上插接一个旋钮元件,参数包括软元件的窗口句柄、静态属性参数、管脚参数。保存方法用于记录和保存该元件的位置和配置参数,生成装配脚本中该软元件的XML装配代码;删除方法则用于从虚拟仪器面板窗口上删除该软元件。在本发明中,通过将装配脚本命令解析器分散在各软元件的添加方法中,将装配脚本生成器分散在各软元件的保存方法中,从而实现可扩展虚拟仪器标记语言和解释器的功能随软元件的增加自动扩展。
3、软开关矩阵 软开关矩阵用来控制和切换软元件与软数据导线之间的连接关系,软元件的每个管脚对应连接一条软数据导线,软开关矩阵通过记录和改变这种对应关系,可以实现软元件与不同软数据导线之间的连接与断开。
将软元件的管脚设置为一个指针变量,用于指向一条特定的软导线,该指针变量由软开关矩阵对其进行赋值,通过不同的赋值实现软元件的与不同软数据导线的插接操作。软开关矩阵的实现形式并不复杂,本发明中将软开关矩阵用一个四参数的一维矩阵数组来表示。参数1是代表所插接的软元件的ID标识,参数2是软元件的管脚号,参数3是该管脚的输入/输出属性,参数4是该管脚所连接的软导线号。一个软开关矩阵决定了一个软元件的输入、输出管脚以及所连接的软数据导线号。改变软开关矩阵中的软元件标识参数和软导线号便可以实现不同软元件与软数据导线的连接。软开关矩阵的结构如图7所示。图中的每个黑色小圆点是一个连接点,表明一条软导线和一个软元件的管脚在此连接在一起,软开关矩阵就是纪录这种连接关系。
进一步,在Windows中,软开关矩阵是一个包含四个成员的结构体,其中四个成员分别是指向该元件自身的指针变量、插接的软元件的管脚号变量、管脚输入/输出/双向标识变量、软元件管脚所连接的软导线号变量。
4、虚拟仪器软件装配面包板 软件装配面包板给软元件提供一个装配环境,用于各种软元件的插接。
在硬件电路设计中,人们常用面包板来连接电子元件和构造简单的原型电路。面包板上有许多插接元件的小孔,其中每行小孔是电路上连通的,将元件的管脚插接在小孔中就可以利用面包板上的导线快速来传递信号,并快速搭建出一个简单的测量电路。例如, 图4是用面包板搭建的一个温度传感器测量电路。
借鉴硬件中面包板的概念,本发明用一组软导线和一个软开关矩阵组成一个支持软元件插接装配的软件面包板。图5是虚拟仪器软件装配面包板模型。它利用软导线来连接软元件和传递测量数据,可以将一个流程图描述的测量系统用软件面包板来装配实现。 这样,我们就可以实现一个类似于硬件面包板的虚拟仪器应用软件面包板插接装配环境, 能够用软元件插接方式快速装配出虚拟仪器测量应用系统。
进一步,在Windows中,只要在可重构虚拟仪器构件阵列的主体ActiveX控件的显示类中定义一组软导线和一个软开关矩阵就可以了。例如,将软开关矩阵定义为10000个连接点,将软件面包板上的软导线数量定义为512条(注意,软导线是指针形式,需要进行实例化)。软件面包板上建立的这512条软导线用于连接软元件,其导线号就是建立时的控件号,例如6000到6511。
5、装配记录模块 装配记录模块用于记录虚拟仪器软件面包板的装配过程和装配结果,使得已经装配好的虚拟仪器测试系统可以快速更改和复用。
进一步,在本发明中采用可扩展虚拟仪器标记语言(XVIML)对装配过程和结果进行记录,可扩展标记语言是由各个虚拟仪器软元件的描述符(tag)组成的,具体实现方法是通过在每个软件中封装一个生成本软元件tag描述符的保存方法来实现。记录当前软件面包板上插接的软元件和形成的虚拟仪器系统时,只要依次调用所插接的软元件的保存方法,生成各软元件的描述符,其集合就是一个用可扩展虚拟仪器标记语言写成的装配脚本, 以后可以用它来快速复现当前装配的虚拟仪器。
XML作为装配脚本语言,其主要内容包括用英文缩写表示的软元件名称标识、软元件实例化后标识其身份的句柄ID、软元件功能描述、和软元件的位置、色彩等静态属性以及软元件连接的输入/输出软导线号。将若干个虚拟仪器软元件通过软数据导线、软开关矩阵在软件装配面包板中装配完成,对应的装配代码的集合就组成了虚拟仪器装配文档和可扩展虚拟仪器标记语言XVIML。下面是我们提出的虚拟仪器装配文挡格式。该文档中记录了组装好的虚拟仪器包含哪些软元件、其属性如何、连接了哪些软数据导线等。
< ? xml version = “ 1.0〃 encoding = “ UTF-8" ? > <XVIML> <软元件1> <ID value =,,xxx,,/> 〈Describe〉软元件功能描述〈/Describe〉 〈Position value = " left, top, width, height"/) ...... <InPipel value =,,xxx,,/> ...... <0utPipel value =,,xxx,,/> ...... </ 软元件 1> <软元件2> ... </ 软元件 2> ... 〈软元件N> ... </ 软元件 N> </XVIML> 对虚拟仪器技术而言,因涉及到的应用领域很多,可重构虚拟仪器构件阵列中的标准元件只能覆盖常规的应用,因此必须允许用户针对特定应用扩展自己的软元件。由于可扩展虚拟仪器标记语言XVIML源于可扩展标记语言XML,它继承了可扩展标记语言XML的可扩展特点,从语言角度用户只要按上面给出的软元件接口定义和XML可扩展标记语言格式对其进行命名和接口描述就可以实现对可扩展虚拟仪器标记语言XVIML的扩展。
6、装配解释模块 装配解释模块与装配记录模块相对应,用于对装配记录结果进行解释,复现已经装配好的虚拟仪器测试系统。
进一步,装配解释模块包含一个解释器,它读入装配文档,根据文档的内容提取出装配参数,如软元件标识、属性、连接的软数据导线号等,然后根据这些参数组装出测试仪器系统。
本发明用XML技术实现了装配脚本语言的扩展,对装配脚本语言进行解释的装配解释模块必须能正确识别新扩展的语言元素。为此,本发明的装配解释模块采用这种方式 将装配解释模块包含的解释器分解为XML装配脚本阅读器和位于各软元件内的装配命令解释器两部分组成的结构,如图9所示。XML装配脚本阅读器顺序从XML装配脚本代码中取出各个软元件的XML装配代码,然后将其传递给对应软元件内部的命令解释器。软元件内部的命令解释器收到XML装配代码后从中提取出装配参数,设置对应的参数,如各种属性、 管脚号、所连接的软数据导线号,完成装配;然后返回XML文档阅读器,进行XML装配脚本中下一软元件的XML装配代码处理。
将装配命令解释器分散在各个软元件中的好处是虚拟仪器装配脚本解释器的功能也是可以扩展的,它的语言命令集可以随可重构虚拟仪器构件阵列中安装的软元件自动扩展,从而在根本上解决了对虚拟仪器装配描述语言XVIML中用户扩展软元件的支持问题。
进一步,在Windows中,由于可扩展虚拟仪器标记语言装配脚本是一个XML文档, 装配脚本解释器可以直接利用Windows提供的XML文档操作库(msxml.dll)实现。为便于应用,本发明在其基础上封装了四个函数函数getNodeNum用于获取装配脚本中的软元件数,函数getNodeName用于获取各软元件的名称,函数getNodeAttrNum用于获取指定软元件的属性数量,函数getNodeNameAttr则用于获取该软元件各属性的值。从XML装配脚本获取的软元件的属性值是若干个字符串,将其作为输入参数调用软元件的add方法进行装配命令解析,就可以实现按装配脚本的虚拟仪器装配。
最后,将各种虚拟仪器软元件、虚拟仪器软件面包板、装配记录模块、装配解释模块集成在一个大规模的集成构件中,就可以形成一个可重构虚拟仪器构件阵列。图10是本发明提出的现场可重构虚拟仪器构件阵列模型,上部是由装配脚本和嵌入式解释器构成的固件(Firmware),它决定了阵列实现的具体功能。固件中的装配脚本是一个可改写的配置文件,通过脚本读写接口就可更换其内容。中间的线条是连接内部封装的虚拟仪器软元件的软导线和软开关矩阵资源,中间的小方块是内部封装的虚拟仪器软元件阵列,四边的长条是供上层宿主系统进行调用的软I/O接口。传统虚拟仪器采用程序代码作为粘接剂,程序设计时需经过编码、编译、链接等环节,脱离了庞大的虚拟仪器开发平台就不可能对程序功能进行修改。本发明提出的可重构虚拟仪器构件阵列则不同,由于采用了独特的软件面包板装配技术,实现了虚拟仪器开发平台和运行平台的统一。采用可重构虚拟仪器构件阵列设计的测量仪器与系统在设计、制造、生产和应用等任何一个阶段其功能都可以灵活的进行调整。
具体应用实例 在Windows中,将含添加、保存和删除三个方法的各种虚拟仪器软元件类、虚拟仪器软件装配面包板类和虚拟仪器装配脚本解释器类集成在一起,就可以形成由一个OCX文件形式(ActiveX控件)或dll文件形式(动态链接库)可重构虚拟仪器构件阵列。
应用时可重构虚拟仪器构件阵列所提供的虚拟仪器功能,则可以由一个默认的可重构虚拟仪器标记语言的XML装配脚本定义。更换默认的装配脚文件内容,就可以变更可重构虚拟仪器构件阵列所提供的虚拟仪器功能。
与一般软件相比,虚拟仪器中的软元件种类很多,包括各种软开关、软仪表盘、 信号处理模块等,常用的软元件就有一百多种。这里我们用一个多页的虚拟仪器软元件图标窗口对其进行管理,点击某一图标就表示选中该元件,并可以将其拖动插入到软件面包板上,对位置、大小、色彩等参数进行可视化调整。最后,提供一个控件间的连线功能,用软开关矩阵对插接的软元件进行数字焊接。
图8是本发明提出的虚拟仪器软件面包板可视化插接装配环境,左边是浮动窗体形式的虚拟仪器软元件选择窗体,右边则是软件面包板形式的虚拟仪器软元件布局窗和连线窗体。
在Windows环境下实现一个可视化插接装配环境并不难。虚拟仪器软元件的选择可以用一个弹出的浮动窗体实现,如图8左图所示。点击某一图标就表示选中该元件,然后将其拖动到软件面包板的布局区上去。控件的位置和大小可以用Windows中的 CRectTracker类建立一个可变尺寸控件来调整(图8中虚线和小黑点组成的矩形)、色彩等其它参数则可以用右键弹出属性表来进行修改和设定。与一般软件不同的是本发明增加了一个软件面包板连线操作,可以在工具条/或菜单中增加一个连线状态项,点击它则进入连线状态,显示出软件面包板上的软导线组,用鼠标点击一条软导线进行选定,然后再点击软元件的管脚实现连接;同时将连接关系保存到软开关矩阵的元素中。
在Windows操作系统中实现可重构虚拟仪器构件阵列时,可以将可重构虚拟仪器构件阵列的主体设计为一个可见的ActiveX控件,便于提供图8所示的虚拟仪器装配界面和运行界面。该ActiveX控件即可以集成在Visual C++等开发的应用程序中,也可以插入在IE浏览器、PowerPoint等任何支持ActiveX的应用程序中,为它们提供虚拟仪器功能。
图13是用可重构虚拟仪器构件阵列装配的声音信号频谱分析仪。在装配环境下, 软件面包板的软导线可见,在运行时则软导线不可见。其中用到了 8条软导线,一个作为程序开关的按钮软元件,一个用于控制A/D卡采集声音信号的1/0软元件,一个对信号做频谱分析的FFT变换软元件,一个用于控制A/D卡采样频率的下拉选择框软元件,两个分别用于控制A/D卡双通道增益的旋钮软元件,一个用于选择工作通道的通道选择软元件,两个分别用于显示信号波形和频谱的曲线显示软元件,一个图标软元件和一个文字标签软元件。
其中开关按钮软元件通过软导线6001与A/D卡开关管脚连接在一起,用于启动和停止A/D卡运行。采样频率选择软元件和两个通道增益旋钮通过软导线6007、6006、6005与 A/D卡的采样频率、通道1增益和通道2增益管脚相连,用于设定A/D卡工作参数。A/D卡运行时的双通道采样数据输出分别连接在软导线6004、6003上,并通过这两条软导线传递给工作通道选择软元件。工作通道选择软元件的输出连接在软导线6 000上,它将当前选定通道的数据通过软导线6000传递给一个曲线显示软元件,用于显示信号波形;同时还传递给也连接在该导线上的FFT变换软元件,用于计算信号的功率谱。FFT变换软元件的输出连接在软导线6002上,并通过这条软导线传递给一个曲线显示软元件,用于显示信号频谱。
权利要求
1.一种可重构的虚拟仪器构件阵列,用于装配组合虚拟仪器,包括软元件(2)、软件装 配面包板(4)、装配记录模块和装配解释模块;所述软元件(2)封装了各种功能模块,用于 实现虚拟仪器中的各种功能,所有的软元件(2)以阵列方式集成在一个容器构件中,供用 户调用;所述软件装配面包板(4)包括软数据导线(1)和软开关矩阵(3),用于为各种软元 件(2)的组装提供装配环境,其中,所述软数据导线(1)用来连接软元件(2)和传递测量数 据流,所述软开关矩阵(3)用于控制和切换软元件(2)与软数据导线(1)的连接关系,实现 软元件(2)与不同软数据导线(1)之间的连接与断开;所述装配记录模块用于对虚拟仪器 的装配过程和装配结果进行记录,所述装配解释模块用于解释装配模块的记录结果,以复 现或重构装配组合好的虚拟仪器。
2.根据权利要求1所述的一种可重构的虚拟仪器构件阵列,其特征在于,所述的软数 据导线(1)通过管 道技术实现,即将不同的软元件(2)连接在同一管道上,采用一个类型和 长度可变的数据类作为软数据导线(1)的数据载体,利用消息传递机制,从而实现一个软 元件(2)向管道中写数据,其他连接在该管道上的软元件(2)可以从该管道中读取数据。
3.根据权利要求1或2所述的一种可重构的虚拟仪器构件阵列,其特征在于,所述的软 元件(2)封装的各种功能模块包括软表盘、信号处理单元和标准驱动单元。
4.根据权利要求3所述的一种可重构的虚拟仪器构件阵列,其特征在于,所述的软表 盘包括各种仪器表盘、按钮、开关和数据输入输出控件,用于完成数据的显示、控制、输入和 输出功能;所述的信号处理单元包括各种信号处理芯片,用于完成对各种信号数据的处理; 所述的标准驱动单元用于提供虚拟仪器所连接的各种硬件的驱动。
5.根据权利要求1-4之一所述的一种可重构的虚拟仪器构件阵列,其特征在于,所述 的软开关矩阵(3)控制和切换软元件(2)与软数据导线(1)的连接关系的具体过程为,将 软元件(2)的管脚设置为一个指针变量,用于指向指定的软数据导线(1),该指针变量由软 开关矩阵(3)对其进行赋值,通过不同的赋值实现软元件(2)与不同软数据导线(1)的插 接操作。
6.根据权利要求1-5之一所述的一种可重构的虚拟仪器构件阵列,其特征在于,所述 的装配解释模块包含一个解释器,它读入装配文档,根据文档的内容提取出装配参数,然后 根据这些参数重构或组装虚拟仪器。
7.根据权利要求6所述的一种可重构的虚拟仪器构件阵列,其特征在于,所述的装配 参数包括软元件标识、属性和连接的软数据导线号。
全文摘要
本发明提出了一种可重构的虚拟仪器构件阵列,用于装配组合虚拟仪器,包括软元件(2)、软件装配面包板(4)、装配记录模块和装配解释模块;所述软元件(2)封装了各种功能模块,用于实现虚拟仪器中的各种功能;所述软件装配面包板(4)包括软数据导线(1)和软开关矩阵(3),用于为各种软元件(2)的组装提供装配环境;所述装配记录模块用于对虚拟仪器的装配过程和装配结果进行记录,所述装配解释模块用于解释装配模块的记录结果,以复现或重构装配组合好的虚拟仪器测量系统。利用该技术开发的测量仪器和测量系统具有在线、在系统功能升级和重构能力,支持用户在应用阶段对测量仪器功能进行修改和调整。
文档编号G06F9/44GK101847098SQ20101018497
公开日2010年9月29日 申请日期2010年5月28日 优先权日2010年5月28日
发明者何岭松, 唐立新, 贝磊, 杨振华 申请人:华中科技大学