任意波形发生高级波形排序触发

概述

在下列文档中,您将学习如何使用信号发生器通过链接和循环波形生成自定义信号,通过脚本功能生成动态波形,以及使用刻度和数据刻度事件与其他仪器同步。 

内容

NI任意波形发生简介

各种NI模块化仪器(包括任意波形发生器高速数字产品)均启用了高级波形触发和顺序功能。

现代的任意波形发生器使用深板载内存存储较大的波形。您可以使用通常称为“链接和循环”的方式按顺序生成这些波形。通过该功能,您可以按预定或动态顺序生成波形,从而创建复杂的波形序列。

图1显示了三种可在信号发生器内存中存储的独特波形。

图1:多个存储在内存中的任意波形

将这些波形存储在内存中后,可按顺序链接和循环。因此,生成会话开始前还必须将波形的顺序指令存储在内存中。NI信号发生器可将多个波形和多个顺序指令存储在板载内存中。图2显示了NI信号发生器可能占用的内存。

图2:NI信号发生器在板载内存中存储多个波形。

图2显示了存储在信号发生器上的波形会占用大量的内存。例如,以100 MS/s采样1秒的波形占用200 MB。因此,有效利用信号发生器的板载内存非常重要。事实上,使用波形链接和循环的一个优点是可在使用最小板载内存的同时生成复杂的序列。

循环

NI信号发生器提供的链接和循环选项有两种:顺序模式和脚本模式。通过序列模式,用户可配置仪器生成预定序列的波形,序列存储在板载内存中。另一方面,脚本模式更为强大,因为它可用于创建动态波形序列,生成的波形取决于硬件或软件触发的状态。此外,脚本模式使用“if/else”等条件语句实现波形序列的分支。最后,通过链接和循环模式,可配置信号发生器输出一个或多个带刻度或刻度事件功能的触发信号。

排序模式

在顺序模式下,必须配置波形序列,使每个步骤包含三个参数的信息:波形名称、循环计数和刻度位置。图3显示了典型脚本中配置的参数。

图3:波形序列中已配置的参数

使用LabVIEW中NI-FGEN驱动程序的高级任意排序选板创建用于排序的软件编程接口。使用该驱动程序,使用niFGEN创建任意序列VI将序列指令写入信号发生器,如图4所示。

图4:写入序列至板载内存

该VI将顺序指令写入两个数组,一个数组包含每个波形的循环次数,另一个数组包含每个波形的句柄信息。此外,还可创建更高级的序列,为每个波形输出标记事件。启用该选项后,必须配置第三个数组为每个波形指定刻度偏移量。

顺序触发模式

根据所选的触发机制,可生成按顺序使用各种不同模式配置的波形。虽然触发事件可以作为软件事件发生,但更常见的是在硬件中许多可用的触发线之一上发生。对于NI信号发生器,可用于波形排序的触发模式有单次触发、连续触发、阶梯触发和突发触发。每种模式在生成每个波形时提供不同的输出选项。说明如下。

触发

单触发模式是所有触发模式中最简单的一种,因为在该模式下,触发在生成周期内仅使用一次。因此,满足触发条件后,仪器必须重新就绪才能再次激活。在单触发模式中,触发通常用作开始生成波形的开始触发。如图5所示,信号发生器在等待接收开始触发时输出最后一个波形的最后一个采样。满足触发条件后,信号发生器开始生成波形或波形序列。 

图5:使用单个开始触发进行排序

如图5所示,信号发生器在开始触发的上升沿开始输出。但请注意,在开始触发发生和通道0输出开始之间有轻微延迟。该延迟是采样率和插值因子的函数,见信号发生器的产品规范。此外,请注意在该特定场景中,已配置两个波形序列用于生成。一旦生成序列中的最后一个波形,信号发生器将继续驱动最后一个采样值。

连续触发

另一方面,在连续触发模式下,连续生成整个波形段序列。接收到触发后,信号发生器从序列中的第一个波形开始生成信号。此外,信号发生器输出序列中的每个步骤,然后在序列完成后循环返回第一步。 

