Adquisición y Filtrado de Imagen
Ivan Jose Galindo Cod. 261389 Fabio Andres Valbuena Cod. 261439 Andrés Arturo Ariza Cód.: 261370.
Contents |
[edit] Calificación
| Porcentaje | Presentación 20% | Informe 30% | Funcionamiento 50% |
|---|---|---|---|
| 1 Entrega 10% | 0.5 | 0.5 | 0.5 |
| 2 Entrega 30% | 0 | 0 | 0 |
| 3 Entrega 20% | 1 | 1 | 0 |
[edit] Especificaciones del Sistema
En este proyecto para electrónica Digital II se busca, utilizando el sensor de imagen TCM8240MD de Toshiba, lograr obtener una fotografía para una posterior visualización en TFT LCD , con la posibilidad de aplicar modificaciones mediante filtros a la imagen. Lo anterior utilizando el PLASMA e implementado en la tarjeta de desarrollo SIE [1]. En el enlace que se expone a continuación se encuentra la presentación tipo diapositivas de este proyecto http://www.4shared.com/file/T9OxuLTp/PROPUESTA_PROYECTO_ELECTRONICA.html .
[edit] Funcionamiento
Mediante una señal dada por el usuario, se configurara el sensor de imagen, mediante las especificaciones dadas por la resolución del LCD y la memoria. Luego de la configuración el usuario indicara que se tome una foto, hasta que este evento no suceda en el LCD no se visualizara nada, al tomar foto los datos enviados por el sensor de imagen son entonces recibidos por el procesador el cual los guardara en memoria, y luego los extraerá y enviara hacia el control de LCD, el cual generara los sincronismos para ver la imagen. Por ultimo el usuario tendrá la opción de filtrar la imagen, al dar esta orden el procesador operara los datos guardados en memoria, el LCD ya no mostrara nada y luego visualizara de nuevo la imagen filtrada.
[edit] Diagrama de Bloques
Diagrama general de bloques:
Diagrama bloques perifericos:
[edit] Modulo Camara
El modulo cámara controla las señales de datos generadas por el sensor de imagen y las envia a los bloques de memoria interna de la fpga. El siguiente archivo pdf incluye el diagrama de flujo, los diagrama de bloques y la maquina de control.
[edit] Modulo Control IIC
El modulo de i2c se encarga de configurar los registros necesarios en el sensor de imagen para originar en este las tramas de datos para la resolución específica, esto mediante las señales de SDA y SCL. En el archivo TCM8240MD se muestran las condiciones de operaciones de las señales y en este archivo Notes IIC se pueden observar los registros a configurar para cada resolución. En las siguientes imágenes se muestran los diagramas de bloques y diagrama general de maquina de estados del modulo I2C originados a partir del código para esta comunicación elaborado por los estudiantes del semestre 2009-II de Electrónica Digital I de la Universidad Nacional de Colombia.
La figura anterior muestra el diagrama de bloques general del modulo de control de IIC.
La figura anterior muestra el diagrama de bloques para el modulo de escritura del modulo de control de IIC.
La figura anterior muestra el diagrama general de la maquina de control del modulo de control de IIC.
[edit] Modulo LCD
Este modulo se encarga de controlar las señales de sincronismo y visualizacion de datos en el LCD. El siguiente es el diagrama de flujo para este modulo.
[edit] Modulo de Filtrado
El filtro modificaría la imagen mediante operaciones sobre los datos almacenados, en este caso se pretende realizar el filtrado a partir de que se conoce como esta compuesto cada pixel que envía el sensor de imagen. El tipo de filtro seria espacial, en este caso se realizan operaciones mediante mascaras, cada pixel de la nueva imagen se obtiene mediante la sumatoria de la multiplicación de la máscara por la vecindad del pixel, generalmente se divide sobre cierto valor constante para normalizar, y este valor viene dado por el tamaño de la mascar. Para operar en los bordes de la imagen se puede asumir valores de 0 o 1 en los pixeles vecinos o tomar el valor del mismo pixel. El siguiente es el diagrama de flujo para el modulo de filtrado.
[edit] Modulo de Memoria Interna
Dado la cantidad de pines de entrada/salida que dispone la FPGA Spartan3 en la tarjeta SIE y la necesidad de disponer esos pines para el uso del sensor de imagen y el display LCD, se opta entonces por el uso de un modulo de memoria interna basado en el modulo RAMB16_Sm_Sn (16384-Bit Data Memory and 2048-Bit Parity Memory, Dual-Port Synchronous Block RAM with Port Width (m or n) Configured to 1, 2, 4, 9, 18, or 36 Bits) de Xilinx, el cual se encuentra aquí y que contiene PLASMA en el archivo ram_xilinx.vhd. Dado que el PLASMA ocupa 16kbits de un total de memoria de 64kbits el espacio libre de memoria para el almacenamiento de los datos es de 48kbits esto a una resolucion SubQcif en el sensor nos permitira guardar solo 2 bits por pixel.
[edit] Particionamiento de Tareas Hardaware/Software
TAREA HW:
Control Sensor Imagen(Manejo de la señales generadas por el sensor de imagen y que necesita para funcionar)
Configuración I2C(Configuracion de los registros del sensor de imagen para ajustar su resolucion)
Control LCD(Generacion de los sincronismos)
Filtro de Imagen(Operaciones de mascara sobre la imagen)
[edit] Mapeo de Memoria
La distribucion de la memoria se presenta mediante la modificacion del archivo plasma.h del PLASMA junto a los bits de interrupcion.
/*********** Hardware addesses ***********/ #define RAM_INTERNAL_BASE 0x00000000 //8KB #define UART_BASE 0x00004200 //17kb #define UART_WRITE 0x00004200 #define UART_READ 0x00004200 #define UART_STATUS 0x00004200 #define IRQ_MASK 0x00004210 #define IRQ_STATUS 0x00004220 #define USUARIO_START 0X00004230 #define USUARIO_RESERT 0X00004230 #define USUARIO_FILTRO 0X00004230 #define SENSOR_STADE 0x00004240 #define I2C_STADE 0X00004250 #define LCD 0x00004260 #define FILTRO_STADE 0x00004270 #define MEMORY_DATA_BASE 0x00004280 //almacenamiento de datos 48kbits
/*********** Interrupt bits **************/ #define IRQ_UART_READ_AVAILABLE 0x01 #define IRQ_UART_WRITE_AVAILABLE 0x02 #define IRQ_USUARIO 0x04 #define IRQ_FILTRO 0x08 #define IRQ_LCD 0x10 #define IRQ_SENSOR 0x12 #define IRQ_I2C 0x14
[edit] Esquematico y PCB
El esquematico para el sensor de imagen es diseño del ingeniero Carlos Camargo, y se encuentra en los siguientes links:
En cuanto a la tarjeta de comunicaciones entre SIE y perifericos, el esquematico y PCB se muestran a continuación.
[edit] Cronograma
Semana Fecha Actividad S8 28 Sep – 3 de Octubre Revision 2 S9 5-10 de Octubre PCB finalizada-Códigos Módulos I2C, SENSOR, LCD S10 12-17 de Octubre Código Modulo Filtro, Revisión de cada Modulo S11 19-24 de Octubre Integración Plasma S12 26-31 de Octubre Integración Plasma S13 2-7 de Noviembre Pruebas S14 9-14 de Noviembre Modificaciones S15 16-21 de Noviembre Informe Final S16 23-28 de Noviembre Entrega Proyecto Final
