Reproducción de una Imagen en un Monitor VGA Utilizando un FPGA



Documentos relacionados
Capítulo 5. Análisis del software del simulador del sistema de seguridad

Resoluciones de Pantalla.

PARTES DE UN COMPUTADOR

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

VI PLAN DE PRUEBAS, RESULTADOS Y RECOMENDACIONES

ÍNDICE DISEÑO DE CONTADORES SÍNCRONOS JESÚS PIZARRO PELÁEZ

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

En el presente capítulo se describe la programación del instrumento virtual y cómo

DISEÑO E IMPLEMENTACIÓN DE UNA TARJETA DE ADQUISICIÓN DE DATOS PARA EL LABORATORIO DE TELECOMUNICACIONES DE LA FIEC.

En este capítulo se describe la forma de cómo se implementó el sistema de video

MANUAL DE USO DE LAS ESTADÍSTICAS GENERADAS POR WEBALIZER

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el

GUÍA RÁPIDA DGT LIVECHESS + CAÏSSA SYSTEM

INTRODUCCION A LA PROGRAMACION DE PLC

Circuitos Electrónicos. Primer parcial curso

Photoshop. Conceptos Básicos

Metodologías de diseño de hardware

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Sistema de Control de Accesos API-WIN

SECURE ALERT. Acerca del uso de este manual.

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

ArduLab. 1. Qué te pasa Nerea? 2.Este robot no funciona bien y no sé que le pasa

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

IP core Genérico para Adquisición y Desplegado de Imágenes en Plataforma Basada en FPGA

Unidad 1. La información

PUERTOS DE COMUNICACIÓN EXTERNOS TIPO VELOCIDAD DESCRIPCION GRAFICO

Control Teaching de un Brazo Robot de Cinco Grados de Libertad

Desde el punto de vista físico en un ordenador se pueden distinguir los siguientes elementos:

ATIENDE Registro de la atención de un cliente

ANTENAS: Teledistribución y televisión por cable

Nombres: Noemi y Rebeca.

TEMA 4. Unidades Funcionales del Computador

PROCESAMIENTO DIGITAL DE IMÁGENES MEDIANTE EL USO DE UN FPGA Y LENGUAJE VHDL

CÁTEDRA DE IMÁGENES EN MEDICINA VIDEO COLOR Y RGB, ANCHO DE BANDA Y MTF PRÁCTICO Nº 4

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Clase 20: Arquitectura Von Neuman

GRADO EN INGENIERÍA ELECTRÓNICA Y AUTOMÁTICA INDUSTRIAL

Impresoras Fiscales Compatibles con Sistemas desarrollados por a2 Softway

HARDWARE DE UN ORDENADOR. 2. Cómo se llama a la parte de los ordenadores formada por los programas y las instrucciones para que funcione el ordenador?

Comparadores UNIDAD V

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Hardware Se refiere a todas las partes tangibles de un sistema informático; sus componentes son: eléctricos, electrónicos, electromecánicos

CURSO INSTALACION E IMPLEMENTACION ALOJA SOFTWARE HOTEL MODULO 04: Reservas- Planning- Cuentas del Hotel [1]

CELERINET ENERO-JUNIO 2013 ESPECIAL

ESCUELA POLITÉCNICA NACIONAL FACULTAD DE INGENIERÍA ELÉCTRICA TESIS PREVIA A LA OBTENCIÓN DEL TITULO DE INGENIERO EN ELECTRÓNICA Y CONTROL

2 Sea una unidad de disco duro de brazo móvil con las siguientes características:

Introducción a la Firma Electrónica en MIDAS

Placa de control MCC03

Ing. Fernando Saá. RESUMEN

Guía para configurar el monitor TCPIP

CONCEPTOS INFORMÁTICOS BÁSICOS

Tema 16 ELECTRÓNICA DIGITAL LENGUAJES DE DESCRIPCIÓN DE LOS SISTEMAS DIGITALES (PARTE 1)

Tema: Central telefónica (central office)

Capítulo 5. Cliente-Servidor.

Puedo estar tranquilo acerca de la información de mi empresa? Donde puedo poner mis archivos cuando viajo?

Adquisición de audio con un micrófono con fpga

MANUAL DE USUARIO DE LA HERAMIENTA CONFIGURACION DE PRESUPUESTOS PARA DISTRIBUIDORES

Actividad 4: Comunicación entre PLC s vía Ethernet

UNIVERSIDAD DE SALAMANCA

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Práctica 1 - Pista de Carreras Programación II

Tarjeta de aplicación para circuito de voz de 60 seg

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

TELEOPERACIÓN DE UN ROBOT MOVIL CON MANEJO DIFERENCIAL A BAJO COSTO

