Sunteți pe pagina 1din 38

UNIVERSIDAD TECNOLGICA

DE TULANCINGO

UTILIZACIN DEL MODO DE PROGRAMACIN


LABVIEW FPGA INTERFERANCE CON EL
MDULO NI 9219

Carrera: Ingeniera en mecatrnica


Asignatura: Instrumentacin virtual
Catedrtico: Ing. Jorge Luis Aguilar Lira

Presentado por:
Czares Hidalgo Sergio
Franco Miranda Aristeo
Len Gonzles Osman Daniel

Tulancingo de Bravo, Hidalgo 22 de octubre de 2017


INTRODUCCIN

Modo de FPGA (FPGA Mode)


El modo de exploracin puede soportar la mayora de los mdulos de E / S de la serie
C para CompactRIO y mltiples funciones de nivel superior, como las mediciones de
codificador en cuadratura y la generacin PWM, pero el FPGA es capaz de hacer mucho
ms cuando se personaliza con LabVIEW FPGA.

Con LabVIEW FPGA se puede:

Recoger la forma de onda analgica a velocidades de cientos de kilohercios


Crear trenes digitales de pulso personalizados hasta 40 MHz
Implementar protocolos de comunicacin digital personalizados
Ejecutar bucles de control a velocidades de los cientos de kilohercios
Utilizar mdulos no soportados por el modo de exploracin incluyendo CAN y
comunicacin PROFIBUS
Implementar sincronizacin, activacin y filtrado personalizados

Puesto que el FPGA CompactRIO es totalmente personalizable, se puede ejecutar tanto


el modo de escaneado como el cdigo personalizado de LabVIEW FPGA al mismo
tiempo. Figura 1.

Figura 1 Puede complementar las funciones del modo de escaneo con el cdigo
personalizado de LabVIEW FPGA.
Se debe complementar el modo de escaneo usando el Mdulo LabVIEW FPGA por
varias razones. Con la combinacin de un procesador en tiempo real y FPGA
programable en CompactRIO, puede crear un sistema para aprovechar las fortalezas
de cada plataforma de computacin. El procesador en tiempo real sobresale en las
matemticas y anlisis de punto flotante y en la comunicacin perifrica, como las
variables compartidas publicadas en red y los servicios Web. El FPGA se destaca en
tareas ms pequeas que requieren una lgica de alta velocidad y un tiempo preciso.
Los escenarios en los que se pueden programar directamente con el FPGA son los
siguientes:

a) Acquisicin / Generacin de la Forma de Onda de Alta Velocidad (mayor


que 1 kHz)
El modo de exploracin CompactRIO est optimizado para bucles de control que
funcionan a menos de 1 kHz, pero muchos mdulos de E / S de la serie C son
capaces de adquirir y generar a velocidades mucho ms altas. Si se necesita
aprovechar al mximo estas funciones del mdulo y adquirir o generar a velocidades
superiores a 1 kHz, se puede utilizar LabVIEW FPGA para adquirir a una velocidad
definida por el usuario adaptado a su aplicacin.

b) Custom Triggering / Timing / Sincronizacin


Con el FPGA reconfigurable, puede crear implementaciones simples, avanzadas o
de otro tipo personalizadas de disparadores, esquemas de temporizacin y
sincronizacin de E / S o de chasis. stas pueden ser tan elaboradas como activar
un mensaje CAN personalizado basado en el aumento de una adquisicin analgica
que supera un umbral o tan simple como adquirir valores de entrada en el flanco
ascendente de una fuente de reloj externo.

c) Anlisis basado en hardware / Generacin y coprocesamiento


Muchos sensores generan ms datos de los que pueden procesarse
razonablemente en el procesador en tiempo real. Puede utilizar el FPGA como un
coprocesador valioso para analizar o generar seales complejas mientras libera el
procesador para otros hilos crticos. Este tipo de coprocesamiento basado en FPGA
se utiliza comnmente en aplicaciones tales como:

Sensores de codificacin / decodificacin


o Tacmetros
o Protocolos digitales estndar y / o personalizados
Procesamiento y anlisis de seales
o Anlisis espectral (transformaciones rpidas de Fourier y ventanas)
o Filtrado, promediado, etc.
o Reduccin de datos
o Integracin IP de terceros
Simulacin de sensores
o - Came y manivela
o - Transformadores diferenciales de tensin lineal (LVDT)
Simulacin de hardware en el bucle
d) Control de mayor rendimiento
No slo puede utilizar el FPGA para la adquisicin de alta velocidad y la generacin,
pero tambin puede implementar muchos algoritmos de control en el FPGA. Puede
utilizar E / S de punto nico con PID multicanal, sintonizable u otros algoritmos de
control para implementar un control determinista con velocidades de bucle de hasta
cientos de kilohertzios.

e) Mdulos no admitidos
Varios mdulos de la serie C no cuentan con soporte de modo de escaneado. Para
estos mdulos, es necesario utilizar LabVIEW FPGA para crear una interfaz entre la
E / S y su aplicacin en tiempo real.

f) Objetivos no soportados
Los objetivos de CompactRIO con puerta de 1M FPGA no pueden soportar
completamente el modo de exploracin. Puede implementar algunas funciones de
modo de escaneo en destinos no soportados, pero debe usar LabVIEW FPGA.

Descripcin general de FPGA


Una matriz de puertas programable en campo, o FPGA, es un chip programable
compuesto por tres componentes bsicos: bloques lgicos, interconexiones
programables y bloques de E / S. Figura 2.
Figura 2 Un FPGA se compone de lgica configurable y bloques de E / S unidos con
interconexiones programables.

