基于VPP规范的VXI总线模块的软件开发
行的或已经挂起的操作的状态。数据函数用来从仪器取回数据或向仪器发送数据。实用函数包括许多标准的仪器操作,例如执行复位、自检、询问驱动程序版本信息和错误处理等。
应用函数是一组面向测试的高级函数,它们指出如何使用部件函数。这些程序通过配置、触发和从仪器读取数据来完成整个测试操作,不仅提供了如何使用部件函数的有价值实例,而且当用户仅需要单一的面向测试函数接口,而不是使用单个部件函数时,它们是非常有用的。
VPP-3.2规范还给出了一组函数模板,并且要求每个仪器驱动器都必须实现这些函数。它们是:Initialize,Close,Reset,Self-Test,Error Query,Error Message,Revision Query.规范对每个函数的输入参数、输出状态和操作都做了详细的说明。
在开发仪器驱动器时,采用了两种简便的方法:一是在Lab Windows/CVI中提供了仪器驱动器的核心程序,它包括了VPP规范所要求的所有模板函数的实现,可在此基础上添加其它函数;二是根据已有的具有类似仪器功能的仪器驱动器进行改造。但首先我们都必须熟悉仪器各项功能和指令集。如果仪器是寄存器基的,通过直接读写其寄存器进行操作;如果是消息基的,则可发送ASCII码指令来控制。
开发仪器驱动器采用了自顶向下的方式,步骤如下:
①命名仪器驱动器。采用厂家名称缩写+模块号的方式命名仪器驱动器,即AMC1410,并将此名称作为每个仪器驱动器函数的前缀,这可使得多个厂家的仪器驱动器运行于同一系统中而不会发生冲突。
②定义仪器的功能和功能分类。
③创建仪器驱动器的函数树,它对应仪器的功能层次。
④对仪器驱动器的每个函数:
a.定义函数的入口参数包括变量类型、数值范围,输出状态。
b.如果采用LabWindows/CVI作为开发工具,为每个函数创建函数面板,包括面板和控制的帮助信息。
c.为每个函数写源代码。
d.调试函数源代码。
⑤为最终的仪器驱动器创建包含文件,包括函数声明和常数定义。
⑥生成仪器驱动器的动态连接库文件和入口函数库文件。
数字电压表模块的函数组织图见图2。
在开发仪器驱动器时,我们使用VISA库函数和VISA定义的数据类型。VISA是虚拟仪器软件结构的简称,是VPP规范的又一重要成果。它为不同的操作系统和不同的硬件接口提供了同一I/O软件层,无论是选用GPIB、VXI/MXI、串口或以太网接口,还是选用DOS、Windows、UNIX操作系统,都可使用相同的函数与仪器通讯,这打破了过去不同厂商的I/O接口软件互不兼容的局面,大大增强了驱动程序的可移植性。
2.3开发仪器软面板
由厂商随仪器一同发货的仪器软面板为用户提供了交互式操作仪器的图形接口,它取代传统的台式仪器的前面板,在计算机屏幕上显示用于控制仪器的各种按键、旋钮和仪器的输出信息,用鼠标和键盘进行操作。软面板有两个重要功能:一是帮助用户检验系统通讯接口和仪器是否正确配置、正常工作;二是帮助用户熟悉仪器的主要功能。
按照VPP-7规范开发的AMC1410仪器软面板,是标准的可执行文件,不依赖任何编程环境,在WIN系统框架中,在VISA库的支持下独立运行。软面板主窗口的右上部显示VXIplugplay标识,左上部标明厂家,窗口上部表明仪器名称和模块号;有一个指示灯标志是否与仪器连接,当连接时,灯为绿色;显示模块的逻辑地址。
软面板包含大部分的仪器功能控制,分为主、副窗口显示。在主窗口包括电压表的测量功能、量程和分辨率的配置,启动测量按键和测量结果显示,在副窗口设置仪器的触发、采样等其它配置和实用操作。(如图3所示)
软面板程序启动时,可根据电压表的模块号与逻辑地址自动查找相应的模块,并建立与该模块的连接,如果连接成功,则软面板的指示灯为绿色,同时显示它的逻辑地址,接下来就可以操作仪器了。
在开发软面板时,也使用了VISA库函数和数据类型,这可以增强仪器软面板的可移植性,并在与仪器通讯时,调用仪器驱动函数,可以大大减少程序的开发时间。
2.4开发知识库文件
每个符合VXIplugplay的VXI模块都应有一个知识库文件,它随仪器一同发送,或者可以在VXIplugplay系统联盟的数据库中得到。它详细描述了仪器的各项技术指标、性能,如电源、冷却需求、配置信息等。它可在购买前索取,帮助用户了解仪器的特性,又由于它的格式是严格定义了的,所以允许软件开发商据此格式创建用于系统设计、系统集成和系统验证方面的软件工具。
知识库文件是一个用ASCII字符表示的文本文件,可以在文本编辑器中创建,可在多个系统框架间移植。它的格式是基于MS-Windows的\+*.ini文件格式。在所描述的每个VXI元件的入口处用[New Reco
- VXI总线仪器系统(03-30)
- VXI总线在通用装备测试系统中的应用(07-02)
- 一种实用的VXI总线寄存器及接口电路的设计(07-23)
- 嵌入式软件设计中查找缺陷的几个技巧(03-06)
- SPARC高性能处理器集成开发环境及其编译器设计与实现(02-14)
- 基于Mobile的手机流媒体实时图像浏览客户端的软件设计(09-25)