Verano de la ciencia 2009 región centro Diseño e Implementación de un sistema de desarrollo para la programación de Lógica Digital José Israel Zaragoza Hernández(1).; Luis Felipe Lastras Martínez(2) (1) Ingeniería electrónica. Instituto Tecnológico de Querétaro (2) Doctor en ciencias IICO-UASLP RESUMEN En este proyecto se utilizara un lenguaje de programación llamado VHDL el cual será implementado en una tarjeta llamada altera DE2 la cual recibirá información procesada de un convertidor analógico digital modelo ltc1740cg el cual codifica la señal de un ccd modelo tcd1305ag transmitiendo la información a través de la interfaz rs – 232. Toda la información codificada y procesada por la FPGA será desplegada en la pc mediante un programa realizado en labview. Figura 1. Conexión del sistema INTRODUCCION La tarjeta de desarrollo DE2 está compuesta de un FPGA Cyclone EP2C35F672C6 fabricado por Altera, con soporte de varios periféricos tales como puerto RS-232, USB, paralelo, PS/2, salida VGA, y un display de cristal líquido (LCD). Además cuenta con botones, LEDs, DIP-switch y memoria externa. El CCD modelo tcd1305ag es un dispositivo muy sensible a la luz y es capaz de recibir información en 3648 localidades y a muy alta velocidad, una de sus grandes cualidades es que transmite salidas de voltaje constantes que varían de acuerdo a la intensidad del haz de luz. El convertidor analógico-digital modelo ltc1740cg es capaz de convertir señales analógicas a una velocidad de 6 Mhz, con una resolución de 14 bits lo cual permite tener lectura de datos más estables y de mejor precisión. 1 La comunicación RS-232 se configuró del siguiente modo: 9600 bauds, 8 bits de dato, No paridad y 1 bit de stop. El proyecto se programó en VHDL, usando el software de desarrollo Quartus II web edition de la misma compañía fabricante del FPGA. DESCRIPCION DEL SOFTWARE A continuación se muestra una breve descripción de la entidad del programa en la Fig. 2 y las componentes empleadas por la misma, explicadas por separado. Figura 2. En la figura 2 se presentan todos los programas realizados e interconectados que fueron necesarios implementar para poder obtener los resultados necesarios en el desarrollo del proyecto, los programas fueron los siguientes: - ccd_clk_driver.vhd (programa), ccd_clk_driver.bdf (bloque). - ram3.vhd (programa), ram3.bdf (bloque). - rs232.vhd (programa), rs232.bdf (bloque). La entidad ccd_clk_driver fue realizada para poder controlar el dsipositivo ccd ya que requiere de 3 señales de sincronía para poder funcionar las cuales son master_clk, sh_sync, icg_sync, figura3. Estas 3 señales son salidas declaradas en la entidad las cuales son generadas gracias a la sintaxis que se le dio al programa. Esta entidad tiene las siguientes entradas: Clk_50MHz - Señal de reloj interna de la tarjeta de 50MHz pb(1..0) – Vector de 2 bits que sirve para mantener la sincronía i así poder obtener dichas señales. 2 Figura 3 La entidad ram3 es una de las principales y más importantes del proyecto, es encargada de almacenar toda la información procedente de el convertidos analógico digital en 2 bytes de 8 bits cada uno, de esta manera poder almacenar 16 bits de los cuales solo 14 son los que contienen información, figura 4. La información es almacenada en 3648 localidades y así mismo enviada a la interfaz rs-232 de manera sincrónica. Esta entidad tiene las siguientes entradas: Reloj - Señal de reloj interna de la tarjeta de 50MHz. Escribir – esta señal indica cuando se necesite almacenar información en las 3648 localidades. Leer – esta señal se activa cuando se requieran los 3648 datos almacenados y asi poder enviarlos a su siguiente destino. Dato1,2(7..0) – esta señal es la entrada de información que se va a guardar, son 2 bytes de 8 bits cada uno. Las señales de salida son: Sal (7..0) – esta señal de salida nos proporciona toda la información guardada previamente. Salcontador(11..0) – esta señal se genero para poder ver en que localidad se va guardando la información y así verificar que la cuenta no esté mal o que los datos no se están guardando. Clk_5M – proporciona una salida a una velocidad de 5MHz necesaria para poder controlar al convertidor analógico digital. Figura 4 La componente RS-232 se encarga de recibir datos en forma serial y convertirlos a un registro en paralelo de 8 bits, figura 5. Esta componente de comunicación serial tiene las siguientes entradas: clk, reset_n – reloj de 50MHz y un switch para reiniciar la transferencia de datos. rd – Recibe los datos en forma serial bajo el siguiente formato: 9600 bauds, 8 bits de dato, no paridad y 1 bit de stop Como salidas tiene: td – Siempre en estado de alta impedancia, por lo mencionado anteriormente dato_av – Señal de dato disponible, se activa al haber recibido los 8 bits, la utiliza la entidad principal para ir contando los caracteres a desplegar. dato_rx – Byte recibido por el puerto RS-232, en este caso son los caracteres ASCII que se le proporcionen desde la PC 3 Figura 5 Esta fue la estructura principal diseñada en VHDL he implementada en la FPGA, así mismo las señales obtenidas fueron transferidas mediante este protocolo rs-232 hacia una PC por el puerto USB. Se genero un programa en labview el cual se encarga de graficar los datos obtenidos y así poder realizar observaciones y poder obtener conclusiones, figura 6,7. Figura 6 Figura 7 CONCLUSIONES En general este sistema puede emplearse para poder ser implementado en distintos tipos de sensores ópticos, en este caso se aplico para poder medir la cantidad de luz que recibe nuestro modelo dcc. Alguna aplicación muy interesante es poder medir cantidades de contaminación en el medio ambiente y así poder especificar qué tipos de contaminantes son los que se presentan. REFERENCIAS [1] D.V. Bout, Using The RS232 Port On The XST-3.0 Board. X Engineering Software Systems Corp. Disponible: http://www.xess.com/appnotes/xst3_RS232.html [2] http://tourdigital.net/Tutoriales/VHDL/Tutorial_FsmEscrituraSumaRAM.pdf [3] http://www.alse-fr.com/English/ALSE_UART_us.pdf 4