【NI-DAQmx入门】计数器

news2025/7/28 6:08:04

1.计数器的作用

        NI产品的计数器一般来说兼容TTL信号,定义如下:0-0.8V为逻辑低电平,2~5V为高电平,0.8-2V为高阻态,最大上升下降时间为50ns。

        计数器可以感测上升沿(从逻辑低到逻辑高的转变)和下降沿(逻辑高到逻辑低)。 与感测上升沿和下降沿相关的两个重要参数是上升/下降时间和最小脉冲宽度。 上升/下降时间衡量信号从低电平转变为高电平或从高电平转变为低电平的速度。 为了使计数器能够感测边沿,转换必须发生在 50ns 或更短的时间内(如 TTL 兼容信号规范所定义)。 除了信号转换速度的时间限制之外,从计数器感测到上升沿或下降沿的时间到它可以感测到另一个上升沿或下降沿的时间之间还需要最小延迟。 该延迟称为最小脉冲宽度。 最小脉冲宽度取决于所使用的计数器芯片。

2.计数器的组成

        GATE输入端控制计数发生的时机。GATE输入类似于触发,用来开始或停止计数。

        SOURCE (CLK)输入端时测量或信号计数的时基。

        计数器的寄存器对要计数的边沿进行计数。当计数器寄存器往下计数时,计数到0停止。计数器寄存器的大小时计数器中包含的位数,寄存器计数值=2位数。

        OUT接线端输出一个脉冲或脉冲序列。


        

3. 计数器的功能

两个基本功能
  • 基于输入信号(门和源)的比较,进行计数
  • 基于输入和寄存器值,生成脉冲
其他衍生功能
  • 边沿计数,例如简单边沿计数和时间测量
  • 脉冲宽度、半周期和周期测量
  • 频率测量
  • 单脉冲和脉冲序列生成
  • 位置和速度测量

 3.1边沿计数

        边沿计数是指设备通过计数器通道计算上升或下降沿。边沿计数可选择单点或缓冲采样时钟方式。

简单边沿计数

  • 在源的指定边沿,计数增加
  • 有效边沿可改为下降沿
  • 计数器达到最终计数时将归零
  • 最终计数= 2(分辨率) – 1

边沿计数-暂停触发

  • 非缓冲
  • 门可暂停计数寄存器的增加/减小
  • 只有当门生效时,源的有效边沿将增加寄存器值

        当门信号为高或低(软件设定参数)时,计数器将增加或减小,在非有效状态时,计数器将暂停计数。

 

 

 边沿计数-带缓冲区的连续

         门上的活动边沿将当前计数器寄存器值锁存到 PC 内存中。 使用中断或 DMA(软件可配置),计数寄存器值通过 PCI 总线单独传输到软件缓冲区。 对于连续操作,软件缓冲区可以是有限的或循环的。 一旦进入软件缓冲区,这些值就会通过缓冲区读取被读入 LabVIEW

边沿计数-带缓冲区有限点

 

3.2脉冲生成 

        脉冲是指信号的幅值在短时间内从闲时值变为活动值。脉冲分为高闲时状态和低闲时状态。低闲时状态的脉冲从低值开始(通常为零),然后到脉冲高值,最后恢复低值。高闲时状态的脉冲从高值开始,然后到脉冲低值,最后恢复高值。

脉冲或脉冲序列由以下三部分组成:

  • 高电平时间-脉冲处于高电平的时间。
  • 低电平时间-脉冲处于低电平的时间。
  • 初始延迟-输出信号在未生成脉冲前处于空闲状态的时间。闲时状态通常在第一次生成脉冲时替换高值时间或低值时间,取决于闲时状态的类别。

单个脉冲生成

 脉冲序列生成

连续脉冲序列流程图
修改占空比

        使用NI-DAQmx的通道属性节点的两个输入(CO.Pulse.DutyCyc CO.Pulse.Freq)。给属性节点输入新的占空比和频率(即使它没有改变)。因为LabVIEW从上到下来执行属性节点,所以占空比必须先于频率改变(参考下面的截图)。

        当DAQmx写入VI是Counter Freq 1Chan 1Samp 设置时,同样可以使用DAQmx写入VI来改变占空比(参考下面的截图)。

