Date post: | 24-Feb-2018 |
Category: |
Documents |
Upload: | pattytoperezjuarez |
View: | 229 times |
Download: | 0 times |
of 172
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