当前位置:首页 > 模拟 > 模拟
[导读]1 引言   LabVIEW(laboratory virtual instrument engineering workbench,实验室虚拟仪器工程平台)是美国ni公司(national instrument company)推出的一种基于g语言(graphics language,图形

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产品的驱动问题。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