4 关键技术
(1)COM技术
COM技术的核心是组件,组件是可以明确辨识和管理、可以提供某项服务的自包含的软件模块。它封装了一定的数据(属性)和方法(函数),并提供特定接口。开发人员通过访问这些特定接口来使用组件,与其它程序模块通信、交互,实现预期功能。组件是实现仪器驱动器语言、平台无关和网络位置透明的关键技术。
基于组件技术的驱动器模块通过标准接口与其它软件模块通信,各个组件就像挂在“中总线”上一样通过公共通道传递信息。基于此,编程人员可以象“搭积木”似的开发自己的测试程序。更换仪器后,只要驱动器接口不变就不用更改测试程序。使用驱动器组件得仪器模拟的互换性、测试软件的开放性和可重用性得到了根本保证,同时实现了软件开发和应用的不断“迭代和增量”过程。
(2)多线程技术
同步、触发、时序操作是仪器控制的客观要求,而多线程技术是满足这一要求的关键技术。Windows操作系统是一个多任务、多线程操作系统,实行的是抢先式、多任务工作模式。在Windows环境中,每一个测试项目可以由一个线程来代表,这意味着一个测试程序可以同时完成多个测试任务。在多线程招待中系统会根据线程的优先级和同步要求分配时间单元用于执行多个线程,这样实现了多任务分时占用CPU,可在一个段时间内并行完成多个测试任务。多任务、多线程之间通过同步、通信(如共享内存映射文件、访问共享数据以及使用同一消息队列等)以实现复杂的测试、控制逻辑。
(3)引擎技术
测试程序的仪器操作过程是TPS利用驱动器控制硬件仪器的过程。为了优化这一控制过程,需要引擎技术,把软件代码的控制需求转变成实际的物理仪器操作。测试中用到的最多的同步、触发功能,若有多个同步步骤需要连接、高速触发,在这样的情况下,仅需要测试码去控制是很难满足需求的。为此,可以设计基于引擎技术的同步触发引擎,把测试需求编程一定的序列输入到相应的同步触发引擎中。依据测试程序的执行自行触发这一序列,将大大提高测试效率,满足更高的测试速率要求,使测试程序具有自主触发和时钟路由能力。另外,随着便携式、模块化、嵌入式实时环境对虚拟仪器的要求越来越迫切,还需要开发驱动器在这些不同环境下的运行时引擎,以满足各种需求。综上,引擎技术在测试领域中有很大的发展空间,应倍加重视。
(4)软件工程技术
仪器驱动器是对物理仪器的功能描述,软件工程技术将能保证驱动器设计的功能完备性。1997年由OMG(Object Management Group)发布的统一建模语言(UML,unified modeling language)和统一软件开发过程是软件工程领域中的重要成果,标示着面向对象技术走向第二代。UML支持从系统需求分析到详细设计再到系统的验证测试的全部过程,当出现问题时提供跟踪机制。使用UML会帮助设计人员在建造驱动器框架中理解模型,把握仪器的全貌和功能、部件之间的联系,防止过早地陷入各个模块细节中去,有利于提高驱动器软件的质量,缩短研制周期,降低开发费用。统一软件开发过程是用户驱动、以架构为中心、不断迭代和增量过程。基于这一过程,可以设计出功能完备、接口标准、易于升级换代的驱动器。
5 国内现状
我国在虚拟仪器驱动器研究方面取得了一定的进展:成都电子科技大学开发出了具有自主知识产权的VISA库;哈尔滨工业大学电气工程系开发的虚拟仪器软件开发平台—ATS95可以实现对VXI、GPIB等总线接口的控制;成都市1所在引起PAWS平台的同时也对面向信号的驱动器设计和平台开发做了一定研究等等。但由于我国介入虚拟仪器研究比较晚,在硬件模拟方面没有自己上规模、成系列的产品,导致了测试软件没有全面发展,很多关键技术仍处于起步阶段,在驱动器设计方面没有自己知识产权的技术规范和相关产品,仍需要很长的路要走。鉴于此,我们应该在以下方面进行努力:(1)开发自己的总线控制器,占领域虚拟仪器技术的心脏地带;(2)设计各种仪器模块产品并形成系列化,降低虚拟仪器系统的集成成本;(3)设计完备成熟的VISA库,把握自己的知识产权;(4)开展面向信号的驱动器技术研究,与国际接轨,深入研究虚拟仪器核心技术。