Secuenciación y disparo avanzados de formas de onda en generadores de formas de onda arbitrarias

Información general

En el siguiente documento, descubra cómo puede utilizar generadores de señales para generar señales personalizadas mediante el encadenamiento y la repetición en bucle de formas de onda, para generar formas de onda dinámicas a través de una función llamada scripting y para sincronizarse con otros instrumentos mediante marcadores y eventos de marcador de datos. 

Contenido

Introducción a los generadores de formas de onda arbitrarias de NI

Las funciones avanzadas de secuenciación y disparo de formas de onda están disponibles en una variedad de instrumentos modulares de NI, incluidos los generadores de formas de onda arbitrarias y los productos digitales de alta velocidad.

Los generadores de formas de onda arbitrarias modernos implementan una memoria integrada profunda para almacenar grandes formas de onda. Puede generar estas formas de onda de una manera secuencial usando lo que comúnmente se conoce como “enlace y bucle”. Con esta función, puede crear secuencias de formas de onda complejas generando formas de onda en un orden predeterminado o dinámico.

La Figura 1 ilustra tres formas de onda únicas que puede almacenar en memoria en un Signal Generator.

Figura 1: Múltiples formas de onda arbitrarias almacenadas en memoria

Una vez que haya almacenado estas formas de onda en memoria, puede vincularlas y hacer bucles de manera secuenciada. Por lo tanto, también debe almacenar las instrucciones de secuenciación para las formas de onda en memoria antes de que comience la sesión de generación. Con los generadores de señales NI, puede almacenar múltiples formas de onda e instrucciones de secuencia múltiples en la memoria integrada. La Figura 2 ilustra el posible uso de la memoria de un generador de señales de NI.

Figura 2: Los generadores de señales NI almacenan múltiples formas de onda en la memoria integrada.

La Figura 2 muestra que las formas de onda almacenadas en un Signal Generator pueden ocupar una cantidad significativa de memoria. Por ejemplo, una forma de onda muestreada a 100 MS/s durante 1 segundo ocupa 200 MB. Por lo tanto, es importante utilizar eficazmente la memoria integrada de su Signal Generator. De hecho, una ventaja de usar el enlace de forma de onda y el bucle es que puede generar secuencias complejas mientras usa una memoria integrada mínima.

Enlace y bucle

Las opciones de enlace y bucle disponibles en los generadores de señales NI se dividen en dos modos de enlace y bucle: modo secuencia y modo script. Con el modo secuencia, puede configurar el instrumento para generar una serie predeterminada de formas de onda con una secuencia almacenada en la memoria integrada. El modo script, por otro lado, es aún más potente porque puede usarlo para crear una secuencia de forma de onda dinámica en la que la forma de onda generada depende del estado de un disparador de hardware o software. Además, el modo script utiliza sentencias condicionales como “if/else” para implementar secuencias de forma de onda de ramificación. Por último, con los modos de enlace y bucle, puede configurar el Signal Generator para emitir una o varias señales de activación con características como el marcador o el evento marcador.

Modo de secuenciación

Con el modo de secuenciación, la secuencia de forma de onda debe configurarse de modo que cada paso contenga información para tres parámetros: nombre de forma de onda, recuento de bucles y posición del marcador. La Figura 3 ilustra los parámetros que se configuran en un script típico.

Figura 3: Parámetros configurados en una secuencia de forma de onda

La interfaz de programación de software para la secuenciación se crea con la paleta de secuenciación arbitraria avanzada del controlador NI-FGEN en LabVIEW. Con este controlador, escriba las instrucciones de secuencia en el Signal Generator con el niFGEN Create Arbitrary Sequence VI mostrado en la Figura 4.

Figura 4: Escribir una secuencia en la memoria integrada

Con este VI, las instrucciones de secuencia se escriben como dos matrices - una que contiene el número de iteraciones para cada forma de onda y la segunda que contiene la información de mango para cada forma de onda. Además, puede crear secuencias aún más avanzadas para generar un evento marcador para cada forma de onda. Con esta opción activada, debe configurar una tercera matriz para designar el desplazamiento del marcador para cada forma de onda.

