Top Banner

of 172

Desarrollo e Implementación de Un Sistema de Localización Geográfica en FPGA

Feb 24, 2018

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    1/172

    INSTITUTO POLITECNICO NACIONAL

    ESCUELA SUPERIOR DE INGENIERIA

    MECANICA Y ELECTRICA

    Desarrollo e Implementacion de un Sistema de

    Localizacion Geografica en FPGA

    TESIS

    QUE PARA OBTENER EL T ITULO DE:

    INGENIERO EN COMUNICACIONES Y

    ELECTRONICA

    Presenta:

    Cesar Luis Perez Bautista

    Asesor:

    Raul Ruiz Meza

    Abril 2015

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    2/172

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    3/172

    Indice General

    Indice General III

    Lista de Figuras VII

    Lista de Tablas XI

    Objetivos XIII

    Introduccion 1

    1. Planteamiento del Problema. 3

    2. Teora Relacionada. 9

    2.1. Sistema de Posicionamiento Global. . . . . . . . . . . . . . . . . . . . . . . . . 9

    2.1.1. Conceptos Basicos de un Sistema de Posicionamiento. . . . . . . . . . 10

    2.1.2. Segmento de Control del Sistema GPS . . . . . . . . . . . . . . . . . . 14

    2.1.3. Codigos y Frecuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.1.4. Protocolo de Comunicacion NMEA . . . . . . . . . . . . . . . . . . . . 17

    2.1.5. Modulo Receptor GPS RGM-3000. . . . . . . . . . . . . . . . . . . . . 22

    2.2. Arreglo de Compuertas Programables en Campo. . . . . . . . . . . . . . . . . 25

    2.2.1. Estructura de un FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.2.2. Configuracion de un FPGA. . . . . . . . . . . . . . . . . . . . . . . . . 34

    2.2.3. Tarjeta de Desarrollo Spartan 3E . . . . . . . . . . . . . . . . . . . . . 36

    2.3. Pantallas TFT-LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    2.3.1. Estructura de un TFT-LCD. . . . . . . . . . . . . . . . . . . . . . . . 43

    iii

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    4/172

    INDICE GENERAL

    2.3.2. Pantalla LQ043T3DX02. . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    2.4. SD Card. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    2.4.1. Caractersticas de la Tarjeta SD. . . . . . . . . . . . . . . . . . . . . . 49

    2.4.2. Protocolo de Comunicacion SD. . . . . . . . . . . . . . . . . . . . . . . 51

    2.4.3. Descripcion del Funcionamiento. . . . . . . . . . . . . . . . . . . . . . 63

    2.4.4. Sistema de Archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

    2.5. Formatos de Imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    2.5.1. Formato de Mapa de Bits (BMP). . . . . . . . . . . . . . . . . . . . . 71

    2.6. Herramientas de Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    2.6.1. Proceso de Desarrollo de una Aplicacion en FPGA. . . . . . . . . . . . 75

    2.6.2. Ambiente integrado de Software. . . . . . . . . . . . . . . . . . . . . . 79

    3. Desarrollo del Sistema de Localizacion Geografica. 83

    3.1. Control de la pantalla TFT-LCD. . . . . . . . . . . . . . . . . . . . . . . . . . 84

    3.1.1. Interfaz Fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    3.1.2. Software de control en VHDL. . . . . . . . . . . . . . . . . . . . . . . 90

    3.1.3. Resultados del Control Implementado. . . . . . . . . . . . . . . . . . . 92

    3.2. Control del Modulo RGM-3000. . . . . . . . . . . . . . . . . . . . . . . . . . . 953.2.1. Interfaz Fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    3.2.2. Software de control en VHDL. . . . . . . . . . . . . . . . . . . . . . . 96

    3.2.3. Resultados del Control Implementado. . . . . . . . . . . . . . . . . . . 99

    3.3. Control de la Tarjeta SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    3.3.1. Interfaz Fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    3.3.2. Software de control en VHDL. . . . . . . . . . . . . . . . . . . . . . . 104

    3.3.3. Resultados del Control Implementado. . . . . . . . . . . . . . . . . . . 116

    3.4. Control de la Memoria MT46V32M16. . . . . . . . . . . . . . . . . . . . . . . 119

    3.4.1. Interfaz Fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    3.4.2. Software de control en VHDL. . . . . . . . . . . . . . . . . . . . . . . 120

    3.4.3. Resultados del Control Implementado. . . . . . . . . . . . . . . . . . . 127

    3.5. Integracion de Elementos Para Implementar el SILOG. . . . . . . . . . . . . . 128

    3.5.1. Obtencion y Desplegado de Coordenada Geografica. . . . . . . . . . . 128

    IPN iv ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    5/172

    INDICE GENERAL

    3.5.2. Obtencion, Decodificacion y Desplegado de Mapas Digitales. . . . . . 134

    4. Implementacion Final y Resultados del SILOG. 141

    4.1. Implementacion del SILOG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

    4.2. Resultados Observados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

    4.3. Analisis de los Resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

    Conclusiones y Lineas Futuras. 153

    Apendice A Codigos en VHDL. 155

    Bibliografa 157

    ESIME v ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    6/172

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    7/172

    Lista de Figuras

    1.1. Diagrama a Bloque del Sistema Propuesto . . . . . . . . . . . . . . . . . . . . 5

    1.2. Diagrama del Sistema Representando las Conexiones Fsicas. . . . . . . . . . 8

    2.1. Posicion Desconocida (Plano unidimensional) . . . . . . . . . . . . . . . . . . 10

    2.2. Localizacion de un punto en un espacio bidimensional . . . . . . . . . . . . . 11

    2.3. Interseccion de tres esferas, dos posibilidades de ubicacion del punto x. . . . . 11

    2.4. Cuatro satelites son al menos necesarios para ubicar al usuario mediante la obtencion de la distancia

    satelite-usuario basado en tiempos de transmision y recepcion. . . . . . . . . . . . . . . . . 14

    2.5. Segmento de Control. Estaciones terrestres: 1. Estacion Principal Base de la fuerza aerea Falcon,

    Colorado Springs; 2. Estacion de Monitoreo Hawaii; 3. Estacion de Monitoreo Cabo Canaveral; 4. Es-

    tacion de Monitoreo Isla Asuncion; 5. Estacion de Monitoreo Diego Garca; 6. Estacion de Monitoreo

    Kwajalein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

    2.6. Organizacion de orbitas satelitales y la separacion ente cada satelite en una

    orbita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.7. Modulo receptorRGM-3000 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.8. Estructura de un FPGA, Bloques Internos. . . . . . . . . . . . . . . . . . . . 26

    2.9. (a) CLBs y Slice dentro de un FPGA; (b) Componentes dentro de un Slice. . 27

    2.10. Bloque de Entrada/Salida simplificado. . . . . . . . . . . . . . . . . . . . . . 29

    2.11. Esquema de un Administrador de Reloj. . . . . . . . . . . . . . . . . . . . . . 32

    2.12. Tarjeta Spartan 3E Starter Kit . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    2.13. Conectores RS-232 en la tarjeta S3E. . . . . . . . . . . . . . . . . . . . . . . . 41

    2.14. Ubicacion de la memoria DDR SDRAM en la tarjeta Spartan 3E. . . . . . . . 42

    2.15. Unidad Basica Pixel y Sustratos en Conjunto. . . . . . . . . . . . . . . . . . . 43

    vii

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    8/172

    LISTA DE FIGURAS

    2.16. Panel TFT-LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    2.17. Pantalla TFT-LCD LQ043T3DX02 fsicamente. . . . . . . . . . . . . . . . . . 45

    2.18. Senales de Sincronizacion para el dispositivo LQ043T3DX02. . . . . . . . . . 48

    2.19. Diferentes tamanos de la tarjeta SD. . . . . . . . . . . . . . . . . . . . . . . . 50

    2.20. Relacion de conexiones para la interfaz fsica SD Bus y SPI Bus. . . . . . . . 51

    2.21. Operacion COMANDO-RESPUESTA. . . . . . . . . . . . . . . . . . . . . . . 52

    2.22. Lectura de un Bloque de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    2.23. Formato de un Comando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

    2.24. Generador y Comprobador Binario de CRC7 . . . . . . . . . . . . . . . . . . 55

    2.25. Formatos posibles para una respuesta . . . . . . . . . . . . . . . . . . . . . . 55

    2.26. Paquete de datos comun. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    2.27. Paquete de datos amplio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    2.28. Generador y Verificador de CRC16 . . . . . . . . . . . . . . . . . . . . . . . . 58

    2.29. Diagrama del proceso de inicializacion e identificacion. . . . . . . . . . . . . . 66

    2.30. Tareas en el modo de transferencia de datos. . . . . . . . . . . . . . . . . . . 69

    2.31. Estructura del Volumen FAT. . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    2.32. Formato del archivo BMP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    2.33. Ventana del Navegador de Proyecto. . . . . . . . . . . . . . . . . . . . . . . . 81

    3.1. Configuracion del MC34063A para un conversor de voltaje de subida. . . . . 86

    3.2. Interfaz fsica entre TFT-LCD y FPGA. . . . . . . . . . . . . . . . . . . . . . 91

    3.3. Placa PCB de Interfaz de la Pantalla TFT-LCD y Spartan 3E. . . . . . . . . 93

    3.4. Formas de Onda para el Control de la Pantalla. . . . . . . . . . . . . . . . . . 94

    3.5. Grafico de Carga Contra Corriente. . . . . . . . . . . . . . . . . . . . . . . . . 96

    3.6. Conexiones necesarias para el funcionamiento del modulo RGM-3000. . . . . 97

    3.7. Imagen Comparativa de Ubicacion. . . . . . . . . . . . . . . . . . . . . . . . . 101

    3.8. RGM-3000 conectado a la tarjeta Spartan 3E. . . . . . . . . . . . . . . . . . . 102

    3.9. Conexion entre FPGA y tarjeta SD. . . . . . . . . . . . . . . . . . . . . . . . 104

    3.10. Diagrama de Maquina de Estados de Control . . . . . . . . . . . . . . . . . . 105

    3.11. Maquina de Estados para el Envo/Recepcion de Datos . . . . . . . . . . . . 114

    3.12. Spartan 3E con placa fabricada para la conexion de la tarjeta SD. . . . . . . 117

    IPN viii ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    9/172

    LISTA DE FIGURAS

    3.13. Datos almacenados en la tarjeta SD. . . . . . . . . . . . . . . . . . . . . . . . 117

    3.14. Interfaz fsica entre FPGA y memoria MT46V32M16. . . . . . . . . . . . . . 120

    3.15. Diagrama del controlador de la memoria DDR-SDRAM. . . . . . . . . . . . . 122

    3.16. Proceso de Inicializacion de la memoria DDR SDRAM. . . . . . . . . . . . . 123

    3.17. Proceso de escritura en la DDR-SDRAM. . . . . . . . . . . . . . . . . . . . . 125

    3.18. Proceso de lectura para la DDR-SDRAM. . . . . . . . . . . . . . . . . . . . . 126

    3.19. Conexiones y Flujo de Informacion del Sistema Completo. . . . . . . . . . . . 129

    3.20. Representacion Binaria de Caracteres . . . . . . . . . . . . . . . . . . . . . . 131

    4.1. Ventana del Navegador de Proyecto con archivos Fuente. . . . . . . . . . . . . 142

    4.2. Resusmen de Utilizacion de Recursos del FPGA XC3S500E . . . . . . . . . . 144

    4.3. Distribucion de los Componentes Logicos en el Dispositivo FPGA. . . . . . . 145

    4.4. Ventana Principal del Software iMPACT . . . . . . . . . . . . . . . . . . . . . 146

    4.5. Sistema en Funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

    4.6. Resultado en Pantalla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

    ESIME ix ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    10/172

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    11/172

    Lista de Tablas

    2.1. Parametros de Transmision del Estandar NMEA-0183 . . . . . . . . . . . . . 18

    2.2. Caractersticas del Modulo RGM-3000 . . . . . . . . . . . . . . . . . . . . . . 23

    2.3. Pines del Modulo RGM-3000 . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2.4. Descripcion de entradas y salidas del bloque IOB. . . . . . . . . . . . . . . . . 30

    2.5. Descripcion de entradas y salidas del DCM. . . . . . . . . . . . . . . . . . . . 33

    2.6. Descripcion del conector de 40 pines en la pantalla LQ043T3DX02 . . . . . . 46

    2.7. Descripcion del conector de 4 pines en la pantalla LQ043T3DX02 . . . . . . . 46

    2.8. Contenido del Registro OCR . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    2.9. Contenido del Registro CID . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    2.10. Contenido del Registro SCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    2.11. Contenido del Registro CSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    3.1. Conexiones entre FPGA y la pantalla LQ043T3DX02 . . . . . . . . . . . . . 85

    3.2. Valores para el diseno de un circuito convertidor de DC a DC de subida . . . 87

    3.3. Valores teoricos y experimentales del circuito convertidor de DC a DC de subida 94

    3.4. Muestra de Valores de Voltaje y Corriente Variando la Carga Resistiva . . . . 95

    3.5. Coordenadas Geograficas del RGM-3000 en la cadena GPRMC . . . . . . . . 100

    3.6. Conexion entre pines del FPGA y memoria MT46V32M16 . . . . . . . . . . . 119

    xi

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    12/172

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    13/172

    Objetivos

    Objetivo general

    Desarrollar e implementar el prototipo de un sistema de localizacion geografica (SILOG),

    controlado por un Arreglo de Compuertas Programables en Campo (FPGA por sus siglas en

    ingles), capaz de mostrar la posicion global en pantalla junto a un mapa digital.

    Objetivos Particulares.

    1. Desarrollar un controlador para una tarjeta de memoria digital (SD Card) en un Len-

    guaje de Descripcion de Hardware (HDL).

    2. Implementar el controlador que provee la empresa Xilinx para la memoria de acceso

    aleatorio (RAM) que esta montada en la tarjeta Spartan 3E.

    3. Desarrollar un controlador de la pantalla LQ043T3DX02 en un HDL.

    4. Desplegar en pantalla informacion de coordenadas geograficas y mapas digitales.

    5. Implementar el prototipo de SILOG.

    6. Realizar pruebas experimentales, obtener datos relevantes para una retroalimentacion

    y proyectar correcciones al prototipo.

    xiii

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    14/172

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    15/172

    Introduccion

    El hombre se moviliza constantemente y con el lo deben hacer sus desarrollos

    tecnologicos, as mismo estos lo ayudan en su descubrimiento, analisis y despla-

    zamiento en espacios explorados e inexplorados.

    Desde su aprobacion para desarrollo en 1973 hasta su puesta en funcionamiento en 1993,

    con el lanzamiento a orbita del 24 satelite, el sistema de posicionamiento global o GPS por

    sus siglas en ingles, ha tenido el objetivo de ser util en la navegacion aerea, martima y

    terrestre [1].

    La actual diversidad de hardware y software en el mercado proporciona una gran variedad

    de dispositivos que utilizan la tecnologa GPS para solucionar necesidades de localizacion,

    rastreo y/o navegacion. Teniendo como parte fundamental, entre otras, el sistema de po-

    sicionamiento global (GPS), en este trabajo se describe el desarrollo de un Dispositivo de

    Localizacion Geografica; cuya funcion sera la de desplegar en una pantalla coordenadas GPS

    aproximadas de s mismo junto con una representacion grafica de esa ubicacion, es decir, un

    mapa digital.

    El sistema aqu presentado, pretende en un futuro formar parte de un sistema mas com-

    plejo que tendra el objetivo de automatizar o facilitar las mediciones de campo electrico

    requeridas en puntos geograficos especficos[2].

    Generalmente un dispositivo como este sera desarrollado usando un microprocesador o

    microcontrolador, razon por la cual existen microprocesadores especializados para dispositivos

    de localizacion o navegacion a traves de GPS. Sin embargo este trabajo plantea la alternativa

    del uso de un circuito integrado FPGA para implementar el sistema planteado.

    1

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    16/172

    Objetivos

    Los dispositivos de arreglos de compuertas programables en campo (FPGA), como su

    nombre lo dice, estan basados en arreglos logicos de compuertas, interconectados por inte-

    rruptores programables. Los FPGA ofrecen grandes ventajas a los disenadores de aplicaciones

    mediante complejos circuitos digitales, ya que la programabilidad de estos dispositivos per-

    miten simular, e incluso desarrollar aplicaciones de manera rapida y sencilla en las tarjetas

    de desarrollo que los fabricantes proveen.

    Para llevar a cabo este proyecto, se selecciono el circuito integrado (FPGA) XCS500E, el

    cual esta montado en la tarjeta de desarrollo Spartan 3E Starter Kit Board y esta fa-

    bricada por la empresa Xilinx. Esta tarjeta fue seleccionada por sus diferentes componentes

    integrados, los cuales se describiran en el captulo 2, ademas de la ventaja de realizar la

    programacion del dispositivo FGPA a traves del puerto USB.

    Los perifericos necesarios en este prototipo y para los que se desarrollo un control mediante

    codigo VHDL en el circuito integrado FPGA son: una tarjeta de memoria digital protegida

    (SD Card), donde los mapas digitales son almacenados; una memoria DDR SDRAM, que

    servira de almacenamiento temporal para la informacion de mapas digitales; un modulo GPS

    que a traves de una interfaz RS232 transmite coordenadas GPS y una pantalla TFT-LCD,

    en la cual se visualizan las coordenadas geograficas y los mapas digitales.

    Para comprender el funcionamiento de estos elementos, en el captulo 2 se describen

    los fundamentos basicos de cada una de estas partes que conformaran el prototipo. En el

    captulo 3, se describen las conexiones fsicas entre los perifericos utilizados y el FPGA. En el

    captulo 3 tambien se detalla como se desarrolla el control o la comunicacion con los elementos

    elegidos mediante la logica de programacion en VHDL y los resultados obtenidos del control y

    conexion individual de estos componentes y el FPGA. Finalmente en el captulo 4 se revisan

    los resultados del funcionamiento de la puesta en funcionamiento del sistema completo.

    IPN 2 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    17/172

    Captulo 1.

    Planteamiento del Problema.

    La existencia del sistema de posicionamiento global (por sus siglas en ingles GPS) pro-

    porciona una gran ventaja para el desarrollo de nuevas aplicaciones en electronica o el mejo-

    ramiento de algunas otras.

    Hay aplicaciones o sistemas electronicos en los que, ademas de su funcionamiento intrnse-

    co, una mejora substancial sera agregar las caractersticas de un sistema de navegacion. Estetipo de sistemas son aquellos en los que parte de su funcionamiento tiene relaci on con la

    localizacion o ubicacion de puntos geograficos. Un ejemplo mas especfico son las mediciones

    de campo electrico que se deben realizar en un area de terreno para obtener la conductividad

    electrica del suelo[3]. Este sistema realiza una serie de mediciones en un area geografica ex-

    tensa para la obtencion de la conductividad del suelo, por lo que anadir a este un dispositivo

    de navegacion por medio de GPS agilizara el proceso completo de mediciones.

    Una opcion es agregar simplemente un equipo de navegacion terrestre comercial. Se tienen

    en el mercado varias empresas fabricantes de estos equipos, cada una provee de varios modelos.

    Sin embargo, estos equipos cumplen con un diseno general, unicamente desarrollados para

    cumplir con las funciones basicas necesarias en la navegacion; por lo que la posibilidad de

    integracion a otro sistema con funcionalidades extras o diferentes, es practicamente nula.

    Como consecuencia de la intension de tener un sistema de navegacion que pueda integrarse

    al ya mencionado, de obtencion de la conductividad del suelo, en este documento se plantea

    3

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    18/172

    Planteamiento del Problema.

    el desarrollo de un prototipo de sistema de localizacion geografica.

    Habitualmente un dispositivo de navegacion comercial cumple con ciertas particularidades

    de hardware, como las siguientes:

    Modulo de localizacion GPS.

    Una pantalla de visualizacion (con resolucion de 480x272 o 640x480 pixeles).

    Ranura para la conexion de una tarjeta de memoria (donde la base de mapas digitales

    se almacena).

    Una batera para su funcionamiento.

    Salida de audio (para indicaciones por voz).

    Tomando en cuenta estas caractersticas, se proponen para el desarrollo del sistema, el

    uso de las caractersticas de principal utilidad siendo estas las primeras tres de la lista.

    Para enlazar los elementos de hardware que formaran el sistema de localizacion geografica,

    se hace necesario el uso de un dispositivo (chip) central que dirija, procese y direccione la

    informacion. En este caso, la seleccion de un dispositivo para realizar esta tarea se centro en

    un FPGA. La eleccion de este dispositivo se hizo considerando las ventajas que se pueden

    obtener de el en comparacion con un microcontrolador o un microprocesador.Algunas de estas ventajas son:

    La posibilidad del funcionamiento paralelo en las rutinas de control implementadas en

    el FPGA aumentando la velocidad de procesamiento de datos; sabiendo que cualquier

    rutina de control en un microcontrolador o microcontrolador debe seguir una secuencia.

    En el FPGA se pueden implementar los modulos de control necesariamente utiles, sin

    dejar recursos prestablecidos sin uso como podra suceder con un microcontrolador.

    El FPGA, por su capacidad de manejar rutinas de control paralelamente, puede inter-

    cambiar informacion con varios dispositivos en diferentes interfaces (seriales o paralelas)

    al mismo tiempo.

    El desarrollo de un sistema de control en un microprocesador suele llevar un largo

    tiempo de desarrollo por tanto el software en el suele ser fijo, a diferencia del FPGA

    cuyo software de control es reconfigurable.

    IPN 4 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    19/172

    Adoptado el FPGA como chip central y anadiendo las caractersticas basicas para un

    sistema de navegacion, el sistema toma forma y se puede esquematizar como se observa en

    la Figura 1.1. En general se busca que el sistema sea capaz de mostrar en pantalla datos

    geograficos de la ubicacion actual y mostrar una imagen o mapa digital de tal ubicacion.

    Figura 1.1: Diagrama a Bloque del Sistema Propuesto

    Tomando en cuenta las caractersticas de hardware ya mencionadas, se seleccionaron los

    siguientes dispositivos para conformar el sistema:

    FPGA: Dispositivo XC3S500E integrado en la tarjeta de desarrollo Spartan 3E1.

    Localizacion GPS: Modulo RGM-3000 para la obtencion de coordenadas geograficas.

    Desplegado de informacion: Pantalla de cristal liquido basada en transistores de pelcula

    delgada (TFT-LCD) LQ043T3DX02, con una resolucion de 480x272 pixeles.

    1Esta se selecciono por su uso frecuente en proyectos de investigacion y desarrollo academico

    ESIME 5 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    20/172

    Planteamiento del Problema.

    Almacenamiento de mapas: Mediante una SD Card.

    Para lograr implementar el funcionamiento de este sistema es indispensable tener como

    finalidad previa, establecer el control independiente y la interfaz de conexion de los dispositi-

    vos que el FPGA controlara, para as posteriormente agruparlos en la estructura del sistema

    buscado.

    Atendiendo a esta finalidad previa, en primer lugar se realizo la adaptacion o conexion

    fsica entre la tarjeta de desarrollo Spartan 3E (que contiene al chip central de procesamiento,

    FPGA) y los dispositivos perifericos que se utilizaran.

    Es de interes mencionar: la comunicacion entre FPGA y el modulo receptor GPS se hace

    por medio de un estandar RS232 y se aprovecha la interfaz fsica existente en la tarjeta

    Spartan 3E. Otra conexion fsica, de la pantalla TFT-LCD, requirio del uso de uno de los

    conectores de expansion de la tarjeta debido al numero de lneas de comunicacion que la

    pantalla necesita (40); misma conexion de expansion que se uso para la interfaz con la tarjeta

    SD.

    Parte del proposito principal del sistema es mostrar en pantalla imagenes o mapas digitales

    para lo cual deben tomarse algunas consideraciones:

    Ya que hablamos de imagenes que representan mapas, es primordial definir la fuente

    de estos mapas; una fuente actualizada y libre de imagenes digitales de mapas es el

    servidor de www.openstreetmap.org. Esta fuente sera la elegida para obtener los mapas

    utilizados en este sistema.

    Es importante conocer el formato de imagen que se desplegara para as saber el proceso

    de decodificacion del mismo para su adecuado desplegado en pantalla. El formato de

    imagen proporcionado por openstreetmap.orges un formato de imagen PNG. Sin embar-

    go, asegurando que este sistema esta en su fase de desarrollo se utilizaran las imagenes

    transformadas a un formato de imagen basico de mapa de bits (BMP).

    Ademas el uso de imagenes conlleva un procesamiento de cantidades amplias de datos,

    por lo que se hace indispensable el empleo de una memoria temporal. Aunque el FPGA

    posee bloques de memoria internos (360Kb), estos son insuficientes para la cantidad de datos

    promedio de una imagen a procesar (1MB), por tanto, se hace esencial el uso de un dispositivo

    IPN 6 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    21/172

    de memoria para el almacenamiento temporal de estos datos. Acertadamente, la tarjeta de

    desarrollo Spartan 3E contiene el circuito integrado MT46V32M16, que es una memoria

    dinamica de acceso aleatorio sncrona con doble velocidad de datos (DDR-SDRAM).

    Obtenidas las interfaces fsicas se procedio a desarrollar el codigo en lenguaje VHDL que

    controlara el comportamiento e intercambio de informacion con cada periferico, de manera

    independiente.

    Es muy importante remarcar, para que el sistema tenga la capacidad de comunicarse con

    la tarjeta SD y extraer datos de ella se debe tener un software de control (c odigo en HDL)

    que realice esta tarea. La implementacion de este control es extensa y compleja, por lo que

    se busco software libre para el control de la tarjeta, sin embargo este c odigo no se tiene de

    manera gratuita y fue necesario implementarlo por completo.

    El sistema a implementar, considerando las interfaces fsicas y los elementos requeridos

    para el funcionamiento total, puede visualizarse en la Figura1.2, que ejemplifica la totalidad

    de elementos fsicos utilizados en el sistema y da una imagen mas cercana del producto que

    se obtendra con el planteamiento aqu expuesto.

    Puntualizando, el sistema que se desea obtener (en su primera fase) tendra las siguientes

    caractersticas de operacion:

    Obtencion y desplegado de coordenadas geograficas de ubicacion.

    Visualizacion de mapas digitales.

    Almacenamiento de mapas digitales en una tarjeta SD.

    ESIME 7 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    22/172

    Planteamiento del Problema.

    Figura 1.2: Diagrama del Sistema Representando las Conexiones Fsicas.

    IPN 8 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    23/172

    Captulo 2.

    Teora Relacionada.

    Este captulo pretende desarrollar los conocimientos basicos acerca de los componentes

    fundamentales que se requieren para formar un Sistema de localizacion Geografica, exponien-

    do informacion sobre su evolucion y/o funcionamiento. En este captulo tambien se expone

    informacion sobre formatos digitales de imagen relacionados con los mapas que se emplearan.

    Por ultimo el captulo contiene la descripcion de las herramientas de software que se utilizaran

    durante el proceso de este proyecto.

    2.1. Sistema de Posicionamiento Global.

    El sistema en sus inicios fue desarrollado con fines militares por las fuerzas naval y aerea

    estadounidenses, posteriormente y por diversos motivos su uso se extendio a la comunidad

    civil. Los principios basicos de su funcionamiento estan regidos por efectos fsicos predeci-

    bles y la localizacion de un usuario (receptor) es determinada por ecuaciones geometricas y

    la compensacion de los errores a los cuales el sistema es susceptible. La informaci on nece-

    saria para que un receptor determine su posicion esta proporcionada por los satelites que

    conforman el sistema. Los satelites envan senales de radiofrecuencia, con codigos que son

    interpretados por el receptor para la determinacion de la localizacion propia. Existen diver-

    sidad de receptores funcionales en el mercado e incluso los dispositivos internos de recepci on

    son ahora comercializados para desarrollo de aplicaciones especficas en ingeniera.

    9

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    24/172

    Teora Relacionada.

    2.1.1. Conceptos Basicos de un Sistema de Posicionamiento.

    2.1.1.1. Encontrar un punto en el espacio.

    La posicion de un punto en el espacio puede ser determinada a partir de distancias conoci-

    das desde este punto a algun otro punto referencial. En la Figura2.1el punto x desconocido

    se encuentra en un eje horizontal, esto es para un caso unidimensional, si la posicion del

    punto S1 y su distancia al punto xson conocidas, la ubicacion del punto desconocido puede

    estar en dos direcciones, a la izquierda o a la derecha de S1. Para determinar cual de las dos

    posiciones es correcta, se necesita un punto de referencia adicional el cual llamaremos S2.

    De igual modo, si la ubicacion y la distancia al punto x son conocidas para S2, entonces laubicacion del puntox sera donde las distancias de los dos puntos S1y S2tengan interseccion.

    Figura 2.1: Posicion Desconocida (Plano unidimensional)

    Esto mismo es aplicable para un plano bidimensional, al tener dos puntos conocidos y sus

    correspondientes distancias al punto x generan que las posibilidades de ubicacion del punto

    desconocido sea una de las dos intersecciones que se crean con los datos anteriores, esto se ve

    en la Figura2.2; por lo tanto para determinar la ubicacion correcta entre estas posibilidades,

    un tercer punto de referencia y su distancia al punto x son necesarios.

    De manera similar encontrar un punto en un espacio tridimensional requiere de cuatro

    puntos y cuatro distancias para determinar su ubicacion. En un espacio tridimensional dos

    esferas en interseccion generan una circunferencia en la cual puede estar ubicado el punto

    desconocido. Este crculo hace interseccion con otra esfera que produce dos posibilidades de

    ubicacion, como se ve en la Figura2.3,y por ultimo una esfera mas nos dara la ubicacion del

    punto buscado.

    Mediante la Ecuacion 2.1, es posible determinar la localizacion de un punto desconoci-

    IPN 10 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    25/172

    2.1 Sistema de Posicionamiento Global.

    Figura 2.2: Localizacion de un punto en un espacio bidimensional

    Figura 2.3: Interseccion de tres esferas, dos posibilidades de ubicacion del punto x.

    ESIME 11 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    26/172

    Teora Relacionada.

    do (xu, yu, zu), al saber la distancia entre dos puntos (r) y las coordenadas de uno de los

    puntos(x,y,z).

    r=

    (xu x)2 + (yu y)2 + (zu z)2 (2.1)

    Un sistema tridimensional necesita de cuatro satelites y sus correspondientes distancias

    al receptor, ya que la Ecuacion2.1 toma en cuenta el punto desconocido (receptor), el punto

    conocido (satelite) y la distancia entre estos dos, al usar cuatro satelites habra una ecuacion

    para cada satelite.

    r1 =

    (xu x1)2 + (yu y1)2 + (zu z1)2

    ...

    ri =

    (xu xi)2 + (yu yi)2 + (zu zi)2

    Donde i= 1, 2, . . . n n 4 (2.2)

    Se conoce la ubicacion de los puntos (xi, yi, zi) del sistema de Ecuaciones 2.2, es decir,

    la posicion de cada satelite, que es enviada en la informacion transmitida por cada uno de

    los satelites. Para resolver el sistema de Ecuaciones2.2, es necesario conocer las distancias

    correspondientes entre cada satelite y el receptor, para esto se desarrolla una particular

    metodologa.

    2.1.1.2. Determinacion de la distancia.

    El metodo usado para medir las distancias necesarias y obtener la ubicacion del receptor

    se basa en la propagacion de ondas de radiofrecuencia. Uno de los principios basicos de las

    ondas de radiofrecuencia es que viajan a una velocidad conocida; velocidad que se aproxima

    a los 3x108m/s. Con base en esto, es posible medir el tiempo que le toma a una se nal de

    radiofrecuencia llegar de un transmisor a un receptor, la distancia entre ambos puntos puede

    ser determinada. Para lograr efectivamente la medicion del tiempo transcurrido desde la

    emision de la senal hasta su recepcion, es necesario que los relojes tanto del transmisor como

    del receptor esten sincronizados. Desde un punto de vista practico esto es extremadamente

    difcil y un error en la sincronizacion de 1spuede afectar el calculo de la distancia hasta en

    300m.

    IPN 12 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    27/172

    2.1 Sistema de Posicionamiento Global.

    Dependiendo de la frecuencia de la senal y el medio en el que se propaguen, las ondas de

    radio se comportan de un modo diferente. La atmosfera terrestre presenta un medio particular

    en el cual las ondas de radio actuan de manera menos predecible que en el espacio vaco. En

    la atmosfera estas pueden viajar sin alteracion, ser reflejadas o incluso tener perdidas de

    energa.

    En algunos metodos de radio-localizacion las reflexiones que proporciona la ionosfera de la

    tierra (para cierto rango de frecuencias), fueron utilizadas como ventaja, aunque la ionosfera

    no es constante y provoca inexactitud en la medicion del tiempo de propagacion. La atmosfera

    terrestre es una de las desventajas o fuentes de error a las que el sistema GPS es susceptible,

    entre otras fuentes de error que se pueden mencionar:

    Error en el oscilador del satelite.

    Error o variacion de los parametros orbitales

    Ondas reflejadas (en edificios, cuerpos acuosos, montanas, etc.)

    Error en el oscilador del receptor

    Errores de recepcion en la senal (ruido).

    Algunos de estos errores pueden ser corregidos con la informacion enviada por el satelite

    mejorando la precision en la ubicacion del receptor. Sin embargo, algunos de estos no, por

    ejemplo, el error de oscilador o reloj del receptor, el cual se presenta hasta que la se nal trans-

    mitida llega al receptor. Esta fuente de error debe ser considerado en el modelo matematico,

    dejando a la Ecuacion2.1como:

    ri =

    (xu xi)2 + (yu yi)2 + (zu zi)2 bu (2.3)

    En la Ecuacion2.3la nomenclatura (xi, yi, zi) hace referencia a la posicion de alguno de

    los satelites,ri es la distancia aparente (psudorange) entre receptor y satelite, ybu es el error

    de sincronizacion de reloj del receptor, expresado en unidades de distancia. Esta ecuacion

    es fundamental en el sistema GPS, permite medir la distancia aparente entre el satelite y el

    receptor, dada la ubicacion del satelite, y con esto encontrar la ubicacion del receptor.

    Teoricamente 4 satelites son suficientes para determinar la posicion del receptor (ver

    Figura2.4,sin embargo un receptor tiene en lnea de vista mas de 4 satelites a la vez, en la

    ESIME 13 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    28/172

    Teora Relacionada.

    Figura 2.4: Cuatro satelites son al menos necesarios para ubicar al usuario mediante la obtencion de la distancia

    satelite-usuario basado en tiempos de transmision y recepcion.

    siguiente seccion2.1.2se describe como esto es posible debido a la organizacion de las orbitas

    satelitales, con lo cual se pueden agregar mas datos al calculo de la posicion del receptor.

    Aunque el sistema de ecuaciones aumenta con cada satelite agregado, los receptores suelen

    estar capacitados para manejar esta informacion y as ser mas precisos en la localizacion del

    receptor.

    2.1.2. Segmento de Control del Sistema GPS

    La ubicacion de los satelites es conocida debido a que estos estan organizados en orbitas

    definidas. Una parte importante de la organizacion de los satelites es el control y seguimiento

    de las orbitas, este control y seguimiento es esencial para evitar errores en la precision del

    sistema GPS, y con esto, asegurar un funcionamiento optimo constante.Para entender mejor el sistema GPS se debe estipular que este se divide en 3 segmentos:

    Segmento espacial

    Segmento de usuario

    Segmento de control

    IPN 14 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    29/172

    2.1 Sistema de Posicionamiento Global.

    El segmento de usuario, se puede decir, es todo lo relativo a los receptores GPS y el proce-

    samiento de las senales correspondientes. El segmento de control consiste de cinco estaciones

    en tierra, cuyo proposito fundamental es monitorear el desempeno, ubicacion y funcionamien-

    to de los satelites GPS.

    Incluyendo la estacion principal, las estaciones del segmento de control, estan dispersas a

    lo largo de la lnea ecuatorial (o lo mas cercano posible), alrededor de la tierra. La Figura2.5

    muestra la ubicacion de estas estaciones. La estacion principal de control se ubica en la base

    Falcon de la fuerza aerea estadounidense en Colorado Springs.

    Figura 2.5: Segmento de Control. Estaciones terrestres: 1. Estacion Principal Base de la fuerza aerea Falcon, Colorado

    Springs; 2. Estacion de Monitoreo Hawaii; 3. Estacion de Monitoreo Cabo Canaveral; 4. Estacion de Monitoreo Isla

    Asuncion; 5. Estacion de Monitoreo Diego Garca; 6. Estacion de Monitoreo Kwajalein

    Toda la informacion recolectada por las estaciones de control acerca de los satelites es

    enviada a la estacion principal. Los principales objetivos de esta estacion son:

    1. Monitorear el desempeno del sistema GPS.

    2. Generar y transmitir a los satelites informacion de correccion en la ubicacion de estos

    debidas a desplazamientos orbitales.

    ESIME 15 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    30/172

    Teora Relacionada.

    3. Detectar y corregir un error en los satelites, as minimizar las afectaciones al sistema

    de posicionamiento.

    El segmento espacial define la composicion del sistema de satelites que esta compuesto

    por 24 de ellos, divididos en seis orbitas y en cada una de estas se ubican cuatro satelites.

    Estas orbitas estan separadas por un angulo de 60 para cubrir 360. El radio de la orbita

    satelital es de 26560kmy los satelites realizan un viaje alrededor de la tierra dos veces por

    da. El cuerpo del satelite es un cubo de aproximadamente 1.8mpor lado; el panel solar en

    el tiene una longitud de 9 m.

    Para minimizar los efectos de un posible error en uno de los satelite, estos estan ubicados

    como se ve en la Figura2.6.En cualquier momento y ubicacion, un receptor tiene la posibi-

    lidad de recibir la senal de mas de 4 satelites, generalmente puede recibir la senal de hasta

    11 satelites, esto es gracias a la organizacion que se tiene.

    Figura 2.6: Organizacion de orbitas satelitales y la separacion ente cada satelite en una orbita

    Los satelites transmiten una senal de radiofrecuencia y en esta va contenida la informacion

    que se necesita para calcular la posicion del usuario, ademas de otros datos que ayudan a

    corregir errores en la misma operacion. Esta senal es de una frecuencia especfica a la cual el

    receptor esta disenado para captar.

    IPN 16 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    31/172

    2.1 Sistema de Posicionamiento Global.

    2.1.3. Codigos y Frecuencias

    Existen basicamente dos tipos de codigos, que son enviados por los satelites, llamados:Codigo de Adquisicion Aleatoria (C/A) y Codigo de Precision (P). Estos codigos son trans-

    mitidos simultaneamente, no obstante el codigo P contiene informacion que no es codificable

    para receptores de usuarios civiles, es decir, es el codigo que se usa en sistemas militares. Basi-

    camente el codigo P se usa para mejorar la precision en el calculo realizado con la informacion

    del codigo C/A.

    En el sistema GPS estos codigos son transmitidos en dos frecuencias portadoras: 1575.42

    MHz y 1227.6 MHz. A la frecuencia de 1575.42 MHz se le llama L1mientras que a la frecuencia

    de 1227.6 MHz, L2. La frecuencia portadora L1 contiene la informacion de ambos codigos

    C/A y P, por otro lado en la portadora L2solamente se enva el codigo P. Cualquier receptor

    GPS debe estar capacitado para recibir como mnimo la frecuenciaL1.

    2.1.4. Protocolo de Comunicacion NMEA

    La asociacion nacional de dispositivos electronicos marinos (NMEA por sus siglas en

    ingles)es un grupo de productores, distribuidores, comerciantes, instituciones educativas y

    otros grupos interesados en dispositivos electronicos especializados en el ambito martimo,

    todo esto sin fines de lucro. Entre los logros mas importantes de esta asociacion se encuentra

    el desarrollo de un estandar para dispositivos martimos, que especifica tanto la interfaz

    electrica de los dispositivos como el protocolo de comunicacion entre los mismos, este estandar

    es nombrado NMEA-0183cuya primera version se presenta en Marzo de 1983.

    La interfaz electrica que establece el estandar NMEA-0183 es una interfaz asncrona

    serial que trabaja con los parametros que se ven en la Tabla 2.1. Este estandar permite

    conectar varias terminales a un solo transmisor. Se recomienda que el cable utilizado para

    estas conexiones sea un cable par trenzado, aunque no se especifica el uso de un conector

    en particular. NMEA-0183 estipula que los dispositivos deben de cumplir con los parametros

    electricos del estandar de conexionEIA RS-422, no obstante, en la practica es posible utilizar

    una comunicacion a traves de un puerto EIA-RS232.

    Los datos, en este protocolo, se transmiten en forma de frases. Unicamente caracteres

    ASCII se permiten, ademas de los smbolos para retorno de lnea (CR) y siguiente lnea (LF)

    ESIME 17 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    32/172

    Teora Relacionada.

    Tabla 2.1: Parametros de Transmision del Estandar NMEA-0183

    Tasa de Baudios 4800

    Bits de datos 8

    Bits de Paro 1

    Bits de Paridad ninguno

    cada frase comienza con el smbolo $ y terminan con . Existen tres tipos

    de frases: frases de propietario, frases de peticion y frases de transmisor.

    Este estandar permite a los productores de dispositivos definir sus Frases de Propie-

    tario, la frase comienza con $P y despues de esto vienen tres letras que representan el

    identificador del productor, seguidas por los campos de informacion que el fabricante defina.

    Las Frases de Peticion son para los receptores que tienen la capacidad de transmitir

    una peticion de informacion. Los primeros dos caracteres son el identificador de transmisor

    al que se le pide la informacion los siguientes dos caracteres son el identificador de receptor y

    el quinto caracter es siempre una Q definiendo el mensaje como una peticion (Query). El

    siguiente campo es el identificador de la frase o informacion que se requiere, un ejemplo de

    esto sera:

    $CCGPQ,GGA

    El estandar NMEA-0183 se define para multiples dispositivos electronicos de los que las

    Frases de Transmisorpueden provenir y contener informacion correspondiente a cada uno.

    Los primeros dos caracteres despues de $ son el identificador de transmisor, especficamente

    para dispositivos GPS el identificador es GP; aunque existen muchos m as. Le siguen tres

    caracteres que representan el identificador de frase, seguidos por varios campos de datos

    separados por comas y al final los smbolos de retorno de lnea/siguiente lnea.

    Una frase pude contener hasta 80 caracteres sin contar los caracteres: $,y.

    Si los datos de uno de los campos contenidos en la frase no se encuentra disponible, la

    informacion se omite pero las comas que lo delimitan son enviadas en la informacion sin

    separacion entre ellas. Los campos de datos son definidos para cada frase en particular, las

    frases mas comunes para dispositivos GPS se desglosan a continuacion.

    IPN 18 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    33/172

    2.1 Sistema de Posicionamiento Global.

    Frase Datos Fijos del Sistema de Posicionamiento Global o GGA.

    $GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,0000*18

    Donde:

    $GPGGA Identificador de Frase

    161229.487 Posicion UTC (hhmmss.ss)

    3723.2475, N Latitud (ggmm.mmmm), North-South12158.3416, W Longitud (ggmm.mmmm), East-Weast

    1 0=Invalido 1=GPS, 2= GPS Diferencial

    07 Satelites en vista

    1.0 Precision Horizontal

    9.0, M Altitud, Metros

    0.0, M Separacion Geoidal, Metros

    Campo Vaco

    Campo Vaco

    *18 Codigo de Verificacion

    Fin de cadena

    g=Grados, h=Horas, m=Minutos, s=Segundos

    Frase Informacion Mnima Recomendada de Navegaciono RMC.

    $GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10

    Donde:

    ESIME 19 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    34/172

    Teora Relacionada.

    $GPRMC Identificador de Frase

    161229.487 Posicion UTC (hhmmss.ss)

    A A=Datos Validos V=Datos Invalidos

    3723.2475, N Latitud (ggmm.mmmm), North-South

    12158.3416, W Longitud (ggmm.mmmm), East-Weast

    0.13 Velocidad en tierra millas/seg.

    309.62 Curso sobre tierra en grados

    120598 Fecha da/mes/ano

    Variacion Magnetica(East-West)

    *18 Codigo de Verificacion de errores

    Fin del Frase

    g=Grados, h=Horas, m=Minutos, s=Segundos

    Frase Latitud y Longitud Geograficas o GLL.

    $GPGLL,4916.45,N,12311.12,W,225444,A,*1D,

    Donde:

    $GPGLL Identificador de Frase GLL

    4916.46, N Latitud (gggg.mmmm), North-South

    12311.12, W Longitud (ggmm.mmmm), East-Weast

    0.13 Velocidad en tierra millas/seg.

    225444 Hora UTC (hhmmss)

    A A=Datos Validos V=Datos Invalidos

    *2D Codigo para Verificacion de errores

    Fin de frase

    g=Grados, h=Horas, m=Minutos, s=Segundos

    Frase Precision de la Posicion y Satelites Activos o GSA

    $GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39,

    Donde:

    IPN 20 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    35/172

    2.1 Sistema de Posicionamiento Global.

    $GPGSA Identificador de Frase GSA

    A (A)=Auto seleccion de posicion 2D o 3D (M = manual)

    3 Posicion 3D (1= no pos., 2 = Pos. 2D, 3 = Pos. 3D)

    04 Satelites usados para obtener posicion

    2.5 Precision de la posicion

    1.3 Precision Horizontal de la pos.

    2.1 Precision Vertical de la pox.

    *39 Codigo para Verificacion de errores

    Fin de frase

    Frase Satelites en Vistao GVS

    $GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75,

    Donde:

    $GPGSV Identificador de frase de satelites en vista

    2 Numero de frases de la informacion completa

    1 Frases 1 de 2

    08 Numero de satelites en vista

    01 Numero de identificacion PRN de satelite

    40 Elevacion, grados

    083 Acimut, grados

    46,02,17,...,45 Relacion Senal/Ruido

    *75 Codigo para Verificacion de errores

    Fin de frase

    Frase Velocidad Verdadera o VTG

    $GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48

    Donde:

    ESIME 21 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    36/172

    Teora Relacionada.

    $GPVTG Identificador de Frase de velocidad verdadera

    054.7,T Direccion Real (grados)

    034.4,M Direccion Magnetica

    005.5,N Velocidad en Nudos

    010.2,K Velocidad en Km/h

    *48 Codigo para Verificacion de errores

    Fin de frase

    2.1.5. Modulo Receptor GPS RGM-3000.

    Un receptor GPS es un dispositivo electronico capaz de recibir la senales de los satelites

    que orbitan el planeta y obtener su ubicacion en la tierra. Para este proyecto se us o el

    modulo receptor GPS: RGM-3000, dispositivo basado en la arquitecturaSiRF Star II

    y disenado con el algoritmo de navegacion de Royaltek.

    Entre sus caractersticas ofrece: 12 canales paralelos para la transmision de datos, es com-

    patible con el protocolo NMEA-0183, tiene una excelente recepcion en ambientes urbanos

    o con grandes obstaculos como montanas o canones, cuenta con una doble proteccion contra

    reflexiones en la senal GPS, ademas incluye una memoria interna en la que puede almacenar

    hasta 1 Mega-bits (Mb) de informacion . El modulo receptor RGM-3000 se ve fsicamente

    en la Figura2.7.

    Figura 2.7: Modulo receptor RGM-3000

    IPN 22 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    37/172

    2.1 Sistema de Posicionamiento Global.

    La Tabla2.2, resume las caractersticas fsicas, electricas y de operacion del modulo RGM-

    3000[4].

    Tabla 2.2: Caractersticas del Modulo RGM-3000

    Caractersticas de Operacion

    Canales 12

    Banda L1, 1575.42 MHz

    Adquisicion Codigo C/A

    Tasa de Actualizacion de Navegacion 1/s

    Caractersticas de Precision

    Localizacion 1 a 5 m

    Velocidad 0.1 m/s

    Altitud Maxima 18000 m

    Velocidad Maxima 515 m/s

    Aceleracion Maxima 4 g

    Caractersticas Electricas

    Alimentacion 3.310V

    Consumo de Corriente 180 mA

    Como puede notarse en la Tabla2.2, este modulo receptor realiza la adquisicion del codigo

    C/A, mediante frecuencia portadora L1. La informacion que se obtiene se actualiza una vez

    por segundo suficientemente util para mantener una navegacion optima por cualquier medio.

    En la parte media de la Tabla 2.2 se visualiza que este dispositivo proporciona una preci-

    sion de 1 a 5men lo que respecta a la ubicacion real del receptor. Al realizar la localizacion

    en movimiento con este modulo se tiene un margen de error de 0.1m/s en su calculo de la

    velocidad de desplazamiento. Aunque en general se tiene un buen desempeno en cuanto a la

    precision de ubicacion, existen lmites para este modulo GPS, los parametros de rendimiento

    maximo en altitud y velocidad pueden observarse en la Tabla2.2. Por ultimo se observa, en

    la Tabla2.2, los requerimientos de energa necesarios.

    La interfaz fsica del modulo se realiza a traves de un conector de 20 pines, en la Tabla

    2.3se muestra la relacion de pines del modulo RGM-3000:

    ESIME 23 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    38/172

    Teora Relacionada.

    Tabla 2.3: Pines del Modulo RGM-3000

    No. Pin Nombre No. Pin Nombre No. Pin Nombre No. Pin Nombre

    1 VCC 7 TIMEMARK 13 GPIO3 19 GPIO15

    2 VCC 8 RESET 14 GPIO5 20 GND

    3 TXA 9 BOOTSEL 15 GPIO6 21 GND

    4 RXA 10 WAKEUP 16 GPIO7 22 GND

    5 TXB 11 VBAT 17 GPIO10

    6 RXB 12 RESERVED 18 GPIO13

    Los pines 1 y 2 son las lneas de alimentacion positiva por donde se suministran los 3.3V,mientras que por los pines 20-22 se conecta la lnea negativa. Los pines 3 y 4 son TXA y

    RXB, estas lneas son de comunicacion de datos serial y es por donde el modulo transmite la

    informacion de navegacion y recibe comandos respectivamente.

    Por la lnea TXA se trasmite las cadenas de datos en un estandar RS232 con una razon

    de baud rate de 48000 bps, 8 bits de datos, sin bit de paridad y con un solo bit de paro. Los

    datos que se envan cumplen con el protocolo NMEA-0183, transmitiendo las frases GSV y

    GSA una vez cada 5 segundos, la cadena GGA cada segundo y las frases GLL, RMC y VTG

    continuamente.

    IPN 24 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    39/172

    2.2 Arreglo de Compuertas Programables en Campo.

    2.2. Arreglo de Compuertas Programables en Cam-

    po.

    Los Arreglos de Compuertas Programables en Campo (por sus siglas en inglesFPGA)son

    dispositivos semiconductores que estan compuestos por bloques programables relacionados a

    traves de conexiones tambien programables. A diferencia de otros dispositivos los FPGA

    pueden ser configurados, mediante un lenguaje especializado para cumplir con diferentes

    disenos o aplicaciones requeridas.

    Estos dispositivos fueron desarrollados por primera vez por la empresa Xilinx y co-

    mercializados en el ano de 1984. Existen dos tipos de FPGA, los que basan sus conexiones

    programables en Antifusibles y los que estan basados en celdas de memoria SRAM. La

    tecnologa usada, en estos primeros dispositivos fueron las celdas SRAM. Los FPGA de anti-

    fusibles fueron creados posteriormente, en 1991, por empresas diferentes a Xilinx. Los FPGA

    basados en celdas SRAM son circuitos programables y borrables electricamente mientras que

    los FPGA de antifusibles son programables electricamente pero no borrables, es decir, son

    programables solamente una vez.

    Esta tecnologa de circuito integrado utiliza un Lenguaje de Descripcion de Hardware(HDL) para definir la configuracion que los componentes internos tendran y as ejecutar las

    tareas que se necesitan de acuerdo a cada aplicacion. Existen varios tipos de HDLs, todos

    creados con el objetivo de simplificar el diseno de circuitos logicos, sin estar atados a una

    tecnologa de circuitos integrados en particular.

    2.2.1. Estructura de un FPGA

    La arquitectura de un FPGA es especfica dependiendo de cada dispositivo en particular,

    no obstante, se puede denominar una estructura basica compuesta por cuatro bloques o

    elementos programables fundamentales y las conexiones entre estos, que son:

    Bloque Logico Configurable (CLB).

    Bloques de Entrada/Salida (IOB).

    Bloques RAM (Block RAM).

    ESIME 25 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    40/172

    Teora Relacionada.

    Administrador de Reloj Digital (DCM).

    Los 4 tipos de bloques estan distribuidos a lo largo de la estructura interna de un FPGA,

    en la Figura2.8se puede visualizar su ubicacion usual.

    Figura 2.8: Estructura de un FPGA, Bloques Internos.

    2.2.1.1. CLB

    Los CLBs son la unidad logica basica en un FPGA con los cuales se implementan la

    logica combinatoria necesaria en diferentes aplicaciones. Cada CLB esta compuesto por varios

    subbloques diferentes. Un CLB se divide en cuatro partes llamadas Slices, usualmente se

    agrupan en pares, el par izquierdo realiza operaciones logicas y de almacenamiento, mientras

    que el par de la derecha solamente puede realizar funciones logicas.

    Los slices, a su vez estan compuestos por componentes logicos mas basicos, dentro de

    cada slice se encuentran: dos bloques de logica combinatoria o tablas de consulta (LUT),

    dos elementos de almacenamiento que pueden ser usados como registros o para sincronizar

    las salidas con las senales de reloj (Flip-Flop), dos multiplexores y compuertas adicionales

    IPN 26 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    41/172

    2.2 Arreglo de Compuertas Programables en Campo.

    de logica aritmetica que complementan y simplifican la implementacion de practicamente

    cualquier funcion logica. La Figura2.9(a) muestra como un CLB esta dividido en un FPGA

    y la Figura2.9(b) muestra la composicion de un slice.

    Figura 2.9: (a) CLBs y Slice dentro de un FPGA; (b) Componentes dentro de un Slice.

    La LUT es un generador de funciones basado en celdas RAM y es el principal recurso

    para implementar funciones logicas. Los bloques LUT pueden ser usados como microbloques

    de memoria (RAM16) o como registros de corrimiento de 16-bits (SRL16). Cualquier funci on

    logica booleana de cuatro variables puede ser implementada por una LUT, una funcion de

    mas variables puede ser implementada por LUTs en cascada o usando los recursos adicionales

    en un slice. La salida del bloque LUT puede ser conectada a cualquier otro componente en

    el slice.

    Los multiplexores pueden combinarse con los bloques LUT permitiendo la implementacion

    de funciones logicas de mayor complejidad.

    La logica aritmetica y de acarreo colaboran con la rapida y eficiente implementacion de

    funciones matematicas.

    Los Flip-Flops son de tipo D, con estos elementos se puede retener la salida de los bloques

    LUT o de los multiplexores para mantener un registro o sincronizarlos con la se nal de reloj.

    ESIME 27 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    42/172

    Teora Relacionada.

    2.2.1.2. IOB

    Todas la senales que entran y salen de un dispositivo FPGA deben pasar por un Bloque

    de Entrada/Salida o IOB. Los FPGA tienen, debido a estos bloques, una gran variedad de

    capacidades en lo que se refiere a la entrada y salida de se nales. Actualmente la selectividad, en

    un bloque de entrada/salida, simplifica en gran medida las necesidades de diseno en muchas

    aplicaciones. Mas de 20 estandares de senales de entrada y salida son soportados por un

    bloque IOB, con diferentes especificaciones en corriente, voltaje y tecnicas de terminacion

    de lnea. Por lo tanto un FPGA tiene una amplia conectividad con otros dispositivos, ya

    que provee de las conexiones requeridas en muchos casos y elimina el costo de implementar

    adaptaciones adicionales.

    Un bloque IOB provee de una va programable, unidireccional o bidireccional entre el pin

    del empaque del FPGA y la l ogica interna en este. Algunas de las caractersticas que este

    bloque ofrece son:

    Control programable del tiempo de respuesta de la senal de salida.

    Control programable de la corriente de la senal de salida.

    Salidas y entradas por Registro (Flip-Flop).

    Registros especializados para doble velocidad de datos (DDR).

    Retraso programable en las senales de entrada.

    Diferente terminaciones de salida.

    Inversion de la senal de salida o entrada.

    Existen tres principales vas que una senal puede seguir en un IOB: entrada, salida o el

    tercer estado.

    La ruta de entrada lleva la senal desde el pin en el empaque del FGPA hasta los diferentes

    bloques para la adecuacion del voltaje, comparacion con un voltaje de referencia o con su

    par diferencial. La senal posteriormente se dirige a un bloque de retraso programable y

    consecutivamente a alguno de los registros opcionales en al va de entrada. Despues de estas

    etapas la senal se puede usar en la logica interna del FPGA (ver Figura2.10(a)).

    IPN 28 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    43/172

    2.2 Arreglo de Compuertas Programables en Campo.

    Figura 2.10: Bloque de Entrada/Salida simplificado.

    La va de salida comienza en las conexiones disponibles de un bloque IOB con la logica

    interna del FPGA. Esta ruta lleva la senal a un multiplexor y despues a un elemento de tercer

    estado. El multiplexor provee la opcion de redirigir varias senales a una misma salida (Figura

    2.10(b)).

    La ruta del tercer estado determina cuando la terminacion del bloque IOB sera de alta

    impedancia. La logica interna del FPGA puede accionar o determinar cuando la terminacion

    del bloque IOB sera de alta impedancia segun sea necesario (Figura2.10(c)).

    ESIME 29 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    44/172

    Teora Relacionada.

    La Figura2.10muestra un diagrama simplificado de un bloque IOB, en el cual se pueden

    observar las rutas que una senal puede seguir. Ademas de esto se observan otras cualidades

    antes mencionadas de un bloque IOB, es decir, los diferentes tipos de terminaci on de lnea

    como pueden ser en resistores de Pull-Up o Pull-Down.

    La Tabla2.4presenta la descripcion de las entradas y salidas hacia un bloque IOB que

    se observa en la Figura2.10.

    Tabla 2.4: Descripcion de entradas y salidas del bloque IOB.

    Pin DescripcionT Salida de habilitacion del Tercer Estado.

    T1 Entrada Flip-Flop (FF) 1 para habilitacion del Tercer Estado

    T2 Entrada FF2 para habilitacion del Tercer Estado

    TCE Habilitador de Chip para FF1 y FF2

    S1 Entrada FF1 para sicronizacion de salida

    SCLK1 Reloj para sincronizacion de salida por FF1

    S2 Entrada FF2 para sicronizacion de salida

    SCLK2 Reloj para sincronizacion de salida por FF1

    SCE Habilitador de Chip para FF1 y FF2 de salida

    E Entrada despues de retraso programable

    EQ1 Entrada a traves de FF1

    ECKL1 Reloj para sincronizacion de entrada por FF1

    EQ2 Entrada a traves de FF2

    ECKL2 Reloj para sincronizacion de entrada por FF2

    ECE Habilitador de Chip para FF1 y FF2 de entrada

    SR Entrada Set/Resetpara todos los FF

    REV1 Entrada Inversa para todos los FF

    E/S Pin de Entrada/Salida del FPGA

    VREF Voltaje de referencia para comparacion del pin E/S

    E/S D Par diferencial del pin E/S

    IPN 30 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    45/172

    2.2 Arreglo de Compuertas Programables en Campo.

    2.2.1.3. Block RAM

    Los bloques de memoria interna RAM estan disponibles en practicamente todos los FPGA,

    estos brindan un almacenamiento temporal dentro del FPGA para las aplicaciones que lo

    requieran.

    Dependiendo del dispositivo, los bloques RAM estan posicionados en la periferia del mismo

    o en columnas organizadas en algun lugar dentro del FPGA. Estos bloques RAM tienen la

    capacidad de usarse en diferentes funciones como: memoria RAM, FIFO (First Input - First

    Output), LUTs de mayor tamano, convertidores de ancho de palabra, registros de corrimiento

    y otras aplicaciones adicionales. Cada bloque RAM en un FPGA tiene aproximadamente 16

    Kbits (18432 bits) y soportan operaciones de lectura y escritura de datos.

    2.2.1.4. DCM

    El DCM provee a los FPGA de capacidades avanzadas para sincronizar senales de reloj.

    Con este bloque se suelen resolver una gran variedad de necesidades de sincronizaci on es-

    pecialmente cuando se trata de altas frecuencias de reloj, las principales tareas de un DCM

    son:

    Elimina Asimetras en la senal de reloj, ya sea en senales internas o externas al

    dispositivo, para mejorar el desempeno del sistema y eliminar retrasos en la propagacion

    de la senal.

    Desplazamiento de Fase de una senal de reloj, en una cantidad fija de un periodo

    de reloj o en incrementos definidos.

    Multiplicando o Dividiendo una frecuencia entrante de Reloj, incluso pro-

    duciendo una nueva frecuencia a partir de la entrante ya sea dividiendola y/o multi-

    plicandola por un factor.

    Acondicionamiento de la senal de reloj para asegurarse de tener una senal de

    salida con un ciclo util determinado.

    Cualquiera de estas tareas o todas simultaneamente

    ESIME 31 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    46/172

    Teora Relacionada.

    El DCM consiste de cuatro distintas unidades funcionales, como se muestra en la Figura 2.11,

    estas unidades trabajan en conjunto o independientemente.

    Figura 2.11: Esquema de un Administrador de Reloj.

    Bucle de Enganche de Retraso (DLL). Brinda un rectificador interno de asimetras en

    la senal de reloj, que provee efectivamente de una senal sin retraso. El circuito rectificador

    compensa el retraso y asimetras en la senal de reloj a traves de un monitoreo de las senales

    de reloj de salida del DCM mismo. La unidad DLL elimina perfectamente los retrasos de una

    senal de reloj externa para utilizarse en la logica interna del dispositivo.

    Sintetizador Digital de Frecuencias(DFS). Brinda una amplia variedad de frecuencias

    producidas a partir de dos numeros enteros que son definidos por el usuario, un factor Divisor

    y otroMultiplicador. La frecuencia de salida es sintetizada a partir de la frecuencia de entrada

    (CLKIN Figura2.11) y los factores adecuados de multiplicacion o division. La unidad DFS

    puede trabajar en conjunto con la unidad DLL o sin ella, no obstante, al no usar la unidad

    DLL se corre el riesgo de tener retrasos en la nueva frecuencia sintetizada.

    IPN 32 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    47/172

    2.2 Arreglo de Compuertas Programables en Campo.

    Desplazador de Fase (PS). Esta unidad controla todas las relaciones de defasamiento

    de la frecuencia de entrada (CLKIN) en un DCM. La unidad PS, como su nombre lo indica,

    se encarga de desplazar en una fraccion fija la fase de la frecuencia; los valores que se usaran

    para producir los defasamientos de frecuencia son establecidos y cargados en el FPGA al

    momento de ser programado.

    Logica de Estado (ST). Indica el estado actual del DCM, a traves de senales de salida

    del mismo. Estas salidas proveen informacion sobre el funcionamiento de un DCM.

    La Tabla2.5describe las entradas y salidas del DCM observado en la Figura 2.11.

    Tabla 2.5: Descripcion de entradas y salidas del DCM.

    Pin Descripcion

    PSINCDEC Incremento/Decremento (1/0) del desplazamiento variable de fase

    PSEN Habilitacion del desplazamiento variable de fase

    PSCLK Entrada de reloj para aplicar desplazamiento variable de fase

    CLKIN Entrada de reloj al DCM

    CLKFB Entrada de relo j de retroalimentacion

    RST Reinicio asncrono del DCM

    PSDONE Desplazamiento de fase variable completado

    CLK0 Frecuencia de salida igual a CLKIN

    CLK90 Frecuencia de salida igual a CLKIN desplazada 90 en su fase

    CLK180E Frecuencia de salida igual a CLKIN desplazada 180 en su fase

    CLK270E Frecuencia de salida igual a CLKIN desplazada 270 en su fase

    CLK2X Doble de la frecuencia CLKIN desplazada 0 en su fase

    CLK2X180 Doble de la frecuencia CLKIN desplazada 180 en su fase

    CLKDV Frecuencia CLKIN divida por el factor Divisor

    CLKFX Frecuencia de salida sintetizada

    CLKFX180 Frecuencia de salida sintetizada desplazada 180 en su fase

    LOCKED Todas las procesos estan acoplados a la frecuencia CLKIN

    STATUS Indicadores del estado de los procesos del DCM

    ESIME 33 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    48/172

    Teora Relacionada.

    2.2.2. Configuracion de un FPGA.

    Un HDL es un lenguaje usado para modelar la operacion funcional de una pieza dehardware en forma textual. Aunque la mayor parte de las referencias bibliograficas se refieren

    a un HDL como un lenguaje de programacion, esto no es completamente cierto. Un enfoque

    mas adecuado de como definir a un HDL sera diciendo que es un lenguaje utilizado para

    describir hardware digital.

    Los HDLs se desarrollaron para solucionar la problematica que se presentaba al disenar

    circuitos logicos complejos y la consecuente prueba de dichos circuitos. Por tanto un HDL

    facilita en gran medida el modelado y la simulacion de circuitos integrados digitales, los cuales

    son implementados en dispositivos logicos programables tal como un FPGA.

    Con el tiempo se han generado muchos HDLs, algunos mas complejos que otros. Desde

    hace anos existen dos principales lenguajes de descripcion de hardware que han tenido au-

    ge, estos son: VHDL y Verilog.Estos lenguajes tienen muchas similitudes pero cada uno

    derivo de una lnea diferente en su camino de desarrollo.

    VHDL es una acronimo de VHSIC Hardware Description Lenguage y a su vez VHSIC

    es un acronimo de Very High Speed Integrated Circuits ( Circuitos Integrados de Muy Alta

    Velocidad). El lenguaje VHDL fue originalmente desarrollado en 1981 por el Departamento

    de Defensa de los Estados Unidos para estandarizar la descripci on de estructura y funciona-

    lidad de hardware. El Instituto de Ingenieros Electricos y Electronicos (IEEE) estandarizo el

    lenguaje VHDL en 1987 y se realizan actualizaciones y revisiones cada 5 a nos. Inicialmente

    el lengua je tena el proposito de modelar las estructuras de hardware sin tener en cuenta la

    realizacion de pruebas en este, posteriormente se adapto para tener la posibilidad de realizar

    la sntesis y simulacion de los circuitos modelados con este lenguaje.

    Por otro lado el lenguaje Verilog fue desarrollado por la empresa Gateway Desing Au-

    tomation en 1984. La empresa Gateway fue adquirida por Cadence en 1989 y por tanto el

    lenguaje Verilog fue hecho un estandar libre en 1990. Este lenguaje se convirtio en un estandar

    IEEE en 1995 y fue actualizado en 2001.

    Ambos lenguajes realizan la descripcion de hardware partiendo de bloques llamado modu-

    los. Un modulo es una detallada descripcion de un dispositivo fsico. En los lenguajes de

    descripcion de hardware pueden realizarse modulos en dos estilos o formas, la primera es

    IPN 34 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    49/172

    2.2 Arreglo de Compuertas Programables en Campo.

    estructuraly la segunda por comportamiento. Un modulo estructuraldescribe como un dis-

    positivo esta compuesto por estructuras mas basicas, mientras que un modulo porcomporta-

    miento describe el funcionamiento.

    Los dos principales propositos de un lenguaje de descripcion de hardware son la simula-

    cion y el proceso de sntesis. Durante la simulacion, se verifica el correcto funcionamiento

    del modulo descrito en un HDL. En el proceso de sntesis la descripcion de hardware es-

    crita se transforma en una asignacion de compuertas logicas que realizaran fsicamente el

    funcionamiento codificado.

    Para conocer mas de los dos principales lenguajes de descripcion de hardware, a conti-

    nuacion se presenta un ejemplo de modulo por comportamiento en lenguaje VHDL y Verilog

    [5,6].

    Verilog

    modulo prueba(input logic a, b, c,

    output logic y);

    assing y = a & b & c;

    end module

    VHDL

    library IEEE; use IEEE.STD LOGIC 1164.all;

    entity prueba is

    port ( a, b, c: in STD LOGIC;

    y : out STD LOGIC);

    end;

    architecture sintesis of prueba is

    begin

    y

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    50/172

    Teora Relacionada.

    caso son de tipo SDT LOGIC que pueden tomar valores de 0 y 1 entre otros. El tipo de dato

    STD LOGIC esta definido en la librera IEEE.STD LOGIC 1164, es por esto que debe ser

    declarada al principio.

    2.2.3. Tarjeta de Desarrollo Spartan 3E

    La actual multiplicidad de empresas fabricantes de dispositivos FPGA, provee una amplia

    gama de dispositivos y tarjetas de desarrollo predisenadas; de entre las muchas empresas

    existentes las dos principales son: la pionera XILINX y su principal contrincante ALTERA.

    La cantidad de dispositivos de los que se puede disponer es bastante grande y las ca-

    pacidades de estos mismos se definen a partir del numero de celdas logicas que contienen.

    Los fabricantes por lo general disenan dispositivos con propositos preestablecidos con lo que

    ciertos dispositivos son implantados en tarjetas junto con otros circuitos integrados que co-

    laboraran el objetivo fijado, es decir, las empresas ofrecen tarjetas de desarrollo hechas para

    aplicaciones especficas como: comunicaciones, procesamiento digital de senales, computacion,

    transmision de senales, uso academico, etc.

    Para elegir la tarjeta de desarrollo adecuada se deben tomar en cuenta generalmente varios

    aspectos. En primer lugar se debe analizar si el dispositivo central (FPGA), de la tarjeta,

    tiene las capacidades necesarias para el proyecto. Los perifericos integrados que tenga cada

    modelo de tarjeta de desarrollo, son tambien importantes para la seleccion de esta. Un factor

    mas para le eleccion es la familiaridad que el usuario tenga con algun tipo de FPGA ya sea

    de un determinado fabricante o dispositivo. Por ultimo se debe tener en cuenta tambien la

    disponibilidad en el mercado de la tarjeta que se pretenda usar.

    Para desarrollar este proyecto se opto por usar la tarjeta Spartan 3E Starter Kit

    (S3E), vista en la Figura2.12.Esta se eligio por su uso comun en proyectos de desarrollo e

    investigacion academica, por su amplia comercializacion y su capacidades de funcionamiento

    y conexion; que aunque son basicas cumplen con los requerimientos para el desarrollos de

    este sistema.

    Una de las caractersticas principales y mas utiles de esta tarjeta es su capacidad de

    programar los dispositivos en ella (FPGA, CPLD, PROM, etc.) a traves de una conexion

    USB. Esta conexion tambien es util para realizar verificaciones a las entradas, salidas o

    IPN 36 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    51/172

    2.2 Arreglo de Compuertas Programables en Campo.

    Figura 2.12: Tarjeta Spartan 3E Starter Kit

    registros del sistema durante el funcionamiento del dispositivo FPGA. En la lista siguiente

    se encuentran las principales caractersticas de dispositivos que componen esta placa:

    FPGA Xilinx XC3S500E.

    232 Pines de Entrada y Salida.

    10432 Celdas Logicas.

    Memoria PROM de Xilinx de 4 Mbit, para configuracion o programacion del FPGA.

    CPLD Xilinx XC2C64CA con 64 macroceldas.

    Memoria DDR SDRAM de 64 MByte.

    ESIME 37 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    52/172

    Teora Relacionada.

    Memoria FLASH serial SPI de 16Mbits.

    LCD de 2 lneas por 16 caracteres.

    Conector PS/2.

    Conector VGA.

    Dos conectores RS-232 de 9 pines

    Oscilador de reloj de 50 MHz.

    Conector para expansion Hirose FX2.

    Tres conectores de expansion Digilent de 6 pines.

    Convertidor Digital-Analogico de cuatro salidas basado en protocolo SPI.

    Convertidor Analogico-Digital con dos entradas y ganancia programable.

    Selector rotatorio con interruptor de boton de presion central.

    Ocho LEDs.

    Cuatro interruptores de deslizamiento.

    Cuatro interruptores de boton.

    Conector SMA.

    Por s mismo el dispositivo FPGA tiene caractersticas de operacion importantes, para

    mantener la eleccion de su uso, tales como:

    Generar y trabajar con mas de 8 posibles frecuencia de reloj desde los 200KHz hasta

    los 333MHz.

    Multiples estandares de voltaje.

    Estandares: LVCMOS, LVTTL, HSTL, SSTL, GTL, PCI33 y PCI66.

    Voltajes : 3.3V, 3.0V, 2.5V, 1.8V, 1.5V y 1.2V.

    IPN 38 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    53/172

    2.2 Arreglo de Compuertas Programables en Campo.

    Abundantes recursos logicos.

    Bloques internos de memoria RAM.

    Registros de corrimiento.

    Multiplexores.

    Multiplicadores (18x18).

    2.2.3.1. Componentes de la Tarjeta S3E.

    Interruptores Deslizables. La tarjeta S3E tiene cuatro interruptores deslizables estos

    interruptores estan situados en la esquina inferior derecha de la tarjeta como se ve en la

    Figura 2.12 y estan etiquetados como Switch 3 (SW3) hasta Switch 0 (SW0). Cuando el

    interruptor se coloca en la posicion superior, conecta al FPGA a 3.3 V generando un 1 l ogico.

    Por otro lado cuando se encuentra en la posicion baja, el interruptor conecta al FPGA a tierra,

    generando un 0 logico. Un cambio en la posicion del interruptor tarda aproximadamente 2ms

    para que el valor logico correspondiente se estabilice.

    Interruptores Push-Boton. La tarjeta dispone de 4 interruptores de contacto, y un in-

    terruptor con la capacidad de rotar a la derecha, izquierda y funcionar como interruptor de

    contacto. Estos se encuentran en la parte inferior izquierda de la tarjeta (ver Figura 2.12).

    Etiquetados con el prefijo BTN seguidos de su posici on (Norte, Sur, Este u Oeste). Al pre-

    sionar cualquiera de estos interruptores, se envan 3.3 V al FPGA, generando un 1 logico, y

    un 0 logico cuando este no se presiona. Usualmente es necesario un circuito antirebotes para

    estos interruptores, posible de implementar mediante codigo VHDL.

    LEDs. La Spartan 3E tiene 8 luces indicadoras (LEDs). Cada una tiene un lado conectado

    a tierra y el otro lado conectado a un pin de la tarjeta, por medio de una resistencia limitadora

    de corriente de 390 KOhm. Estos estan ubicados justo arriba de los interruptores deslizables

    (ver Figura2.12). Las lneas de conexion de estos LEDs estan multiplexadas con algunas del

    conector Hirose de 100 pines.

    ESIME 39 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    54/172

    Teora Relacionada.

    Oscilador de Reloj. Esta tarjeta soporta el uso de tres fuentes para la senal de entrada

    de reloj, todas estan situadas bajo el logo de Xilinx en la tarjeta y cerca del logo de Spartan

    3E, como se ve en la Figura 2.12.Estas tres fuentes son:

    Oscilador integrado.

    Conector SMA.

    Conector DIP de 8 Pines.

    La tarjeta incluye un oscilador de 50 MHz con un ciclo util de 40 %. La precision del

    oscilador es de 2500 Hz.

    Para proporcionar una senal de reloj externa, se puede conectar esta senal de entrada

    por medio del conector SMA. Opcionalmente el FPGA puede generar senales de reloj u otro

    tipo de senales de alta velocidad y proporcionarlas, a otro dispositivo, por el mismo conector

    SMA.

    El conector DIP de 8 pines incluido en la tarjeta acepta circuitos integrados osciladores

    del mismo tipo (DIP 8-pin). Se usa este conector cuando el FPGA requiere de frecuencias

    diferentes a la de 50 MHz o que no puedan ser generadas por el DCM del FPGA.

    Puertos RS-232. Como se ve en la parte superior derecha de la Figura2.12, la tarjeta S3E

    tiene dos puestos seriales RS-232: un conector hembra DB9 DCE y un conector macho DTE.

    El puerto estilo DCE se conecta directamente al puerto serial disponible en la mayora de las

    computadoras personales actuales y a estaciones de trabajo mediante un cable serial est andar.

    El conector estilo DTE puede ser usado para controlar otros dispositivos con interfaz RS-232.

    El FPGA proporciona una salida de datos seriales usando los niveles LVTTL o LVCMOS a

    un dispositivo Maxim232, el cual convierte los valores logicos a un nivel de voltaje apropiado

    RS-232. De igual forma el dispositivo Maxim convierte las senales RS-232 seriales de entradaa un nivel LVTTL adecuado para el FPGA. Un resistor entre el dispositivo Maxim y los

    pines de entrada del FPGA lo protegen contra conflictos accidentales en los niveles l ogicos

    de voltaje.

    Conectores de Expansion. La tarjeta Spartan 3E provee una variedad de conectores de

    expansion para facilmente conectar otros componentes no incluidos en la tarjeta. La tarjeta

    IPN 40 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    55/172

    2.2 Arreglo de Compuertas Programables en Campo.

    Figura 2.13: Conectores RS-232 en la tarjeta S3E.

    incluye los siguientes conectores de expansion:

    Un conector Hirose de 100 pines con 40 de estos pines como E/S, m as de 15 pares

    diferenciales de E/S y dos pines dedicados unicamente como entradas.

    Tres conexiones para modulos perifericos de 6 pines.

    Estos se ubican en la parte lateral derecha de la tarjeta, pueden ser vistos y ubicados mediante

    la Figura2.12.

    Memoria DDR SDRAM. Como una tarjeta de desarrollo en la S3E se tienen varios

    elementos que permiten realizar diversas aplicaciones y una de las herramientas que integra

    esta tarjeta es la memoria DDR SDRAM MT46V32M16, fabricada por la compana Micron

    Technology, Inc; en la Figura2.14se puede ver su ubicacion.

    La memoria MT46V3216 es una memoria de 512Mbits de capacidad de almacenamiento

    y opera con 2.5V de energa y un voltaje de referencia de 1.5V obtenido a partir de un divisor

    de voltaje. Es posible trabajar con una longitud de palabra de 16 bits, aunque tambien con

    la mitad de esta longitud. Esta memoria usa una senal de reloj diferencial que trabaja de

    los 77 hasta los 133 MHz. La totalidad de la memoria esta dividida internamente en cuatros

    bancos que se seleccionan independientemente para acceder a la informacion en ellos.

    La lectura y escritura se implementa mediante rafagas de datos, es decir el acceso a datos

    comienza en una direccion seleccionada y despues continua automaticamente de acuerdo a

    la longitud de rafagas predefinida. Esta longitud es programable y pueden ser de 2, 4 y 8

    localidades de memoria por rafaga.

    ESIME 41 ICE

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    56/172

    Teora Relacionada.

    Figura 2.14: Ubicacion de la memoria DDR SDRAM en la tarjeta Spartan 3E.

    IPN 42 ESIME

  • 7/25/2019 Desarrollo e Implementacin de Un Sistema de Localizacin Geogrfica en FPGA

    57/172

    2.3 Pantallas TFT-LCD.

    2.3. Pantallas TFT-LCD.

    Las Pantallas de Cristal Lquido (LCD) se han convertido en el medio visual predilecto

    para mostrar informacion de un dispositivo electronico al usuario. La mayor parte de dis-

    positivos electronicos como consolas de vdeo, telefonos celulares, calculadora, camaras de

    fotografa o vdeo tienen integrada una LCD. La causa de su variedad de aplicaciones reside

    en la cualidad de este tipo de pantalla para desplegar im agenes monocromaticas o a color.

    2.3.1. Estructura de un TFT-LCD.

    Un TFT-LCD esta compuesto por un numero especfico de celdas basicas conocidas como

    pixeles; para pantallas TFT-LCD de color. Para una pantalla de color un pixel est a compuesto

    por tres celdas para mostrar colores de acuerdo al sistema RGB. Cada pixel esta compuesto

    por un Transistor de Pelcula Delgada(TFT), un electrodo de pixel, un electrodo comun y

    un capacitor de almacenamiento (Ca). Internamente la capa de cristal lquido se comporta

    como una capacitancia (Ccl) cuyas terminales son el electrodo de pxel y el electrodo comun

    (Figura2.15). El rendimiento de la pantalla TFT-LCD esta intrnsecamente relacionado con

    los parametros de diseno de la unidad de pxel, es decir, la superposicion entre: los electrodosdel TFT, las dimensiones del condensador de almacenamiento o del electrodo de pxel, y el

    espacio entre estos elementos