Los bloques lgicos son una coleccin de componentes digitales, como tablas de
bsqueda, multiplicadores y multiplexores, donde los bits se procesan para producir
resultados programticos. Estos bloques lgicos estn conectados con interconexiones
programables que sirven como una especie de microprocesador para encaminar las
seales de un bloque lgico al siguiente. La interconexin programable tambin puede
enrutar seales a los bloques de E / S que estn conectados a los pines del chip para
la comunicacin bidireccional con los circuitos circundantes. Los FPGA son en realidad
un lienzo de silicio en blanco que puede programar para que sea cualquier tipo de
hardware digital personalizado. Tradicionalmente, la programacin de estos chips FPGA
ha sido difcil y, por lo tanto, solo posible por diseadores digitales experimentados e
ingenieros de hardware. National Instruments ha abstrado la programacin de estos
dispositivos a travs del diseo del sistema grfico con LabVIEW FPGA para que casi
todos puedan aprovechar estos potentes chips reconfigurables.

Debido LabVIEW FPGA VIs se sintetizan hacia abajo para puertas de hardware fsicos
conectados por interconexiones programables, el proceso de compilacin FPGA es
diferente del proceso de compilacin para una LabVIEW tradicional para Windows o
LabVIEW aplicacin en tiempo real. Al escribir el cdigo para el FPGA, se escribe el
mismo cdigo de LabVIEW como lo hace para cualquier otro objetivo, pero cuando
selecciona el botn Ejecutar, LabVIEW internamente pasa por un proceso diferente.
Primero, LabVIEW FPGA genera cdigo VHDL y lo pasa al compilador Xilinx. Luego, el
compilador de Xilinx sintetiza el VHDL y lo coloca y enruta todos los componentes
sintetizados en un archivo de bits. Finalmente, el archivo de bit se descarga al FPGA y
el FPGA asume la personalidad que ha programado. Este proceso, que es ms
complicado que otras compilaciones de LabVIEW, puede tardar de cinco a 10 minutos
en completarse o hasta varias horas para diseos complicados. Debido a los tiempos
de compilacin relativamente largos, debe pasar ms tiempo depurando y planificando
su cdigo LabVIEW FPGA antes de intentar compilar. Figura 3.

Figura 3 Bajo el cap, el compilador LabVIEW FPGA traduce el cdigo de LabVIEW a


VHDL e invoca las herramientas de compilacin de Xilinx para generar un archivo de
bits, que se ejecuta directamente en el FPGA.
Debido a que su cdigo LabVIEW FPGA se ejecuta directamente en hardware, puede
aprovechar los siguientes beneficios de diseo basados en FPGA:

1. Alta fiabilidad
El cdigo LabVIEW FPGA que se ejecuta en un FPGA es altamente fiable porque la
lgica se compila en un diseo de hardware fsico. Una vez que se programa el
FPGA, se convierte en un chip de hardware con toda la confiabilidad asociada.

2. Alto determinismo
Los sistemas basados en procesadores a menudo implican varias capas de
abstraccin para ayudar a programar tareas y compartir recursos entre varios
procesos. La capa de controlador controla los recursos de hardware y el sistema
operativo administra la memoria y el ancho de banda del procesador. Para cualquier
ncleo de procesador dado, slo se puede ejecutar una instruccin a la vez. Los
sistemas operativos en tiempo real reducen la fluctuacin de fase a un mximo finito
cuando se programan con una buena jerarqua de prioridad. Los FPGA no utilizan
ningn sistema operativo. Esto minimiza los problemas de confiabilidad con la
verdadera ejecucin paralela y el hardware determinista dedicado a cada tarea. Para
el hardware basado en FPGA de NI, puede lograr una precisin de 25 ns de los
componentes crticos dentro de su diseo.

3. Verdadero paralelismo
Las aplicaciones multiproceso se dividen en mltiples secciones paralelas de cdigo
que se ejecutan de una manera round-robin, dando la apariencia de ejecucin
paralela. Los procesadores multicore amplan esa idea al permitir que las
aplicaciones multiproceso ejecuten verdaderamente mltiples cdigos paralelos al
mismo tiempo. El nmero de piezas paralelas de cdigo que se ejecutan
simultneamente se limita al nmero de ncleos disponibles en el procesador
especfico. Debido a que un FPGA implementa cdigo paralelo como circuitos
paralelos en hardware, no est limitado por ncleos de procesador; por lo tanto, cada
pieza de cdigo paralelo en una aplicacin FPGA entera se puede ejecutar
simultneamente.

4. Reconfigurabilidad
Siendo reconfigurables, los chips FPGA son capaces de mantenerse al da con
cualquier modificacin futura que pueda necesitar. A medida que un producto o
sistema madura, puede realizar mejoras funcionales sin pasar tiempo rediseando
hardware o modificando un diseo de tablero. Esto es especialmente aplicable a los
protocolos de comunicacin industrial. A medida que los protocolos de comunicacin
evolucionan y mejoran con el tiempo, puede modificar la implementacin de ese
protocolo dentro de un FPGA para admitir las ltimas caractersticas y cambios
tecnolgicos.

5. Inicio instantneo
Debido a que el cdigo LabVIEW FPGA se ejecuta directamente en el FPGA sin un
sistema operativo general, el cdigo que descarga en la memoria flash FPGA
comienza a ejecutarse en milisegundos despus de encender su chasis
CompactRIO. Este cdigo puede comenzar a ejecutar un bucle de control o
establecer valores de salida de inicio.