Modos de activación de secuencia

Puede generar formas de onda que se configuran en una secuencia utilizando una variedad de modos diferentes, dependiendo del mecanismo de activación que seleccione. Si bien un evento desencadenante puede ocurrir como un evento de software, más comúnmente ocurre en hardware en una de las muchas líneas desencadenantes disponibles. Con los generadores de señales de National Instruments, los modos de disparo disponibles para la secuenciación de formas de onda son disparo único, disparo continuo, disparo escalonado y disparo de ráfaga. Cada uno de estos modos proporciona diferentes opciones de salida cuando se genera cada forma de onda. A continuación se describen.

Disparador único

El modo de disparo único es el más simple de todos los modos de disparo porque con este modo, un disparador se utiliza solo una vez durante el período de generación. Por lo tanto, después de que se cumpla la condición de gatillo, el instrumento debe rearmarse para estar activo una vez más. En el modo de disparo único, un disparador se utiliza normalmente como disparador de inicio para comenzar la generación de la forma de onda. Como se muestra en la Figura 5, el Signal Generator emite la última muestra de la última forma de onda mientras espera recibir el disparador de inicio. Una vez que se cumple esta condición de disparo, el Signal Generator comienza la generación de la forma de onda o secuencia de formas de onda. 

Figura 5: Secuenciación con un solo activador de inicio

Como ilustra la Figura 5, el Signal Generator comienza la salida en un borde ascendente del disparador de arranque. Tenga en cuenta, sin embargo, que hay un ligero retraso entre el momento en que se produce el disparo de inicio y el inicio de la salida del canal 0. Este retardo, en función de la frecuencia de muestreo y los factores de interpolación, se describe en las especificaciones Signal Generator. Además, observe que en este escenario en particular, se ha configurado una secuencia de dos formas de onda para la generación. Una vez que se ha generado la última forma de onda en la secuencia, el Signal Generator continúa accionando el último valor de muestra.

Activación continua

Por otro lado, en el modo de disparo continuo, se genera continuamente toda la secuencia de segmentos de forma de onda. Una vez recibido el disparador, el Signal Generator comienza la generación de la señal con la primera forma de onda de la secuencia. Además, el Signal Generator emite cada paso de la secuencia y luego vuelve al primer paso al completar la secuencia. 

Figura 6: Secuenciación con modo de disparo continuo

Como ilustra la Figura 6, la salida comienza poco después de que se produzca la condición de activación de inicio. Además, el Signal Generator continúa generando la secuencia de formas de onda hasta que se detiene la sesión de generación. Obsérvese en la Figura 5, que en el tiempo t2, el Signal Generator pasa a la primera forma de onda de la secuencia.

Activación escalonada

En el modo de disparo escalonado, se utiliza un disparador para pasar a través de cada forma de onda en una lista de secuencias. Cuando se inicia la sesión de generación, la primera forma de onda hace un bucle tantas veces como se haya configurado para ese paso en particular. Después de que la forma de onda se haya retorcido durante el número apropiado de iteraciones, la última muestra de la forma de onda se repite continuamente hasta que se reciba el siguiente desencadenante. Cuando se recibe el siguiente disparador, la segunda forma de onda genera el número configurado de iteraciones. Este proceso se repite hasta que se haya generado la última de las formas de onda configuradas. En este punto, se requiere una condición de activación para iniciar la secuencia de generación nuevamente (Figura 7). 

Figura 7: Secuenciación con modo de disparo escalonado

Como ilustra la Figura 7, el Signal Generator comienza a generar la primera forma de onda en el instante t0, cuando se recibe el primer disparador. Además, continúa haciendo bucles a través de la generación de ‘waveform0’ hasta que alcanza el número de bucles configurados (dos en este caso). En este escenario en particular, puede observar que ‘waveform0’ se ha configurado para hacer bucle dos veces. Como se puede ver en la Figura 7, el Signal Generator continúa accionando la última muestra de ‘waveform0’ hasta el tiempo t1, cuando se genera la siguiente forma de onda.

Desencadenamiento

