自动测试系统与虚拟仪器原理·开发·应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 虚拟仪器的基本概念

1.2.1 虚拟仪器的主要功能

什么是虚拟仪器?有人说:“虚拟仪器就是计算机。”也有人说:“虚拟仪器就是软件。”在我们看来,所谓虚拟仪器,就是要尽可能地采用通用计算机及其软件的功能来取代原先专用仪器的设备功能。对虚拟仪器来说,仪器与计算机之间的界限模糊了。由于充分发挥了通用计算机的功能,节省了大量的专用硬件设备和软件开发成本,从而成为自动测试技术的一个重要发展方向。

注意,这里强调的是通用计算机及其软件。因为即使是传统的仪器设备,实际上也都含有一个、甚至多个微处理器,也都需要各种微处理器程序软件(有时称为固件)的支持。然而,那样的计算机和软件是专用的,是在特定用途下专门开发并实现特定功能的仪器设备,是不能兼做他用的。因此从整体上看,它们不是虚拟仪器,而是传统意义下实实在在的仪器设备。

那么,什么是仪器设备的基本功能呢?又有哪些仪器的功能可以被通用计算机及其软件实现呢?

首先,作为传统的仪器设备,需要面板、机箱和电源。这里,面板用于人机交互,其显示功能和操作功能分别与人的眼和手作用相当。常见的面板显示元件包括指示灯、发光二极管、数码管、指针仪表、字符及图形显示器等;常用的操作元件则包括各种按钮、按键、扳键、旋钮、拉杆、多路转换开关等。而在虚拟仪器系统中,借助于通用的PC和Windows操作系统下强大的图形功能,这些功能可以得到更好和更方便的实现。在图1-5中,可以看到这种随心所欲的面板安排。

图1-5 用于人机对话的虚拟仪器控件

其次,作为现代仪器,不可避免地需要各种数据处理功能。例如,需要产生诸如脉冲、阶跃、斜波、方波、正弦波、三角波、随机波等激励信号,对测量结果则往往需要进行频谱分析、小波分析和包括高通、低通、带通和带阻等功能的各种数字滤波,也需要实现包括相关分析、回归分析、方差分析等统计功能,以及曲线拟合、插值、积分、微分、卷积、求逆、分解等数值计算。显然,通用计算机进行这些工作的能力要比传统仪器中的微处理器强得多。

再次,近年来许多高档仪器在原先专门仪器的基础上加入了一些与信息技术相关的辅助功能,如语音报数、提示及报警的音响功能,图文并茂的操作指导功能,测试数据转储和网络通信的功能等。很明显,通用PC强大的多媒体功能、数据库功能、电子表格功能、TCP/IP网络通信功能够更方便和更圆满地处理这类问题。

最后,也是最为重要的仪器功能是其本身的输出激励信号和测量输入信号的功能。其核心是不同字长分辨率、不同转换速度和不同抗干扰能力的模数转换器和数模转换器、相应的通道调理电路,以及专门的传感器设备。显然,通用计算机通常是不具备这些功能的。因此,要么需要在计算机内加装专门为此设计的功能插件板,要么需要通过某种接口设备与那些具有这种基本测试功能的设备连接起来。

在当今国际市场上,GPIB通用接口总线系统和VXI仪用总线系统是两种比较常见的选择。前者建立在GPIB接口已为所有仪器厂家接受的基础上,以至于用户可以在世界范围内不分厂家国别,从测试的角度出发选择最理想的台式仪器来组建系统。后者以VXI模件的形式出现在专用的VXI机箱中,仪器之间的总线连接是通过背板实现的,因此极大地提高了自动测试系统的工作速度。同时取消了传统面板,共享了机箱电源,从而减少了公用开销和所占空间。然而,由于这两类系统的成本较高,在很大程度上限制了它们在民用和中小企业中的应用。对于计算机内加装插件卡的虚拟仪器系统,其优势在于它的价位普遍较低,因而引起很多用户的注意。但是也确实存在不少问题,如加卡、换卡需要打开机箱,设备独立性差;机箱内部结构限制及后面板出线方式容易引起电磁兼容性问题;台式PC内部总线升级过快,难以稳定标准;笔记本PC空间条件下仪器的工作环境更差等。因此,人们一直希望找到一种更适于虚拟仪器系统使用的接口总线。现在看来,当前广泛用于PC主机与其外设相互连接的通用串行总线USB就是一种不错的选择。

