User:Digital II 2010

From Qi-Hardware
Jump to: navigation, search

Contents

[edit] Proyecto de Electrónica Digital II


[edit] Visualizador de Procesos

[edit] Calificación

Porcentaje Presentación 20% Informe 30% Funcionamiento 50%
1 Entrega 10% 0.5 0.5 0.5
2 Entrega 30% 1.8 1.8 1.8
3 Entrega 40% 0.5 0.5 0.5


El proyecto se trata de la visualización de un proceso industrial, como es el de un proceso por lotes de dos tanques de la industria química en forma de mímico y utilizando una paleta de colores en una pantalla LCD que se conectará a la FPGA de la tarjeta SIE.
El proceso consiste en 2 tanques, uno encima del otro. Hay una bomba que puede ser activada o desactivada automáticamente para bombear líquido a lo más alto del tanque (tanque 1) por la válvula 1. El tanque 1 tiene una válvula en la base. Esta válvula 2 está normalmente cerrada pero puede ser abierta para enviar líquido del tanque 1 dentro del tanque 2, el cual activaría la válvula 3. En el tanque 1 se espera unos segundos para poder mezclar un fluido, reacciones, etc. El tanque 2 tiene una válvula 4 en su base para que pueda ser vaciado dentro de un embalse. Todas las válvulas son operadas manualmente mediante un teclado matricial.
A continuación se muestran dos imágenes de cómo puede verse este proceso en la pantalla LCD.
Proceso1.JPG
Proceso2.jpg

[edit] Diagrama de Flujo del Sistema


Diagramaflujo PLC1.jpeg


[edit] Especificaciones


  • FISICAS: Se utilizará la FPGA y la pantalla de la tarjeta SIE. A la tarjeta irá conectado un teclado matricial para las señales de entrada. La conexión de la FPGA y la pantalla LCD se hará con un circuito en PCB.
  • ELECTRICAS: La señal de entrada se hará por medio de un teclado matricial, que tendrá la función de mandar niveles bajos o niveles altos de tensión, para el control de las válvulas. Se tendrá un circuito que comunicará la FPGA y la pantalla LCD.
  • TEMPORALES: El Sistema de Control Lógico Programable funcionará en tiempo real, es decir, el estado del teclado matricial se verá reflejado en la pantalla LCD simultáneamente.
  • FUNCIONALES: Inicialmente cuando se encienda la tarjeta SIE, tendrá un estado de reinicio, a partir de esto empezará a verse el proceso en pantalla, siendo esta visualización de forma dinámica tratando de verse el proceso mencionado de forma secuencial. La apertura y cierre de válvulas se podrá hacer por medio del teclado matricial y estos cambios se verán en pantalla. La visualización se podrá observar en colores, permitiendo así al usuario notar los cambios en el proceso.


[edit] Tareas Hardware y Software


  • Hardware: El control de estado de las válvulas mostradas en la pantalla LCD, mediante teclado matricial.

Asignación de salidas de la FPGA hacia la LCD. Decodificación de las señales del teclado matricial.

  • Software: Programación de una escala de colores para la pantalla LCD.

Generación de datos para la representación fija y dinámica de las gráficas en la pantalla LCD


[edit] Diagrama de Bloques


Dia Bloque.jpeg


GPIO: Es el periférico que obtiene las señales enviadas desde el teclado matricial.
CPU: Controlará el procesamiento de las señales enviadas hacia el programa principal que más adelante se visualizará.
LCD: Es el periférico que mostrará el entorno gráfico en la pantalla LCD.


[edit] Mapa de Memoria

Map mem.jpeg

El mapa de memoria está conformado por dos periféricos (LCD y teclado matricial) y la memoria de arranque del programa (BOOT). La RAM de la LCD necesita una capacidad de 76800 bits para poder usar la resolución completa (320x240) y que la imagen se muestre monocromática (1 bit). Como la FPGA tiene 20 bloques dedicados (cada uno de 18432 bits), entonces se utilizaran 4 de estos bloques que posteriormente dividirán la pantalla en 4 secciones que estarán sincronizadas para que la imagen se muestre como una sola. BRx es un bloque de memoria RAM de la FPGA.

BRIM.JPG


El RTL del codigo en verilog para la memoria RAM se muestra en la siguiente figura:

Ram.JPG

[edit] LCD