forma de entrenar a la nuerona en su aprendizaje.

Adquisición de Datos usando Matlab

Capitulo 3. Desarrollo del Software

3. FUNCIONAMIENTO DE LA FUNCIONES TXD Y RXD 4. EJEMPLO DE ENVÍO DE SMS DESDE EL PLC 5. EJEMPLO DE RECEPCIÓN DE SMS EN EL PLC

Cables y conectores más comunes en la plataforma PC

Nathanael Pineda

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Administrador de Proyectos Seis Sigma

Movilidad. Pasa demasiado tiempo fuera de la oficina? Solución móvil Dynamics NAV

CURSO BASICO CCTV CCTV-0901A

COMUNICACION DE PLC S MEDIANTE EL PUERTO RS- 485 Y MONITOREADO POR PANTALLA.

Fiery Network Controller para la DocuColor 250/240 SERVER & CONTROLLER SOLUTIONS. Ejemplos de flujos de trabajo

Práctica 5: Programación Estructurada

Enviar y recibir mensajes a través de la plataforma

Centro Universitario de Ciencias Exactas e Ingenierías DIVISION DE ELECTRONICA Y COMPUTACION

DESCRIPCION DEL SITEMA MASTER.

DIFERENTES TIPOS DE CABLES Y CONECTORES DEL PC

SINTESIS Y DESCRIPCIÓN DE CIRCUITOS DIGITALES UTILIZANDO VHDL ANTECEDENTES

MANUAL PARA MANEJO DEL SISTEMA DE TRASLADO

El ordenador es un dispositivo electrónico que permite almacenar información, modificarla y generar nueva información.

El Vehículo Eléctrico

Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática Circuitos electrónicos Otoño 2000

IV. Implantación del sistema.

podemos enfocar al funcionamiento del robot, es decir la parte de electrónica. Para que el

Tema 11: Instrumentación virtual


Instituto Tecnológico de Costa Rica

Software de Control de Visitas ALCANCE TÉCNICO

La presente tesis pretende que los estudiantes observen la teoría de las acciones de control

PRINCIPIOS SOBRE FORMATOS DIGITALES Y HD

Edición de vídeo con movie maker Autor: Jhon Gilberto Sánchez

Configuración de los convertidores TCP/IP Micro y TCP/IP Compacto.

1. Claves para la selección de un Display de Leds (i)

Universidad Nacional Autónoma de México

Manual SBR. Pero antes de explicar las actividades que principalmente podemos desarrollar vamos a dar una visión global de la aplicación.

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

Transcripción:

7 Reproducción de una Imagen en un Monitor VGA Utilizando un FPGA Michael Alejandro Diaz Illa, Alfredo Granados Ly Facultad de Ingeniería Electrónica y Eléctrica, Universidad Nacional Mayor de San Marcos, Lima, Perú RESUMEN: El presente artículo describe la manera cómo a partir de un programa aplicativo en Visual Basic podemos capturar y enviar la información de una imagen hacia un periférico que contiene un FPGA, el cual a su vez procesa la información y la envía a un monitor VGA para su presentación. Se ha usado como entrada de diseño el lenguaje VHDL y la implementación del sistema se realizó en el FPGA CYCLONE II 2C35C672C6 de la tarjeta de desarrollo DE2 de la empresa ALTERA utilizando la herramienta de síntesis y simulación QUARTUS II. ABSTRACT: This paper presents the way like from an application program in Visual BASIC we can capture and send the information of an image towards a FPGA, which processes the information and sends it to a VGA monitor for his presentation. diferencia de las imágenes en escala de grises, las imágenes a color requieren de la combinación de las 3 bandas de color, para representar el color de un píxel. Por ejemplo, un determinado punto blanco de una imagen en escala de grises se describiría: P(x, y) = 255, sin embargo en una imagen a colores para describir el color del mismo punto se realizaría así: P(x, y) = (255,255,255), esto debido a que el (0,0,0) corresponde al negro absoluto y el (255,255,255) al blanco Absoluto. Por otro lado la implementación de un sistema digital con el lenguaje VHDL [1] en un FPGA disminuye el tiempo de diseño y facilita al diseñador poder simular el diseño antes de poder implementarlo reduciendo los errores. El sistema implementado se muestra en la figura 1 y consta de un programa en Visual Basic, la tarjeta de desarrollo DE2 [2] con un reloj de 50 MHz y un monitor VGA. PALABRAS CLAVES: FPGA, UART, VGA, Memorias SRAM I. INTRODUCCIÓN Hoy en día el tratamiento digital de imágenes es muy importante en el campo de procesamiento digital de señales en donde podemos encontrar muchas aplicaciones. Las imágenes digitales se pueden representar en escala de grises o en escala de colores. Una imagen digital en escala de grises es una matriz de MxN elementos numéricos cuyos valores posibles van del 0 (negro) al 255 (blanco), siendo este número la intensidad luminosa en el determinado punto o píxel. Una imagen digital a colores está formada por tres matrices de MxN, siendo este número la intensidad luminosa en cada una de las bandas espectrales del RGB (Rojo, Verde, Azul), de cada punto o píxel, a Fig. 1. Diagrama de Bloques del Sistema.

