NI的数据采集板卡提供了丰富的资源来测量PWM的占空比,例如模拟采集,数字IO和计数器。也可以使用R系列FPGA板卡和cRIO。我们可以通过以下四种方法实现占空比的测量:
(a)使用计数器测量占空比
- 最简单的解决方案是使用计数器的半周期测量。支持的计数器需要具有双边沿检测功能。支持的板卡包括M系列(STC2内核),X系列(STC3内核)数据采集卡和定时器/计数器板卡(NI-TIO内核)和部分C模块(DIO数量≤8)等。通常,32位宽的计数器都支持此测量功能。该方法通过预设半周期时间可以得到非常高精度的测量结果。您可以通过以下路径,在范例查找器中找到驱动自带的范例VI(Meas Duty Cycle - Buffered - Finite..vi): 硬件输入和输出 >> DAQmx >> 计数器测量 >> 周期或脉冲宽度 >> Meas Duty Cycle-Buffered-Finite。 (cDAQ-9174, 9178有四个计数器,每个插槽都可以使用计数器资源, cDAQ-9172中只有第5和第6个插槽可以使用计数器资源)。
- 对于具有两个24位计数器的板卡,没有双边沿检测功能。例如,PXI-6133,但可以使用脉冲宽度测量分别测量高脉冲宽度时间和低脉冲宽度时间,从而计算出占空比。您可以在范例查找器中从以下路径中找到范例VI(Meas Pulse Width-Buffered-Finite.vi): 硬件输入和输出 >> DAQmx >> 计数器测量 >> 周期或脉冲宽度 >>Meas Pulse Width-Buffered-Finite。
(b)使用模拟采集来测量占空比
该方法主要使用波形测量选板中的脉冲测量VI。根据周期性采集数据来计算占空比。该方法要求模拟采集具有足够高的采样率(脉冲频率应大于5至10倍,该值取决于占空比),以获得足够的波形信息,提高占空比测量的精度。使用软件计算占空比的一个缺点是通用的处理速度。
(c)使用cRIO测量占空比
您可以在CompactRIO平台上完成以下步骤以实现占空比测量。首先,根据C模块选择扫描接口模式,数字I/O位宽小于或等于8位。其次,选择项目中的数字输入模块(如9401)。第三步,右键单击属性配置界面,然后在专用数字配置中选择“计数器”。您可以为每个计数器配置测量模式。例如,CTR0测量高脉冲,CTR1测量低脉冲,硬件链路同时将信号连接到DIO0和DIO1。
(d)使用FPGA测量占空比
FPGA具有精确的40 MHz时钟驱动计数器资源。可以通过记录信号沿变化时刻的计数器值,计算得到PWM波的脉宽和周期,从而计算出占空比。该方案如下图所示。实际调用时,可以用模块IO替换数字IO。