El modo de disparo de ráfaga es similar al modo de disparo escalonado excepto que cada forma de onda en la secuencia se repite continuamente entre cada disparador recibido. En este modo, el Signal Generator comienza a generar una forma de onda cuando se recibe un disparador. Además, continúa en bucle para generar esa forma de onda hasta que se recibe un desencadenante posterior. Solo entonces avanza a la siguiente forma de onda (ver diagrama de tiempos en la Figura 8). 

Figura 8: Secuenciación con modo de disparo de ráfaga

Como ilustra la figura 8, el primer disparador se recibe en el instante «t0» y hace que el Signal Generator genere el primer paso de la secuencia. Observe que el Signal Generator continúa haciendo un bucle en esta forma de onda hasta que recibe el siguiente disparador. Por lo tanto, en 't1', cuando se recibe un segundo disparador, el Signal Generator pasa al siguiente paso en la secuencia.

Scripting para secuenciación avanzada de formas de onda

Si bien el modo secuencia permite a un Signal Generator emitir una serie de formas de onda al recibir los disparadores, tiene sus limitaciones. Fundamentalmente, el modo secuencia requiere que cada paso se configure antes de que la generación de señal haya comenzado. Para configurar un script dinámico, donde la salida es condicional, debe usar una forma más avanzada de secuenciación llamada scripting.

Con scripting, un Signal Generator puede emitir dinámicamente una secuencia de formas de onda basadas en eventos de hardware o software en el sistema. Además, es la característica de control de forma de onda más avanzada debido a su flexibilidad. Puede usar scripting no solo para vincular y hacer bucles entre varias formas de onda, sino también para generar una forma de onda condicionada a un evento que ocurra en el dispositivo que se está probando. En esta sección, explore los elementos básicos del lenguaje de scripts utilizando varios scripts de ejemplo.

Fundamentos del lenguaje de guiones

La idea básica del scripting es que una forma de onda nombrada puede ser almacenada en memoria en el Signal Generator y luego llamada por un script que determina qué forma de onda se genera en un momento dado. El script también se descarga en el generador de formas de onda arbitrarias antes de la generación de la señal.

En software, la interfaz de programación de scripts requiere tres funciones básicas. Cada uno de ellos se muestra en la Figura 9.

Figura 9: Configuración de un script en LabVIEW

En primer lugar, cada forma de onda se descarga en el generador de formas de onda arbitrarias (AWG) como una forma de onda con nombre. Es absolutamente necesario que se escriba una forma de onda con nombre porque el script identifica cada forma de onda por su nombre. Segundo, el script se escribe en la forma de onda. El script contiene varios comandos que determinan el orden en que se genera cada forma de onda. Finalmente, se inicia la generación y el GTE comienza a generar una forma de onda a partir del motor de salida.

Introducción a los disparadores de guiones

Los activadores de scripts permiten la generación de scripts aún más complejos. Con scripting, puede usar una señal del mundo real para determinar qué forma de onda debe generar sobre la marcha. Esta señal puede provenir de una línea de disparo PXI en el panel trasero o de un disparo PFI (interfaz de funciones programables) desde el conector del panel frontal.

Puede configurar el disparador de scripts en software con niFgen Configure Script Trigger VI. Con esta función, puede configurar un disparador de nivel o borde para una línea de disparo específica. Después de la llamada a la función en la Figura 10, un script puede usar “scriptTrigger0” como variable para determinar el orden en que se generan varias formas de onda.

Figura 10: Configuración de un activador de script

En el lenguaje de scripting, el disparador de script se maneja como una variable asociada con una condición de hardware específica. Como se ilustra en el script de ejemplo de la Figura 10, scriptTrigger0 debe evaluarse como una sentencia lógica booleana verdadera/falsa. Esto se muestra en la Figura 11.

Figura 11: Evaluación de un desencadenante de guion

Debido a que con los disparadores de scripts puede usar sentencias condicionales dentro del lenguaje de scripting, el Signal Generator puede emitir una señal que depende de una señal de un dispositivo del mundo real bajo prueba. La siguiente sección examina algunas declaraciones básicas del lenguaje de scripting para proporcionar una visión general de las capacidades de scripting.

