LabVIEW中的I/O接口设备驱动

发布者:Qinghua2022最新更新时间:2019-11-25 来源: eepw关键字:LabVIEW  I  O接口  设备驱动 手机看文章 扫描二维码
随时随地手机看文章

1 引言


  labview(laboratory virtual instrument engineering workbench,实验室虚拟仪器工程平台)是美国ni公司(national instrument company)推出的一种基于g语言(graphics language,图形化编程语言)的虚拟仪器开发平台。labview以其在数据采集、信号处理等方面的突出优势已经在测控领域获得了广泛应用。虚拟仪器系统的硬件平台由i/o接口设备和计算机构成(如图1所示),i/o接口设备是对外获取信号的通道,为了能使计算机能够对i/o接口设备有效地进行控制,就要考虑系统中i/o接口设备的驱动问题。

图1 虚拟仪器的硬件构成

  在labview中,用软件驱动i/o接口设备,可分以下两种情况:

  (1) labview支持的io设备的驱动

  ni公司是以研制开发先进的i/o产品起家的,因此,ni在推出labview时已经考虑到了自家产品在labview中的的驱动问题,提供了专用的子vi形式的驱动程序库,图2是用作模拟输入的驱动程序。

图2 模拟输入驱动程序

  labview提供了max(measurem -ent automation)软件,只要计算机中安装了device driver,当i/o设备插入计算机时就能够被自动识别,并且可以用max工具对其进行配置。图3是在计算机中插入ni公司的板卡pci-6527后启动max的画面。

图3 max自动识别ni的i/o设备

  对于这类labview直接支持的i/o设备,调用labview中的相应驱动程序模块就可以实现板卡的所有功能。

  (2) labview不支持的io设备的驱动

  ni的io产品由于有现成的驱动可供开发者使用,在使用中具有驱动方便的优势,但是价格昂贵,实际系统中很可能选择使用非ni的io设备,这类设备在ni提供的驱动程序库中没有相应的驱动程序。对于这类labview不直接支持的i/o设备,我们该如何实现对其驱动呢?

  一般i/o设备都带有dll驱动函数库以及相应的lib文件和.h头文件,而labview恰好提供了调用动态链接库的手段——clf节点(call library function,位于labview功能模板中的advanced子模板中)。基于这种状况,使用clf节点便是我们驱动此类设备的首选方法。下面以北京迪阳公司的任意波形发生卡lai200a2为例来说明clf在仪器驱动中的使用。

2 举例

  lai200a2是一款任意波形发生卡,该卡有一路波形输出,可实现正弦波、方波三角波锯齿波、ttl、白噪声、高斯噪声、梯形、指数、扫频等常规波形,用户可以设置波形的幅度、频率、偏置量等参数。lai200a2提供lai200.dll、lai200.lib、lai200.h文件供用户进行二次开发。以下简单介绍lai200.dll中的主要函数:

  (1) 板卡自检函数

  int lai200_autocheck(unsigned char *numbers,unsigned short int cardname);
功能描述:初始化板卡
入口参数:cardname: 卡地址
出口参数:numbers isa卡保留,无用。
函数返回:1,自检成功 2,自检失败

  (2) 计算规则波形数据函数

void lai200_cacuwavepara(
int wavetype,
int cycles,
double frequency,
double amplitude,
double offset,
int duty,
unsigned int *mdots,
double *mdacclk,
double *mwavedata
);
功能描述:计算规则波形数据函数
入口参数:wavetype: 波形类型
1正弦;
2方波
3 ttl
4锯齿
5三角
6白噪声
7高斯噪声
8直流。
frequency:波形频率
amplitude:幅度,0-10vpp
offset: 波形偏置量 0-2.0v
duty: 方波的占空比1~99 (%)
出口参数:
mdots:波形时钟
mdacclk:波形时钟
mwavedata:波形数据 范围:–5.0v---+5.0v

  (3) 产生波形

int lai200_genwave(
int base,
int loopmode,
unsigned int dots,
double dacclk,
double *mwavedata,
int fcidx
);
功能描述:生成自定义波形。
入口参数:
base 板卡的基地址
loopmode 0,循环 1,单次
dots: 波形的点数,0-32760点。
dacclk: 刷新率,0.5hz-10mhz
*mwavedata:波形数据
fcidx 低通滤波,0=>1mhz 1=>100khz 2=>10khz 3=>1khz
    出口参数:无

  象上面这些函数声明我们可以在设备提供的.h文件中找到,这些信息对于我们正确配置clf是至关重要的,而对clf进行正确配置是使用clf的关键。下面以波形发生卡的初始化为例详细介绍clf节点的配置过程及注意事项。

