虚拟仪器技术的飞跃
测试测量行业的一个转折点
仪器系统的发展经历了一段很长的历史。在其早期发展阶段,仪器系统指的是“纯粹”的模拟仪器测量设备,例如EEG记录系统或示波器。作为一种完全封闭的专用系统,它们包括电源、传感器、模拟至数字转换器和显示器等,并且需要手动进行设置,将数据显示到标度盘、转换器,或者采取将数据打印在纸张上等各种形式。在那个时候,如果要进一步使用数据,需要操作人员手动地将数据复写到笔记本上。由于所有的事情都必须要人工去操作,所以要对实际采集到的数据进行深入分析、或者集成复杂的/自动化的测试步骤是很复杂、甚至是不可能完成的工作。一直到80年代,那些复杂的系统,例如化学处理控制应用等,才终于不需要占用到多台独立台式仪器一起连接到一个中央控制面板,这个控制面板由一系列物理数据显示设备,例如标度盘、转换器等,以及多套开关、旋钮和按键组成,并专用于仪器的控制。
“虚拟仪器技术”这个概念缘起于20世纪70年代末。在当时微处理器技术的发展已经可以通过改变设备的软件来轻松地实现设备功能的变化,所以要在测量系统中集成分析算法已经成为可能,因此虚拟
虚拟仪器系统在早期面临着许多技术上的挑战。那个时候通用接口总线(GPIB, IEEE 488)已经成为了一种标准方式去连接仪器和计算机、将原始数据传输到计算机处理器、执行分析功能并且显示结果。不过,市场上的各个仪器厂商都使用各自的命令集来控制各自的产品,同时虚拟仪器技术的编程对于那些习惯用BASIC等文本语言来编程的专业人员来说是一个严峻的挑战。很明显,市场需要一种更高层更强大的工具,但是这个工具到底是什么,当时却并不明朗。
转机出现在1984年,那一年苹果公司推出了带有图形化功能的Macintosh计算机。较之以往键入命令行,人们通过使用鼠标和图标大大提高了创造性和工作效率,同时,Macintosh的这种图形化操作方式也激发了NI创始人之一Jeff Kodosky的灵感。
1985年6月,Jeff Kodosky领导着一组工程师开始了图形化开发环境LabVIEW的编程工作,他们的研发成果就是推出了LabVIEW 1.0版本。在20年后的今天看来,这个产品的诞生大大超越了当时业界的理念,具有深远的前瞻意义。
LabVIEW有三个图形化面板:其一,前面板,即用户界面,用来让工程师去创建交互式的测量程序,这些面板可以与实际仪器的面板非常相似,或者也可以是按照工程师们的思维创新而定义的。其二,程序框图,即代码,同样也是图形化的界面,其执行顺序由数据流来决定,这一点在软件开发中是至关重要的。最后是函数面板,顾名思义,它包括了一系列即选即用的函数库(根据virtual instruments缩写为VI),供用户在他们的测量项目中使用,能够极大地提高他们的工作效率。
初始版本发布后,让创始人Jeff Kodosky颇感惊喜的是,用户们使用这一工具开发的应用不单单局限于测试测量,并且扩展到控制、建模和仿真领域。在工程师方面,他们也受到LabVIEW这一创新工具的启发和鼓舞,因为LabVIEW的发布为不同领域的工程师开拓了创新的空间,为实现更大规模的应用提供可能,而在此之前,这些应用都是他们从未去尝试过的。至此,LabVIEW就确立了在虚拟仪器技术中的基础和核心地位。
在LabVIEW发展的同时,其他一些重要的技术也在迅猛发展中。1990年Microsoft发布了Windows 3.0图形化操作系统,处理器和半导体行业也开始蓬勃起步。在其后的20年间,我们看到PC行业呈指数级增长。例如,目前的3 GHz PC就可用来进行复杂的频域和调制分析以用于通信测试应用。回到1990年的时候,用当时的PC(Intel 386/16)处理65,000个点的FFT(快速傅立叶变换,用于频谱分析的基本测量)需要1100秒时间,而现在使用3.4GHz的P4计算机实现相同的FFT只需要约0.8秒[Ffbench, John Walker]。相应地,硬盘、显示器和总线带宽也获得了性能上的提高。新一代的高速PC总线--PCI Express能提供高达3.2 GBytes/s的带宽,从而可以基于PC架构来实现超高带宽的测量。同样的,半导体行业正不断推动技术进步、以及现成即用的商业ADC和DAC的标准,使得这些技术可以像在传统厂商定义的仪器上使用一样,在模块化仪器上得到应用,并为开放的平台提供更多的优势,在用户需求改变的情况下,让终端用户无需替换整个系统,就可以实现元件的升级,并拥有自定义配置的功能。
技术发展到这一步,虚拟仪器技术已经不再单纯是一个概念性的名词,而是成为了一个实际可行的解决方案,不但能为用户带去广泛的灵活性和可扩展性,而且可以实现成本上的节约。
虚拟仪器技术
成熟的虚拟仪器技术由三大部分组成:高效的软件编程环境、模块化仪器和一个支持模块化I/O集成的开放的硬件构架。
在这个技术日新月异的时代,虚拟仪器技术为用户带来的灵活性和可扩展性已经不再是一种奢求,而是必需。Clayton Christensen在《Innovators Dilemma》一书中是这样描述这一现象的:当一个市场领导者面临着同行/竞争对手推出更新、更先进的技术之后,他们往往就要丧失原先的领导地位了,因此技术领导者(即革新者)们也面临了新的技术革新所带来的困境。一方面,技术革新为公司赢得市场立足点,以及扩大市场份额的机会。但另一方面,随着市场的成熟,这个加速公司成长的竞争优势却难以长久维
随着产品开发时间不断缩短,带给仪器供应商的压力也越大。厂商定义的解决方案能否满足用户不断提出的新要求、新标准和新特性?
我们看到现在产品的体积越来越小,同时需要集成的特性越来越多,这就要求有更多的仪器进行测量,从而确保产品质量,因此,不同仪器I/O之间的同步变得至关重要,测量空间的因素也需要考虑在内。面对这样的情况,越来越多的工程师开始转向虚拟仪器技术这一解决方案,不单是快速发展的消费电子、通讯等市场,甚至是一贯保守的美国国防部也加入了这一行列,他们使用“综合性仪器(Synthetic Instrument)”这样相似的概念名词来预示着大规模的行业应用。在向国会提交的报告中,国防部指出:“在开发综合性仪器时,采用新近的商业化技术实时地配置仪器,从而实现各种测试功能......单个综合性仪器可以代替多个独立仪器的功能,从而减小了后勤装备的体积并解决了设备过时的问题。”[摘自2002年2月,国防部技术改进办公室向国会提交的报告]。
虚拟仪器技术,以及其他实质相似的概念,为增加灵活性、降低投资成本、提高测试系统使用寿命,同时确保可靠性等要求,提供了一个理想的解决方案。
超越测试测量范畴
工程师眼下面对的挑战与20年前的截然不同——现在已经不再是单纯的自动化方面的考虑了,而是在于复杂性。系统的复杂性急速增加,越来越多的特性功能集成到单一的设备中,并且每年不断有新技术涌现出来以确保公司在市场上的竞争力。这种复杂性的增加迫使工程师们要去尽快学习和采用新的工具应对挑战。
举两个典型的例子:多核处理器和FPGA。
多核处理器解决了传统方式下功耗的限制,并遵循摩尔定律继续推进处理器技术的发展。这种方式的光明前景让Intel在其发展蓝图上规划了2010年推出32核处理器的目标。正因为有许多应用能够从并行执行的方式中受益颇多,所以多核技术正在为工业应用带来巨大的机会。
同样的,FPGA是另一个很好的范例。虽然FPGA称不上是一个新兴技术,不过近几年来它在诸多领域得到了快速广泛的采用(如图1所示)。究其原因正是因为上文提到的行业挑战,随着产品复杂性的增加,通过编程去快速改变硬件功能的方式让工程师不再需要重新设计硬件,就可以增加额外的特性。
以上举例的这两种以及其他一些技术都可以很好地帮助工程师工作,当然其前提是他们能很快学习这些技术并使用起来。我们看到一个多年不变的原则是:工程师都需要一个创新的工具进行工作,而这个原则与20年前相呼应的是,图形化的编程方式正是这样一个理想的解决方案。自LabVIEW 1.0发布的20年间,有一系列重大升级版本的推出,每一次的升级均包括新的特性(如图2所示),但是其核心概念始终保持不变,充分表明这些创始之初即形成的核心概念的根本和强大。
与顺序的文本编程语言不同,LabVIEW结构化的数据流语言在本质上具有并行的特性,并且自1998年LabVIEW 5开始即可为多处理器机器提供预先设置的多线程支持功能。这意味着,工程师们可以将他们的程序从单核处理器转换到多核处理器机器,并且实现更快速的自动运行。LabVIEW另一个具有里程碑意义的发布是2003年的LabVIEW FPGA,LabVIEW FPGA的问世让不具备VHDL编程经验的人也同样可以进行硬件设计,并且LabVIEW数据流并行性本质上非常符合FPGA的并行电路特性。
现在,以LabVIEW为核心的虚拟仪器技术已经成为测试测量行业的主流,同时LabVIEW正在向一个更高的阶段跃进——即贯穿从设计、原型、测试到生产全过程的“图形化系统设计(Graphical System Design)”平台。
上文提及LabVIEW在本质上具有并行的特性,工程师们可以使用这些他们最熟悉的方式(例如进行建模、仿真的基于文本的数学方式,和程序框图等)进行开发。LabVIEW还支持与C代码、DLL和.NET技术的连接性。LabVIEW图形化开发平台还能实现测量的快速集成;大大减少系统的设置和配置时间,让工程师们可以将更多的精力放在应用本
结语
电子系统开发的全新时代已经到来。“图形化系统设计”带来的这一软件平台可集成多种计算模型,尽可能缩短设计过程中的实现时间。通过发布到灵活的现成硬件原型目标平台,例如NI基于FPGA的CompactRIO平台,极大地缩短了首次原型化的时间,并且减少了用来设计自定义硬件所需的时间和成本。此外,可以通过现实的I/O结果,在一个更高质量的设计中进行原型化——从而在其后的产品开发循环中避免代价昂贵的设计失误。最后,在同一个软件平台贯穿从设计到原型到最终发布目标的全过程,可以最大化地重复使用代码,并为最后的发布降低转换的复杂度。因此,借助LabVIEW,用户可以拥有一个从设计、原型到发布至嵌入式系统的完整图形化平台。