Fundamentos del lenguaje de script

El lenguaje de script contiene varios comandos básicos, que determinan el orden en el que puede generar formas de onda. Esta sección enumera los comandos básicos y recorre un par de secuencias básicas que los utilizan. El conjunto de comandos de scripting básico incluye comandos como los siguientes:        

  • Generar n: indica al motor de salida que genere una secuencia de formas de onda ‘n’ veces.
  • Repetir hasta que: repite una secuencia hasta que se haya cumplido una condición particular.
  • If/Else – una sentencia condicional donde el disparador de script opera como una variable booleana.
  • Wait until – una sentencia de retardo que hace que el motor de salida espere hasta que se haya cumplido una condición para reanudar la generación de señal.
  • Clear – borra cualquier instancia de desencadenantes que pudieran haber ocurrido.

Repite hasta el comando

Con el comando “Repetir hasta”, puede generar repetidamente una forma de onda hasta que se produzca un desencadenamiento. La figura 12 muestra el conjunto de comandos necesarios para implementar un script simple que utiliza este comando.

Figura 12: Ejemplo de script usando el comando “Repetir hasta”

Observe que “scriptTrigger0” se está utilizando como la variable que determina qué forma de onda se debe generar. Utilice el diagrama de flujo de la Figura 13 para visualizar el lenguaje de script.

Figura 13: Diagrama de flujo del script que contiene el comando “Repetir hasta”

En este script específico, el Signal Generator comienza generando primero “waveform0”. Luego realiza un bucle a través de la generación de “waveform1” y repite esta forma de onda hasta que “scripttrigger0” se evalúa como TRUE. Una vez ocurrido este evento, el Signal Generator genera “waveform2” antes de finalizar la secuencia. La figura 14 muestra la señal de salida resultante de este script.

Figura 14: Signal Generator Output con el script “Repetir hasta”

Como ilustra la Figura 14, el GTE continúa generando “waveform1” hasta que “scripttrigger0” evalúa a TRUE.

Espera hasta el comando

Con el comando “Wait until”, puede configurar un Signal Generator para detener la generación de cualquier forma de onda hasta que se produzca una condición de hardware. La Figura 15 muestra un script de ejemplo usando “Esperar hasta”. De nuevo, observe que “scriptTrigger0” se utiliza como variable para determinar cuándo el GTE reanuda la generación de formas de onda.

Figura 15: Ejemplo de script usando el comando “Esperar hasta”

Note el uso de la instrucción “Borrar” antes de la instrucción “Esperar hasta”. La instrucción Clear se utiliza para ignorar cualquier condición de activación que pueda haber ocurrido mientras se generaba la “forma de onda0”. La Figura 16 presenta un diagrama de flujo de este script específico.

Figura 16: Diagrama de flujo del script que contiene el comando “Esperar hasta”

En este script específico, el GTE comienza generando “waveform0” primero. Después de esto, el Signal Generator emite la última muestra de “waveform0” hasta que se cumple la condición de disparo. Una vez que ocurre la condición de disparo, el GTE reanuda el script y genera “waveform1” y luego “waveform2”. La salida física del generador se muestra en la Figura 17.

Figura 17: Signal Generator Output con el script “Wait until”

Comando If/Else

Puede usar la secuencia de comandos “If/else” para determinar el orden en que se generan las formas de onda dependiendo de la condición del hardware. Además, cuando estos comandos están anidados, puede usarlos para implementar una tabla de verdad en la que la forma de onda a generar depende de varias condiciones de activación. La Figura 18 muestra un script simple usando la secuencia de comandos “If/else”.

Figura 18: Ejemplo de script usando el comando “If/else”

Además, la Figura 19 muestra un diagrama de flujo que representa el orden en que se generan formas de onda particulares.

Figura 19: Diagrama de flujo del script que contiene el comando “If/else”