图6:顺序连续触发模式

如图6所示,输出在开始触发条件发生后不久开始。此外,信号发生器继续生成波形序列,直至停止生成会话。注意图5,在时间t2,信号发生器循环至序列中的第一个波形。

触发

在步进触发模式中,触发用于步进顺序列表中的每个波形。开始生成会话时,第一个波形循环的次数为该特定步骤配置的次数。波形被循环执行适当次数后,波形的最后一个采样将连续重复,直至接收到下一个触发。接收到下一个触发时,第二个波形按配置的循环次数生成。重复该过程,直至生成最后一个配置的波形。此时需要触发条件才能重新开始生成序列(图7)。 

图7:使用步进触发模式排序

如图7所示,信号发生器在时间t0接收到第一个触发时开始生成第一个波形。此外,它继续循环执行“波形0”的生成,直至达到配置的循环数(在本例中为2)。在该特定场景中,可以看到“waveform0”已被配置为循环两次。如图7所示,信号发生器继续驱动“波形0”的最后一个采样,直至时间t1生成下一个波形。

突发触发

突发触发模式与阶跃触发模式类似,区别在于序列中的每个波形在每个接收到的触发之间连续重复。在该模式下,信号发生器在收到触发后开始生成波形。此外,它继续循环生成波形,直到接收到下一个触发。然后,它才进入下一个波形(见图8中的定时框图)。 

图8:使用Burst触发模式排序

如图8所示,第一个触发在时间“t0”接收,使信号发生器生成序列的第一步。请注意,信号发生器继续循环该波形,直至接收到下一个触发。因此,在“t1”位置接收到第二个触发时,信号发生器进入序列的下一步。

用于高级波形排序脚本

虽然顺序模式允许信号发生器在收到触发时输出一系列波形,但它也有其局限性。基本上,顺序模式要求在信号生成开始前配置每个步骤。要配置输出为条件的动态脚本,必须使用更高级的排序形式,即脚本。

通过脚本,信号发生器可根据系统中的硬件或软件事件动态输出波形序列。此外,由于其灵活性,它是最先进的波形控制功能。脚本不仅可用于在多个波形间链接和循环,还可根据被测设备发生的事件生成波形。在本节中,使用几个范例脚本了解基本脚本语言元素。

脚本语言基础

脚本的基本思想是,命名的波形可以存储在信号发生器的内存中,然后被脚本调用,以确定在给定时间生成的波形。在信号生成之前,脚本也会下载至任意波形发生器。

在软件中,脚本编程接口需要三个基本函数。每个选项如图9所示。

图9:在LabVIEW中配置脚本

首先,每个波形作为命名波形下载至任意波形发生器(AWG)。编写命名波形是绝对必要的,因为脚本通过名称识别每个波形。其次,脚本被写入波形。脚本包含确定每个波形生成顺序的各种命令。最后,开始生成,AWG开始从输出引擎生成波形。

脚本触发简介

脚本触发可生成更为复杂的脚本。通过脚本,可使用实际信号确定应在运行时生成的波形。该信号可来自背板上的PXI触发线或来自前面板连接器的PFI(可编程函数接口)触发。

可使用niFgen Configure Script Trigger VI在软件中配置脚本触发。通过该函数可配置特定触发线的电平或边沿触发。在图10中调用函数后,脚本可以使用“scriptTrigger0”作为变量来确定生成各种波形的顺序。

图10:配置脚本触发

在脚本语言中,脚本触发作为与特定硬件条件相关的变量处理。如图10所示,scriptTrigger0必须被评估为真/假布尔逻辑语句。如图11所示。

图11:计算脚本触发

由于脚本触发可在脚本语言中使用条件语句,信号发生器可输出信号,该信号取决于来自被测真实设备的信号。下一节研究脚本语言的一些基本语句,概述脚本功能。

脚本语言基础知识

