Вы находитесь на странице: 1из 3

Letter Optics Letters 1

Procesador de imágenes en FPGA con controlador


VGA
M ARIA E MILIA P ENAYO1 , A NDRÉS P RIETO1 , AND J UAN J OSÉ R OJAS 1

3 Facultad de Ingeniería, Universidad Nacional de Asunción, Avda. Mcal. López, San Lorenzo, 2160
* Corresponding author: emipenayo123@hotmail.com

Compiled December 27, 2018

En este trabajo se presenta la implementación de un está controlada por el FPGA, como se verá en las secciones sigu-
código para el procesamiento digital de imágenes so- ientes. Ellas están estructuradas como sigue; en la sección 2 se
bre una plataforma FPGA. Los módulos que se imple- describen bloques en que se divide para su diseño y los módu-
mentaron fueron: 1) Un controlador UART, 2) una Block los que que lo integran. En la sección 3, se tiene un pequeño
RAM, 3) un controlador VGA y 4) un programa de mat- manual de usuario y en la 4ta se presenta una pequeña sección
lab para la conversión de la imagen a un vector de pix- de problemas y soluciones.
eles y la comunicación serial con el FPGA. Para ello
se diseñó un sistema modular con el lenguaje VHDL, 2. MÓDULOS DISEÑADOS
usando la herramienta para sintetización ISE Design
A. Procesamiento de imagenes en MATLAB
Suite 14.7 de Xilinx. La implementación del sistema se
Se ha elaborado un pequeño código en donde, con el comando
hizo en la placa de desarrollo Mimas V2, la cual tiene
’imread’, se lee la imagen especificando su nombre como
un FPGA Spartan 6 de Xilinx. La imagen a procesar parámetro,y retorna una matriz de tamaño 320 x 200 x 3. Dicha
se recibe por el puerto serie de la tarjeta a una veloci- matriz podemos subdividirla o separarla en 3 matrices de
dad de 19200 baudios y tiene una resolución de 320 x 320x200, y obtendremos entonces la matriz R: que representan
200 pixeles con 8 bits para el color. En la memoria de los 320x200 pixeles de color rojo que conforman la imagen;
la tarjeta se almacena la imagen procesada, que emite la matriz G: que contiene 320 x 200 pixeles de color verde, y
una señal de aviso al culminar el procesamiento y al- por último B, que es la matriz de colores azules. Cada pixel
macenamiento para que luego, mediante un interruptor, de cada matriz (R,G,B) está representado por 8bits, por lo que,
pueda visualizar la imágen en una pantalla con conex- se opta por extraer 3 bits de cada elemento de la matriz R y G,
ión VGA. © 2018 Optical Society of America y otros 2 bits de la matriz B, y posteriormente guardar esos
8 bits como un solo elemento de un vector llamado RGB (asi
http://dx.doi.org/10.1364/ao.XX.XXXXXX sucesivamente con todos los elementos, resultando un vector
RGB de 320x200x8). De esta manera, se reducirá la resolución
de la imagen, lo suficiente como para que pueda transmitirse y
1. INTRODUCCIÓN almacenarse en la memoria del FGPA.
El procesamiento digital de imágenes es un área de interés para Por último, este script finaliza con una transmisión serial de este
investigadores y académicos debido al inmenso campo de ac- vector RGB que realiza el ordenador al FPGA, con un BaudRate
ción que posee, éste va desde la mejora de una imagen hasta de 19200.
la realización de procesamiento de alto nivel, como lo es el re-
conocimiento de escenas. Cabe mencionar que la mayor parte
de este tipo de procesamiento se realiza en software, emple- B. Controlador UART
ando una computadora como soporte. Esto porque en cierta El Transmisor-Receptor Asíncrono Universal fue el primer
medida es más sencillo implementar este tipo de técnicas en módulo a diseñar e implementar en la tarjeta. El receptor del
software, en donde el desarrollador sólo se concentra en la im- mismo cumplirá la función de recibir los datos enviados de la
plementación propiamente dicha, dejando a un lado todo lo PC al FPGA.
referente al manejo interno de datos, como el uso de la memoria Este módulo ha sido diseñado como una máquina de estado,
para el almacenamiento temporal de las imágenes durante su donde en cada ciclo de reloj y bajo el cumplimiento de ciertas
procesamiento. No obstante, hay trabajos en donde la imple- condiciones, recepcionará los datos enviados por la PC.
mentación se realiza en hardware. Específicamente se utiliza Explicándolo de forma sencilla y resumida, el receptor del
un FPGA para el procesamiento de imágenes. En este trabajo UART se encuentra inicialmente en un estado de espera (IDLE),
se realiza el diseño de un controlador que recibirá la imagen antes de que inicie la transmisión.
procesada por un ordenador utilizando MATLAB y mostrará Con un bit de start configurado como un bit 0, el receptor sale
el resultado de tales procesamientos en una pantalla VGA que del estado de espera, para pasar a un estado de recepción de
Letter Optics Letters 2