3 clf节点的配置过程及注意事项

  配置步骤:(须先添加clf节点)

  (1)在clf节点的右键菜单中选择“configure…”或直接双击节点,弹出clf节点配置对话框。点击“browse…”按钮找到动态链接库文件lai200.dll,选定后,labview会自动装载选定的dll文件,并检测dll文件中所包含的函数。按“function name”框的下拉按钮可以看到dll中所有的函数。但是labview不会自动检测函数中的参数和参数的数据类型,这需要用户根据函数的输入、输出参数手动设置。所以在调用dll文件时,要求用户对dll文件中的函数参数类型做到心中有数。

  (2) 在“function name”下拉框中选择初始化函数lai200_autocheck

  (3) “calling conventions”指的是调用dll遵从的规范,有stdcall和c两个选项,若所选函数是windows api函数,则选用stdcall;否则选用c选项。



  根据.h文件中的函数声明中各参数的形态按顺序依次添加参数并进行配置。配置完成后再根据clf节点的端子在前面板上添加控制型和指示型控件。完成的虚拟波形发生器前面板和框图程序分别如图4、5所示。

图4 波形发生器前面板

图5 波形发生器程序框图

4 结束语

  一般,i/o设备厂商都会为自己的产品提供dll形式的驱动库。通过clf节点在labview中调用动态链接库函数可以顺利解决非ni公司daq产品的驱动问题。


关键字:LabVIEW  I  O接口  设备驱动 引用地址:LabVIEW中的I/O接口设备驱动

上一篇:利用CompactRIO对低压海上变电所进行控制和测量
下一篇:用LabVIEW FPGA模块实现不同时钟域的数据连续传输

推荐阅读最新更新时间:2024-11-07 18:19

#51单片机# I2C时序初步认识和寻址模式
I2C,由PHILIIPS公司开发的两线式串行总线(SCL和SDA),是一种常用的通信协议,多用于连接微处理器及其外围芯片。 I2C的特点:1.接口方式简单。2.两条线可挂多个参与通信的器件,即多机模式。且任一器件都可作为主机(同一时刻只能有一个主机)。 相比与UART通信,I2C属于同步通信。SCL时钟线负责收发双方的时钟节拍,SDA数据线负责传输数据。 I2C的发送方和接收方都以SCL的时钟节拍为基准进行数据发送与接收。 从应用上来说,UART通信多用于板间通信,如:单片机和计算机。I2C多用于板内通信,如:单片机和E2PROM。 I2C时序初步认识 硬件上,I2C总线由SCL时钟总线和SDA数据总线两条线构成
[单片机]
#51单片机# <font color='red'>I</font>2C时序初步认识和寻址模式
I2C SPI UART串行接口对比分析
0 SPI SPI:串行外转接口,允许以全双工方式实现数据与各种外围设备高速数据传输。由3根线组成,(串行时钟)SCLK、(串行数据输出)SDO和(串行数据输入)SDI组成,当然对于多个从设备而言,会添加一根SS片选信号。SDO和SDI都是基于时钟脉冲SCLK完成数据,且是一比特比特传输。而且SCLK只能由主设备控制。 特点包括如下几点 l 采用主从方式,且由主设备控制SCLK。 l 全双工的同步方式传输数据,全双工就是指主设备发送数据时也会接收到从设备的数据。而之所以称为同步是因为传输数据必须严格根据时钟,以及时钟极性和时钟相位(CPHA)控制两个SPI设备间何时交换数据。 l 数据交换方式,之所以称为数据交换
[单片机]
<font color='red'>I</font>2C SPI UART串行<font color='red'>接口</font>对比分析
labview的深入探索----文件系列之二进制文件
二进制文件是计算机文件中最常见的文件,它占用空间最小,适合于连续存储大量数据,同时它的存储格式基本和数据在内存中的存储格式一致或者类似,很多情况下,甚至是内存的映射,因此无论是存储还是读取都是速度最快的,同时,具有非常高的安全性,如果不知道数据的格式,很难分析出文件的格式. 同文本文件一样,打开和关闭是完全相同的,不同的是写VI和读VI. 先看一个简单写的例子 上面写的是U8数组,我们知道,一个U8对应一个字节,1024个U8数组对应的文件长度应该是1024=1K,但是实际文件长度是1028=4+1024,同理,下面的是I32的数组,一个I32=4BYTE,所以文件长度应该是1024*4=4096,但是实际文件长度是
[测试测量]
<font color='red'>labview</font>的深入探索----文件系列之二进制文件
LabVIEW的创建图标
  创建VI图标就是使用图标编辑器对VI图标进行编辑。在VI图标上单击鼠标右键,从弹出的快捷菜单中选择 编辑图标 ,进入图标编辑器窗口,即可使用图标编辑工具设计修改图标。    笫1步:可以选择保留LabWEW自带的图标图形,在此基础上进行修改;也可以通过菜单选项 编辑-清除 ,清除所有图形,再在空白工作区编辑图标。       第2步:在图标编辑工具中单击前景色或背景色,通过颜色选版设置前景色或背景色,如图1所示。       笫3步:使用画笔、直线、填充、矩形、填充矩形或文本工具,在编辑区内添加前景颜色图案组成图标选择画笔直线等工具,在囡形编辑区点击或拖动可以添加前景颜色的图案,再次点击或拖动则可删除前景颜色。如图2所示。  