脚本语言包含若干基本命令,用于确定生成波形的顺序。本节列出了基本命令,并介绍了使用它们的几个基本顺序。基本脚本命令集包括以下命令:        

  • 生成n-指示输出引擎生成n次波形序列。
  • 重复直到-重复序列直到满足特定条件。
  • If/Else-脚本触发用作布尔变量的条件语句。
  • Wait until – 延迟语句,使输出引擎等待直至满足某个条件才继续信号生成。
  • 清除-清除所有可能发生的触发实例。

重复直到命令

使用“重复直到”命令,可重复生成波形,直至触发发生。图12显示了实现使用该命令的简单脚本所需的一组命令。

图12:使用“重复直到”命令的范例脚本

请注意,“scriptTrigger0”被用作确定要生成哪个波形的变量。使用图13中的流程图可视化脚本语言。

图13:包含“重复直到”命令的脚本流程图

在该脚本中,信号发生器首先生成“waveform0”。然后,循环生成“波形1”,并重复此波形,直至“scripttrigger0”的值为TRUE。事件发生后,信号发生器在完成序列前生成“waveform2”。图14显示了脚本生成的输出信号。

图14:使用 " 重复直到 " 脚本的信号发生器输出

如图14所示,AWG继续生成“波形1”,直至“scripttrigger0”的值为TRUE。

等待直到命令

通过“Wait until”命令,可配置信号发生器在硬件条件发生前停止生成波形。图15显示了使用“Wait until”的范例脚本。请注意,“scriptTrigger0”用作确定AWG何时恢复波形生成的变量。

图15:使用“Wait until”命令的范例脚本

注意在“Wait until”语句之前使用“Clear”语句。Clear语句用于忽略生成“waveform0”时可能发生的触发条件。图16为该脚本的流程图。

图16:包含“Wait until”命令的脚本流程图

在该脚本中,AWG首先生成“waveform0”。此后,信号发生器输出“波形0”的最后一个采样,直至满足触发条件。一旦触发条件发生,AWG将恢复脚本并生成“波形1”和“波形2”。发生器的物理输出如图17所示。

图17:使用 " 等待直到 " 脚本的信号发生器输出

If/Else命令

可使用“If/else”命令序列根据硬件条件确定生成波形的顺序。此外,嵌套这些命令时,可使用它们实现一个真值表,其中要生成的波形取决于几个触发条件。图18显示了使用“If/else”命令序列的简单脚本。

图18:使用“If/else”命令的范例脚本

此外,图19显示了表示特定波形生成顺序的流程图。

图19:包含“If/else”命令的脚本流程图

在该例中,AWG首先生成“waveform0”。然后,计算“scripttrigger0”以确定下一个生成的波形。如“scripttrigger0”的值为FALSE,则生成“waveform1”。如“scriptrigger0”的值为TRUE,则生成“waveform2”。图20显示了AWG的物理输出,表示为时间的函数。

图20:使用“If/else”脚本的信号发生器输出

在图20中,当“scripttrigger0”的值为TRUE时,生成“waveform2”。请注意,本范例仅显示单个条件语句。使用NI AWG,最多可配置4个脚本触发。因此,可嵌套“If/else”语句来表示更为复杂的逻辑语句。

输出触发事件

本文档主要介绍使用输入触发控制信号发生器的输出。但是,信号发生器能够生成输出触发来控制其他仪器的行为。两种类型的输出触发是刻度事件和数据刻度事件。对于第一种类型,最多可配置一条(顺序模式)或四条(脚本模式)触发线,以与配置的采样数同步改变状态。相反,数据标记事件允许将模拟波形的4位连线至4条触发线。这种类型的输出触发将触发的状态嵌入到实际波形中。

刻度事件

对于刻度事件,最多可配置4条触发线,使其状态随特定采样的生成同步改变。可在信号发生器前面板或PXI背板上的PFI触发线上生成该数字脉冲。