下面附件中的范例使用上面两种方法实现了占空比的改变。

有限脉冲序列流程图
 
可重触发的有限点脉冲序列 

不带缓冲的脉冲序列(隐式定时) 

        

带缓冲的脉冲序列(隐式定时)

带缓冲的脉冲序列(采样时钟定时) 

 3.3脉冲测量

 脉冲宽度测量

在源的每个上升边沿,计数增加
在上升或下降沿开始计数
门宽 = (计数) × 1/ 源频率)

 

单脉冲宽度测量 

周期测量

        周期测量是指对脉冲的连续上升沿和下降沿的时间间隔进行测量。半周期测量是对两个连续边沿的时间间隔进行测量。脉冲宽度测量是对从上升沿到下降沿,或下降沿到上升沿的时间间隔进行测量。两边沿间隔测量是对一个数字信号上升沿(或下降沿)到另一个数字信号上升沿(或下降沿)的时间间隔进行测量。

在源的每个上升边沿,计数增加
在上升或下降沿开始(停止)计数
门周期 = (计数) × 1/ 源频率)

 

 单周期测量

 半周期测量

 

3.4频率测量

 计数器频率测量方法

带 1 个计数器的低频

        使用已知时基测量输入信号的一个周期。信号的频率是其周期的倒数。对于许多应用来说,具有 1 个计数器的低频是一种很好的方法。它的测量时间最短,但精度也最低,并且随着信号频率的增加,精度进一步降低。

带 2 个计数器的高频

        对于双计数器、高频方法,第二个计数器提供已知的测量时间。计数器对测量时间内出现的输入信号周期数进行计数,对结果进行平均,并在读取函数/VI中返回平均值。该方法对于高频信号来说是准确的。然而,精度随着待测量信号频率的降低而降低。

带 2 个计数器的大频率范围

        两个计数器的较大范围测量与一个计数器测量相同,但现在用户对信号进行整数除法。第二个计数器使用输入信号来创建使用已知时基测量的脉冲。结果是 VI 中设置的除数的平均值。该方法可以准确测量高频和低频信号。然而,它需要两个计数器,并且具有取决于输入信号的可变采样时间和可变误差%。

注意事项

        如果您的应用程序有足够的计数器,则只需考虑测量时间(如果适用),计算每个可用选项的预期频率的误差。最好的方法是在给定频率和测量时间(如果适用)下误差最低的方法。 

        如果您想找到每种方法中误差的数值,   NI-DAQmx帮助中的量化误差主题显示了不同输入频率下的误差,包括1个计数器的低频、2个计数器的高频、带有2个计数器的大频率范围。 2 种计数器和动态平均方法用于快速比较。您可以使用帮助主题中包含的公式或参阅设备上的用户手册以获取更多信息。 

        如果您的卡包含多个计数器,也可以使用多个计数器任务。这可以让您满足不同频率下的响应时间和精度的需求。 

        注意: 采样时钟方法不包含在量化误差主题中,因为它不依赖于输入频率。如果您需要将采样时钟计数器频率测量与任何其他方法进行比较,请参阅设备的用户手册以计算采样时钟方法误差。

3.5位置测量

        使用编码器可以测量位置,编码器的测量原理如下:

编码器的原理

        编码器是一种可以测量运动或位置的机电设备。大多数编码器使用光学传感器以脉冲序列的形式提供电信号,然后可以将其转换为运动,方向或位置。

        编码器每转通常有100到6,000个段。这意味着这些编码器可以为100段的编码器提供3.6度的分辨率,为6,000段的编码器提供0.06度的分辨率。

        线性编码器的工作原理与旋转编码器相同,不同之处在于,线性编码器不是旋转盘,而是固定不透明带,其表面上有透明缝,并且LED检测器组件固定在移动体上。


 

具有一组脉冲的编码器将无法使用,因为它无法指示旋转方向。使用两个扇区的相位相差90度的代码(图2),正交编码器的两个输出通道可同时指示旋转的位置和方向。例如,如果A引导B,则磁盘沿顺时针方向旋转。如果B领先于A,则磁盘将沿逆时针方向旋转。因此,通过同时监视脉冲数和信号A和B的相对相位,可以跟踪旋转的位置和方向。


 

此外,某些正交编码器还包括第三输出通道-称为零或参考信号-每转提供一个脉冲。您可以使用该单个脉冲来精确确定参考位置。在大多数编码器中,此信号称为Z端子或索引。

如何进行编码器测量 

要进行编码器测量,您需要一个称为计数器的基本电子组件。基于其几个输入,基本计数器会发出一个值,该值表示所计数的边沿数量(波形中从低到高的跳变)。大多数计数器具有三个相关输入-门,源和上/下。计数器对在源输入中注册的事件进行计数,并根据上/下线的状态,增加或减少计数。例如,如果上/下线为“高”,则计数器递增计数;如果为“低”,则计数器递减计数。图3显示了计数器的简化版本。


 

编码器通常需要连接到仪器的五根电线,并且根据编码器的不同,这些电线的颜色也会有所不同。您可以使用这些电线为编码器供电并读取A,B和Z信号。图4显示了增量编码器的典型引脚分配表。

下一步是确定应在何处连接这些导线。考虑到上述计数器,信号A连接到源极端子,使之成为从中计数脉冲的信号。信号B连接到上/下端子,您可以将+5 VDC和接地信号连接到任何电源-在大多数情况下,数据采集设备卡中的数字线就足够了。

计算完边缘后,您需要考虑的下一个概念是如何将这些值转换为位置。边沿计数转换为位置的过程取决于所使用的编码类型。共有三种基本的编码类型:X1,X2和X4。

X1编码

图5显示了一个正交周期以及X1编码的结果增量和减量。当通道A领先于通道B时,增量发生在通道A的上升沿。当通道B领先于通道A时,减量发生在通道A的下降沿。

X2编码

对于X2编码,行为相同,只是计数器在通道A的每个边缘上递增或递减,这取决于哪个通道领先于另一个通道。每个周期导致两个增量或减量,如图6所示。


 

X4编码

对于X4编码,计数器在通道A和B的每个边缘上类似地递增或递减。计数器是递增还是递减取决于哪个通道领先于另一个通道。每个周期导致四个增量或减量,如图7所示。


 

一旦设置了编码类型并计算了脉冲数,就可以使用以下公式之一转换为位置:



旋转位置

旋转量为

其中N =编码器每转一圈产生的脉冲数

x =编码类型

对于线性位置

排量为

其中PPI =每英寸脉冲数(每个编码器特定的参数)

将编码器连到数据采集设备

        NI 9401具有一个DSUB连接器,可为八个数字通道提供连接。每个通道都有一个数字I / O引脚,您可以将数字输入或输出设备连接到该引脚。在机箱的任何插槽中均可访问CompactDAQ机箱的四个计数器。如果使用的是cDAQ-9172,则只能通过插槽5和6来访问其两个计数器,因此请将9401插入插槽5。。


根据这些规范,导线A连接到引脚14,导线B连接到引脚17,“ 5 VDC电源”连接到设置为“高”的任何未使用的数字线路,“接地”连接到任何COM端子。

