LabVIEW编程LabVIEW开发高级数据采集技术 模拟波形的生成 例程与相关资料
不少多功能DAQ设备都配有模拟输出通道,能够为了生成连续的模拟波形而需要用到FIFO缓冲。生成的波形可将FIFO用作循环缓冲区,且无需从主机处接受任何更新数据,即可连续不断地重新生成一系列的模拟值。通信总线的有无对此影响不大,因为并没有针对设备的频繁数据读写。而如果波形需要修改,就必须重新启动输出任务并向FIFO写入新数据。另一个办法是向硬件FIFO设备连续读写数据,而这又会导致输出任务出现时滞。借助智能DAQ,用户能够将波形输出结果存储于硬件,甚至能够通过硬件触发改变波形,进而创建任意波形发生器。
下方的函数发生器范例通过数字输入线,触发了输出波形中的改动。通过组合数字I/O线0与1,即可取得应用于模拟输出的4种不同状态或称条件。
图a.配有智能DAQ条件0的函数发生器–零输出
图b.配有智能DAQ条件1的函数发生器–正弦波
当两线皆呈现低电平时,执行条件0;如图a所示,输出值为0V常量。而当DIO线0呈现高电平而DIO线1呈现低电平时,条件1将在模拟输出0上执行并生成一个正弦波。用户可通过该正弦生成结构(图b)中的正弦发生器Express VI,配置NILabVIEW FPGA必需的参数,交互地配置正弦波。
图c. 配有智能DAQ条件2的函数发生器 – 方波
条件2(图c)能够在While循环的每轮迭代中,轻松切换布尔值。数值较低时,整数15000便被写入模拟输出AO0,以对应16位DAC内由输出寄存器存放的数值:15000。16位有符号整数可以包含-32768到32767之间的数值。当输出电压范围介于-10V和10V时,向模拟输出AO0写入-32768会生成-10V电压,而写入32767则生成10V电压。该例中,因我们的写入值为15000,则生成的电压将低于5V。(数学公式为:15000/32767*10V=4.5778V)通常,条件2会输出一个在0V和4.578V之间变换的方波。
图d.配有智能DAQ条件3的函数发生器–锯齿波
当DIO0和DIO1均呈现高电平时,便执行最后一个条件(图d);其间,须借助查找表(LUT)连续生成一个锯齿波。作为另一类ExpressVI的查表VI,既能存储任意波形值,也能通过编程建立波形值的索引。该例中,接受配置的锯齿波可在模拟输出通道0上生成。
通过将所有的值都存储在FPGA上,用户在降低总线依赖性的同时,也确保了波形更新时硬件定时的速度和可靠性。之前各部分中所描述的模拟输入的触发和同步灵活性同样适用于模拟输出;借助智能DAQ,用户能够以不同速率,完全独立地更新各路模拟输出通道。 这意味着:用户可在不影响其他通道输出结果的前提下,修改单个周期性波形的频率。请注意:大多数数据采集硬件均不具备此项功能。
程序如下附件所示。
相关资料说明,如下所示。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
文字内容均在附件Word中,同时上文中提到的例子和资料,均在word中的附件里,可点击下载。登录www.bjcyck.com可以查看更多详细信息。这里只是简略的介绍,有任何关于LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序相关问题,请与我们联系。