Escolar Documentos
Profissional Documentos
Cultura Documentos
DE TULANCINGO
Presentado por:
Czares Hidalgo Sergio
Franco Miranda Aristeo
Len Gonzles Osman Daniel
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:
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.
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.
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.
Figura 4 En modo hbrido, puede optar por adquirir E / S fsica a travs del modo de
escaneo o la interfaz FPGA.
DESARROLLO
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.
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.
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.
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.
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.
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.
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.
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.
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.
Parmetro Descripcin
Parmetro Descripcin
Parmetro Descripcin
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
1. Se conecta tdms file out como referencia del TDMS Open VI a la entrada del tdms
file del TDMS Write VI
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 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.
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.
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.
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.
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.
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.