java怎么拦截某个对象
547
2022-10-28
LabVIEW FPGA开发PWM接口基础应用教程
1. 应用程序概述
除了上述这些应用以外,您还可以使用LabVIEW FPGA来实现脉冲宽度调制(PWM)信号的输入和输出。PWM信号不是仅针对某一类特殊的设备的,而是可以用于各种应用中广泛的测量。本文将告诉您如何使用可重配置的I/O板卡和LabVIEW FPGA模块建立PWM接口。
在传统的方法中,我们使用计数器进行测量和生成PWM信号。然而,为了适应更广泛的计数器应用,硬件的性能和应用程序编程接口(API)做了相应的优化,因而这种优化使得通过传统计数器生成PWM信号的应用程序开发难度变大了。而LabVIEW FPGA允许您使用自定义的硬件和软件接口设计PWM I/O通道,这样就可以很容易地将它们集成到您的测试测量应用中。
2. 脉冲宽度调制
脉冲宽度调制(PWM)是一种调制方法,通过使用单个脉冲或者连续脉冲序列的宽度来对一个值进行编码。通常,一个PWM信号使用一个频率恒定且占空比可变的连续方波信号。一个方波的占空比或单个方波脉冲的宽度代表着信号值。该值定义的范围从0到1(或者从0到100%)占空比。这个PWM值对应于一个应用中设定范围的工程值,例如以RPM为单位的一个轮子的转动速度。由于PWM信号的数值范围不是无限的,因此它所对应的工程值也有限定的范围。例如,PWM值从0到1可能对应于传感器从0到8000 RPM。而大于8000的转速值则不能用这个传感器测量。
图1: 脉冲宽度调制(PWM)信号的实例
3. 简单的PWM输入
在下面的例子中,使用一个数字I/O线用来采集PWM信号,然后在FPGA上处理提取PWM值。从本质上讲,程序代码会观察相临的上升和下降边沿,并且基于边沿间的时间差,来确定脉冲宽度和脉冲周期。脉冲宽度除以脉冲周期,我们就可以得到PWM值,并从中可以导出对应的工程值。
下面的程序框图显示了一个简单PWM输入的实现方式。该VI监视数字线的下降和上升边沿,并且测量每对边沿之间的时间差。每个阶段的信号的长度被写入前面板上的簇显示控件中,可以通过上位机应用程序查询。PWM信号的频率和占空比是由上位机应用程序中高低电平持续的时间长度计算得到的。通过在上位机应用程序上进行PWM计算,我们可以减少实现该应用所需的FPGA空间,因此,我们可以在一个板卡上实现更大数量的PWM输入或者其它代码。这也减少了循环运行所需的时间,因而够测量更小的脉冲宽度和脉冲周期。
图2:一个简单的PWM输入
对于简单的PWM输入,通常可以添加一个锁存器,以增强其功能。该锁存器布尔值用于锁存输出寄存器中当前的读数。VI将一直存储数值,在上位机释放锁存器之前,都不会用新的PWM值更新寄存器。利用该功能,可以通过上位机的锁存操作来控制在特定的时间读取测量值。另一个可选的功能,是基于另一个数字信号或者触发来锁存PWM数值,如来自RTSI/PXI触发总线的脉冲信号。相比于从上位机应用程序锁存读值的方式,此功能可以更好地与外部进程同步。
图3:使用锁存器的简单PWM输入
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~