8 II. DISEÑO DEL SISTEMA El trabajo se ha dividido en dos partes, una que consiste en el desarrollo de una aplicación en Visual Basic y la otra en el desarrollo de tres módulos descritos en lenguaje VHDL, denominados : Módulo de Recepción UART, Módulo de Almacenamiento de Datos y el Módulo de Visualizar Pantalla. III. APLICACIÓN EN VISUAL BASIC La figura 2 muestra el diagrama de flujo del programa desarrollado en Visual Basic. El Programa carga una imagen en blanco y negro a escala 640x480 y va escaneando la imagen desde la columna 0 hasta la columna 639 luego incrementa la fila desde 0 hasta la fila 479 donde termina el programa. De esta manera la imagen es llevada a una matriz, en donde encuentra un valor (255,255,255) ( i, j) pondrá el valor de la matriz ( i, j) a TRUE, y cuando encuentre el valor (0,0,0) pondrá un FALSE. Luego de cada escaneada de una columna el programa envía un 1(TRUE) para píxel blanco o un 0(FALSE) para un píxel negro al puerto serial de la computadora a través del objeto MSCOMM [3]. La velocidad de transmisión esta dada en baudios y es configurable en el programa. En la figura 3, se muestra el programa en ejecución. INICIO TRANSFERIR IMAGEN FIGURA(i,j)=255,255,255 MATRIZ(i,j)=FALSE MATRIZ(i,j)=TRUE INCREMENTAR i i= 639 INCREMENTAR j Fig. 3. Programa en Visual Basic. MATRIZ(i,j)=TRUE ENVIO=0 ENVIOè PUERTO SERIAL j= 479 ENVIO=1 IV. MÓDULO DE RECEPCIÓN UART El módulo de recepción UART consta de dos bloques diseñados en VHDL que fueron unidos con el estilo estructural, ver figura 4, uno de los bloques es para fijar la velocidad en baudios de la recepción y el segundo módulo es una maquina de estados que se encarga de almacenar los datos que llegan. El módulo UART toma el dato del circuito integrado MAX232 de la tarjeta DE2 que está conectado a la computadora por un cable serial DB9. A. Módulo Baudios FIN Fig. 2. Diagrama de Flujos del programa en Visual Basic. Este módulo fue diseñado en VHDL con el estilo algorítmico, ver figura 5, se encarga de fijar la velocidad de recepción. Las velocidades en baudios que se pueden configurar son una combinación de 3 bits y