刻度事件通过从波形开始处给出偏移量计数(采样数)来指定。在顺序模式中,可为顺序中的每个步骤配置一个刻度事件。在脚本模式中,可在特定波形的不同偏移量处配置最多四个刻度。如图21所示,与刻度相关的触发线在生成第20个采样的同一时钟边沿变为有效。此外,在该例中,触发线被配置为在采样时钟的40个周期中置为有效。

图21:刻度事件输出的定时

请注意,可通过多种方式使用属性节点配置刻度输出的行为。如图21所示,标记事件已被配置为采样时钟8个周期的脉冲。可通过niFgen属性节点指定该动作(图22)。

图22:使用属性节点配置刻度事件

图22显示了配置输出接线端、输出行为和脉冲宽度的方法。图22中的刻度配置为脉冲时,也可将输出配置为切换。

刻度事件尤其适用于需要同步多个仪器的场景。此外,使用PXI信号发生器可方便地将刻度事件触发连接至多个模块,例如数字化仪、RF矢量信号发生器或高速数字I/O硬件。

数据标记事件

使用数据标记事件,可将4个波形数据位导出为数字信号至物理触发线。例如,典型的信号发生器使用16位DAC(数模转换器)。因此,生成信号时,采样率频率的每个周期都会向DAC发送16位采样。此外,每个采样最多可连线四位至物理触发线。因此,可将这四个波形位配置为与其他硬件同步的数字波形。

当特定数据位在波形数据中切换时,数据标记事件的数字电平将发生变化。如波形数据位在一段中多次切换,数据标记的电平每次都会改变。当数据位为高时,数据标记位为高。此外,可配置数据位标记使用反逻辑。使用数据位标记的信号定时框图如图23所示。

图23:波形的位表示法

如图23所示,典型信号发生器的每个采样由一个16位数字组成。可在信号发生器的每个采样时钟更新16位数字。图23高亮显示了每个16位采样的四个最低有效位。如上所述,可将上述每一位作为数字信号连接至物理触发线。图24中每条数据位触发线的定时框图显示了数字触发线的行为。

图24:数据标记事件定时框图

图24显示了可将每个数据位标记配置为外部触发线。请注意,每个采样的位值决定了触发线的状态。在“数据位3”中,注意前三个时钟周期的位为“0”,且从时间“t2”开始变为“1”。  因此,“PXI_Trig 3”的数字状态在前三个周期保持为低,并在“t2”时变为高。

使用数据标记事件,可在硬件中定时信号发生器和其他设备之间的操作,从而实现更紧密的同步。此外,多个PXI仪器之间的同步更为简单,因为模块之间无需外部连接。

总结应用

通过NI信号发生器的高级波形触发和排序功能,可生成复杂波形并实现多个仪器之间的同步。此外,同步仪器位于同一物理PXI系统中。因此,可实现与多个仪器紧密同步的复杂测试信号。图25显示了包括多个仪器的测试设置范例。注意,在PXI系统中,信号发生器可实现标记事件或数据位标记功能来控制其他仪器的操作。

图25:自动化PXI测试系统

如图25所示,信号发生器可为被测单元(UUT)提供激励信号。此外,其他仪器可使用来自主信号发生器的激励与UUT同步交互。关于ATE系统设计的更多信息,请从测试系统资源库下载一组技术指南。

也可使用来自UUT的激励信号来确定来自AWG的激励信号。通过脚本和脚本触发,可根据实际触发事件控制信号的输出。图26显示了信号发生器根据来自UUT的数字控制信号生成一系列不同信号的测试场景的程序框图。通过脚本,信号发生器可在不停止生成波形的情况下动态响应这些数字控制信号。

图26:使用动态顺序

在图26中,PFI0和PFI1被配置为从UUT接收输入的脚本触发。请注意,信号发生器最多可使用四个脚本触发控制信号输出。如需要两条以上的控制线,可使用PXI定时和同步模块将数字触发信号连接至信号发生器。

结语

NI的现代信号发生器能够生成复杂而准确的模拟信号。因此,信号发生器可生成多种信号并支持多种应用。

相关链接

Was this information helpful?

Yes

No