1.2.2 USB接口的基本概况

通用串行总线USB(Universal Serial Bus)最初是由Intel、DEC、IBM、康柏、微软、NEC、北方电信等7家著名计算机和通信公司共同推出的新一代接口标准,其目的在于解决为数众多的PC外设与有限的PC插槽之间日益增加的矛盾,于是设想用一条USB总线代替PC主板上多种复杂的接口。现在,所有PC都已配备了至少两个USB接口,Windows 98、Windows 2000和Windows XP操作系统中也都提供了支持USB通信的驱动程序。特别是后来USB组织又增加了惠普、朗讯和飞利浦3个重要的新成员,从而为建立基于USB技术的自动测试系统奠定了基础。

USB总线设备是如何使用呢?它又有哪些基本特点呢?

USB接口采用精心设计的4芯连结器,其中除了两侧的地线和电源线外,中间两根信号线采用一种特别的差分电平编码方式来实现数字信号的高速传输。传输通过3~5m的总线电缆将USB设备放到远离PC、靠近被测对象的位置,从而可以提高系统的测试精度和电磁兼容性。如图1-6所示,USB系统在主机内部提供一个根集线器,其后可以直接连接到各个USB设备,也可通过一级、一级的集线器以树形方式扩充连接到多达127个设备。

图1-6 USB虚拟仪器系统的树形连接结构

图1-7为在一台笔记本电脑上连接USB集线器和USB数采设备的典型情况。这台笔记本电脑有两个USB外接口,其中一个直接连接到一个USB鼠标,而另一个则连接到一个USB集线器,然后通过这个集线器再分别连接到扫描仪和一个数据采集器模块。

图1-7 USB数据采集器实物照片

USB接口的连接可以带电操作(热插拔),并且具有即插即用的功能。这种带电操作和即插即用的功能对虚拟仪器的工作具有明显的实用意义,因为当代的微机操作系统,诸如Windows系统的启动初始化过程十分费时。若无此功能,则对大多数用户来说都将是无法忍受的。

USB集线器本身能为每个连接到它的设备提供500mA电流的5V电源,因此对于那些已经配备了根集线器的PC可以直接支持一些小型测试设备的工作。

数据传输的快速性也是USB的主要特点,在1998年推出的协议USB1.1中,规定的通信速率达到12Mbps,而在USB2.0规范中,最高的通信速率可以达到480Mbps。这样的速率大约高于普通串口的100倍,足以满足大多数自动测试的实际要求。

作为虚拟仪器系统中测试设备与PC主机之间的通信接口技术,USB的上述特点使其与其他计算机外设接口相比,占有十分明显的优势。表1-1就USB与微机的其他几种主要接口在人们普遍关心的一些指标上进行了比较。

表1-1 常用PC接口比较

总之,面向未来的各种测试任务,基于USB总线通信的虚拟仪器提供了一种十分理想的工作方式,即将专门处理测试任务的硬件电路集中在一个离开主机、靠近测点的功能小盒(测试设备)中,而将现代仪器中的大多数工作任务留给PC主机的软件完成。由于这种方式充分发挥了通用计算机在人机对话、分析计算、多媒体、数据库、网络通信等方面的巨大能力,往往产生事半功倍的效果。

1.2.3 虚拟仪器软件开发工具

当今世界上最流行、也是公认比较成熟的自动测试系统软件开发工具,当数美国NI公司的LabWindows/CVI、LabView、ComponentWorks和惠普公司的HP VEE等。

