11.E8_ZaragozaHernándezJoséIsrael_ITQ

Anuncio
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
Descargar