A medida que explora la necesidad de ampliar la arquitectura de control en el hardware


NI CompactRIO para incluir programacin FPGA personalizada, considere cmo incluir
esto en su sistema. En realidad, el hardware CompactRIO tiene tres modos de
programacin: modo de escaneo, modo de interfaz FPGA puro y modo hbrido. La gran
mayora de este documento de arquitectura de control se ha centrado en usar el modo
de escaneo CompactRIO para recuperar E / S. Usted ha aprendido que la tecnologa
habilitadora para este modo de programacin es una personalidad FPGA fija que
maneja los datos a travs del FPGA y hasta el host en tiempo real. Esta seccin examina
cmo usar el FPGA en modo hbrido para acceder a E / S directamente con la
programabilidad FPGA mientras mantiene otras E / S bajo el modo de escaneo. Con el
modo hbrido, puede usar el modelo de programacin FPGA para gestionar la
adquisicin con buffer de forma de onda, el procesamiento en lnea y ciertos mdulos
que no cuentan con compatibilidad con el modo de escaneo. Figura 4.

Figura 4 En modo hbrido, puede optar por adquirir E / S fsica a travs del modo de
escaneo o la interfaz FPGA.
DESARROLLO

Su realizacin fue un programa en el cual se utilizar el modo de programacin a partir


del FPGA donde nos proporcionar los valores en tiempo real de cuatro seales
analgicas que posteriormente se visualizarn en una grfica. Este programa hizo que
el procesador se usara en tiempo real que al usar el modo escaneo. El desarrollo del
programa para el registro de datos fue el siguiente.

Se crea un nuevo proyecto dentro de la interfaz de LabVIEW seleccionando File > New
Project. Para agregar el sistema CompactRIO al nuevo proyecto, se debe hacer clic
derecho en el elemento Proyecto en la parte superior del rbol y seleccionar New >
Targets and Devicescomo se muestra en la figura 5.

Figura 5. Ventana de creacin del nuevo proyecto para agregar el sistema


CompactRIO dentro del mismo.

Este dilogo permite descubrir sistemas en su red o agregar sistemas fuera de lnea. Se
expande la carpeta Real-Time CompactRIO, se seleccione el sistema y haga clic en
Aceptar. Visualizada en la figura 6.
Figura 6 Ventana para agregar el dispositivo de CompactRIO.

Al seleccionar el sistema adecuado dentro de la ventana anterior; LabVIEW ahora


proporciona dos modelos de programacin para sistemas CompactRIO. Si se tiene
LabVIEW Real-Time y LabVIEW FPGA en la computadora de desarrollo, se pedir que
seleccione qu modelo de programacin se debera usar, como:

Interfaz de escaneo (modo de escaneo CompactRIO): esta opcin permite programar


el procesador en tiempo real de su sistema CompactRIO, pero no el FPGA. En este
modo, NI proporciona una personalidad predefinida para el FPGA que escanea
peridicamente las E / S y las coloca en un mapa de memoria, lo que lo hace disponible
para LabVIEW Real-Time. El modo de escaneo CompactRIO es suficiente para
aplicaciones que requieren acceso de un solo punto a E / S a velocidades de algunos
cientos de hercios.

Interfaz LabVIEW FPGA: esta opcin permite desbloquear la potencia real de


CompactRIO personalizando la personalidad de FPGA adems de programar el
procesador en tiempo real, logrando un rendimiento que tpicamente requerira
hardware personalizado. Al usar LabVIEW FPGA, puede implementar cronometraje y
activacin personalizados, procesamiento y anlisis de seal sin carga, crear protocolos
personalizados y acceder a E / S a su velocidad mxima.

Para este proyecto se seleccion el modo de Interfaz LabVIEW FPGA, como en la


figura 7.

Figura 7 Ventana de seleccin de modos de programacin a implementar.

En el Proyecto LabVIEW, se debe expandir el controlador y chasis en tiempo real


CompactRIO para encontrar el elemento FPGA. Se hace clic derecho en el elemento de
FPGA y se selecciona New > VI donde al crearlo se deber de guardar. Este VI realizar
la adquisicin analgica de alta velocidad. Figura 8.
Figura 8 Creacin de un VI en modo FPGA.

Para agregar un nodo de E / S que adquirir una muestra del mdulo de entrada
analgica, se debe expandir la carpeta llamada Mod1 y arrastre Mod1 / AI0 al diagrama
FPGA VI. Figura 9.

Figura 9 Forma de insertar mdulos de entrada analgica.


Se expande el nodo de E / S haciendo clic y arrastrando hacia abajo como se muestra
en la figura 10, para que los canales AI0 a AI3 sean visibles. Esto har que el nodo de
E / S muestree los cuatro canales cada vez que se ejecuta.

Figura 10 Visibilidad de canales de entrada.

Se debe usar una funcin Build Array para combinar los canales en una matriz.
Adems, se coloca un bucle For en el diagrama y se conecta la matriz en l. Este For
Loop se usar para intercalar las muestras en un FIFO que se comunica con el
procesador en tiempo real. Figura 11.

Figura 11 Conexin de las entradas analgicas a la funcin Build array y su salida se


conecta al for.

Para crear el FIFO que pasar los datos del VI FPGA al VI en tiempo real, se debe hacer
clic derecho en el FPGA en el Proyecto LabVIEW y se selecciona New > FIFO. Figura
12.
Figura 12 Creacin del FIFO.

Se debe configurar el FIFO como se muestra en la figura 13.

Tipo: Target to Host - DMA