9 son 1200, 2400, 4800, 9600, 19200, 38400, 57600 y 115200 baudios. baudios:u1 _Rx mod_receptor:u0 Clk_Rx Rx RxRdyi Dout[7..0] Rx_valido Dato[7..0] rx_dato Fig. 4. Módulo de Recepción UART baudios:u1 _Rx Fig. 5. Módulo Baudios. V. MÓDULO DE ALMACENAMIENTO DE DATOS Este módulo consta básicamente de una máquina de estados implementado en VHDL y se muestra en la figura 6. Se encarga de almacenar en un registro los ocho bits que son enviados por la computadora. mod_receptor:u0 Clk_Rx Rx RxRdyi Dout[7..0] Fig. 6. Módulo de Almacenamiento de Datos. Cuando se completa la llegada de los ochos bits en el registro, el módulo envía una señal de salida por un instante de tiempo. De esta manera el Módulo de Recepción UART advierte al Módulo de Escritura de Datos el fin de recepción de datos. A. Módulo de Escritura de Datos en la Memoria SRAM Este módulo está compuesto por una máquina de estado y se muestra en la figura 7. Recibe los datos del Módulo de Recepción UART y los almacena en la memoria SRAM de la tarjeta de desarrollo DE2. El diagrama de estados que gobierna esta máquina se muestra en la figura 8. El funcionamiento de esta máquina es recibir los 640x480 datos que provienen del módulo de Baudios y almacenarlos en las posiciones de la memoria SRAM, para lo cual utiliza dos contadores. Los datos que le llegan son 1 (píxel blanco) y 0 (píxel negro) y se ponen en formato RGB. Por ejemplo para el píxel blanco sería 111 y para el píxel negro sería 000. Se guardan 4 datos (formato RGB) en una posición de memoria, por lo que sólo se usan los 12 bits menos significativos de una posición de memoria lográndose cubrir 76800 posiciones de memoria para todo el monitor VGA. mef1:u1 inicio D[7..0] CE OE WE address[17..0] dato[11..0] Fig. 7. Diagrama de Bloques de la Memoria SRAM. 0 0 CE OE WE addres dato[1 UB1 LB1

10 s0 s1 s2 Fig. 8. Diagrama de estado de la unidad de control que gobierna el Módulo de escritura de datos en la SRAM. La memoria SRAM es un tipo de memoria volátil que no necesita un refresco en sus datos. Los datos se pierden cuando se les quita la alimentación o cuando se graban nuevos datos. Las memorias utilizadas son de la empresa ISSI y tiene una capacidad de 256Kx16 bits de datos con tiempos de accesos muy cortos entre 10 a 15 nanosegundos. El diagrama de bloques se muestra en la figura 9. VI. MÓDULO DE VISUALIZAR PANTALLA El módulo de visualizar pantalla se muestra en la figura 10 y consiste de un controlador de memoria que envía los datos de la SRAM de la tarjeta de desarrollo DE2 a un generador de sincronismo con lo cual visualizamos los datos de la memoria en el monitor VGA. La figura 11, muestra el generador de sincronismo, básicamente consiste de un generador de sincronismo horizontal y otro vertical. Estos dos circuitos deben generar señales de acuerdo a la frecuencia y resolución del monitor. VI. MÓDULO DE VISUALIZAR PANTALLA El módulo de visualizar pantalla se muestra en la figura 10 y consiste de un controlador de memoria que envía los datos de la SRAM de la tarjeta de desarrollo DE2 a un generador de sincronismo con lo cual visualizamos los datos de la memoria en el monitor VGA. La figura 11, muestra el generador de sincronismo, básicamente consiste de un generador de sincronismo horizontal y otro vertical. Estos dos circuitos deben generar señales de acuerdo a la frecuencia y resolución del monitor. Los sincronismos vertical y horizontal que son contadores sirven para dar la dirección al controlador de memoria y luego este toma los datos de la memoria y los lleva a las entradas RGB del módulo de sincronismo. De esta manera el módulo lee las porciones de memoria y envía los datos (píxeles) al monitor. OSC 50MHz Red Blue Green 25MHz Generador de Sincronismo Horizontal Generador de Sincronismo Vertical Fig. 11. Generador de Sincronismo. El controlador de VGA que posee la tarjeta DE2 tiene tres DAC s para el R, G y B de 10 bits cada uno, ver figura 12. De esta manera, se puede tener muchas más combinaciones de colores. VIDEO Fig. 9. Diagrama de Bloques de la Memoria SRAM de 256Kx16 de la empresa ISSI. Fig. 12. Generador de Sincronismo.

11 RESULTADOS La figura 13, muestra el instante que se envía una foto al monitor VGA conectado al sistema, cabe señalar que en ese instante el sistema se está ejecutando pudiendo visualizarse casi la mitad de la figura 3. Se estudió el Standard RS232 para el envío de datos desde una computadora al FGPA, además se estudio los tiempos de sincronismo que necesita el monitor VGA para poder ver una imagen. Con este sistema sólo se envió una imagen en blanco y negro y se deberá cambiar el diseño para enviar una imagen a colores. Se han usado un total del 10 % de elementos lógicos del FPGA CYCLONE II 2C35C672C6 de la tarjeta de desarrollo DE2. Se realizaron pruebas con una velocidad de 9600 y 57600 y se vio que la imagen demora en pasar desde el programa en Visual Basic al monitor en más de 1 hora. Con esto podemos sugerir que para trabajos posteriores se deberá usar el protocolo USB de mayor velocidad. VII. REFERENCIAS Fig. 13. Foto tomada en el instante en que se pinta la imagen en un Monitor VGA conectado al Sistema. VI. CONCLUSIONES Se llegó a implementar el sistema digital para reproducir una imagen en un monitor VGA. El tiempo de diseño del sistema fue de tres días incluyendo la aplicación en Visual Basic. [1] Brown, Stephen. Fundamentals of digital logia with VHDL design, 2005. [2] DE2 ALTERA Board User Guide. http://www.altera.com/education/univ/materials/bo ards/de2_usermanual.pdf, May 2006. [3]Aprenda Visual Basic 6.0 Ya, Halvorson, Michael, McGraw-Hill, 1999.