如果总结哪一项技术在过去50年中,对人类生活的影响最大,那肯定是计算机技术。计算机历经50年的发展,现在已经渗透到了日常生活的方方面面。似乎生活中的任何一件物品,不与计算机相结合,就无法再创新;而一旦与计算机结合在一起,则会立刻迸发出令人瞠目的活力。
传统设备与计算机的结合通常有两个方向,一是以计算机为主体,在计算机上添加某些必要硬件设备,完成传统设备的功能;二是以传统设备为基础,在其上添加计算机软硬件。以电话为例,它的发展方向:一是为计算机配备耳机、麦克风、摄像头等硬件,然后直接通过计算机进行语音、视频通讯;其二,是把外形和功能都缩减后的计算机直接安装到电话上,并在安装上相应的系统和应用软件,成为智能手机。
不论采用哪种融合方式,传统设备的功能都被革命性的增强了,而其成本却不断降低。比如说,在计算机上,可以把电话的单纯语音通话功能扩展为语音视频交流,而起每次通讯的边际成本几乎为零;时下流行的各种手机,在嵌入计算机设备后,除了用于通话,更可以用来娱乐甚至办公。这些都是传统电话所不能比拟的。
在测试测量领域,测试仪器经历了与电话及其类似的发展过程。它们或者被植入CPU、内存、安装上软件,具备了计算机的基本功能;或者被拆解开来,取其核心部件插入到计算机中去,使计算机具备测试功能。这两种发展方向都使得仪器的功能更强大,速度更快。但其区别之处在于,把仪器移植到计算机上,更多考虑的是降低成本;而把计算机移植到仪器上,则更多的是为了满足仪器小型化的需要。
在计算机运算能力强大到一定程度之后,以“虚拟”为前缀的各项技术开始纷纷出现,比如虚拟现实、虚拟机、虚拟仪器等。虚拟现实是指用计算机表现真实世界;虚拟机是指在一台计算机上模拟多台计算机;同样虚拟仪器是指在计算机上完成仪器的功能。
虚拟仪器的概念是相对于传统仪器来说的。记得以前上学做物理实验时,常常用到万用表、示波器等仪器,它们每台仪器就是一个固定的方盒子,它们所有的测量功能都在这个盒子内完成,这就是所谓的传统仪器。而进入到虚拟仪器时代,这种单一功能的方盒子开始逐渐被电脑所取代。
传统仪器的方盒子,用户看不到其内部,更无法改变其结构。因此,一台传统仪器一旦离开它生产线后,其功能和外观就固定下来了。用户只能利用一台传统仪器完成某个功能固定的测试任务。一旦测试需求改变,则必须再次购买满足新需求的仪器。
而虚拟仪器的最大优势则在于,它除了基础的信号采集部分,其它软硬件全部采用通用的计算机软硬件设备。这些通用的软硬件设备可以以低廉的价格进行升级,或者被使用者按自己意愿进行配置。比如,在虚拟仪器上,用户可以通过升级CPU来加快仪器的处理速度、可以自己编写程序来改变仪器的测试功能和交互界面。
虚拟仪器系统的软硬件结构
按照系统中各部分之间的依赖关系,可以把一套虚拟仪器系统划分成几个层次,如图 2所示。最笼统的划分方式是把虚拟仪器系统划分为软件部分和硬件部分。
虽然软件是虚拟仪器系统的主体,但硬件仍然是整个系统最基础的部分。硬件主要负责将被测量物理信号转换为二进制的数字信号数据,而软件系统一方面负责控制硬件的工作,一方面又负责对采集到的数据进行分析处理、显示和存储。
设计虚拟仪器的硬件部分时需要考虑多种因素,以下列举其中最主要的几个:
* 被测量物理信号的特性。不同的物理信号需要使用不同类型的传感器将其转换为可供电脑分析的数字电信号,而不同的传感器又需要配备不同的信号调理模块。某些早期虚拟仪器系统直接通过GPIB等总线与传统仪器相连,利用传统仪器的硬件部分转换和采集被测信号。
* 硬件技术指标。不同档次的数据采集设备可以支持的采样率、分辨率以及精度等都有差别。通常,一套系统会选取能够满足测量需要的最低级别硬件或是不超出资金预算的最高级别硬件。
* 满足应用需求。根据虚拟仪器系统工作环境的不同,需要为系统选择不同种类的运算、控制单元。比如,工作在恶劣环境下的虚拟仪器系统需要采用工业级别计算机作为载体;被放置在工业现场狭小空间内的虚拟仪器需要采用嵌入式系统;需要满足多种测量功能的虚拟仪器系统可以选用PXI机箱作为载体。
设计虚拟仪器系统的软件部分首先需要考虑的是使用何种开发平台。开发平台的选择,一要考虑系统硬件的限制,二要考虑软件开发的周期和成本。
某些硬件只支持特定的开发软件,比如某些嵌入式系统必须使用Linux操作系统和C编程语言。一般来说基于台式机的虚拟仪器系统对开发软件的支持更全面,可以选择Windows或其它操作系统,可以选择Labview、VB 、VC等各种常用编程语言。这其实也是在硬件设计时应当考虑的因素,选择虚拟仪器硬件系统的结构时,应当尽量选择有完善软件支持的硬件设备。
各种开发软件的适用场合、难易程度都不尽相同。选择一种最为广泛应用的开发语言,可以提高软件开发效率,节省开发成本,保证系统质量。
根据TIOBE公司统计的各类编程语言的使用情况,近年来Java、C、C++始终是使用的最为广泛的编程语言。但就测试测量领域来说,情况并非如此。在测控领域,使用最为广泛的编程语言是LabVIEW,它也是开发虚拟仪器系统的首选编程语言。