Tipo de datos: FXP
Codificacin: Firmado
Longitud de la palabra: 26 bits
Longitud de palabra entera: 5 bits.

Figura 13 Configuracin del FIFO.


Se arrastra y se suelta el FIFO en For Loop en el diagrama de bloques del FPGA. Figura
14.

Figura 14 Ubicacin del FIFO dentro del diagrama de bloques.

WRITE (FIFO METHOD)


Escribe un elemento o elementos en un FPGA FIFO. Configura la cantidad de elementos
por escritura desde la pgina Interfaces del cuadro de dilogo Propiedades de FIFO.
Se usa el nodo de mtodo FIFO para implementar este mtodo. Las entradas y salidas
disponibles para este mtodo dependen de si selecciona la interfaz de timeout o
handshaking. Figura 15.

Figura 15 Bloque FIFO Write.

FIFO In especifica el FIFO. Puede cablear un control FIFO, una constante FIFO,
un nodo de configuracin FIFO definido por VI, o el terminal FIFO Out de otro
nodo de mtodo FIFO a FIFO In.

El Elemento especifica el elemento o los elementos de datos que desea


almacenar en el FIFO. El tipo de datos Elemento es el tipo de datos que
configura en el cuadro de dilogo Propiedades de FIFO cuando crea el FIFO.
Timeout especifica el tiempo, en nmero de tics de reloj, que el mtodo espera
para el espacio disponible en el FIFO si el FIFO est lleno. Un valor de -1 evita
que la funcin exceda el tiempo de espera. Un valor de 0 indica que no hay
espera. Cablee una constante de 0 a Tiempo de espera si usa el Nodo de
mtodo FIFO en un ciclo programado de ciclo nico.
Esta entrada es la predeterminada para el mtodo de escritura. Para visualizar
esta entrada, haga clic con el botn derecho en el mtodo Escribir y seleccione
InterfaceTimeout en el men contextual.

FIFO Out devuelve FIFO In si FIFO In est cableado. De lo contrario, FIFO Out
devuelve el FIFO que especifique en el Nodo de mtodo FIFO.

Timed Out? devuelve TRUE si el espacio en el FIFO no est disponible antes


de que la funcin complete la ejecucin. Si se agot el Timed Out? es TRUE,
la funcin no escribe Element en FIFO.

Este resultado es el predeterminado para el mtodo de escritura. Para visualizar


esta salida, haga clic con el botn derecho en el mtodo Escribir y seleccione
InterfaceTimeout en el men contextual.

Input Valid especifica si el siguiente punto de datos ha llegado para el


procesamiento. Cablee la salida vlida de salida de un nodo ascendente a esta
entrada para transferir datos desde el nodo ascendente a este nodo.
Para visualizar este terminal de handshaking, haga clic con el botn derecho en
el mtodo Write dentro de un bucle temporizado de un solo ciclo y seleccione
Interface Handshaking en el men de acceso directo.

Ready for Input devuelve TRUE si este nodo est listo para aceptar nuevos
datos de entrada. Use un Nodo de Comentarios para conectar esta salida a la
entrada Listo para la Salida de un nodo en sentido ascendente.
Para visualizar este terminal de handshaking, haga clic con el botn derecho en
el mtodo Write dentro de un bucle temporizado de un solo ciclo y seleccione
Interface Handshaking en el men de acceso directo.

Se conecta el terminal de la matriz indexado automticamente a la entrada Elemento de


la FIFO. A su vez se crea una constante para la entrada Timeout de la FIFO con un valor
de 0.
Se conecta Timed Out? de la salida del FIFO en una funcin Or. Tambin se crea un
indicador para el resultado de la funcin Or y asgnele el nombre Overflow?

Se debe colocar un Feedback Node en el diagrama y se conecta el resultado de la


funcin Or a su entrada (lado derecho); la salida (lado izquierdo) del nodo de
retroalimentacin a la entrada restante de la funcin Or. Se crea una constante falsa
para la entrada de inicializacin del nodo de retroalimentacin. El resultado, que se
muestra a continuacin, crea un mecanismo de bloqueo que causar Overflow? para
convertirse en Verdad y mantenerse cierto, si se agota el Timed Out? la salida de la
FIFO se afirma alguna vez. Este resultado indica que el FIFO estaba lleno y se perdieron
datos. Figura 16.

Figura 16 Conexin del bloque FIFO.

Para imponer el orden de ejecucin y el tiempo en el diagrama, se debe colocar una


Flat Sequence Structure alrededor del diagrama y agregue un marco adicional como
se muestra en la figura 17.

Figura 17 Colocacin de la estructura Flat sequence.

Se coloca un Loop Timer en el marco de la derecha. Se selecciona uSec en el cuadro


de dilogo; se configura el Loop Timer y se da click en Aceptar y para finalizar se crea
un control para la entrada del temporizador de bucle. Figura 17.
Figura 18 Configuracin del Loop Timer.

LOOP TIMER EXPRESS VI


Espera el valor que especifique en Count entre iteraciones de bucle. Puede llamar a
esta funcin en un bucle para controlar la tasa de ejecucin del bucle. Si se omite una
instancia de ejecucin, como cuando la lgica del ciclo tarda ms tiempo en ejecutarse
que el intervalo especificado, el VI expreso del temporizador de bucle regresa
inmediatamente y establece una nueva marca de tiempo de referencia para las llamadas
posteriores. Para administrar las tasas de ejecucin con Loop Timer Express VI, coloque
el Loop Timer Express VI en el primer fotograma de una estructura de Flat Sequence o
una estructura Stacked Sequence y coloque el resto del cdigo en los cuadros
posteriores.

