0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用LabWindows/CVI开发工具进行虚拟信号发生器的设计

电子设计 来源:郭婷 作者:电子设计 2019-06-12 08:24 次阅读

引言

20 世纪80 年代中后期,国外提出了“虚拟仪器”、“虚拟系统”的概念,随着微电子技术、计算机技术的飞速发展及其在测量与仪器上的应用,测试领域的新理论、新方法以及仪器结构不断出现,突破了传统仪器的概念,继而开创了仪器仪表的新时代——虚拟仪器。虚拟仪器技术最核心的思想就是利用计算机的硬/软件资源,使本来需要硬件实现的技术软件化(虚拟化),以便最大限度的降低系统成本,增强系统的功能和灵活性。

虚拟仪器技术的实质是利用最新的计算机技术来实现和扩展传统仪器的功能。其基本构成包括计算机、虚拟仪器软件、硬件接口模块等。在这里,硬件仅是为了解决信号的输入输出,软件才是整个系统的关键。当基本硬件确定了以后,就可以通过不同的软件实现不同的功能。虚拟仪器应用软件集成了仪器的所有采集、控制、数据分析、结果输出和用户界面等功能,使传统仪器的某些硬件甚至整个仪器都被计算机软件所代替。虚拟仪器系统的设计与实现已成为仪器产业发展的一个重要方向,代表着一起发展的最新方向和潮流,是信息技术的一个重要领域,开创了个人计算机仪器时代,是测量仪器工业发展的一个里程碑,其思想将更多地渗透到未来电子测量仪器和自动化测试技术的发展中去,有着广泛的发展和应用前景。

1 硬件组成

虚拟仪器的硬件平台主要是解决信号的输入输出,由计算机和I/O 接口设备组成的,计算机是硬件平台的核心,一般是工作站、工控机,亦可以是普通的带总线插槽的个人计算机. I/O接口设备负责被测信号的采集、调整、放大,以及A/D 转换。本文中硬件由工控机及其接口,数据采集卡和放大及滤波电路构成,其原理框图如图1 所示:

利用LabWindows/CVI开发工具进行虚拟信号发生器的设计

本设计用的数据采集设备是采用 NI 公司生产的1200 系列Lab-PC-1200,这是一种性能优良低价位适合PC 及兼容机的数据采集卡,它能够完成信号采集(A/D),数字信号模拟输出(D/A)及定时/计数功能。它具有8 个12 位模拟量输入通道, 2 个12 位模拟量输出通道, 24 个数字量I/O 接口和3 个16 位定时/计数器。Lab-PC-1200 输出的模拟信号通过滤波器进行滤波平滑、放大后即可使用。其中滤波器的选择视输出信号频率范围而定,放大倍数根据实际需要分不同的档位。

2 仪器面板设计

仪器软件开发采用的是美国 NI 公司的虚拟仪器开发环境LabWindows/CVI,它是基于C语言的半图形化软件开发平台,将使用灵活的C 语言平台与用于数据采集、分析和显示的测控专业工具有机结合起来,利用它的集成开发环境、交互式编程方法、函数面板和丰富的库函数大大增强了C 语言的功能,为熟悉C 语言的开发设计人员便于编写检测系统、自动测试系统、数据采集系统等应用软件提供的一个理想的软件开发环境。面板设计过程包括创建控件和修改控件属性两部分,设计的前面板如图 2 所示。

2.1 创建控件

用户界面共 6 个控件:两个Graph 控件,三个Ring 控件,一个Command Button.。启动CVI 在工程窗口中选择File→New→User Interface(*.uir),打开用户界面编辑窗口,在其中点右键,依次选择Graph 控件,Ring 控件和 Command Button.,依次拖放好各自位置。

2.2 修改控件属性

波形选择 Ring 控件主要是要产生几种波形选项,包括无,正弦波,三角波,锯齿波,方波。双击Ring 控件进行设置,将Label 设置为“波形选择”将Constant Name 设置为“WAVEFORM”将Callback Function 设置“WaveFormChooseCB”,然后通过Label/ValuePairs…设置Ring 控件的选择项。Graph 控件和Command Button 控件设置与Ring 控件类似。修改完成后,选择 File→Save as,保存.uir 文件,其文件名为信号发生器.uir 保存,点击Save 关闭保存文件对话框。

3 仪器程序设计

仪器的程序设计是整个虚拟仪器的核心部分,在用户完成用户界面设计后,CVI 可自动生成程序的框架以及缺醒消息处理函数,只要在这些函数中添加所需的代码即可完成程序的设计。具体操作如下:在用户界面窗口菜单中选择Code→Generate All Code,点OK 键即可进入代码编辑窗口,即可生成程序的框架,限于篇幅有限,本文只写出自己根据仪器需要自己编写的部分代码。首先在源代码窗口main 函数上方输入如下代码声明变量和函数,如

利用LabWindows/CVI开发工具进行虚拟信号发生器的设计

编写调用函数show_wave()

利用LabWindows/CVI开发工具进行虚拟信号发生器的设计

利用LabWindows/CVI开发工具进行虚拟信号发生器的设计

当点击用户界面上的波形选择时,程序将自动执行WaveFormChooseCB 函数,实现函数波形和频谱的产生并显示。

添加完成以上代码添加后,在源代码窗口里选择File→Save,以文件名信号发生器.c 保存源文件。

4 调试运行

在工程窗口中选择:Edit→Add Files To Project…→All Files,依次将前述用户界面文件,源程序代码文件以及自动生成的头文件添加到工程文件中,现在已完成信号发生器.prj。选择工程窗口Run→Debug 信号发生器_dbg.exe 执行代码,编译过程中LabWindows/CVI 会发现程序缺少ansi_c.h 引用并弹出对话框询问是否在源文件中加入引用语句,点击Yes 添加该应用文件,接着根据提示在运行前保存对文件‘信号发生器.c’的修改。

运行时,我们选择锯齿波为例,在波形选择键选中锯齿波,幅值为1.12V,频率为62.39Hz,在波形显示上得到一个锯齿波并在频谱显示上显示其频谱,如图3。

5 结论

本文通过以 LabWindows/CVI 为虚拟仪器的开发工具进行虚拟信号发生器的设计,充分利用了计算机的强大信息处理能力和LabWindows/CVI 强大的开发功能与灵活的编程手段,最终实现了虚拟信号发生器的设计,可以看出虚拟仪器给用户提供了一个充分发挥自己才能和想象力的空间,可根据用户自己的设想及要求,通过编程来设计、组建自己的仪器系统,它的灵活、开放,技术更新周期短,可随着计算机技术的发展和用户的需求进行仪器与系统的升级,在性能维护和灵活组态等多个方面有着传统仪器无法比拟的优点。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7425

    浏览量

    87719
  • 虚拟仪器
    +关注

    关注

    22

    文章

    775

    浏览量

    87288
  • 信号发生器
    +关注

    关注

    28

    文章

    1455

    浏览量

    108656
收藏 人收藏

    评论

    相关推荐

    基于Labwindows/CVI和SBS实时光网的虚拟示波器设计

    了大量硬件研制成本,大大缩短了仪器设备的开发周期。因此,一直受到测控领域人士的青睐。在虚拟示波器的设计中,我们采用Labwindows/CVI
    发表于 11-29 15:53

    怎么利用LabWindows/CVI设计实现对429信号的仿真和测试?

    本文使用目前市场上技术成熟的基于PCI接口的429收发板卡,以LabWindows/CVI作为软件开发环境,设计实现了对429信号的仿真和测试,达到了使用个人电脑完成429
    发表于 04-09 07:00

    如何利用LabWindowsCVI平台开发虚拟函数信号发生器

    虚拟仪器和LabWindowsCVI简介基于LabWindowsCVI平台开发虚拟函数
    发表于 04-25 06:17

    基于CV1任意波形发生器的整体设计

    基于CV1任意波形发生器的整体设计 Integrated Design of Arbitrary Waveform Generator Based on CV 摘要:利用LabWindows/
    发表于 01-11 12:07 31次下载

    DLL在基于LabWindows/CVI虚拟仪器中的应用

    介绍了动态链接库的概念,并根据一个具体实现的TMR 虚拟仪器系统来对VC 编写动态链接库和它与LabWindows/CVI 的集成方法加以说明。【关键词】虚拟仪器,动态链接库,
    发表于 09-01 09:23 54次下载

    cvi 8.0 下载 (NI LabWindows 电子测量)

    NI LabWindows/CVI 8.0 (电子测量): NI LabWindows CVI 8.0 最新完整版,专业强大的用于测试、测量与控制
    发表于 01-26 09:36 883次下载
    <b class='flag-5'>cvi</b> 8.0 下载 (NI <b class='flag-5'>LabWindows</b> 电子测量)

    基于LabWindows CVI虚拟示波器的设计与实现

    基于LabWindows CVI虚拟示波器的设计与实现 0 引 言   随着虚拟仪器技术的发展,采用“虚拟仪器”来取代传统仪器的新的测
    发表于 12-11 10:25 1294次阅读
    基于<b class='flag-5'>LabWindows</b> <b class='flag-5'>CVI</b><b class='flag-5'>虚拟</b>示波器的设计与实现

    NI宣布推出ANSI C开发环境LabWindows/CVI

    NI 宣布推出ANSI C开发环境LabWindows/CVI 2009  美国国家仪器有限公司(National Instruments,简称NI)近日宣布推出LabWindows
    发表于 01-16 10:27 1080次阅读

    基于labview的虚拟信号发生器的设计

    虚拟信号发生器基于labview的虚拟信号发生器的设计
    发表于 01-05 16:49 190次下载

    基于Labview的虚拟信号发生器的设计

    基于Labview的虚拟信号发生器的设计。
    发表于 01-20 16:07 149次下载

    LabWindows教程之LabWindows CVI虚拟仪器设计与应用教材免费下载

    Windows/CVI,以及利用该软件设计虚拟仪器的方法。其主要内容包括:Lab Windows/CVI开发环境,
    发表于 12-03 08:00 153次下载

    使用LabWindows CVI进行虚拟示波器设计与实现资料免费下载

    环境与软件开发平台,按步骤阐述了虚拟示波器设计和实现的过程。结果设 计实现了一个简单的虚拟示波器,可以选择波形的幅度放大系数、频率放大系数选择测试信号的通道等;被测
    发表于 06-20 17:15 17次下载
    使用<b class='flag-5'>LabWindows</b> <b class='flag-5'>CVI</b><b class='flag-5'>进行</b><b class='flag-5'>虚拟</b>示波器设计与实现资料免费下载

    LabWindows CVI在USB2. 0接口数据采集开发中的应用

    文章介绍了虚拟仪器软件LabWindows/CVI在USB2. 0接口数据采集中的应用, 阐述了利用L
    发表于 07-02 15:37 28次下载
    <b class='flag-5'>LabWindows</b> <b class='flag-5'>CVI</b>在USB2. 0接口数据采集<b class='flag-5'>器</b>在<b class='flag-5'>开发</b>中的应用

    Labwindows CVI的简介说明

    CVI全称LabWindows/CVI,是一个用于测试和测量的ANSI C开发环境,使用CVI编写测控软件,能够极大地提高工程师和科学家们的
    发表于 03-17 08:00 19次下载
    <b class='flag-5'>Labwindows</b> <b class='flag-5'>CVI</b>的简介说明

    LabWindows CVI基本学习教程

    本书主要介绍了LabWindows/CVI 6.0 下的C语言编程技术教程,主要内容有: LabWindows/CVI 6.0 的集成开发
    发表于 05-30 14:27 15次下载