论文部分内容阅读
随着计算机技术尤其是互联网的发展,将以太网应用于测试测量系统的LXI总线已成为仪器界关注和研究的热点。组建LXI接口的自动测试系统,将传统的GPIB、VXI、PXI仪器纳入LXI系统中,充分利用传统仪器的功能、实现远程网络化测量与控制等已成为一种新的趋势。而LXI接口自动测试系统的关键在于虚拟仪器软件架构(VISA库)的设计上,为了控制标准LXI设备以及通过实验室研制的LXI-VXI适配器和LXI-GPIB适配器控制VXI和GPIB设备,本文在Windows操作系统上采用标准C语言开发了一套LXI接口VISA库,并以动态链接库的形式进行发布。VISA的整体架构设计,尤其是其内部各种数据结构的设计,是后续VISA接口函数实现的基础,直接关系到VISA库的运行效率。根据VISA的结构特点,本文设计了资源结构、会话结构、查找列表、事件结构等数据结构用于表征系统中的硬件资源及用户层交互信息。资源结构表征实际的硬件资源信息,采用了数组形式表征以及共享内存方式存储以便实现多进程的数据共享和交互。会话结构、查找列表、事件结构等数据结构用于应用程序与VISA库进行数据互动,出于高效查找和节省内存空间等因素的考虑,选用了链表形式表征。资源管理器在VISA库扮演了极其重要的角色,负责组织和管理系统的各类软硬件资源,其设计过程中主要有VXI-11网络设备发现以及VXI A24/A32地址空间分配等关键技术。VXI-11网络设备发现的实现基于开放源代码的oncrpc库,本文设计了VXI-11的RPC调用和回复网络数据包格式,给出了具体的参数设置和开发流程。资源管理器对系统中存在的VXI A24/A32地址空间了进行分配,并将结果写入VXI模块相应的寄存器中,从而使该类设备可使用A24/A32地址空间进行大范围寻址。VISA接口函数是最终呈现给用户的统一的标准函数,本文根据VISA规范实现了其中的大部分并给出了相应的关键技术。本文实现的VISA接口函数包括基本的资源打开/关闭、资源查找、基本I/O操作、格式化I/O操作和存储器I/O操作等,此外还设计了VISA库的若干高级功能如属性控制、资源锁定以及事件机制。VISA事件机制是VISA库设计过程中较为关键的部分,本文采用多线程的方法加以实现,方便简洁而且运行效率较高。为了验证本文VISA库的正确性和合理性,本文在Microsoft Visual Studio和NI LabWindows CVI等VISA应用程序常用的开发环境中对LXI、VXI、GPIB等设备进行了测试。首先测试了VISA库主要函数的功能,而后针对三种不同总线接口仪器进行了仪器级的测试,最后将多个LXI、VXI、GPIB搭建了一个测试系统以考察VISA的整体性能。测试结果表明,本文设计的LXI接口VISA库可高效地控制LXI、VXI和GPIB设备,与其他厂商的VISA具有高度可互换性,实现了VISA应用程序的无缝移植,符合VPP标准,达到设计目的与要求。