El Loop Timer Express VI difiere de la funcin Wait Until Next ms Multiple, que se
activa en un mltiplo del cableado en milisegundos mltiples.

Durante el tiempo de ejecucin, puede usar la velocidad de muestreo al tiempo de bucle


VI para convertir la frecuencia del reloj y la frecuencia de muestreo al conteo apropiado
para el Loop Timer Express VI.

Dialog Box Options

Parmetro Descripcin

Counter Units Unidad de tiempo que el VI usa para el contador.

Ticks Establece las unidades de contador en un solo ciclo


de reloj, cuya duracin est determinada por la frecuencia de
reloj para la que se compila el VI.
uSec Establece las unidades de contador en
microsegundos.
mSec Establece las unidades de contador en milisegundos.

Size of Especifica el tiempo mximo que un temporizador puede rastrear.


Internal Para ahorrar espacio en el FPGA, use el tamao ms pequeo de
Counter
contador interno posible para el FPGA VI.

Block Diagram Inputs

Parmetro Descripcin

Count Especifica el tiempo entre iteraciones de bucle.

Block Diagram Outputs

Parmetro Descripcin

Tick Devuelve el valor de un contador de ejecucin libre en el momento en que


Count VI se despierta. Un contador de ejecucin libre se transfiere cuando el
contador alcanza el mximo del Tamao del contador interno especificado
en el cuadro de dilogo de configuracin.

Se coloca un bucle While alrededor de la estructura de Flat Sequence y se crea una


constante False para la condicin de parada de bucle. Figura 19.

Figura 19 Colocacin de la estructura While alrededor de la estructura Flat Sequence.

Se ha completado el FPGA VI, que debe compilarse en un flujo de bits que se


descargar en el FPGA. Para comenzar el proceso de compilacin, se debe guardar el
VI y luego hacer clic derecho en el VI en el Proyecto LabVIEW y seleccione Compilar o
de lo contrario en el botn Run del programa. Figura 20.
Figura 20 Modo de compilacin del proyecto.

Cuando se selecciona el botn Ejecutar, aparecer una ventana para seleccionar el


servidor de compilacin, donde se seleccionar usar el Local compile server. Figura
21.

Figura 21 Configuracin del servidor de compilacin.

Al terminar de Aceptar la ventana anterior, aparecer la ventada del estado de


compilacin, en la cual tardar cinco a diez minutos en compilarse completamente. Para
obtener saber los reportes de compilacin que se van realizando en la parte de Reports
se selecciona Xilinx log obteniendo los resultados de cada compilacin que se realiza.
Figura 22.
Figura 22 Estado de compilacin del programa.

NOTA: Si se encuentra otro programa ya compilado, se debe ir al proyecto creado


ubicndose en Build Specifications, desplegando la pestaa aparecer el otro
programa compilado, en la cual se debe dar clic derecho seleccionando Remove from
Project. Figura 23.

Figura 23 Forma de remover proyectos previamente compilados.

Una vez que LabVIEW termine de generar archivos intermedios, se puede minimizar el
proceso de compilacin y comenzar a escribir el LabVIEW Real-Time VI. En el Proyecto
LabVIEW, se debe hacer clic derecho en el controlador CompactRIO y seleccionar New
> VI. Figura 24. Este VI se ejecutar en el controlador en tiempo real y continuamente
leer los datos de la configuracin FIFO entre el FPGA y el procesador. Los datos se
escribirn en el disco para su anlisis fuera de lnea.

Figura 24 Creacin de un nuevo VI.

Desde la paleta de la interfaz de FPGA, se coloca un Open FPGA VI Reference en el


diagrama de bloques y se realiza doble clic en ella.

Se selecciona VI y se escoge el programa del FPGA que se realiz anteriormente,


desmarcando Run the FPGA VI. Esta configuracin har que la funcin descargue el
FPGA VI, pero no comience a ejecutarlo. Haga clic en Aceptar. Figura 25.

Figura 25 Configuracin del Open FPGA VI Reference.

Open FPGA VI Reference Function


Abre una referencia al archivo FPGA VI o bit y al objetivo FPGA que especifique. Haga
clic con el botn derecho en la funcin Open FPGA VI Reference y seleccione Configure
Open FPGA VI Reference en el men contextual para mostrar el cuadro de dilogo
Configure Open FPGA VI Reference.

Debe abrir una referencia al objetivo FPGA antes de que pueda comunicarse entre el VI
anfitrin y el VI FPGA. Puede descargar y ejecutar solo un FPGA VI a la vez en un solo
objetivo FPGA. Si intenta descargar un segundo VI al objetivo de FPGA mientras el
primer VI de FPGA an est en uso, LabVIEW informa un error y la descarga falla. Figura
26.

Figura 26 Open FPGA VI Reference Function

resource name especifica el objetivo FPGA en el que desea ejecutar el FPGA


VI. LabVIEW automticamente puede determinar el objetivo de FPGA en el que
se ejecuta el FPGA VI basado en la informacin del proyecto, dependiendo del
objetivo de FPGA. El tipo de datos de la entrada del nombre del recurso vara
segn el objetivo FPGA.

Note Debe compilar el FPGA VI antes de que la funcin Open FPGA VI


Reference pueda descargar o ejecutar el VI en el objetivo FPGA.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. Esta entrada proporciona un error estndar en la funcionalidad.

