一、引言
近年来,面向仪器的软件开发平台,如美
NI公司LabVIEW的成熟和商业化,使用者在配有专用或通用插卡式硬件和软件开发平台的个
计算机上,可按自己的需求,设计和组建各种测试分析仪器和测控系统。由于LabVIEW提供的
一种适应工程技术人员思维习惯的图形化编程语言,图形界面丰富,内含大量分析处理子程序,使用十分方便,个人仪器发展到了使用者也能设计,开发的新阶段。
鉴于是工程技术人员自己编制,调用软件来开发仪器功能,软件成了仪器的关键。故人们也称
类个人仪器为虚拟仪器,称这种主要由使用者自己设计,制造仪器的技术为虚拟仪器技术(Virtual Instrumentation Technology)。使用虚拟仪器技术,开发周期短、仪器成本低、界面友好、使用方便、可靠性高, 可赋于检测仪初步智能,能共享PC机丰富的软硬件资源,是当前仪器业发展的一个重要方面。
虚拟仪器的典型形式是在台式微机系统主板扩展槽中插入各类数据采集插卡,与微机外被测信号或仪器相连,组成测试与控制系统。但NI公司出售的,直接支持LabVIEW的插卡价格十分昂贵,严重限制着人们用LabVIEW来开发各种虚拟仪器系统。在LabVIEW中如何驱动其它低价位的数据采集插卡,成为了国内许多使用者面临的关键问题。
二、三种在LabVIEW中使用国产数据采集插卡的方法
笔者将近年来工程应用中总结出的三种在LabVIEW中驱动通用数据采集插卡的方法介绍如下。介绍中,以某市售8通道12位A/D插卡为例。设插卡基地址为base=0x100,在C语言中,选择信号通道ch的指令是 _outp(base,ch),启动A/D的指令是_inp(base),采样量化后的12位二进制数的高4位存于base+2中,低8位存于base+3中。
1、直接用LabVIEW的 In Port , Out Port图标编程
LabVIEW的Functions模板内Adevanced \ Memory中的In Port 、Out Port 图标,与_inp、_outp功能相同,因此可用它们画程序方框图, 设计该A/D插卡的驱动程序。N个通道扫描,各采集n点数据的LabVIEW程序方框图如图1所示。图中用LabVIEW的计时图标控制扫描速率。

图1 N个通道扫描,各采集n点数据的程序方框图
显然,若采样速率要求较低,这不失为最方便、直观的方法,而且可随画随改。
2、用LabVIEW的CIN图标生成A/D插卡驱动程序的子VI
LabVIEW的Functions模板内Adevanced 中有一个CIN(Code InteRFace Node)图标,用来在LabVIEW程序方框图中直接调其它编程语言(如VC)写的代码。现以生成一个对指定的通道采集n点数据的LabVIEW子VI为例,其主要步骤为:

图2 CIN图标
(1)在LabVIEW下,点出CIN图标,拖大并联接入两个控件和一个显件,如图2所示。其中控件用于选择模拟信号输入通道和选择数据采集点数,数组显件显示所采集的数据。
(2)在CIN图标上单击鼠标右键弹出菜单,选Create .c file.,产生并存入一个×××.C程序框架。
(3)在VC++5.0下完成×××.C程序框架的数据采集部分的编写,编译该×××.C程序(示例见附1),生成×××.obj代码。在coustom build方式下用nmake / f ×××.lvm 指令将×××.lvm接口程序(示例见附2)编译成×××.lsb代码。
(4)在LabVIEW的CIN图标下装载×××.lsb。运行成功后将该CIN作成子VI,存入某个文件夹。
在以后的LabVIEW应用程序框图中,该子VI图标即可作此A/D插卡驱动图标使用。
若A/D插卡上有晶振作基准时钟,有可编程计数/定时器,附录1示例的C语言程序还可加入定时采集语句,以实现在子VI中选择采样速率。图3是调用按上述步骤生成的子VI编程所采集的方波信号及其自功率谱。

图3 采集的方波信号及其自功率谱
用CIN结点生成A/D插卡驱动程序的子VI的方法可较充分发挥A/D的高转换速度,获得高的采样速率。但编程较烦杂,不能由LabVIEW直接修改。

数字平板电视持续增长,可望2008年在全球的电视市场取得超过50%的份额。平板电视(包括...

如今的电子设备中所包含的软件代码量动辄达到数百万行。用不了几年,设备软件代码量又...

血压是人体重要的生理参数之一,对其进行精确测量,有利于早期发现和鉴别高血压类型,...

黄氏兄弟初到北京时物色下的珠市口的那家两层小店,本是一家国营服装厂的门市部,名叫...

HAND(汉德)系列产品作为国内领先产品,将工业市场现场仪器、仪表产品技术含量提高到...