En este ejemplo, el GTE comienza generando “waveform0” primero. A continuación, se evalúa “scripttrigger0” para determinar qué forma de onda se genera a continuación. Si “scripttrigger0” se evalúa como FALSE, entonces se genera “waveform1”. Si “scriptrigger0” evalúa a TRUE, entonces se genera “waveform2”. La Figura 20 ilustra la salida física del GTE, como se muestra en función del tiempo.

Figura 20: Signal Generator Output con el script “If/else”

En la Figura 20, cuando “scripttrigger0” evalúa a TRUE, se genera “waveform2”. Tenga en cuenta que este ejemplo muestra solo una única sentencia condicional. Con los AWG de National Instruments, puede configurar hasta cuatro activadores de script. Como resultado, puede anidar sentencias “If/else” para representar sentencias lógicas aún más complicadas.

Activadores de salida y eventos

Hasta ahora, este documento se ha centrado principalmente en el uso de disparadores de entrada para controlar la salida de los generadores de señales. Sin embargo, los generadores de señal son capaces de generar disparadores de salida para controlar el comportamiento de otros instrumentos. Los dos tipos de disparadores de salida son eventos marcadores y eventos marcadores de datos. Para el primer tipo, puede configurar hasta una (modo secuencia) o cuatro (modo guion) líneas de activación para cambiar el estado síncrono con un número de muestra configurado. Por el contrario, el evento marcador de datos permite enrutar hasta cuatro bits de la forma de onda analógica a hasta cuatro líneas de activación. Con este tipo de disparador de salida, el estado del disparador se incrusta en la forma de onda real.

Eventos de marcador

Con un evento marcador, puede configurar hasta cuatro líneas de activación para que sus estados cambien de forma sincronizada con la generación de una muestra específica. Puede generar este pulso digital en las líneas de disparo PFI en el panel frontal de un generador de señales o en el panel trasero PXI.

Los eventos marcadores se especifican dando un recuento de desplazamiento (en número de muestras) desde el inicio de la forma de onda. En el modo secuencia, configura un evento marcador para cada paso de la secuencia. En el modo script, puede configurar hasta cuatro marcadores en diferentes desplazamientos de una forma de onda en particular. Como puede ver en la Figura 21, la línea de activación asociada con el marcador se afirma en el mismo flanco del reloj que genera la muestra número 20. Además, puede observar que en este caso en particular, la línea de disparo se ha configurado para ser activada durante 40 períodos del reloj de muestra.

Figura 21: Temporización de la salida del evento marcador

Tenga en cuenta que puede configurar el comportamiento de la salida del marcador de varias maneras con un nodo de propiedad. Como ilustra la Figura 21, el evento marcador se ha configurado como un pulso durante ocho períodos del reloj de muestra. Puede especificar este comportamiento con un nodo de propiedad niFgen (Figura 22).

Figura 22: Configuración de un evento marcador con un nodo de propiedad

La Figura 22 ilustra que es posible configurar el terminal de salida, el comportamiento de salida y el ancho de pulso. Si bien el marcador de la figura 22 está configurado como un pulso, también puede configurar la salida para alternar en su lugar.

Los eventos marcadores son particularmente útiles para escenarios en los que es necesario sincronizar múltiples instrumentos. Además, con los generadores de señales PXI, puede enrutar fácilmente los activadores de eventos marcadores a múltiples módulos, como digitalizadores, generadores de señales vectoriales de RF o hardware de E/S digital de alta velocidad.

Eventos de marcador de datos

Con el evento marcador de datos, puede exportar hasta cuatro bits de datos de forma de onda a una línea de activación física como señal digital. Por ejemplo, un Signal Generator típico utiliza un DAC (digital-to-analog converter) de 16 bits. Por lo tanto, al generar una señal, se envían muestras de 16 bits al CAD cada período de la frecuencia de frecuencia de muestreo. Además, puede enrutar hasta cuatro bits de cada muestra a líneas de activación físicas. Por lo tanto, puede configurar estos cuatro bits de forma de onda como una forma de onda digital para la sincronización con otro hardware.