FPGA VI Reference Out devuelve una referencia a un FPGA VI. Puede vincular
el parmetro de salida de referencia FPGA VI a las definiciones de tipo para que
LabVIEW propague automticamente los cambios de configuracin a
subsecuentes subVI en el flujo de datos.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.
Desde la paleta de la interfaz FPGA, seleccione Invoke Method y colocarlo en el
diagrama. Se debe conectar las salidas de la Referencia VI FPGA abierta a las entradas
del Invoke Method.

Haz clic con el botn izquierdo en Method y selecciona FIFO > Start. Esta funcin
inicializar el motor DMA, que est alimentando el FIFO que est entre el procesador y
el FPGA. Figura 27.

Figura 27 Configuracin del Invoke Method.

INVOKE METHOD
Invoca un mtodo o accin de interfaz FPGA desde un VI host en un FPGA VI. Utilice
mtodos para hacer lo siguiente: descargar, abortar, restablecer y ejecutar el FPGA VI
en el objetivo de FPGA, esperar y reconocer las interrupciones FPGA VI, leer DMA FIFO
y escribir en DMA FIFO. Los mtodos que puede elegir dependen del hardware de
destino y el FPGA VI.

Para especificar un mtodo, haga clic con el botn derecho en la funcin Invocar mtodo
y seleccione Mtodo x en el men contextual, donde x es el mtodo especfico. Debe
conectar la entrada de entrada VI de referencia de FPGA para ver los mtodos
disponibles en el men de acceso directo. Figura 28.

Figura 28 Funcin Invoke Method.


FPGA VI Reference In es una referencia a un FPGA VI. Debe abrir una
referencia al FPGA VI para usar este parmetro.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. Con la siguiente excepcin, esta entrada proporciona un error
estndar en la funcionalidad.
Algunos mtodos siguen una funcionalidad de error diferente, que se describe
en los detalles del mtodo especfico.

FPGA VI Reference Out devuelve una referencia a un FPGA VI.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.

FIFO.Start (Invoke Method)


Comienza la transferencia de datos DMA entre el objetivo FPGA y la computadora host.
Este mtodo es opcional. El nodo de mtodo FIFO configurado con los mtodos de
lectura o escritura inicia automticamente la transferencia de datos DMA. Es posible que
desee utilizar este mtodo si desea iniciar la transferencia de datos con DMA FIFO antes
de leer el primer elemento de la FIFO. Use la funcin Invocar mtodo para implementar
este mtodo. Figura 29.

Figura 29 Configuracin FIFO.Start.

FPGA VI Reference In es una referencia a un FPGA VI. Debe abrir una


referencia al FPGA VI para usar este parmetro.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. sta entrada proporciona un error estndar en la funcionalidad.

FPGA VI Reference Out devuelve una referencia a un FPGA VI.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.
Desde la paleta de la interfaz FPGA, coloque una funcin de Read/Write Control en el
diagrama. Se debe conecta los cables de referencia y de clster de error. Esta funcin
le permite leer y escribir en los controles e indicadores en el FPGA VI.

En el Read/Write Control, se da clic con el botn izquierdo en Unselected y se


selecciona Count (uSec). Esto corresponde al control de Count (uSec) en el panel
frontal del FPGA VI. Figura 30.

Figura 30 Configuracin del READ/Write Control.

Read/Write Control Function


Lee un valor o escribe un valor en un control o indicador en el FPGA VI en el objetivo
FPGA. Figura 31.

Figura 31 Read/Write Control Function

FPGA VI Reference In es una referencia a un FPGA VI. Debe abrir una


referencia al FPGA VI para usar este parmetro.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. Esta entrada proporciona un error estndar en la funcionalidad.

FPGA VI Reference Out devuelve una referencia a un FPGA VI.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.

Se debe crear un control para la entrada de Count (uSec). Este control se usar para
establecer la tasa de adquisicin de entrada analgica en microsegundos. Se ingresa
un valor de 500 para el control de Contar (uSec) en el panel frontal para establecer una
velocidad de adquisicin de 2 kHz.
Se coloque un TDMS Open VI en el diagrama creando constantes para file path y las
operation inputs. Se ingresa analog_input.tdms para el nombre del archivo y
seleccione crear o reemplazar para la operacin.

Conecte el clster de error desde el control de lectura / escritura al TDMS abierto. Esta
funcin crear un nuevo archivo TDMS donde se registrarn los datos. Figura 32.

Figura 32 Conexin del TDMS Open.

Coloque otra funcin Invoke Method en el diagrama y seleccione el mtodo Ejecutar-


Run-. Conctelo como se muestra. El mtodo Run hace que el FPGA VI comience a
ejecutarse. Figura 33.

Figura 33 Conexin del nuevo Invoke Method con la operacin Run.

Run (Invoke Method)


Ejecuta el FPGA VI en el objetivo de FPGA. Si el FPGA VI ya se est ejecutando en el
objetivo FPGA, el mtodo Run no hace nada a menos que la entrada Wait Until Done
se establezca en TRUE. Use la funcin Invocar mtodo para implementar este mtodo.
Figura 34.

Figura 34 Funcin FPGA.Run.

FPGA VI Reference In es una referencia a un FPGA VI. Debe abrir una


referencia al FPGA VI para usar este parmetro.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. Esta entrada proporciona un error estndar en la funcionalidad.

Wait Until Done hace que la funcin Mtodo de Invocar espere hasta que el
FPGA VI termine de ejecutarse. Si establece este parmetro en VERDADERO,
asegrese de que el FPGA VI termine la ejecucin por s mismo. El valor
predeterminado es falso.

FPGA VI Reference Out devuelve una referencia a un FPGA VI.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.

