LabWindows/CVI仪器驱动程序的开发

1引言

在bc3192测试程序的开发过程中,最复杂的是仪器驱动程序的开发。同vxi总线间进行的每一步联系和操作,都少不了仪器驱动程序的帮助。

用labwindows/cvi(以下简称labwin)软件可以开发出仪器的驱动程序。这主要是因为labwin具有一部分通用的仪器设备驱动库。有了它们,用户可以比较容易地开发出几个系列的总线兼容设备驱动程序。如rs232仪器驱动系列、gpib仪器驱动系列、vxi总线系列驱动程序,还有一些典型的特定驱动程序的实例,如fluke45digitalmultimeter(visai/o)(fluke45数字型万用表)、hewlettpackard34401amultimeter(visa)(惠普34401a型万用表)等。

一个典型的驱动程序由4部分组成。

第一部分是主程序,主要是由*.lib,*.obj,*.dll或*.c文件组成。

第二部分是包含文件(*.h),包括函数功能的定义,常量的声明以及全局变量的声明。

第三部分是设备功能面板部分(*.fp),包括树状功能信息定义。

第四部分是由ascii码构成的帮助文件(*.doc),它包括指导用户的详细驱动程序帮助。

2仪器驱动程序的操作

对用户来说,驱动程序完成一种或多种仪器功能,整个驱动程序库由多组程序有选择地构成。在labwin的编程环境中选取仪器菜单,再从菜单中选取一个设备。这时将从屏幕中弹出一个功能面板,功能面板显示仪器的一些交互控制。函数调用自动生成的功能也随之加入整个应用程序。即使不提供功能面板,也能以手工方式进行驱动函数的调用。总地来说,设备驱动程序包括用以执行高级设备相关任务的功能函数。当用户把功能函数包含到程序中后,即使不了解设备的编程协议,也可以控制一个仪器正常运转。对它们的应用,可以在很大程度上减轻编程人员的负担。它们可以在软件开发中形成模块化,并大大提高软件的易用性和可维护性。

3labwindows/cvi开发驱动程序的优势

labwin中设备的驱动程序是比传统概念中的驱动程序更高一层的概念。他们免去了编程人员频繁地同i/o端口打交道。它是放入用户应用程序的一种高层的软件功能。它不仅完全适用于目前各种标准的仪器设备,而且可对一大批老的仪器设备提供支持。

所有的labwin应用的驱动程序,传递时在可能的情况下都伴有源码,并且很多都有完整的帮助文件。它们都是在labwin的标准开发环境下开发的,用户可以根据具体情况改造自己的程序,使它们更加强大并对自己的应用程序有更大的弹性。

开发仪器驱动程序包括外部接口模块和内部设计模块。

3.1外部接口模块

外部接口模块如图1所示。

功能主体:设备驱动的代码部分

程序员交互接口:图形化的编程助手,把交互控件状态转化为代码

程序员编程接口:调用各种函数

子程序接口:调用其它软件模块

3.2内部设计模块

内部设计模块如图2所示。

功能主体:设备驱动的代码部分。包括初始化(包括结构复位、自检等)、设置函数(用一个软件程序集来实现相应功能。各种设备都有特定的设置函数。)、动作/状态函数(动作函数使仪器开始和停止测试,状态函数可获得仪器操作当前和即将出现的状态。)、数据函数(向仪器发送和接收数据)、终结函数(终结同仪器间的连接并释放系统资源)、应用程序函数(高级面向测试和功能函数)。

4仪器驱动程序的设计

4.1设计原则

在设计之前,必须进行驱动程序结构的设计,因为如果驱动程序的结构比较明了,会使程序员设计应用程序时更有条理。

其次,一定要把设计的驱动程序基于一个已设计好的核心驱动程序(即labwin自带的驱动程序库)、或者是由一个核心驱动程序演化出来的驱动程序。

最后,以一个明确的步骤来编写你的仪器驱动程序(将在后面介绍)。

4.2设计步骤

(1)命名这个驱动程序。

(2)定义这个驱动程序的功能和类。

(3)建立一个驱动程序的功能树。在labwin中的功能树都以*.fp模式存储,并在引用时以层次化形式出现,并且在各分支功能上加帮助信息。

(4)对于程序中的每个函数:

——对于函数的参数定义包括变量类型、变量范围、错误代码等相关信息;

——在功能面板上实现新功能的创建,包括对功能面板和其中各个控件的帮助信息;

——为执行功能函数写代码;

——检验代码执行效果。

(5)为最终的设备源程序创建包含文件,包括函数定义和常量声明。

4.3两个辅助工具介绍

(1)功能树的编辑器

用图3所示的是功能树编辑器,可以灵活地添加和删除各种函数,可从各个分支进入具体的函数定义功能面板编辑器。

图4所示的功能面板编辑器,可以控件的形式描述诸如函数参数、返回值

  • LabWindows/CVI仪器驱动程序的开发已关闭评论
    A+
发布日期:2019年07月02日  所属分类:参考设计