El nivel digital de un evento marcador de datos cambia cuando un bit de datos específico alterna los datos de forma de onda. Si el bit de datos de forma de onda alterna varias veces en un segmento, el nivel del marcador de datos cambia cada vez. Cuando el nivel de bits de datos es alto, el nivel de marcador de datos es alto. Además, puede configurar marcadores de bits de datos para usar lógica inversa. En la Figura 23 se muestra un diagrama de temporización de una señal utilizando marcadores de bits de datos.

Figura 23: Representación por bits de una forma de onda

Como ilustra la Figura 23, cada muestra de un Signal Generator típico está compuesta por un número de 16 bits. Puede actualizar el número de 16 bits cada reloj de muestra del Signal Generator. La Figura 23 resalta los cuatro bits menos significativos de cada muestra de 16 bits. Como se ha descrito anteriormente, puede enrutar cada uno de estos bits individuales a una línea de activación física como una señal digital. El comportamiento de las líneas de activación digitales se ilustra en el diagrama de temporización para cada línea de activación de bit de datos en la Figura 24.

Figura 24: Diagrama de tiempo de eventos de marcador de datos

La Figura 24 muestra que puede configurar cada marcador de bits de datos para que se enrute como una línea de activación externa. Observe que el valor de bit para cada muestra determina el estado de la línea de activación. En ‘DataBit3’, observe que el bit es un ‘0’ para los tres primeros períodos de reloj y cambia a un ‘1’ a partir del instante ‘t2’.  Como resultado, el estado digital de ‘PXI_Trig 3’ permanece bajo durante los tres primeros períodos y sube a alto en el tiempo ‘t2’.

Con eventos de marcadores de datos, puede lograr una sincronización más estrecha entre los generadores de señal y otros dispositivos porque puede temporizar su funcionamiento en hardware. Además, la sincronización entre varios instrumentos PXI es aún más fácil porque no se requieren conexiones externas entre módulos.

Resumen y aplicaciones

Con las funciones avanzadas de activación y secuenciación de formas de onda de los generadores de señales de National Instruments, puede generar formas de onda complejas y lograr la sincronización entre varios instrumentos. Además, los instrumentos sincronizados están en el mismo sistema PXI físico. Como resultado, puede implementar señales de prueba complejas que están estrechamente sincronizadas con múltiples instrumentos. La Figura 25 muestra un ejemplo de configuración de prueba que incluye múltiples instrumentos. Tenga en cuenta que en un sistema PXI, un Signal Generator puede implementar funciones de marcador de eventos o bits de datos para controlar el funcionamiento de otros instrumentos.

Figura 25: Sistema de prueba PXI automatizado

Como ilustra la Figura 25, un Signal Generator puede proporcionar una señal de estímulo para la unidad bajo prueba (UUT). Además, otros instrumentos pueden interactuar con la UUT de forma sincronizada utilizando el estímulo del generador de señales maestro. Para obtener más información sobre el diseño de sistemas ATE, descargue una colección de guías técnicas de la biblioteca de recursos del sistema de prueba.

Además, puede utilizar las señales de estímulo de una UUT para determinar la señal de estímulo del AWG. Con los disparadores de scripts y guiones, puede controlar la salida de la señal en función de los eventos de disparo del mundo real. La Figura 26 muestra un diagrama de bloques de un escenario de prueba donde un Signal Generator produce una serie de señales diferentes condicionadas a señales de control digitales provenientes de la UUT. Con scripting, un Signal Generator puede responder a estas señales de control digital sobre la marcha, sin detener la generación de su forma de onda.

Figura 26: Uso de secuenciación dinámica

En la Figura 26, PFI0 y PFI1 se han configurado como activadores de script para recibir entradas desde la UUT. Tenga en cuenta que los generadores de señales pueden usar hasta cuatro activadores de script para controlar la salida de señal. Si necesita más de dos líneas de control, puede utilizar un módulo de sincronización y temporización PXI para enrutar las señales de disparo digitales al Signal Generator.

Conclusión

Los generadores de señal modernos de NI son capaces de generar señales analógicas complejas y precisas. Como resultado, los generadores de señales pueden generar una gran variedad de señales y admitir una amplia gama de aplicaciones.

Enlaces relacionados

Was this information helpful?

Yes

No