El cdigo escrito hasta ahora descarga su FPGA VI, inicia el motor DMA para prepararse
para la transferencia de datos de alta velocidad a travs del FIFO, establece la tasa de
bucle de adquisicin en el FPGA, crea un nuevo archivo para el registro y luego inicia el
FPGA VI. A continuacin, se escribir el cdigo para leer continuamente los datos del
FIFO y escribirlos en el disco.

Se coloca un bucle while a la derecha del cdigo existente y coloque una funcin Invoke
Method, desde la paleta de la interfaz FPGA, en el ciclo while.

Se cablean las terminales de FPGA VI Reference Out y de error out del mtodo de
Ejecucin a las entradas del Mtodo de Invocacin. Se hace clic con el botn izquierdo
en Mtodo y seleccione FIFO > Read. Figura 35.
Figura 35 Conexin con el nuevo mtodo FIFO de modo Lectura.

Se crean constantes para las entradas Number of Elements y Timeout (ms) de la


funcin FIFO.Read, ingresando 2000 para Number of Elements, lo que har que la
funcin FIFO.Read espere hasta que haya al menos 2000 muestras disponibles antes
de la ejecucin. Figura 36.

Figura 36 Creacin de constantes Para el mtodo FIFO Read.

FIFO.Read (Invoke Method)


Lee elementos de DMA FIFO desde la parte de la memoria del host de la FIFO. El
mtodo Read devuelve datos cuando el nmero de elementos est disponible. Si el
perodo de tiempo de espera finaliza antes de que el nmero de elementos est
disponible, los datos estn vacos. Figura 37.

Figura 37 Funcin FIFO.Read.


FPGA VI Reference In es una referencia a un FPGA VI. Debe abrir una
referencia al FPGA VI para usar este parmetro.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. Esta entrada proporciona un error estndar en la funcionalidad.

Number of Elements determina la cantidad de elementos que lee desde DMA


FIFO.

Timeout (ms) especifica el nmero mnimo de milisegundos que espera la


funcin Mtodo de invocacin antes de que se agote el tiempo de espera. La
funcin Mtodo de invocacin agota el tiempo de espera si los datos no estn
disponibles para la lectura en el momento en que transcurre el nmero de
milisegundos que especifique. El valor predeterminado es 5000 milisegundos.
Establezca este parmetro en -1 si desea que la funcin Invocar mtodo espere
indefinidamente.

FPGA VI Reference Out devuelve una referencia a un FPGA VI.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.

Data devuelve los datos contenidos en la parte de la memoria del host de DMA
FIFO. La cantidad de elementos contenidos en Datos es igual a Nmero de
elementos o cero si la funcin expira.

Elements Remaining devuelve la cantidad de elementos restantes que estn


disponibles para leer. La cantidad de elementos que devuelve este mtodo es
menor o igual que la cantidad real de elementos restantes en el FIFO.

El siguiente cdigo realizar el registro de datos y la condicin de detencin para el ciclo


while, Figura 38.
Figura 38 Cdigo para el registro de datos.

Se debe conectar el fragmento de cdigo proporcionado dentro del diagrama siguiendo


los siguientes pasos.

1. Se conecta tdms file out como referencia del TDMS Open VI a la entrada del tdms
file del TDMS Write VI

2. Se conecta el FPGA VI Reference Out de la funcin FIFO.Read a la entrada del


FPGA VI Reference In en la funcin Overwrite?

3. Se conecta el error out de la funcin FIFO.Read al error in de la escritura TDMS.

4. Se conecta el Data ouput de la funcin FIFO.Read a la Numeric input de la funcin


To Float de doble precisin.

5. Se conecta result output de la funcin Compound Arithmetic Or a la condicin de


detencin del ciclo while.

Se coloca una funcin Wait (ms) en el ciclo while y se cree una constante con un valor
de 5 durante los milisegundos para esperar la entrada. Esto introduce un poco de tiempo
de espera para que el procesador realice otras tareas en cada iteracin.

El ciclo while leer continuamente los datos del FIFO, lo formatear, lo escribir en el
archivo TDMS, lo mostrar en un grfico de forma de onda y luego verificar si la
condicin de desbordamiento en el FPGA VI es verdadera. El ciclo while se detendr si
se presiona el botn de detencin, se produce un error o si se cumple la condicin de
desbordamiento. Para completar la aplicacin, se agregar cdigo para cerrar el archivo
TDMS y el FPGA VI. Figura 40.
Reshape Array Function
Cambia las dimensiones de una matriz segn los valores del tamao de dimensin
0...m-1.

Esta funcin lee los datos de la matriz en la memoria de izquierda a derecha, fila por fila
y rellena la matriz reformada de la misma manera. Por ejemplo, si pasa una matriz 2D
de 8 elementos, 2 columnas de {0,1,2, 3}, a esta funcin con dos dimensiones definidas
con tamaos de 2 y 4, respectivamente, la funcin devuelve una matriz que contiene {{
0,0,1,1}, {2,2, 3, 3}}. El panel del conector muestra los tipos de datos predeterminados
para esta funcin polimrfica. Figura 39.

Figura 39 Cambiar la forma de la funcin de matriz.

n-dim array puede ser una matriz n-dimensional de cualquier tipo.

dimension size 0..m-1 especifica las dimensiones de la matriz m-dim y debe


ser numrica. La funcin crea una matriz vaca si el tamao de cualquier
dimensin es 0. Debe tener m terminales de tamao de dimensin para m-
dimensions.

m-dim array Si el producto de los tamaos de dimensin es mayor que el


