基于虚拟仪器与VME总线的测试软件设计
1 引言
美国NI公司提出的虚拟仪器概念,是对传统仪器概念的重大突破。所谓虚拟仪器,是将传统仪器硬件和计算机软件技术充分结合起来,以实现并扩展传统仪器的功能[1]。与传统仪器相比,虚拟仪器在智能化程度、处理能力、性能价格比、可操作性等方面均有明显的技术优势。同时VME总线是目前性能最好、应用最广的国际总线标准之一,因此,它与虚拟仪器的结合为自动测试系统提供了一个更为广阔的发展空间。
2 测试软件在VME总线上的实现
本文在VME总线上使用虚拟仪器技术,设计了一套行之有效的测试软件,实现了对BESIII主漂移室电子学测试系统的硬件调试和性能检测。
测试系统使用的SBS公司生产的VP7型嵌入式单板计算机是基于VME总线的6U主控制器。VP7集成了CPU、内存、硬盘、显示卡、USB接口、串口、并口、10/100M以太网卡接口,可以运行Windows 2000/NT/98,VxWorks,Linux,MS-DOS等操作系统,并且向 Windows操作系统提供了一套UniSDK_NT工具包。UniSDK_NT工具包的核心部分是UniAPI接口函数,采用标准C语言编写。 UniAPI实现了对VME总线的访问和控制,本设计用到的接口函数主要有:
API_RESULT VmeMasterOpen(VME_MASTER_CHANNEL *pMasterChannel);
API_RESULT VmeMasterClose(VME_MASTER_CHANNEL *pMasterChannel);
API_RESULT VmeWrite32(VME_MASTER_CHANNEL MasterChannel, U32 VmeAddress, U32 Data);
U32 VmeRead32(VME_MASTER_CHANNEL MasterChannel, U32 VmeAddress, API_RESULT* pResult)
等等。
测试软件采用Visual C++ 6.0作为调用VP7 API的开发工具,对VME总线执行读、写操作以及响应中断,并生成动态链接库(Dynamic Link Library,DLL),供上层用户程序调用。
由于需要实现参数设置、数据显示等功能,希望在测试过程中像对真实仪器一样对面板操作,测试软件使用虚拟仪器软件开发平台LabVIEW编写上层用户程序。LabVIEW作为一种图形化编程语言,它的一个极为方便之处就是提供了大量的和实际仪器控制面板类似的图形组件, 这使得界面编程极其简单, 并且在计算机上操作这些图形界面和在现实中操作实际仪器几乎完全一样。但是LabVIEW在访问底层硬件,尤其是用户自行设计的硬件方面,却不如C语言功能强大。为此LabVIEW通过DLL、共享库等途径实现了与外部程序代码相连接,将其自身无法或不易实现的任务通过能够或更适于完成此类任务的外部代码来实现[2]。该软件采用LabVIEW提供的动态链接库机制,通过调用VC++编译生成的DLL,实现对底层各功能插件的访问。调用动态链接库机制是该测试软件使用的关键技术,具体用LabVIEW功能模板中的“调用库函数节点(Call Library Function Node,CLF)”实现。
相关文章
- 2022-07-22基于MCl45026/27的病房传呼系统的研制
- 2024-02-04机械秒表测量不确定度分析
- 2023-03-13简单活塞式压力计的误差修正
- 2023-11-02电冰箱换热器以铝代铜腐蚀特性的实验研究
- 2021-11-19波特率自适应的RS-485中继器设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。