[测试测量]
<font color='red'>LabVIEW</font>的创建图标
基于LabVIEW的风洞数据采集与控制系统
The Challenge: 开发一个可用于飞机配置与组件的动静力测量、可用于电源设备的进气测试(即进气兼容性研究)、可用于稳定性导数评估的微震荡测试,也可用于模拟飞机失速与尾旋形成的高震荡与旋转导数的功能全面的、灵活可靠的测试系统。 The Solution: 利用NI的PXI与SCXI平台以及LabVIEW实时软件,开发一个可靠且高度精确的数据采集与控制系统。 "NI LabVIEW帮助我们实现了高达2 kHz的ESP端口切换速率,并通过缩短风洞的整个操作周期为客户节省费用。我们在压力测量中实现0.01% FS的精度。" 风洞是一种空气动力学测试设备,它用于研究物体周围的气流模式并测量作用其上的空气动力。一个典
[测试测量]
基于<font color='red'>LabVIEW</font>的风洞数据采集与控制系统
基于NI LabVIEW和PXI硬件测量发动机的测量控制系统
方案 为了开发生物质气体燃料发动机,必须清楚燃料热值和气体成分的差异如何影响发动机的运行条件。在发动机运行实验中,模拟生物质气体燃料生成器为发动机提供模拟生物质气体燃料,数据采集设备采集实验数据。采用NI LabVIEW软件和PXI硬件测量发动机和模拟生物质气体燃料生成器的每个输入输出信号。 图1 实验装置示意图 生成模拟生物质气体 7个生物质流量控制器独立监测和控制6类气体(CH4, C2H4, H2, CO, CO2和 N2)以及一罐市售13A气体的流量。因此,必须同时控制7个控制器以生成任意混合比的模拟生物质气体,这是一个复杂的过程。 所用原材料的生物质资源种类或者气化方法的不同,以及燃料生成器内温度波动而引起
[测试测量]
基于NI <font color='red'>LabVIEW</font>和PXI硬件测量发动机的测量控制系统
EVGA未能解决680i芯片问题 遭用户不满
EVGA日前称,在一些集成了Nvidious 芯片的EVGA品牌主板可能会存在BUG。 用户已经连续好几个月抱怨,使用P29-P31 BIOS的主板无法正常运行。有些用户称,集成了Nvidia芯片的主板,当激活了Adaptec BIOS时,无法初始化。 不过通常情况下是,尽管使用先前的BIOS运行良好,但是680i芯片无法识别任何扩展RAID卡。 刷新为P28 BIOS可以使用,但是用户就无法使用1333兆赫支持等其余的功能。这就意味着使用1333FSB CPUs的用户无法选择刷新BIOS。 自从去年5月以来,EVGA主板就爆出了许多的问题,但是该公司一直没有做出声明,并且也没有发布任何补丁。 很可能是EVGA和Nvidi
[焦点新闻]
STM32F10x_ 模拟I2C读写EEPROM
Ⅰ、写在前面 说到IIC,大家都应该不会陌生,我们初学单片机的时候或多或少都知道或了解过,甚至使用I2C控制过器件。但是,有多少人真正去深入理解,或者深入研究过I2C通信协议呢? 1、我们有必要学习I2C通信吗? I2C作为常见串行通信的其中一种,在嵌入式领域中占有很重要的地位。原因在于我们嵌入式开发的产品中有很多设备都是使用I2C进行通信的。我们开始学习单片机开发的时候最先接触的应该是使用I2C操作EEPROM(如AT24C08)通信,这也是典型的I2C通信例子。其实还有很多常见的I2C通信设备,如温度芯片、触摸芯片、时钟芯片等,当你工作今后或多或少都会遇到I2C通信的设备。所以,如果你有时间的话,请花一定时间去研究学习一下
[单片机]
STM32F10x_ 模拟<font color='red'>I</font>2C读写EEPROM
小广播
最新测试测量文章
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved