资源描述
百度文库 - 好好学习,天天向上
基于 LabVIEW 的仿真信号发生器的设计
摘 要
本文首先概述了信号发生器及虚拟仪器技术在国内外的发展及趋势,然后 介绍了信号发生器的相关理论,给出了信号发生器的基本原理框图,并探讨了 虚拟仪器的总线及其标准、 框架结构、 LABVIEW 开发平台。在分析本系统功能 需求的基础上, 介绍了数据采集卡、 LABVIEW 的编程模式等设计中所涉及到的 硬件和技术。本设计采用 USB6211 数据采集卡,将虚拟仪器技术用于信号发生 器的设计。该系统具有生成正弦波、方波、三角波、锯齿波的功能。
本设计是虚拟仪器模拟真实仪器的尝试。实践证明虚拟仪器是一种优秀的 解决方案,能够实现各种硬件可以完成的任务。
关键词 LabVIEW 数据采集卡 信号发生器
I
-
百度文库 - 好好学习,天天向上
Based on the simulation signal generator labview the design
ABSTRACT
This article summarizes the development and trend of the signal generator and virtual instrument at home and abroad at first. And then introduces the theory of signal generator, gives a basic block diagram of signal generator, also the frame structure and LabVIEW development platform of the virtual instrument with the inquiry of the bus’s standard. Based on the analysis of this system’s functional requirements, this article introduces the hardware and technology which involved in design of the data acquisition card and the LabVIEW’s programming modes. This design uses USB6211 data acquisition card. The virtual instrument technology has been utilized in the design of signal generator. The system has ability to produce sine wave, square wave, and triangle wave, saw tooth wave and PWM wave.
The design is an attempt of virtual instrument to simulate the reality instrument. It shows the virtual instrument is an excellent solution to achieve the task which is achieved by traditional hardware in the past.
KEY WORDS LabVIEW Data AcquisitionCards Signal Generator
目 录
II
-
百度文库 - 好好学习,天天向上
摘 要 I
ABSTRACT II
1 绪论 1
研究背景及动态 1
虚拟仪器发展前景 1
2 LabVIEW 设计的总体概述 3
LabVIEW 的介绍 3
设计的目的及其要求 4
设计的基本流程和方案 5
3 数据采集的介绍与应用 7
数据采集的系统构成 7
数据采集卡的选择 9
3.2.1 数据采集卡的主要性能指标 9
3.2.2 数据采集卡的组成 9
3.2.3 数据采集卡 USB-6211 10
数据采集的硬件的安装与配置 10
数据采集的子程序 11
模拟输入 12
3.5.1 创建虚拟通道函数 12
3.5.2 定时设定 VI 13
3.5.3 DAQmx 触发设定 VI 13
3.5.4 DAQmx 读取 VI 14
III
-
百度文库 - 好好学习,天天向上
模拟输出 15
4 虚拟仪器软件硬件的设计 17
虚拟仪器硬件平台 17
4.1.1 PC 机 17
4.1.2 I/O 接口设备 17
虚拟仪器的软件设计 19
4.2.1 LabVIEW 应用程序的构成 19
4.2.2 LabVIEW 的操作模板 20
仿真信号的生成 22
4.3.1 正弦信号的生成 22
4.3.2 方波信号的生成 23
4.3.3 三角波信号的生成 24
4.3.4 锯齿波信号的生成 26
5 系统的仿真波形生成 27
仿真实现的流程图 27
仿真波形模块的设计及生成 27
5.2.1 数字波形产生模块的基本概述 27
5.2.2 仿真信号通道设置及波形生成的设计 28
系统总程序框图的设置及其仿真图的生成 31
信号生成过程需要注意的事项 34
致 谢 36
参考文献 36
IV
-
百度文库 - 好好学习,天天向上
1 绪论
研究背景及动态
由于微电子技术、计算机技术、通信技术、网络技术的高度发展及其在电子测量 技术与仪器上的应用, 新的测试理论、 新的测试方法、 新的测试领域以及新的仪器结 构不断出现, 在许多方面已经突破了传统仪器的概念, 电子测量仪器的功能和作用已 经发生了质的变化, 其中计算机处于核心地位, 计算机软件技术和测试系统更紧密地 结合成一个有机整体,导致仪器的结构、概念和设计观点等也发生了突破性的变化。 在这种背景下,美国国家仪器公司(National Instruments)在 20 世纪 80 年代最早提 出虚拟仪器(Virtual Instrument)的概念,同时推出了用于虚拟仪器开发的工程软件 包 LabVIEW。 NI 公司宣称“The Software is the Instrument”,即“软件就是仪器”。在 这里, 计算机是虚拟仪器的核心设备, 该仪器的功能是通过软件仿真实现的。 它将传 统仪器由硬件电路实现的数据分析处理与显示功能,改由功能强大的计算机来执行, 所以计算机是其核心;当计算机与适当的 I/O 接口设备配置完毕,虚拟仪器的硬件平 台就被确定, 此后软件就成为仪器的关键部分, 这也是“软件就是仪器”之说的来由。 这意味着只要按照测量原理, 采用适当的信号分析技术与处理技术, 编制某种测量功 能的软件就可构成该种功能的测量仪器。
虚拟仪器的出现是仪器发展史上的一场革命,代表着仪器发展的最新方向和潮
流, 对科学技术的发展和工业生产的进步将产生不可估量的影响, 同时对改善高校实 验教学仪器设备,提高教学质量也是一个福音。
虚拟仪器发展前景
虚拟仪器依靠其自身的优势使它在仪器市场的竞争力不断增强。许多大型仪器公 司均在虚拟仪器市场上占有一席之地。 1988 年国际上开始有虚拟仪器产品面市,当 时只有五家制造商推出的 30 种产品。此后,虚拟仪器产品每年成倍增加,到 1994 年底,虚拟仪器制造厂已达 95 家共生产 1000 多种虚拟仪器产品,销售额达亿美元, 占整个仪器销售额 73 亿的 4%。
目前, 我国正处于科学技术和教育事业蓬勃发展的新时期, 对仪器设备的需求将
1
-
百度文库 - 好好学习,天天向上
更加强劲。虚拟仪器赖以生存的 PC 计算机近几年正以迅猛的势头席卷全国,这为虚 拟仪器的发展奠定了基础。 虚拟仪器作为传统仪器的替代品, 市场容量巨大。 据统计, 1998 年我国进口电子测量仪器台,价值 32 亿美元。据专家预测,到本世纪初我国将 有 50%的仪器为虚拟仪器[1]。
以上统计数字表明,虚拟仪器具有广阔的发展前景。但同时也应认识到,现在 我国的科技水平还相对落后, 每年需要花费大量的外汇进口电子仪器产品。 如何发展 我国自己的仪器产品, 尤其是具有广阔发展前景的虚拟仪器, 是我们应该迫切解决的 问题。
2
-
百度文库 - 好好学习,天天向上
2 LabVIEW 设计的总体概述
LabVIEW 的介绍
LabVIEW(Laboratory Virtual Instrument EngineeringWorkbench,实验室虚拟仪器 集成环境)是一种图形化的编程语言, 简称G语言, 它是由美国NI公司推出的虚拟仪器 开发平台应用LabVIEW 开发平台编制的程序称为虚拟仪器,其核心概念就是“软件 即是仪器” LabVIEW 提供了测控仪器图形化编程环境,在这个环境中提供了一种 像数据流一样的编程模式, 用户只需连接各个逻辑框即可构成程序。 它集成了与满足 GPIB、 VXI、 RS. 232和RS. 485协议的硬件及数据采集卡通讯的全部功能,同时, 它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数, 利用它可以方便地建立 自己的虚拟仪器。本文介绍一种自行开发的基于LabVIEW 的虚拟函数信号发生器, 该仪器界面设计友好,功能强大,操作方便。
自从1986年美国NI(National Instrument)公司提出虚拟仪器的概念以来, 随着计算 机技术和测量技术的发展, 虚拟仪器技术也得到很快的发展。 虚拟仪器是指: 利用现 有的PC机。加上特殊设计的仪器硬件和专用软件。形成既有普通仪器的基本功能, 又有一般仪器所没有的特殊功能的新型仪器。 与传统的仪器相比其特点主要有: 具有 更好的测量精度和可重复性:测量速度快;系统组建时间短;由用户定义仪器功能; 可扩展性强;技术更新快等。虚拟仪器以软件为核心,其软件又以美国NI公司的 LabVIEW虚拟仪器软件开发平台最为常用。 LabVIEW是一种图形化的编程语言,主 要用来开发数据采集,仪器控制及数据处理分析等软件,功能强大。目前,该开发软 件在国际测试、 测控行业比较流行, 在国内的测控领域也得到广泛应用。 函数信号发 生器是在科学研究和工程设计中广泛应用的一种通用仪器[2]。
虚拟仪器具有传统独立仪器无法比拟的优势。在高速度、高带宽和专业测试领域, 独立仪器具有无可替代的优势。 在中低档测试领域, 虚拟仪器可取代一部分独立仪器 的工作, 但完成复杂环境下的自动化测试是虚拟仪器的强项, 这是传统的独立仪器难 以胜任的。
(1) 传统仪器的面板只有一个,上面布置了种类繁多的显示和操作元件。由此 导致许多识读和操作错误。 虚拟仪器与之不同, 它可以通过在几个分面板上的操作来 实现比较复杂的功能。 这样, 在每个分面板上就可以实现功能操作的单纯化和面板布
3
-
百度文库 - 好好学习,天天向上
置的简洁化, 从而提高操作的正确性和便捷性。 同时, 虚拟仪器的面板上的显示元件 和操作元件的种类与形式不受标准元件和加工工艺的限制, 由编程来实现, 设计者可 以根据用户的要求和操作需要来设计仪器面板。
(2) 在通用硬件平台确定后,软件取代传统仪器中由硬件完成的仪器功能。
(3) 仪器的功能是由用户根据需要用软件来定义,不是事先由厂家定义的。
(4) 仪器性能的改进和功能扩展只需更新相关软件设计,不需购买新仪器。
(5) 虚拟仪器开放、灵活,与计算机同步发展,与网络及其他周边设备互联。
(6) 由于其以 PC 为核心, 使得许多数据处理的过程不必像过去那样由测试仪器
本身来完成,而是在软件的支持下,利用 PC 机 CPU 的强大的数据处理功能来完成, 使得基于虚拟仪器的测试系统的测试精度、速度大为提高,实现自动化、智能化、多 任务测量。
(7) 可方便地存贮和交换测试数据,测试结果的表达方式更加丰富多样。
(8) 虚拟仪器在高性价比的条件下,降低了系统开发和维护费用,缩短技术更 新周期。
近年来, 随着网络技术的发展, 己经形成了网络虚拟仪器。 这是一种新型的基于 Web 技术的虚拟仪器,使得虚拟仪器测试系统成为 Internet 的一部分,实现现场监控 和管理[3]。
设计的目的及其要求
函数信号发生器是一种多波形的信号源, 它能产生某些特定的周期性时间函数波 形,可在生产、测试、仪器维修和实验时做信号源使用。 LabVIEW 是一种功能强大 的虚拟仪器开发平台,在 LabVIEW 环境下可以随时对比设计要求调整参数,本课题 的目的就是利用 labVIEW 软件进行虚拟信号发生器的设计。
掌握和学习 LabVIEW 软件,了解数据采集卡的采样原理,利用 LabVIEW 软件 进行虚拟信号发生器的前面板和流程图的设计分别能产生正弦波、 三角波、 矩形波和 方波幅度为 0-5v 可调,频率 0-1kHZ 可调,并能通过示波器等其他手段进行输出显示, 并给出显示结果。
本仪器功能主要包括四类函数信号— 正弦波、方波、三角波、锯齿波的输出,频 率的倍乘与微调相结合, 以及实现输出波形的直流偏置、 电压幅度的控制等功能。 具
4
-
百度文库 - 好好学习,天天向上
体指标如如表1所示:
表1 信号发生器性能要求指标
5
-
输出波形
输出频率范围
直流偏置
方波占空比
输出波形幅度
设计的基本流程和方案
正弦波、方波、三角波、锯齿波
0~1KHZ
0-5v
0~100%
0~5V
虚拟仪器通过底层设备驱动软件与真实的仪器系统进行通讯 ,并以虚拟仪器面 板的形式在计算机屏幕上显示与真实仪器面板操作元素相对应的各种控键 . 虚拟信 号发生器可产生正弦波、方波和三角波等信号,根据需要,可调节其中面板上的控键, 改变信号的频率、幅度与相位,并可以进行数据存储 ,所有信号发生的结果都可以通 过软件设计的虚拟面板显示。
LabVIEW 的图形化程序设计是基于现代软件的面向对象技术和数据流技术而发 展起来的。 数据流程序设计表示只有在所有输入都有效时, 一个对象才开始执行, 同 样,只有当对象的功能完成以后,对象输出才有效。这样的话,互相在对象间的数据 流控制执行顺序, 执行顺序不局限于来自文本式程序设计的线性顺序, 它可以不受其 限制。 用户能够通过连接模块来快速开发自己的应用程序, 甚至能够使用多路数据通 道,实现同步操作。
与传统的文本式程序设计一样, LabVIEW 也有控制流程图功能执行的部分,它 们包括 Sequence Case Statement, For Loop, While Loop, 它们被图形化地描述成边界 结构, 像在传统的线形化程序设计中可以插入代码段一样, 可以把图标放在 LabVIEW 图形结构的界限内部。 LabVIEW 有一个图形编辑器来产生最优化的编辑代码,虚拟 仪器执行他们相当编译 C 的速度。利用应用程序生成器,用户能够产生虚拟仪器, 就像独立的执行程序一样[4] 。下面按步骤说明进行图形化的程序设计。
(1) 建立方案:选用 LabVIEW 软件,可以构建虚拟仪器而不是编写程序。有了 交互式控制的软件系统, 用户可以很方便地建立其前面板窗口。为了实现具体的功能,
用户利用向导把流程图结合在一起。
百度文库 - 好好学习,天天向上
虚 数
拟 据
仪 处
被 测 对
数 据 采
信 号 调
图 2- 1 常见虚拟仪器应用方案
(2) 建立前面板:从控制模板上选择你需要的对象,放在虚拟仪器的前面板上。 控制模板上的对象包括数字显示、表头、压力计、热敏计外壳、表、图片等。当你的 虚拟仪器完成以后, 就能在虚拟仪器工作十利用前面板去控制整个系统, 如移动滑动 片、在图象中变向、从键盘输入等。
(3) 构建图形化的流程图:对虚拟仪器进行程序设计,你不必担心很多传统设 计所需的语法细节,而可自己构建流程图。从功能模板上选择对象(用图标表示) , 并用线将它们连接起来以便数据进行传递。功能模块上的对象包括简单的数学运算、 高级数据采集和分析方法、以及网络和文件输入输出操作。
(4) 数据流程图设计: LabVIEW 用一种精巧的数据流程序设计模式把用户从文 本式语言的线形化方式构建程序的方法中解放出来。因为在 LabVIEW 软件中程序的 执行顺序由各方块中的数据流决定。你也可以建立同步操作的流程图。 LabVIEW 软 件是一个多任务系统—— 具有多线程功能并运行多个虚拟仪器。
(5) 模块化和层次: LabVIEW 虚拟仪器实行模块化设计,因而任何虚拟仪器既 能独立运行, 又能被用作其他虚拟仪器的一部分。甚至可以创建自己的虚拟仪器图标, 因而可以设计由虚拟仪器构成的多层系统, 并可以改变它, 同其他虚拟仪器交换和连 接以满足不断变化的应用需要。
(6) 图形编辑器:在许多场合,程序运行速度都很关键。 LabVIEW 软件是唯一 的带有编辑器的图形化编程环境,可以产生最优化的代码,其运行速度与编译 C 的 速度相当。利用内置的绘图器,甚至能够对时间很关键的代码部分进行分析和优化。 因而,不会因为图形化编程降低了效率。图形化程序设计编程简单、直观、开发效率 高。
6
-
百度文库 - 好好学习,天天向上
3 数据采集的介绍与应用
数据采集的系统构成
在计算机广泛应用的今天,计算机为“智能处理核心部件”的检测、控制系统在 现代化的工业生产中发挥着越来越重要的作用。 这种 “智能处理核心部件”客观上要 求我们能够将计算机与外部物理设备相连, 实现这种连接的桥梁就是数据采集, 而数 据采集系统设计的优劣将十分显著地反应出我们描述客观世界的准确性。
对于一个具体的数据采集系统,其硬件部分的设计内容包括模拟信号输入 /输出 通道的设置和数字信号输入/输出通道的设置。 NI 公司把这两种设置都归于数据采集 (Data Acquisition, DAQ )模块,熟悉该模块的功能对于我们完成数据采集系统的设 计具有重要的意义。
一个完整的数据采集系统通常由原始信号、 信号调理设备、 数据采集设备和计算 机四个部分组成。 但有的时候, 自然界中的原始物理信号并非直接可测的电信号, 所 以,我们会通过传感器将这些物理信号转换为数据采集设备可以识别的电压或电流信 号。 加入信号调理设备是因为某些输入的电信号并不便于直接进行测量, 因此需要信 号调理设备对它进行诸如放大、 滤波、 隔离等处理, 使得数据采集设备更便于对该信 号进行精确的测量。数据采集设备的作用是将模拟的电信号转换为数字信号送给计算 机进行处理, 或将计算机编辑好的数字信号转换为模拟信号输出。 计算机上安装了驱 动和应用软件, 方便我们与硬件交互, 完成采集任务, 并对采集到的数据进行后续分 析和处理[5]。
基于 PC 的数据采集系统的组成部分可分为 5 个部分:
(1) PC
(2) 传感器
(3) 信号调理
(4) 数据采集硬件
(5) 软件
7
-
百度文库 - 好好学习,天天向上
DAQ 硬件
软件
信号调理
传感器
PC
图 3- 1 基于 PC 的 DAQ 系统
DAQ 的任务就是测量或生成物理信号。一个 DAQ 系统通常具有一套用于获取、 处理原始数据,分析串岗其和转换器,信号调节及其显示,存储数据的软件。
如图给出了数据采集系统的结构。在数据采集之前,程序将对 DAQ 板初始化, 板卡上和内存中的 Buffer 是数据采集存储的中间环节。
内存
Buffer
驱
Labview
Buffer(FIFO)
程序
外触发
显示
硬件
A/D
动
图 3-2 数据采集系统结构
在给予计算机的系统测量到物理信号之前, 需要通过传感器将物理信号转换成电 信号。 为了更精确地测量信号信号调理部分能放大低电压信号, 并对信号进行隔离和 滤波。此外某些传感器需要有电压或电流激励源来生成电压输出。 DAQ 系统由软件 控制来获取数据行、分析数据并得到结论[6]。
8
-
百度文库 - 好好学习,天天向上
数据采集卡的选择
数据采集板卡的性能与众多因素相关, 要根据具体情况来具体分析。 所以在选择 数据采集卡构成系统时,首先必须对数据采集卡的性能指标有所了解。
3.2.1 数据采集卡的主要性能指标
(1) 采样频率
采样频率的高低, 决定了在一定时间内获取原始信号信息的多少, 为了能够较好 的再现原始信号, 不产生波形失真, 采样率必须要足够高才行。 根据奈奎斯特理论采 样频率至少是原信号的两倍,但实际中,一般都需要 5~10 倍。
(2) 采样方法
采集卡通常都有好几个数据通道, 如果所有的数据通道都轮流使用同一个放大器 和 A/D 转换器,要比每个通道单独使用各自的经济的多,但这仅适用于对时间不是 很重要的场合。 如果采样系统对时间要求严格, 则必须同时采集, 这就需要每个通道 都有自己的放大和 A/D 转换器。但是处于成本的考虑,现在普遍流行的是各个数据 通道公用一套放大器和 A/D 转换器。
(3) 分辨率
ADC 的位数越多,分辨率就越高,可区分的电压就越小。
(4) 电压动态范围
电压范围指 ADC 能扫描到的最高和最低电压。一般最好能够使进入采集卡的电 压范围刚好与其符合,以便利用其可靠的分辨率范围。
(5) I/O 通道数
该参数表明了数据采集卡所能够采集的最多的信号路数。
3.2.2 数据采集卡的组成
(1) 多路开关。将各路信号轮流切换至放大器的输入端,实现多参数多路信号 的分时采集。
(2) 放大器。将切换进入采集卡的信号放大至需要的量程内。通常的放大器都 是增益可调的,使用者可根据需要来选择不同的增益倍数。
9
-
百度文库 - 好好学习,天天向上
(3) 采样保持器。把采集到的信号瞬间值保持在 A/D 转换的过程中不变化。
(4) A/D 转换器。将模拟的输入信号转化为数字量输出,完成信号幅值的量化。
3.2.3 数据采集卡 USB-6211
USB-6211 是 NI 公司的一款多功能数据采集卡,是一款 USB 总线供电 M 系列 多功能 DAQ 模块,在高采样率下也能保持高精度。该模块提供了 16 路模拟输入; 250 kS/s 单通道采样率; 2 路模拟输出; 4 路数字输入线; 4 路数字输出线;每通道有 4 个可编程输入范围(± V —±10 V) ; 8 路可编程数字 I/0 口。
NI USB-6211 为移动应用或空间上有限制的应用专门设计。 其即插即用的安装最 大程度地降低了配置和设置时间, 同时它能直接与螺丝端子相连, 从而削减了成本并 简化了信号的连接。 USB 总线可以供电,使用户不再需要携带多余的外部电源。 NI-DAQmx 驱动程序和测量服务软件提供了简单易用的配置和编程界面,其中 DAQ Assistant 等功能可帮助用户缩短开发时间[7]。
基于以上原因,本设计采用了 USB6211 数据采集卡。
数据采集的硬件的安装与配置
在使用LabVIEW进行数据采集之前,必须对DAQ硬件进行正确的安装和配置, 具体过程分为以下3步。
(1) 安装N1一DAQ驱动程序: 在Windows环境下, LabVlEW安装软件会提示用户 安装NI—DAQ驱动器软件。 NI. DAQ驱动器软件为LabVIEW提供了与DAQ器件和信 号调理硬件之间的高级接口。 NI公司的全部DAQ器件都与NI-DAQ驱动器软件组装在 一起。
(2) DAQ卡的安装与配置: DAQ卡的安装需参照采集卡用户手册。 DAQ卡的配置 则可参照N1一DAQ配置向导在线帮助文件“nidaqcfg CXC”来进行,可配置DAQ卡 的设备号、模拟输入极性(单极或双极)、模拟输入模式(单端输入或差分输入)、模拟 输出极性等属性。
(3) 模拟输入通道配置: 通道配置可通过执行LabVIEW中“project”菜单的“DAQ Wizards ” 子 菜 单 里 “ DAQChannelWizards ” 命 令 来 完 成。 该 通 道 配 置 向 导 (DAQChannelWizard)是Windows环境F的应用程序,用来对包括DAQ插卡、独立DAQ
10
-
百度文库 - 好好学习,天天向上
产品以及SCXI模件等DAQ器件的模拟输入通道进行配置。通过用户渐入通道名称、 被测最物理信号的范围、所使用的传感器、传感器输出范围以及相关的 DAQ硬件等 信息, DAQ通道配置向导可确定在DAQ硬件通道上测量的物理参数[8]。
数据采集的子程序
LabVIEW的DAQ程序包括模拟输入(AnalogInput)、模拟输出(AnalogOutput)、数 字输入/输出(Digital I/0)、计数器(Counter)、标定和配置(Calibration andConfigm'afion) 以及信号调理(SignalConditioning)等6类。其中,每类又分成简单程序 (EasyFOVls) 、 中级程序(IntermediateVIs)、应用程序(UtilityVIs)和高级程序(AdvancedVIs)4类。
简单程序仅仅只是表而培接口程序,它能执行基本的模拟量输入、模拟量输出、 数字I/O以及计数器,定时器操作。它简单易用,并且包含‘个简单的出错处理方法。 当出错时, 将弹出一个对话框, 显示出错信息, 用户可以选择终止程序执行或者忽略 错误。 相对于简单程序而言, 中级程序具备更多的硬什设置功能, 使用上具有更大的 灵活性, 可以更有效地开发实用程序。 它具有许多简单程序所缺乏的功能, 如外部时 钟等。 它对出错的处理也更加灵活, 可以把出错状态信息传递给其它程序, 可以编程 处理出错情况。应用程序是中级程序的通用组合,在功能和操作上与中级程序相同。 高级程序涉及到与DAQ驱动程序的低层接口。开发实用程序时通常并不需要用到高 级程序,但当简单程序和中级程序不具备用于控制特殊 DAQ功能的输入时,可以使 用高级程序来实现。高级程序从DAQ驱动程序返旧的状态信息最多[9]。
在实用程序开发中,常用的 DAQ子程序包括模拟输入与输出、波形的输入与输 出、连续数据采集。
(1) 模拟输入与输出:模拟输入与输出是 DAQ卡的基本功能。“Analog Input” 子模板下的“AI Sample Channel”程序测量指定通道上信号的一个采样点,并返回测 量值。“Analog Output”了模板下的“AO Update Channel”程序把一个给定电压值 在一个模拟输出通道上输出。
(2) 波形的输入与输出: 在许多应用场合, 一次只采样一个数据点是远远不够的。 另外, 采样点之间的间隔很难恒定, 因为它受到多种因素的影响, 如循环的执行速度、 子程序的调用时间等。然 LabVIEW 的 DAQ 程序库提供的“AI AcquireWaveform(s)” 和“AO GenerateWaveform”程序可以以大干单点操作的速度进行多点的数据采集和
11
-
百度文库 - 好好学习,天天向上
波形生成.并且用户可咀自定义采样率。” AI AcquireWavcform(s)”程序从一个(多 个)指定的输入通道按用户定义的采样率、采样点数采集数据,并返回采样结果数据 到计算机。”AO GenerateWaveform”程序在一个模拟输出通道上以用户定义的更新 速率生成一个电压波形[10]。
模拟输入
使用 DAQmx 底层 VI 进行数据采集:
图 3-3 DAQmx 数据采集子选板
如图 3-3 所示,我们看到的所有的 DAQmx 底层驱动 VI 都能在测量 I/O 选版下 的 DAQmx 子选版下找到 包括了 I/O 端口,创建通道,读取,写入,定时,触发等 等。
3.5.1 创建虚拟通道函数
通过给出所需的目标通道名称以及物理通道连接,用来在程序中创建一个通道,
如下图3-4所示。
12
-
百度文库 - 好好学习,天天向上
图 3-4 创建虚拟通道
在MAX当中创建通道时进行的相同的设置在这个函数中均会得到设置。 当程序 操作员需要经常更换物理通道连接设置而非其他诸如终端配置或自定义缩放设置的 时候,这个创建虚拟通道 VI就非常有用了。物理通道下拉菜单被用来指定 DAQ板卡 的设备号以及实际连接信号的物理通道。通道属性节点是创建虚拟通道函数的功能扩 展, 允许您在程序当中动态改变虚拟通道的设置[11]。 举例来说, 对于一组测试我们可 用通过它来对一个通道设置一个自定义缩放之后在对另一组进行测试时可以通过属 性节点改变自定义缩放的值。
3.5.2 定时设定 VI
DAQmx 定时 VI 配置了任务、通道的采样定时以及采样模式,并在必要时自动 创建相应的缓存。如图 3-5 所示。这个多态 VI 的实例与任务中使用到的定时类型相 关联,包扩数字握手,隐式(设置持续时间而非定时)或波形(使用波形数据类型中 的 DT 元素来确定采样率)等实例。类似的定时属性节点允许您进行高级的定时属性 配置。
图 3-5 DAQmx 定时 VI
3.5.3 DAQmx 触发设定 VI
DAQmx触发VI 配置了任务、通道的触发设置。如图3-6所示。 这个多态VI的实 例包括了触发类型的设置,数字边沿开始触发模拟边沿开始触发,模拟窗开始触发, 数字边沿参考触发, 模拟边沿参考触发或是模拟窗口参考触发等等。 同样的我们会使 用触发属性节点来配置更多高级的触发设置。
13
-
百度文库 - 好好学习,天天向上
图 3-6 触发设定 VI
3.5.4 DAQmx 读取 VI
DAQmx 读取VI 从特定的任务或者通道当中读取数据,如图 3-7所示,这个VI 的多态实例会指出VI所返回的数据类型, 包括一次读取一个单点采样还是读取多点采 样, 以及从单通道读取还是从多通道中读取数据, 其相应的属性节点可以设置偏置波 形属性以及获取当前可用采样数等数据[12]。
图 3-7 DAQmx 读取 VI
图 3-8 程序完成了模拟信号的连续采集, 与使用 DAQ 助手快速 VI 不同, 这里我
们使用的都是 DAQmx 的底层驱动 VI。
图 3-8 模拟信号的连续采集
14
-
百度文库 - 好好学习,天天向上
连续采集的流程图如图 3-9 所示, 首先创建虚拟通道, 设置缓存大小, 设置定时, (必要时可以设置触发) ,开始任务,开始读取。由于我们是连续采集信号,于是我 们需要连续地读取采集到的信号。 因此我们将 DAQmx 读取 VI 放置在循环当中, 一 旦有错误发生或者用户在前面板上手动停止采集时程序会跳出 while 循环。之后使用 DAQmx 停止任务来释放相应的资源并进行简单错误处理[13]。
在连续采集当中,我们会使用一个环形缓冲区, 这个缓冲区的大小由DAQmx 定时 VI 中的SAMPLES PER CHANNEL 每通道采样来确定。如果该输入端未进行连接或 者设置的数值过小,那么NI DAQmx 驱动会根据当前的采样率来分配相应大小的缓 冲区,其具体的映射关系可以参考DAQmx 帮助。同时,在while 循环中DAQmx 读 取的输入参数 SAMPLES TO READ (每通道采样数)表示了,每次循环,我们从缓 冲中读取多少个点数的数据。为了防止缓冲区溢出, 我们必须保证读取的速率足够快。 一般我们建议SAMPLES TO READ 的值为PC 缓冲大小的1/4。
设定定时和缓存
从缓存中返回数据
开始数据采集
停止数据采集
NO
完成?
Yes
显示错误
图 3-9 模拟信号的连续采集流程图
模拟输出
对于AO,我们需要知道输出波形的频率,输出波心的频率取决于两个因素,更 新率以及缓冲中波形的周期数。我们可以用以下等式来计算我们输出信号的频率:
信号频率= 周期数 × 更新率 ÷ 缓冲中的点数 。
举例来说,我们有一个 1000点的缓冲放置了一个周期的波形,如果要以 1kHz的
15
-
百度文库 - 好好学习,天天向上
更新率来产生信号的话,那么1个周期乘以每秒一千个点更新率除以总共一千个点等 于1HZ。 如果我们使用2倍的更新率。那么, 一个周期乘以每秒2000个点除以总共1000 个点,得到2HZ的输出。如果我们在缓冲中放入两个周期的波形,那么两个周期乘以 1000个点每秒的更新率除以总共1000个点,得到输出频率为2HZ。也就是说我们可以
通过增加更新率或者缓冲中的周期数来提高输出信号的频率[14]。
图 3- 10 使用采样时钟定时的连续数据输出
16
-
百度文库 - 好好学习,天天向上
4 虚拟仪器软件硬件的设计
虚拟仪器硬件平台
4.1.1 PC 机
它是硬件平台的核心。 虚拟仪器使用的个人计算机中, 微处理器和总线成为最重 要的因素。
其中,微处理器的发展是最迅速的,它使虚拟仪器的能力得到极大地提高。 80 年代末制造的虚
展开阅读全文