如何测量PWM波 下载本文

如何测量PWM波的占空比?

硬件: Digital I/O (DIO)

问题:

PWM波是占空比可调的周期性数字脉冲,广泛应用于电机控制、温度控制等领域。PWM波的关键参数是占空比,那么有哪些方式可以测量PWM波的占空比呢?

解答:

NI的数据采集板卡提供了模拟采集、数字IO、计数器等丰富测量资源,不同资源下都能完成PWM波的测量,同时R系列的FPGA板卡和cRIO也可以测量,各种方案实现方式如下:

a) 利用计数器测量占空比

最简单的方案是采用计数器半周期测量,支持的计数器需要有双边沿分离检测的特性,支持的板卡包括 M系列(STC2核心)、X系列(STC3核心)数据采集卡、定时器/计数器板卡(NI-TIO核心)和部分C模块(DIO数目≤8)等,通常32位宽的计数器都支持该测量。该方案通过预设半周期时间可以得到非常高精度的测量结果。参考

Help/Hardware Input and Output/DAQmx/Counter Measurements/Period or Pluse Width /Meas Duty Cycle-Buffered-Finite.vi。(cDAQ 9174,9178有四个计数器,每个槽都可以使用计数器资源,而cDAQ-9172只有5槽和6槽可以使用计数器资源)

图1 一个计数器测量占空比

对于带2个24位计数器的板卡,不具有双边沿分离检测,如PXI-6133,可以采用脉冲宽度测量,分别测量高脉宽时间和低脉宽时间,从而计算占空比。参考

Help/Hardware Input and Output/DAQmx/Counter Measurements/Period or Pluse Width / Meas Pulse Width-Buffered-Finite.vi。

图2 两个计数器测量占空比

b) 利用模拟采集测量占空比

该方案主要使用波形测量选板中的脉冲测量VI,可以根据周期性的采集数据计算占空比。要求模拟采集有足够高的采样率(5~10倍以上脉冲频率,根据占空比而定)才能获取足够的波形信息,来提高占空比测量精度。这种通过软件来计算占空比的方式,处理速度一般。

图3 模拟采集测量占空比

c) cRIO上如何实现占空比测量

CompactRIO平台上,针对数字IO位宽小于等于8位的C模块,选择Scan Interface模式,项目中选择数字输入模块(如9401),右键打开属性配置界面,选择专用数字配置中的‘计数器’,可以配置每个计数器的测量模式,例如CTR0测量高脉冲,CTR1测量低脉冲,硬件连线上将信号同时连至DIO0和DIO1,即可实现占空比测量。

图4 C模块配置方式

图5 cRIO占空比测量程序

d) 利用FPGA测量占空比

FPGA上有精确的40MHz时钟驱动的计数器资源,通过记录信号沿变化时刻的计数器值可以计算得到PWM波的脉宽和周期,从而计算出占空比。由于LabVIEW2012之前的FPGA程序不支持浮点运算,所以占空比计算需要放在RT程序或者上位机程序

中。图6所示的程序即为FPGA占空比测量程序,实际调用时可将Digital In换成模块IO。

图6 FPGA占空比测量程序

附件:

PWM Measure Program.rar CVI_Cous Meas Duty Cycle Demo.rar 有哪些方式可以实现PWM波的输出

主要软件:

主要软件版本: 2011 主要软件修正版本: N/A 次要软件: N/A

问题: 有哪些方式可以实现PWM波的输出 解答:

PWM波即占空比可调的周期性数字脉冲,其应用非常广泛。那么有哪些方式可以输出PWM波呢?

(1)最简单的就是使用X系列数据采集卡63xx(NI-TIO核心)脉冲输出——频率模式,参考:Help/Hardware Input and Output/DAQmx/Generating Digital Pulses/Gen Dig Pulse Train-Buff-Implicit-Cont.vi,在DAQmx Read函数中可以一次性将预定义的Duty Cycle和Frequency写入: