E N D
Instituto Politécnico NacionalMaestría en Ciencias en Ingeniería de CómputoAsignatura:Programación de Sistemas de CómputoReporte Final del Proyecto:“Programación de una Interfaz Grafica de Usuario en ambiente GNU/Linux para la Transmisión Serial de Datos y Configuración del dispositivo FPGA embebido en la Tarjeta de Desarrollo DE2 para la Recepción y Despliegue Visual de los mismos.”Alumno: José Raúl García Ordaz
Contenido de la presentación (1): • Introducción • Objetivos • Justificación • Antecedentes Teóricos y Estado del Arte • Descripción del Sistema • Análisis y Diseño del Sistema • Funcionamiento del Puerto Serie RS232 Presentación Final
Contenido de la presentación (2): • Programación de la Interfaz Gráfica de Usuario • Configuración del dispositivo FPGA embebido en la Tarjeta de Desarrollo DE2 • Desarrollo Experimental y Resultados Obtenidos • Conclusiones • Trabajos Futuros • Recomendaciones • Bibliografía Presentación Final
Introducción (1) • Para el desarrollo de los Sistemas Digitales modernos se hace uso de programas conocidos como Entornos de Desarrollo Integrado ó IDE (Integrated Development Environment). • Un IDE es un entorno de programación que típicamente consiste en un editor de código, un compilador, un depurador y, de acuerdo a la aplicación, un constructor de Interfaz Gráfica de Usuario (GUI). Presentación Final
Introducción (2) • Tal es el caso de Programas como: • MPLAB de Microchip • C++Builder de Borland • KDevelop de KDE • ISE WebPack de Xilinx • Para este proyecto se hace uso de dos herramientas en particular: • Qt de Qt Software (antes conocido como Trolltech y recientemente adquirido por Nokia) Presentación Final
Introducción (3) • Quartus II de Altera • El uso combinado de dichas herramientas dará como resultado la implementación de un sistema que deberá cumplir con los siguientes: Presentación Final
Objetivos (1): • Objetivo General: • “Implementar un Sistema constituido por una Interfaz Gráfica de Usuario en ambiente GNU/Linux, que sea capaz de enviar datos a través del puerto serie de la computadora y configurar el dispositivo FPGA embebido en la tarjeta de desarrollo DE2 de Altera, de modo que posibilite la adquisición del dato por medio del receptor serie (RXD) empotrado en dicha tarjeta, para su posterior despliegue en forma visual.” Presentación Final
Objetivos (2): • Objetivos Específicos: • Revisar la teoría del funcionamiento del puerto serie RS232. • Aprender a programar el puerto serie RS232 en ambiente GNU/Linux. • Aprender a usar el entorno de programación Qt. • Conocer las características de la tarjeta de desarrollo DE2 de Altera. • Familiarizarse con el lenguaje Verilog-HDL. Presentación Final
Justificación (1) • Se eligió este proyecto debido a que implica el uso del entorno de programación Qt para desarrollo de Software, así como del IDE Quartus II, mediante el uso de Verilog-HDL, el cual está orientado a la programación de Dispositivos de Lógica Programable. • Ésta combinación permite adquirir conocimientos que se complementan y que servirán de base para poder diseñar en el futuro Sistemas Digitales más complejos. Presentación Final
Justificación (2) • En cuanto a la elección de los IDE Qt y Quartus II y del lenguaje Verilog-HDL como elementos para el diseño del sistema, se debe a que en la actualidad se encuentran entre los más ampliamente utilizados tanto en el área académica como en la industria, algunos ejemplos de lo anterior se indican en la siguiente sección. Presentación Final
Antecedentes Históricos y Estado del Arte (1) • Transmisión Serial de Datos y el Puerto Serie RS232 • En una PC, el puerto serie típico es el RS232, el cuál es una interfaz que designa una norma que se ha utilizado para conectar al ordenador con todo tipo de periféricos como impresoras, módems ó ratones. Presentación Final
Antecedentes Históricos y Estado del Arte (2) • Dado el avance tecnológico de las interfaces de transmisión de datos y a la baja velocidad de transmisión que posee la norma RS232, ésta ha caído en desuso siendo desplazada por interfaces seriales más rápidas como el USB, el FireWire ó el Serial ATA. Presentación Final
Antecedentes Históricos y Estado del Arte (3) • Los IDE para el desarrollo de Interfaces Gráficas de Usuario para ambiente GNU/Linux más utilizados son, sin duda, KDevelop, GTK+ y Qt. El primero orientado al uso bajo el entorno gráfico KDE y el segundo y tercero al entorno de Gnome. Presentación Final
Antecedentes Históricos y Estado del Arte (4) • Qt (Pronunciado “cute” por sus creadores), es un IDE desarrollado por la compañía noruega Qt Software. • Se encuentra disponible además del ambiente GNU/Linux, para plataformas como Windows, Mac OS y Embedded Linux. • Usado para el desarrollo de aplicaciones como Google Earth y Skype. Presentación Final
Antecedentes Históricos y Estado del Arte (5) Presentación Final
Antecedentes Históricos y Estado del Arte (6) • Xilinx y Altera son las dos compañías más grandes que fabrican y distribuyen dispositivos lógicos programables, las cuales proveen también software IDE para el análisis, síntesis y simulación de HDL para la implementación en sus dispositivos. Presentación Final
Antecedentes Históricos y Estado del Arte (7) • Durante la década de los setenta, se crearon varios HDL como IDL de IBM, TI-HDL de Texas Instruments, ZEUS de General Electric • Durante la década de los ochenta aparecieron lenguajes como ABEL, AHDL, VHDL y Verilog. Siendo los dos últimos, los lenguajes de descripción de Hardware más usados actualmente. Presentación Final
Antecedentes Históricos y Estado del Arte (8) • Desarrollado por la compañía Gateway Design Automation en 1983. Fue diseñado tomando características del lenguaje HDL más popular en ése tiempo llamado HiLo así como de lenguajes de programación tradicionales como C. • En 1995 el lenguaje se volvió un estándar de IEEE. El estándar completo se describe en el documento “Verilog Hardware Description Language Reference Manual”. El estándar es llamado Std. 1364-1995. Presentación Final
Antecedentes Históricos y Estado del Arte (9) • Entre las características principales de Verilog-HDL se encuentran las siguientes: • Notación formal y estandarizada. • Disponibilidad pública. • Independencia de la tecnología de diseño. • Independencia de los proveedores. • Capacidad descriptiva en distintos niveles de abstracción. • Reutilización del código. Presentación Final
Antecedentes Históricos y Estado del Arte (10) • Dispositivos de Lógica Programable • Un dispositivo de lógica programable es un CI cuya estructura interna está formada por un arreglo de compuertas y en un principio no se especifican sus interconexiones, además cuenta con una tecnología que le permite programar y reprogramar sus funciones lógicas permitiendo que sea el diseñador lógico en campo, quien especifique las funciones del dispositivo sin necesidad de reemplazarlo físicamente. Presentación Final
Antecedentes Históricos y Estado del Arte (11) • Los dispositivos FPGA (Field Programmable Gate Array), son arreglos de compuertas programables por campo y están constituidos por una matriz de LABs (Logic Array Blocks), los cuales son interconectados entre ellos para poder generar un sistema en específico. Presentación Final
Descripción General del Sistema Propuesto Presentación Final
Funcionamiento del Puerto Serie RS232 Diagrama de tiempo de la transmisión serie Bits de inicio y de paro Presentación Final
Programación de la Interfaz Gráfica de Usuario (1) Presentación Final
Programación de la Interfaz Gráfica de Usuario (2) Inicio Abrir puerto Si Error? No Escribir en el puerto Fin Presentación Final
Programación de la Interfaz Gráfica de Usuario (3) stty -F /dev/YOUR_TERMINAL_DEVICE 300 Presentación Final
Programación de la Interfaz Gráfica de Usuario (4) Presentación Final
Programación de la Interfaz Gráfica de Usuario (5) Presentación Final
Programación de la Interfaz Gráfica de Usuario (6) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (1) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (2) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (3) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (4) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (4) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (5) Presentación Final
Configuración del Dispositivo FPGA embebido en Tarjeta de Desarrollo DE2 (5) Presentación Final
Serial in – Data Out Presentación Final
Reporte de Resultados • Al término del proyecto se alcanzaron los siguientes resultados: • Se logró la Transmisión serial del dato desde la Interfaz Gráfica de Usuario. • Se logró la adquisición del dato mediante el módulo programado en el FPGA. • Se desplegó dicho dato en el display de 7 segmentos. • NOTA: Solo se envía y recibe 1 byte(Caracteres 0 – F) Presentación Final
Conclusiones • Se logró alcanzar el objetivo planteado haciendo uso de las IDE Qt (C++) y Quartus II (Verilog-HDL). • Entender el funcionamiento básico de un protocolo (RS232) , lenguaje (C++, Verilog-HDL), herramienta IDE (Quartus II, Qt ) permitió alcanzar el resultado. • Combinando estas herramientas y lenguajes se tiene un gran potencial para el diseño y desarrollo de sistemas digitales mucho más complejos. Presentación Final
Trabajos Futuros • Mejorar la GUI de Qt para enviar la información desde un cuadro de texto. • Mejorar la lógica del código para lograr la adquisición de una cadena de caracteres y no sólo un byte. • Desplegar dicha cadena en el LCD embebido y no sólo en el LCD. • Crear un módulo TXD, para el envío de datos hacia el PC. Presentación Final
Recomendaciones • Promover el uso de herramientas de software libre. • Combinar diseño de SW y HW. Presentación Final
Bibliografía • Unix Programación Avanzada. Francisco M. Márquez. Ed. Alfaomega. • Digital Design, Principles and Practices. Jhon F. Wakerly. Ed Prentice Hall • Diseño Digital. M. Morris Mano. Ed. Prentice Hall. • A Verilog HDL Primer. J. Bhashker. Ed. SPG • C++ GUI Programming with Qt 3. Jazmín Blanchette, Mark Summerfield. Ed. Prentice Hall in association with Trolltech Press Presentación Final
Links de Interés • http://es.tldp.org/COMO-INSFLUG/COMOs/Programacion-Serie-Como/ • http://trolltech.com/ • ftp://sunsite.unc.edu/pub/Linux/docs/LDP/programmers-guide/ • http://www.altera.com Presentación Final