La descripción interna tiene una interfaz serial de tres señales hacia la CPU (SPENB, SPDA y SPCK). La interfaz es usada para escribir datos en los registros. Cada comando serial está formado de 16 bits de datos que son cargados en el flanco de subida de SPCK. La operación que inicia el comando de carga es el flanco de bajada de SPENB y es completado en el siguiente flanco de subida de la misma señal.

C.JPG

La configuración de la pantalla LCD depende de 26 registros, cada uno de estos tiene una función específica para la configuración y 16 parámetros representados en 1 bit cada uno. Para nuestro proyecto se va a dejar la configuración por default de estos registros internos.

A.JPG


Top.JPG


Top2.JPG


La siguiente figura muestra el diagrama de bloques para la configuración de hardware de la LCD.
Registro CLUT: Contiene la dirección inicial en donde se encuentran los colores que usaran.
Procesador de color: codifica el dato del pixel recibido con la información del color RGB.
Bloque FIFO RGB: Asegura datos seriales hacia la LCD.
Registro de memoria de video: Contiene direcciones de inicio del banco de memoria de la memoria externa.
Generador de sincronización de vídeo: Genera la sincronización horizontal, vertical, comando serial de datos de entrada, habilitador de comandos seriales.

Lcd.JPG

En el siguiente archivo de pdf se muestran los registros internos que se manejarán para controlar la LCD.

Lista Registros.pdf

En la siguiente figura se explica mejor como se programaran los pixeles de la LCD con una pequeña muestra de 8 x 6 pixeles, y que contiene el bloque de CLUT.

Clut.JPG


La configuración de los colores se da por configuración RGB, de esta forma como se ve en la tabla de Input Color Data el color negro es el bit 0 y el blanco es el bit 1.

B.JPG

Diagrama de bloques del procesador de color

Generador de Direcciones: Es parte de la interfaz con el Wishbone Maestro. En él se genera la memoria de vídeo y las direcciones del CLUT, además ejecuta el banco de memoria de vídeo y mantiene las vueltas del número de pixeles a leer. Cuando todos los pixeles son leídos cambia el estado de la memoria de video, el contador de pixeles se resetea y se genera una señal de interrupción en el banco.

Buffer de Datos: Este bloque nos permite almacenar temporalmente los datos leídos desde la memoria de vídeo mediante un consecutivo direccionamiento de transferencia de estos datos. El tamaño de la transferencia de los datos es determinado por el Video Memory Burst Length [VBL] bits en el registro de control. Es posible que múltiples accesos de transferencias sean ejecutadas dentro de un solo ciclo de acceso, en este caso el controlador de memoria debería interpretar esto como acceso de transferencias separados. Todos los datos son almacenados consecutivamente y todos los bits habilitados son usados, independientemente de la profundidad del color. En el modo de 8 bits por pixel una palabra de 32 bits almacena 4 pixeles.

Coloración: Este bloque es el encargado de decodificar los datos almacenados en el buffer de datos en colores.

Buffer de RGB: Este bloque almacena temporalmente los datos generados por el bloque Coloración hasta que haya espacio en el bloque FIFO. Los datos del bloque de Coloración, a su vez, esperará a que el buffer de RGB sea vaciado antes de enviar nuevos valores de RGB.

FIFO: Este bloque es un dual clocked FIFO, sus dos relojes de entradas son controlados por el clock del Wishbone y el dot clock de la LCD. El bloque almacena los datos antes de ser enviados a la LCD.

DiagramaBloqueProcesadorColor.jpeg

[edit] Esquemático del Circuito Conector entre LCD y FPGA


Pcbback.JPG

Pcbfront.JPG

PCB3.JPG

ShcPCB.JPG

[edit] Cronograma de Actividades

  • 6ta. Semana: Hacer la PCB física de la tarjeta hija. Terminar de afianzarse con las funcionalidades del procesador mico LM32.
  • 7ma. Semana: Hacer reconocimiento de la SIE. Programar los módulos de iniciación de la LCD y también la programación de la interfaz gráfica fija.
  • 8va. Semana: Realizar la programación para la adquisición de las señales de entrada del teclado matricial para el control de las válvulas y comenzar con la programación de la paleta de colores.

[edit] Teclado Matricial

A continuación se presenta el RTL del teclado matricial instanciado con el bus wishbone.

RTL TM.png


Rodríguez, Adrián (261353)
Quintero, John (261349)
Barriga, Rodrigo (261170)

Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export