日新月异的科技发展与日趋激烈的市场竞争给工程师们带来了持续的压力和挑战。其中一个挑战就是协议的多样化,比如在通讯行业中,比起十年前,目前的通讯协议几乎数不清(见图1),而且没有一个明显的主导协议,因此最终产品就需要同时实现多个协议。 产品功能的日趋集成化也是挑战之一,拿新上市的iPhone为例(见图2),它汇聚了多种功能,不仅用来通话,也可以用作MP3、PDA、数字相机等等,并且为了保持市场的竞争力,新的功能会被不断地加入。
专业研发、生产、销售:测漏机,检漏机,试漏机,测漏仪,塑料瓶装袋机,垫片冲裁入盖机,客服热线:13929416960. 基于这些挑战,测试仪器也正在经历一个基本原则的变更——从功能固定的分立仪器向着灵活的基于软件的模块化仪器架构转变,这正是NI在20多年前提出的“虚拟仪器技术”的概念。利用虚拟仪器技术的特性,可以有效地解决上述的挑战:基于软件的自定义功能使得工程师们可以针对不同的协议开发对应的测试程序;而模块化的仪器架构则可以根据不同的功能测试选用不同的模块硬件,在同一个测试平台上灵活地实现测试系统的集成。 虚拟仪器技术目前已经被应用在测试测量和自动化的各大领域,协助越来越多的工程师来创建高性能、高扩展性的测试系统。与此同时,虚拟仪器技术本身也在不断发展和创新,纵观其20多年来的发展历程,可以看到,由于虚拟仪器技术是建立在商用技术的基础之上,因此它能够将新兴发展的科学技术都融合进来,使工程师能以最迅速和便捷的方式来享用,从而创建更高性能的测试系统。PC处理器技术的发展就是一个很好的例子:在1990年,用当时的PC(Intel 386/16)处理65000个点的FFT需要1100秒时间,而现在使用3.4GHz的P4计算机实现相同的FFT只需要约0.8秒。 这些蓬勃发展着的新兴技术也是动虚拟仪器技术发展的新动力,例如PCI Express总线技术可以让更多的原始数据以更高的速度传送给PC;而多核技术则可以实现真正的并行运算,从而直线提升系统的数据处理性能;可编程逻辑门阵列(FPGA)技术则允许工程师根据不同的测试要求通过软件重新定制硬件的功能。因此,可以预见的是,这些主流的商用技术将让虚拟仪器技术向许多之前只能用昂贵的专用设备的应用领域敞开了大门。另外,纵观目前主流的商用技术,可以很明显地看到,其发展的趋势是通过并行拓扑结构来实现更高的性能。下面是几种新兴技术实例: PCI Express总线技术 传统仪器由于将数据处理和分析的过程放在了仪器硬件内部,因此它只能返回一个结果值,这种方式虽然方便,但是却无法满足之前已经叙述过的灵活性的要求。因此,一个更好的测试方式就是直接得到原始数据,再使用专业的分析工具来分析数据,这种方式可以允许工程师们对原始数据进行多次的分析,从而不再需要做多次测试来获得不同的分析结果,节省了时间和成本。 然而,随着采样率的不断提高和通道数的增多,现有的总线带宽能否进行原始数据的实时读取,这是实现很多新兴测试应用之前就需要解决的问题。 现有的PCI总线的数据传达吞吐率可以高达132兆/秒,这个相比其他总线已经属于相当高了,并且还具有最低的延时(图3)。然而它是一个共享资源的总线,也就是说,当多个设备同时在总线上传输数据时,每个设备可享受的带宽会成比例地降低。随着I/O速度和应用要求的提高,这样的架构成为了瓶颈。而新一代的PCI Express技术,它运用了点对点总线的拓扑架构,使每个仪器可以通过独立的通道向处理器传输数据,明显地改善了传输数据的带宽,对内存的需求最少,并加快了数据流的传输(图4)。
总言之,PCI Express技术的诞生使得虚拟仪器技术可以实现对于数据吞吐率有高要求的应用,例如汽车碰撞测试的高速图像采集或高速数字I/O应用等等。
PCI Express技术提高了总线带宽和数据吞吐率,使得工程师可以获得原始数据,并通过专业的分析工具拿到可靠的测试结果。不过近年的数据量快速增长,导致对这些数据进行处理和分析成为摆在工程师们面前的又一个问题。 多核处理器技术能够提高传统的测试算法的运行速度,Intel已经许诺了在2011年会推出80个芯核的CPU。但是不同于以往的单核,为了实现性能的提高,开发人员需要在应用软件里配置线程。从图7中可以看到,即使是在四核的处理器上,如果其应用只是单线程的话,操作系统仍旧会将所有的任务分配到其中的一个核上运行。可见,为了实现在多核处理器上程序性能的提升,就必须将你的应用程序分成多个线程,再由OS协调分配在不同的核上运行,这样才能最大限度的利用多核处理器并行的优势来提升性能。
而NI LabVIEW,就非常适合于创建并行的多线程应用。首先,相比文本编程语言的至上而下的顺序结构,LabVIEW本身就是一种并行的编程结构;其次,早在LabVIEW 5.0时LabVIEW就已经支持多线程,在LabVIEW程序编写完毕后,LabVIEW编译器可以自动地识别线程并创建线程到不同的任务和循环上,再由OS分配到不同的核上运行(图8)。而最新的LabVIEW 8.5更针对多核技术进行了全面的支持;此外,在实时操作系统中,用户还可以自己分配特定的线程在特定的核上运行,如图9所示。
因此说,多核处理器使用了并行拓扑架构可以提高处理能力,但利用真正的多线程编程语言,如LabVIEW,才可以轻松实现运算性能的真正提高。 FPGA技术 虚拟仪器技术最初的一个重要特性就是可以使用软件来定制硬件的功能。随着LabVIEW作为并行化的编程语言的地位逐渐稳固,它的应用也得到了不断的扩展,并对强大的并行硬件技术FPGA提供了强有力的支持。 通常来说,FPGA的软件开发平台是使用VHDL语言来实现,但是这种语言需要很长的学习时间,并且也需要深厚的硬件技术背景,因此只有少数的一些专业人员掌握。随着可编程硬件的需求日益增长,FPGA已成为一种主流的技术,这种趋势需要能够有方法降低FPGA编程的门槛,从而将FPGA技术带给更多的工程师。 LabVIEW的并行化的编程方式以及图形化的编程环境可以允许工程师们能以直观的方式来实现FPGA的逻辑功能。例如,使用LabVIEW,在FPGA中实现图10所示的逻辑功能就变得相对简单。
结论 目前,虚拟仪器技术已经根植于许多领域。PCI Express总线的高带宽将虚拟仪器技术的应用范围扩展到更多新兴的应用,从而使工程师们能够在享受高通道、高采样率的好处的同时,又可根据自身需要灵活定制相关功能;利用真正的多线程编程语言,如LabVIEW,可以轻松实现多核并行运算性能的真正提高;随着LabVIEW并行化的编程语言的快速发展,工程师们可以灵活地根据待测单元、软件或者是测试需求的变化来对硬件进行重新配置,从而对FPGA提供了强有力的支持。(end) |