3.6缓冲事件计数

        事件计数是所有计数器操作中最基本的操作,其重点是测量源信号。它基本上通过使用软件命令轮询计数寄存器来计算到达计数器源的活动边沿的数量。因此,缓冲事件计数是事件计数的一种形式,其中门充当控制信号,将当前寄存器计数值锁存到 PC 内存中。这种测量有时被称为时间戳,因为它允许人们测量门上发生的连续事件之间的经过时间。显示了用于缓冲​​事件计数的基本计数器芯片组件。

        它使用计数器的源和门来进行操作。计数器门上的有效边沿用于将当前计数寄存器值锁存在硬件寄存器中,然后通过直接内存访问 (DMA) 或中断将其传输到预分配的 PC 内存或软件缓冲区。对于连续操作,软件缓冲区可以是有限的或循环的。一旦进入软件缓冲区,就可以在 LabVIEW 中读取这些值。门信号的作用很像采样时钟,对计数寄存器的当前值进行采样。


 

        对缓冲事件进行编程的控制流需要配置缓冲区。可以使用位于 NI 测量 → DAQmx 下功能选项板上的 DAQmx 定时功能在 DAQmx 中配置缓冲区。

        由于该函数是多态的,因此需要注意的是要修改的属性是“Sample Clock”。通过 DAQmx 定时功能,可以设置缓冲区大小、缓冲区模式、采样时钟源(栅极引脚)和采样时钟极性(栅极极性),如下图所示。

        可以将缓冲配置为有限或连续采集。在有限缓冲区事件计数中,采样模式设置为“有限采样”,将数据从预分配的 PC 内存复制到应用程序开发环境 (ADE) 内存。显示了执行有限缓冲区事件计数的 LabVIEW 程序示例。

        连续缓冲区事件计数与有限缓冲事件计数类似,不同之处在于缓冲区是在循环中读取的。同样,采样模式配置为“连续采样”。连续缓冲输入也称为循环或双缓冲输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1156510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【电源专题】POE连接方式与功率等级划分

在文章【电源专题】什么是POE?中我们讲到了:PoE(Power over Ethernet)是指通过网线传输电力的一种技术,借助现有以太网口通过网线同时为终端设备(如:IP电话、AP、IP摄像头等)进行数据…

web:[GYCTF2020]Blacklist

题目 点开靶机,页面显示为 查看源码 没有其他线索 先提交1试一下 猜测是sql注入,先测试 同时注意到url 提交为3-1,发现页面回显为空白 可以判断为字符型注入 输入select,看是否存在回显 回显了黑名单限制的关键字 但是发现没有…

第五章 I/O管理 九、磁盘的结构

目录 一、概念 二、磁盘的物理地址 1、定义: 2、图像: 如何读取一个“块”: 三、磁盘的分类 四、总结 一、概念 磁盘是由多个盘片和读写磁头组成的,每个盘片都有自己的读写磁头。盘片表面被划分成许多同心圆的磁道&#xff…

并发编程-CPU缓存架构详解 Disruptor的高性能设计方案

1.CPU缓存架构详解 1.1 CPU高速缓存概念 CPU缓存即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。CPU高 速缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数 据都…

深入了解 RocketMQ:高性能消息中间件

二、RocketMQ基本概念 2.1 消息模型(Message Model) RocketMQ主要由Producer、Broker、Consumer三部分组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息。Broker在实际部署过程中对应一台服务…

硬件知识积累 RS422接口

1. RS422 基本介绍 EIA-422(过去称为RS-422)是一系列的规定采用4线,全双工,差分传输,多点通信的数据传输协议。它采用平衡传输采用单向/非可逆,有使能端或没有使能端的传输线。和RS-485不同的是EIA-422不允…

高精度5米分辨率DEM数字高程数据

​5米分辨率DEM/DSM(无控),以多颗高分辨率卫星数据为原始数据,基于智能立体模型构建与点云密集匹配,利用网络分布式与多核并行计算技术,三维点云融合与地形提取技术,辅以智能化的人机交互编辑等手段,处理和…

Android开发知识学习——Kotlin基础