nmero de elementos en la matriz de entrada, la funcin rellena la nueva matriz
con el valor predeterminado del tipo de datos de la matriz n-dim. Si el producto
de los tamaos de dimensin es menor que el nmero de elementos en la matriz
de entrada, la funcin trunca la matriz.

Figura 40 Conexin de los bloques dentro del ciclo While as como la ubicacin de la
funcin Wait (ms).
Transpose 2D Array Function
Reorganiza los elementos de la matriz 2D de modo que la matriz 2D [i, j] se transpone
a la matriz [j, i].

El panel del conector muestra los tipos de datos predeterminados para esta funcin
polimrfica.

Figura 41 Transponer la funcin de matriz 2D.

2D array puede ser una matriz 2D de cualquier tipo.

transposed array es la matriz de salida.

Unbundle By Name Function


Devuelve los elementos del clster cuyos nombres especifique.

No es necesario que realice un seguimiento del orden de los elementos dentro del
clster. Esta funcin no requiere la cantidad de elementos para que coincida con el
nmero del clster. Despus de conectar un clster a esta funcin, puede seleccionar
un elemento individual de la funcin.

El panel del conector muestra los tipos de datos predeterminados para esta funcin
polimrfica. Figura 42.

Figura 42 Desagregar por nombre.

input cluster es el clster cuyos elementos desea acceder.

element 0..m-1 es el elemento del grupo de entrada llamado nombre 0..m-1.


Puede acceder solo a elementos con etiquetas propias. Para seleccionar un
elemento con nombre, haga clic en un terminal de nombre y seleccione un
nombre en el men contextual.
Compound Arithmetic Function
Realiza operaciones aritmticas en una o ms entradas numricas, de matriz, clster o
booleanas. Para seleccionar la operacin (Agregar, Multiplicar, Y, O o XOR), haga clic
con el botn derecho en la funcin y seleccione Cambiar modo en el men contextual.
Cuando selecciona esta funcin desde la paleta Numrica, el modo predeterminado es
Agregar. Cuando selecciona esta funcin desde la paleta Boolean, el modo
predeterminado es OR.
El panel del conector muestra los tipos de datos predeterminados para esta funcin
polimrfica. Figura 43.

Figura 43 Aritmtica compuesta.

value 0..n-1 puede ser un nmero o valor booleano, una matriz de nmeros o
valores booleanos, un clster, una matriz de clsteres, etc. Puede cablear una
forma de onda a solo una entrada de valor. Si una entrada es una forma de
onda, puede tener un nmero ilimitado de entradas escalares de diferentes
tamaos. Si el valor es un clster de error, solo el parmetro de estado del
clster de error pasa al terminal de entrada.

result devuelve el resultado de la operacin seleccionada aplicada al valor 0..n-


1. Para AND, OR o XOR, el resultado devuelve las operaciones bit a bit en las
entradas numricas y las operaciones lgicas en las entradas booleanas.

Close FPGA VI Reference Function


Cierra la referencia al FPGA VI y, opcionalmente, restablece la ejecucin del VI. De
forma predeterminada, la funcin Cerrar referencia FPGA VI cierra la referencia al FPGA
VI y restablece el FPGA VI. Para configurar esta funcin solo para cerrar la referencia,
haga clic con el botn derecho en la funcin y seleccione Cerrar en el men contextual.
La funcin Close FPGA VI Reference tambin detiene todos los DMA FIFO en el FPGA.
Figura 44.

Figura 44 Close FPGA VI Reference.


FPGA VI Reference In es una referencia a un FPGA VI. Debe abrir una
referencia al FPGA VI para usar este parmetro.

error in describe las condiciones de error que ocurren antes de que se ejecute
este nodo. Con la siguiente excepcin, esta entrada proporciona un error
estndar en la funcionalidad.

Este nodo se ejecuta normalmente incluso si se produjo un error antes de que


se ejecute este nodo.

error out contiene informacin de error. Esta salida proporciona una


funcionalidad estndar de error de salida.

Se ubica un TDMS Close VI y un Close FPGA VI Reference VI fuera del ciclo while y
se conecta la referencia de archivo, la referencia de FPGA y los clsteres de error como
se muestra.

Figura 45 Conexin del TDMS Close y el Close FPGA.

Se da clic en Ejecutar el programa, por lo que LabVIEW ahora desplegar el VI sobre


Ethernet para ejecutarse incrustado en el sistema CompactRIO. Una vez que el VI se
despliega y comienza a ejecutarse, se observa el panel frontal del VI para ver los valores
actuales de E / S graficados en la tabla de formas de onda, teniendo en cuenta que se
encuentre conectado cada mdulo de entrada a las seales a adquirir. Figura 31.
Figura 46 Valores visualozados al mismo tiempo.
CONCLUSIONES

Los FPGAs al ser chips de silicio reprogramables, slo se deber desarrollar tareas de
cmputo digital en software y compilarlas en un archivo de configuracin o una escritura
de bits que contenga informacin de cmo conectar los componentes. Adems, los
FPGAs son completamente reconfigurables y al instante toman una nueva personalidad
cuando usted compila una diferente configuracin de circuitos.

A partir de este mdulo se realiz de manera ms rpida una adquisicin de datos donde
automticamente se mostrarn las tres seales conectadas, utilizando toda la capacidad
que tiene el FPGA. A su vez que se realiz a partir de los bloques del FPGA los bloques
necesarios de la manera ms sencilla para la obtencin de las seales y los resultados
obtenidos en una hoja de clculo.

S-ar putea să vă placă și