datos, donde registra los 8 bits transmitidos por el ordenador, 7. Deberá colocar el switch para transmisión/recepción acti-
seguidos de un Stop bit, que avisa al controlador UART que la vado hacia la derecha, mirándolo con una vista superior
transmisión del primer elemento ha culminado, y ya se puede igual a la de la figura 1.
proceder a almacenar esos primeros 8 bits en la memoria del
FPGA. 8. Seguidamente, ejecute el archivo Matlab y espere a que
éste termine su trabajo.

9. Las luces LED de la placa se encenderán cuando el orde-


C. Block RAM
nador haya culminado el procesamiento y transmisión de
Consiste en una memoria de 576Kbit, que será habilitada para la imagen a la placa.
carga a medida que se complete cada transmisión de 8bits. En
ella se almacenará toda la información necesaria para definir 10. Levante el switch para visualizar la imagen, y podrá ver
completamente la imagen, y de la misma se extraerán los el resultado. (Si lo realiza antes de que se enciendan las
mismos datos para proyectarlos en una pantalla. luces indicadoras, podrá ver la transmisión, uno a uno,
Tanto la transmisión de datos como la carga en la memoria se de los pixeles, en tiempo real).
realizan en forma simultánea, pero cuando esta tarea se ejecuta
por completo, se enciende un indicador LED, que avisa que la 11. ENJOY!
imagen esta cargada y lista para ser proyectada.

D. Controlador VGA
En este último módulo, se extraen los datos de la memoria y se
envían como salida al VGA del FPGA.
Esta acción está condicionada por la activación de una bandera,
que físicamente esta conectada a un switch de la placa. La
proyección de la imagen no se realizara si usted no activa dicha
bandera.

3. MODO DE USO
Descripción del proceso:
En la figura 1 puede verse paso a paso, el camino que recorrerá Fig. 1. Descripción del procedimiento, donde puede verse que
la señal a medida que va atravesando cada módulo. caminos va tomando la señal.

PASOS A SEGUIR:
1. En primer lugar, conecte la tarjeta al ordenador uti-
lizando un cable USB-A a USB -B. En la figura 2 puede
verse donde se encuentra dicha entrada de conexión.
2. También asegúrese de conectar la salida VGA de la tar-
jeta a la entrada VGA de su pantalla, TV o monitor.
3. Abra el archivo Matlab adjunto con la carpeta del
proyecto, y en la linea 106, configure el número de puerto
COM al cual usted se ha conectado. (Si no sabe cuál es,
consulte en su ordenador, en el administrador de dispos-
itivos» Puertos COM).
4. El proyecto ya trae consigo una imagen adjunta que será
proyectada al ejecutar los archivos fuente. Si usted desea
probar con otra imagen, asegúrese que esta posee una res-
olución de 320x200, y guárdela en la misma ubicación del Fig. 2. Plano de conexiónes para la placa.
archivo Matlab.
5. Una vez guardada la imagen, debera modificar el archivo
Matlab, en la linea tres, en el comando ”matriz = 4. PROBLEMAS Y SOLUCIONES
imread(0 nombre_de_la_imagen.png0 ); donde deberá colo-
car el nombre con el que guardó el archivo y su formato Durante la realización del trabajo, han surgido varias dificul-
correspondiente. tades y limitaciones. Una de ellas, y muy importante, es la
memoria limitada del FPGA. La memoria del mimas v2 es
6. Si la tarjeta no se encuentra programada, deberá progra- de 576 Kbit, apenas lo suficiente como para almacenar una
marla primero con el programador de Xilinx para el Spar- imagen con la resolución que se ha utilizado.
tan 6 y el archivo .bin de implementación generado por Es conveniente completar la transmisión de datos y alma-
el ISE Design Suite.(Si no lo logra, consulte con el fabri- cenamiento antes de proyectar la imagen, para prever la
cante). situación en donde quiera proyectarse algo que no existe o es
Letter Optics Letters 3

basura.
En lineas generales, el diseño de cada módulo se ha logrado
con satisfacción, cumpliendo cada uno con los requerimien-
tos necesarios para realizar la tarea asignada.

Вам также может понравиться