LabWindows/CVI是一个完整的软件设计平台,具有编辑、编译、连接、调试、求助等功能,它以C语言为基础(C for Virtual Instrument)。同时它具有交互式功能,即能够像BASIC那样解释性地执行代码,又能交互式地编写程序。当单击库函数菜单的Liberary选项时会得到一个库函数的树形索引,沿着树枝往下就会找到用户需要的函数,这时出现的画面可让用户添加函数所需的参数,确认后就会自动生成调用这一函数的代码并加到源程序中,使用户不必记住那些繁杂的函数名称和各种参数的细节含义。从自动测试的角度看,LabWindows/CVI函数库主要提供了以下几方面的功能:

(1)用户界面的设计,通过在面板上加控件的方法实现。

(2)总线接口控制,实际接口驱动库函数随硬件控制卡提供。

(3)数据分析、计算的函数集合。

(4)通过动态数据交换DDE方式同数据库等其他软件联系,也支持TCP/IP网络功能。

(5)支持仪器驱动器和仪器类驱动器。

LabView的面向自动测试的功能与LabWindows/CVI相似,但其开发应用系统的方法很不相同。如图1-8所示LabView的程序不是以文本方式描述,而是所谓的“图形编程”,用户界面上的每一个控制都对应于框图中的一个元件。通过连线把这些元件连接起来,以此表明信号的流程和走向,用户也能加入一些逻辑或算术运算的元件或者滤波器等信号处理的元件,从而使测得的结果能够被分析和计算。此外,对诸如条件分支、循环、跳转等程序控制语句也采用图形编程的方法,即用图形框把判断条件、循环体框起来,再加以不同的特性说明。有人认为这种编程方法可使从来没有编程经验的用户避免学习编程语言的麻烦,并认为是编程语言发展的趋势。但也有人认为,如果完全没有编程经验,要很好地理解那些条件、循环、嵌套过程以及处理出/入口参数也不比学习一种语言更容易。特别是对大型的应用程序,尽管可以分层设计,但考虑总体设计和分块调试都还存在一些问题。惠普公司推出的HP VEE同NI的LabView很相似,它也是一种基于图形的编程语言,它所提供的函数库的功能和种类也同NI的软件相似。

图1-8 图形编程软件的开发工具

ComponentWorks是NI公司推出的另一种虚拟仪器工具,与上述软件不同,它不是一个独立的集成开发环境,而是提供一系列支持测试功能的控件集合,这些控件可以很方便地加入到VB等语言开发环境中,这样用户可以用熟悉的语言来开发自己的自动测试系统。

ATS98是在国家95科技攻关项目支持下建立的一种开发工具,它以Microsoft Windows下的ActiveX技术为基础,通过标准的VB控件、Windows DLL动态连接库函数和其他VB模块,组成方便用户使用的各种虚拟仪器功能,并通过一个编程指导器将其和VB开发环境有机地结合起来。ATS98软件工具的使用分为3个层次,首先对从事自动测试工作的工程师,可以利用这种软件工具提供的用户接口虚拟仪器控件迅速建立起测试系统的计算机可控操作界面;利用其总线接口虚拟仪器库函数操作GPIB和VXI仪器的硬件功能;利用其分析计算虚拟仪器库函数实现数据的处理;同时也可在其虚拟仪器辅助函数的支持下,实现诸如多媒体操作、数据库/电子表格处理、网络通信等PC系统功能的自然调用。从而极大地提高了软件开发的效率和程序运行水平。其次,对一般仪器使用者,可以利用这种软件工具的典型虚拟仪器面板,像使用普通仪器那样,在计算机屏幕上,通过操作鼠标器控制诸如数字仪表、示波器、信号发生器、频谱分析仪、逻辑分析仪等虚拟仪器面板,读取测试结果,并可直接存盘、打印、联网,实现资源共享。最后,对专门行业的测试任务,可以利用这种软件工具的上层专业框架功能,建立诸如数据采集、系统辨识、决策处理等以自动测试与信息处理为基础的自动化专业系统。这里,数据采集器是现代测试工作的基础,大多数测试任务都可以利用它来实现;系统辨识机将测试工作由对独立参数的量值测量发展到对动态过程的特性测试;基于知识的决策器则把测试进一步与专家系统结合起来。