函数声明 声明函数要用用 fun 关键字,就像声明类要用 class 关键字一样 「函数参数」的「参数类型」是在「参数名」的右边 函数的「返回值」在「函数参数」右边使用 : 分隔,没有返回值时可以省略 声明没有返回值的函数: fun main(){println…

阿里云发布通义千问2.0,性能超GPT-3.5,加速追赶GPT-4

10月31日,阿里云正式发布千亿级参数大模型通义千问2.0。在10个权威测评中,通义千问2.0综合性能超过GPT-3.5,正在加速追赶GPT-4。当天,通义千问APP在各大手机应用市场正式上线,所有人都可通过APP直接体验最新模型能力。…

聊一聊B端产品和C端产品的区别

To C 和 To B 的产品究竟有什么区别?难道仅仅只是使用对象和买单者不一样嘛?刚入行的产品经理是不是傻傻分不清楚?做产品经理这么久的你是否思考过这个问题? 作为一名产品经理,也设计过To B 和 To C的产品&#xff0c…

13年测试老鸟,软件测试经验总结分享,这几年你走了多少坑...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、测试阶段划分 …

个性化医疗:数字孪生的未来之路

数字孪生技术已经成为医疗领域的一项重要创新,为医疗保障提供了全新的可能性。它基于数学、物理和计算机科学原理,通过创建数字化模型和仿真来模拟生物系统和医疗设备。 1. 个性化治疗 数字孪生技术可创建患者的个性化模型,以更好地了解疾病…

Python 自动化(十六)静态文件处理

准备工作 将不同day下的代码分目录管理,方便后续复习查阅 (testenv) [rootlocalhost projects]# ls day01 day02 (testenv) [rootlocalhost projects]# mkdir day03 (testenv) [rootlocalhost projects]# cd day03 (testenv) [rootlocalhost day03]# django-admi…

C语言 每日一题 day9

求最大值及其下标 本题要求编写程序&#xff0c;找出给定的n个数中的最大值及其对应的最小下标&#xff08;下标从0开始&#xff09;。 输入格式 : 输入在第一行中给出一个正整数n&#xff08;1 < n≤10&#xff09;。第二行输入n个整数&#xff0c;用空格分开。 输出格式 …

Nodejs和npm的使用方法和教程

Nodejs简介 Node.js 是一个开源和跨平台的 JavaScript 运行时环境。 它几乎是任何类型项目的流行工具&#xff01; &#xff08; 运行环境&#xff0c;是不是很熟悉&#xff0c;对。就是 java JRE&#xff0c;Java 运行时环境&#xff09; Node.js 在浏览器之外运行 V8 Java…

2023 CSP-J题解

T1 小苹果 题目描述 理论分析 对于第一问&#xff0c;我们按照题意模拟每天取走的是多少个苹果即可。由于每天可以取走原来的,数据范围没次会降低到&#xff0c;也就是说这样的过程的时间复杂度可以用下式表示&#xff1a; 对于本题的数据范围n<1e9&#xff0c;这个时间复杂…

PHP/MySQL开发本地服务器软件 MAMP Pro for Mac

MAMP Pro是一款专为Mac用户设计的全功能本地服务器软件&#xff0c;可以将电脑变成一个完整的Web开发环境。无论个人开发者、网站管理员还是团队协作&#xff0c;MAMP Pro都提供了强大的工具和便捷的管理方式&#xff0c;能够更加高效地构建和测试网站。 MAMP Pro的基本功能包括…

数字IC前端学习笔记:优化的基4布斯编码华莱士树乘法器

相关阅读 数字IC前端https://blog.csdn.net/weixin_45791458/category_12173698.html 本文是对前文设计的乘法器&#xff0c;即基4布斯编码华莱士树乘法器的补充和优化&#xff0c;具体关于基4布斯编码和华莱士树的内容可以从以往的文章中获得。 数字IC前端学习笔记&#xff…

信息系统项目管理师教程 第四版【第11章-项目成本管理-思维导图】

信息系统项目管理师教程 第四版【第11章-项目成本管理-思维导图】 课本里章节里所有蓝色字体的思维导图

【HarmonyOS】ArkTS学习之二级菜单的实现

【关键词】 Menu、bindMenu、ArkTS 【实现方案】 方案一&#xff1a; 1、实现代码&#xff1a; Entry Component struct MenuExample {BuildermyMenu(){Menu(){MenuItem({content: 编译 Hap(s)})MenuItem({content: 编译 APP(s)})}}BuildersubMenu(){Menu(){MenuItemGroup(…