• No se han encontrado resultados

DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA DE LOCALIZACIÓN GEOGRÁFICA EN FPGA

N/A
N/A
Protected

Academic year: 2017

Share "DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA DE LOCALIZACIÓN GEOGRÁFICA EN FPGA"

Copied!
172
0
0

Texto completo

(1)

ESCUELA SUPERIOR DE INGENIER´IA

MEC ´

ANICA Y EL´

ECTRICA

“Desarrollo e Implementaci´

on de un Sistema de

Localizaci´

on Geogr´

afica en FPGA”

TESIS

QUE PARA OBTENER EL T´

ITULO DE:

“INGENIERO EN COMUNICACIONES Y

ELECTR ´

ONICA”

Presenta:

esar Luis P´

erez Bautista

Asesor:

Ra´

ul Ruiz Meza

(2)
(3)

´Indice General III

Lista de Figuras VII

Lista de Tablas XI

Objetivos XIII

Introducci´on 1

1. Planteamiento del Problema. 3

2. Teor´ıa Relacionada. 9

2.1. Sistema de Posicionamiento Global. . . 9

2.1.1. Conceptos B´asicos de un Sistema de Posicionamiento. . . 10

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

2.1.3. C´odigos y Frecuencias . . . 17

2.1.4. Protocolo de Comunicaci´on NMEA . . . 17

2.1.5. M´odulo 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. Configuraci´on de un FPGA. . . 34

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

2.3. Pantallas TFT-LCD. . . 43

(4)

2.3.2. Pantalla LQ043T3DX02. . . 45

2.4. SD Card. . . 49

2.4.1. Caracter´ısticas de la Tarjeta SD. . . 49

2.4.2. Protocolo de Comunicaci´on SD. . . 51

2.4.3. Descripci´on 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 Aplicaci´on en FPGA. . . 75

2.6.2. Ambiente integrado de Software. . . 79

3. Desarrollo del Sistema de Localizaci´on Geogr´afica. 83 3.1. Control de la pantalla TFT-LCD. . . 84

3.1.1. Interfaz F´ısica. . . 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. . . 95

3.2.1. Interfaz F´ısica. . . 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 F´ısica. . . 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 F´ısica. . . 119

3.4.2. Software de control en VHDL. . . 120

3.4.3. Resultados del Control Implementado. . . 127

3.5. Integraci´on de Elementos Para Implementar el SILOG. . . 128

(5)

3.5.2. Obtenci´on, Decodificaci´on y Desplegado de Mapas Digitales. . . 134

4. Implementaci´on Final y Resultados del SILOG. 141

4.1. Implementaci´on del SILOG. . . 141

4.2. Resultados Observados. . . 147

4.3. An´alisis de los Resultados. . . 150

Conclusiones y Lineas Futuras. 153

Ap´endice A C´odigos en VHDL. 155

(6)
(7)

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

1.2. Diagrama del Sistema Representando las Conexiones F´ısicas. . . 8

2.1. Posici´on Desconocida (Plano unidimensional) . . . 10

2.2. Localizaci´on de un punto en un espacio bidimensional . . . 11

2.3. Intersecci´on de tres esferas, dos posibilidades de ubicaci´on del puntox. . . 11

2.4. Cuatro sat´elites son al menos necesarios para ubicar al usuario mediante la obtenci´on de la distancia sat´elite-usuario basado en tiempos de transmisi´on y recepci´on. . . 14

2.5. Segmento de Control. Estaciones terrestres: 1. Estaci´on Principal Base de la fuerza a´erea Falcon, Colorado Springs; 2. Estaci´on de Monitoreo Hawaii; 3. Estaci´on de Monitoreo Cabo Ca˜naveral; 4. Es-taci´on de Monitoreo Isla Asunci´on; 5. Estaci´on de Monitoreo Diego Garc´ıa; 6. Estaci´on de Monitoreo Kwajalein . . . 15

2.6. Organizaci´on de ´orbitas satelitales y la separaci´on ente cada sat´elite en una ´ orbita . . . 16

2.7. Modulo receptor RGM-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. Ubicaci´on de la memoria DDR SDRAM en la tarjeta Spartan 3E. . . 42

(8)

2.16. Panel TFT-LCD . . . 44

2.17. Pantalla TFT-LCD LQ043T3DX02 f´ısicamente. . . 45

2.18. Se˜nales de Sincronizaci´on para el dispositivo LQ043T3DX02. . . 48

2.19. Diferentes tama˜nos de la tarjeta SD. . . 50

2.20. Relaci´on de conexiones para la interfaz f´ısica SD Bus y SPI Bus. . . 51

2.21. Operaci´on 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 com´un. . . 57

2.27. Paquete de datos amplio. . . 58

2.28. Generador y Verificador de CRC16 . . . 58

2.29. Diagrama del proceso de inicializaci´on e identificaci´on. . . 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. Configuraci´on del MC34063A para un conversor de voltaje de subida. . . 86

3.2. Interfaz f´ısica 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. Gr´afico de Carga Contra Corriente. . . 96

3.6. Conexiones necesarias para el funcionamiento del m´odulo RGM-3000. . . 97

3.7. Imagen Comparativa de Ubicaci´on. . . 101

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

3.9. Conexi´on entre FPGA y tarjeta SD. . . 104

3.10. Diagrama de M´aquina de Estados de Control . . . 105

3.11. M´aquina de Estados para el Env´ıo/Recepci´on de Datos . . . 114

(9)

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

3.14. Interfaz f´ısica entre FPGA y memoria MT46V32M16. . . 120

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

3.16. Proceso de Inicializaci´on 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 Informaci´on del Sistema Completo. . . 129

3.20. Representaci´on Binaria de Caracteres . . . 131

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

4.2. Resusmen de Utilizaci´on de Recursos del FPGA XC3S500E . . . 144

4.3. Distribucion de los Componentes L´ogicos en el Dispositivo FPGA. . . 145

4.4. Ventana Principal del Software iMPACT . . . 146

4.5. Sistema en Funcionamiento. . . 148

(10)
(11)

2.1. Par´ametros de Transmisi´on del Est´andar NMEA-0183 . . . 18

2.2. Caracter´ısticas del M´odulo RGM-3000 . . . 23

2.3. Pines del M´odulo RGM-3000 . . . 24

2.4. Descripci´on de entradas y salidas del bloque IOB. . . 30

2.5. Descripci´on de entradas y salidas del DCM. . . 33

2.6. Descripci´on del conector de 40 pines en la pantalla LQ043T3DX02 . . . 46

2.7. Descripci´on 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 dise˜no de un circuito convertidor de DC a DC de subida . . . 87

3.3. Valores te´oricos 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 Geogr´aficas del RGM-3000 en la cadena GPRMC . . . 100

(12)
(13)

Objetivo general

Desarrollar e implementar el prototipo de un sistema de localizaci´on geogr´afica (SILOG),

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

ingles), capaz de mostrar la posici´on 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 Descripci´on de Hardware (HDL).

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

aleatorio (RAM) que est´a montada en la tarjeta Spartan 3E.

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

4. Desplegar en pantalla informaci´on de coordenadas geogr´aficas y mapas digitales.

5. Implementar el prototipo de SILOG.

6. Realizar pruebas experimentales, obtener datos relevantes para una retroalimentaci´on

(14)
(15)

El hombre se moviliza constantemente y con ´el lo deben hacer sus desarrollos tecnol´ogicos, as´ı mismo estos lo ayudan en su descubrimiento, an´alisis y despla-zamiento en espacios explorados e inexplorados.

Desde su aprobaci´on para desarrollo en 1973 hasta su puesta en funcionamiento en 1993,

con el lanzamiento a ´orbita del 24° sat´elite, el sistema de posicionamiento global o GPS por

sus siglas en ingl´es, ha tenido el objetivo de ser ´util en la navegaci´on a´erea, mar´ıtima y

terrestre [1].

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

de dispositivos que utilizan la tecnolog´ıa GPS para solucionar necesidades de localizaci´on,

rastreo y/o navegaci´on. Teniendo como parte fundamental, entre otras, el sistema de

po-sicionamiento global (GPS), en este trabajo se describe el desarrollo de un Dispositivo de Localizaci´on Geogr´afica; cuya funci´on ser´a la de desplegar en una pantalla coordenadas GPS aproximadas de s´ı mismo junto con una representaci´on gr´afica de esa ubicaci´on, es decir, un

mapa digital.

El sistema aqu´ı presentado, pretende en un futuro formar parte de un sistema m´as

com-plejo que tendr´a el objetivo de automatizar o facilitar las mediciones de campo el´ectrico

requeridas en puntos geogr´aficos espec´ıficos [2].

Generalmente un dispositivo como este ser´ıa desarrollado usando un microprocesador o

microcontrolador, raz´on por la cual existen microprocesadores especializados para dispositivos

de localizaci´on o navegaci´on a trav´es de GPS. Sin embargo este trabajo plantea la alternativa

(16)

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

nombre lo dice, est´an basados en arreglos l´ogicos de compuertas, interconectados por

inte-rruptores programables. Los FPGA ofrecen grandes ventajas a los dise˜nadores de aplicaciones

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

per-miten simular, e incluso desarrollar aplicaciones de manera r´apida y sencilla en las tarjetas

de desarrollo que los fabricantes proveen.

Para llevar a cabo este proyecto, se seleccion´o el circuito integrado (FPGA)XCS500E, el cual est´a montado en la tarjeta de desarrollo “Spartan 3E Starter Kit Board”y est´a fa-bricada por la empresaXilinx. Esta tarjeta fue seleccionada por sus diferentes componentes integrados, los cuales se describir´an en el cap´ıtulo 2, adem´as de la ventaja de realizar la

programaci´on del dispositivo FGPA a trav´es del puerto USB.

Los perif´ericos necesarios en este prototipo y para los que se desarroll´o un control mediante

c´odigo 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 servir´a de almacenamiento temporal para la informaci´on de mapas digitales; unm´odulo GPS

que a trav´es de una interfaz RS232 transmite coordenadas GPS y una pantalla TFT-LCD, en la cual se visualizan las coordenadas geogr´aficas y los mapas digitales.

Para comprender el funcionamiento de estos elementos, en el cap´ıtulo 2 se describen

los fundamentos b´asicos de cada una de estas partes que conformaran el prototipo. En el

cap´ıtulo 3, se describen las conexiones f´ısicas entre los perif´ericos utilizados y el FPGA. En el

cap´ıtulo 3 tambi´en se detalla c´omo se desarrolla el control o la comunicaci´on con los elementos

elegidos mediante la l´ogica de programaci´on en VHDL y los resultados obtenidos del control y

conexi´on individual de estos componentes y el FPGA. Finalmente en el cap´ıtulo 4 se revisan

(17)

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 electr´onica o el

mejo-ramiento de algunas otras.

Hay aplicaciones o sistemas electr´onicos en los que, adem´as de su funcionamiento

intr´ınse-co, una mejora substancial ser´ıa agregar las caracter´ısticas de un sistema de navegaci´on. Este

tipo de sistemas son aquellos en los que parte de su funcionamiento tiene relaci´on con la

localizaci´on o ubicaci´on de puntos geogr´aficos. Un ejemplo m´as espec´ıfico son las mediciones

de campo el´ectrico que se deben realizar en un ´area de terreno para obtener la conductividad

el´ectrica del suelo[3]. Este sistema realiza una serie de mediciones en un ´area geogr´afica

ex-tensa para la obtenci´on de la conductividad del suelo, por lo que a˜nadir a ´este un dispositivo

de navegaci´on por medio de GPS agilizar´ıa el proceso completo de mediciones.

Una opci´on es agregar simplemente un equipo de navegaci´on 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 dise˜no general, ´unicamente desarrollados para

cumplir con las funciones b´asicas necesarias en la navegaci´on; por lo que la posibilidad de

integraci´on a otro sistema con funcionalidades extras o diferentes, es pr´acticamente nula.

Como consecuencia de la intensi´on de tener un sistema de navegaci´on que pueda integrarse

(18)

el desarrollo de un prototipo de sistema de localizaci´on geogr´afica.

Habitualmente un dispositivo de navegaci´on comercial cumple con ciertas particularidades

de hardware, como las siguientes:

Modulo de localizaci´on GPS.

Una pantalla de visualizaci´on (con resoluci´on de 480x272 o 640x480 pixeles).

Ranura para la conexi´on de una tarjeta de memoria (donde la base de mapas digitales

se almacena).

Una bater´ıa para su funcionamiento.

Salida de audio (para indicaciones por voz).

Tomando en cuenta estas caracter´ısticas, se proponen para el desarrollo del sistema, el

uso de las caracter´ısticas de principal utilidad siendo ´estas las primeras tres de la lista.

Para enlazar los elementos de hardware que formar´an el sistema de localizaci´on geogr´afica,

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

informaci´on. En este caso, la selecci´on de un dispositivo para realizar esta tarea se centr´o en

un FPGA. La elecci´on de este dispositivo se hizo considerando las ventajas que se pueden

obtener de ´el en comparaci´on 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 m´odulos de control necesariamente ´utiles, sin

dejar recursos prestablecidos sin uso como podr´ıa suceder con un microcontrolador.

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

inter-cambiar informaci´on 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

(19)

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

geogr´aficos de la ubicaci´on actual y mostrar una imagen o mapa digital de tal ubicaci´on.

Figura 1.1: Diagrama a Bloque del Sistema Propuesto

Tomando en cuenta las caracter´ısticas de hardware ya mencionadas, se seleccionaron los

siguientes dispositivos para conformar el sistema:

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

Localizaci´on GPS: M´odulo RGM-3000 para la obtenci´on de coordenadas geogr´aficas.

Desplegado de informaci´on: Pantalla de cristal liquido basada en transistores de pel´ıcula

delgada (TFT-LCD) LQ043T3DX02, con una resoluci´on de 480x272 pixeles.

1

(20)

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 conexi´on de los

dispositi-vos que el FPGA controlar´a, para as´ı posteriormente agruparlos en la estructura del sistema

buscado.

Atendiendo a esta finalidad previa, en primer lugar se realiz´o la adaptaci´on o conexi´on

f´ısica entre la tarjeta de desarrollo Spartan 3E (que contiene al chip central de procesamiento,

FPGA) y los dispositivos perif´ericos que se utilizar´an.

Es de inter´es mencionar: la comunicaci´on entre FPGA y el m´odulo receptor GPS se hace

por medio de un est´andar RS232 y se aprovecha la interfaz f´ısica existente en la tarjeta

Spartan 3E. Otra conexi´on f´ısica, de la pantalla TFT-LCD, requiri´o del uso de uno de los

conectores de expansi´on de la tarjeta debido al n´umero de l´ıneas de comunicaci´on que la

pantalla necesita (40); misma conexi´on de expansi´on que se us´o para la interfaz con la tarjeta

SD.

Parte del prop´osito principal del sistema es mostrar en pantalla im´agenes o mapas digitales

para lo cual deben tomarse algunas consideraciones:

Ya que hablamos de im´agenes que representan mapas, es primordial definir la fuente

de estos mapas; una fuente actualizada y libre de im´agenes digitales de mapas es el

servidor dewww.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 decodificaci´on del mismo para su adecuado desplegado en pantalla. El formato de

imagen proporcionado poropenstreetmap.orges un formato de imagen PNG. Sin

embar-go, asegurando que este sistema est´a en su fase de desarrollo se utilizar´an las im´agenes

transformadas a un formato de imagen b´asico de mapa de bits (BMP).

Adem´as el uso de im´agenes 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

(21)

din´amica de acceso aleatorio s´ıncrona con doble velocidad de datos (DDR-SDRAM).

Obtenidas las interfaces f´ısicas se procedi´o a desarrollar el c´odigo en lenguaje VHDL que

controlar´a el comportamiento e intercambio de informaci´on con cada perif´erico, 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 implementaci´on de este control es extensa y compleja, por lo que

se busc´o 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 f´ısicas y los elementos requeridos

para el funcionamiento total, puede visualizarse en la Figura 1.2, que ejemplifica la totalidad

de elementos f´ısicos utilizados en el sistema y da una imagen m´as cercana del producto que

se obtendr´a con el planteamiento aqu´ı expuesto.

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

caracter´ısticas de operaci´on:

Obtenci´on y desplegado de coordenadas geogr´aficas de ubicaci´on.

Visualizaci´on de mapas digitales.

(22)
(23)

Teor´ıa Relacionada.

Este cap´ıtulo pretende desarrollar los conocimientos b´asicos acerca de los componentes

fundamentales que se requieren para formar unSistema de localizaci´on Geogr´afica, exponien-do informaci´on sobre su evoluci´on y/o funcionamiento. En este cap´ıtulo tambi´en se expone

informaci´on sobre formatos digitales de imagen relacionados con los mapas que se emplear´an.

Por ´ultimo el cap´ıtulo contiene la descripci´on de las herramientas de software que se utilizar´an

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 a´erea

estadounidenses, posteriormente y por diversos motivos su uso se extendi´o a la comunidad

civil. Los principios b´asicos de su funcionamiento est´an regidos por efectos f´ısicos

predeci-bles y la localizaci´on de un usuario (receptor) es determinada por ecuaciones geom´etricas y

la compensaci´on de los errores a los cuales el sistema es susceptible. La informaci´on

nece-saria para que un receptor determine su posici´on esta proporcionada por los sat´elites que

conforman el sistema. Los sat´elites env´ıan se˜nales de radiofrecuencia, con c´odigos que son

interpretados por el receptor para la determinaci´on de la localizaci´on propia. Existen

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

(24)

2.1.1.

Conceptos B´

asicos de un Sistema de Posicionamiento.

2.1.1.1. Encontrar un punto en el espacio.

La posici´on de un punto en el espacio puede ser determinada a partir de distancias

conoci-das desde este punto a alg´un otro punto referencial. En la Figura 2.1 el puntox desconocido se encuentra en un eje horizontal, esto es para un caso unidimensional, si la posici´on del

punto S1 y su distancia al puntox son conocidas, la ubicaci´on del punto desconocido puede

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

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

De igual modo, si la ubicaci´on y la distancia al puntox son conocidas para S2, entonces la

ubicaci´on del puntoxser´a donde las distancias de los dos puntosS1yS2tengan intersecci´on.

Figura 2.1: Posici´on 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 ubicaci´on del punto desconocido sea una de las dos intersecciones que se crean con los datos anteriores, esto se ve

en la Figura 2.2; por lo tanto para determinar la ubicaci´on correcta entre estas posibilidades,

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

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

puntos y cuatro distancias para determinar su ubicaci´on. En un espacio tridimensional dos

esferas en intersecci´on generan una circunferencia en la cual puede estar ubicado el punto

desconocido. Este c´ırculo hace intersecci´on con otra esfera que produce dos posibilidades de

ubicaci´on, como se ve en la Figura 2.3, y por ´ultimo una esfera m´as nos dar´a la ubicaci´on del

punto buscado.

(25)

desconoci-Figura 2.2: Localizaci´on de un punto en un espacio bidimensional

(26)

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

r=p(xu−x)2+ (yu−y)2+ (zu−z)2 (2.1) Un sistema tridimensional necesita de cuatro sat´elites y sus correspondientes distancias

al receptor, ya que la Ecuaci´on 2.1 toma en cuenta el punto desconocido (receptor), el punto

conocido (sat´elite) y la distancia entre estos dos, al usar cuatro sat´elites habr´ıa una ecuaci´on

para cada sat´elite.

r1 =

p

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

.. .

ri =

p

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

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

Se conoce la ubicaci´on de los puntos (xi, yi, zi) del sistema de Ecuaciones 2.2, es decir, la posici´on de cada sat´elite, que es enviada en la informaci´on transmitida por cada uno de

los sat´elites. Para resolver el sistema de Ecuaciones 2.2, es necesario conocer las distancias

correspondientes entre cada sat´elite y el receptor, para esto se desarrolla una particular

metodolog´ıa.

2.1.1.2. Determinaci´on de la distancia.

El m´etodo usado para medir las distancias necesarias y obtener la ubicaci´on del receptor

se basa en la propagaci´on de ondas de radiofrecuencia. Uno de los principios b´asicos 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 medici´on del tiempo transcurrido desde la

emisi´on de la se˜nal hasta su recepci´on, es necesario que los relojes tanto del transmisor como

del receptor est´en sincronizados. Desde un punto de vista pr´actico esto es extremadamente

(27)

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

radio se comportan de un modo diferente. La atm´osfera terrestre presenta un medio particular

en el cual las ondas de radio act´uan de manera menos predecible que en el espacio vac´ıo. En

la atm´osfera ´estas pueden viajar sin alteraci´on, ser reflejadas o incluso tener p´erdidas de

energ´ıa.

En algunos m´etodos de radio-localizaci´on las reflexiones que proporciona la ion´osfera de la

tierra (para cierto rango de frecuencias), fueron utilizadas como ventaja, aunque la ion´osfera

no es constante y provoca inexactitud en la medici´on del tiempo de propagaci´on. La atm´osfera

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 sat´elite.

Error o variaci´on de los par´ametros orbitales

Ondas reflejadas (en edificios, cuerpos acuosos, monta˜nas, etc.)

Error en el oscilador del receptor

Errores de recepci´on en la se˜nal (ruido).

Algunos de estos errores pueden ser corregidos con la informaci´on enviada por el sat´elite

mejorando la precisi´on en la ubicaci´on 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 matem´atico,

dejando a la Ecuaci´on 2.1 como:

ri =

p

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

En la Ecuaci´on 2.3 la nomenclatura (xi, yi, zi) hace referencia a la posici´on de alguno de los sat´elites,ri es la distancia aparente (psudorange) entre receptor y sat´elite, ybu es el error de sincronizaci´on de reloj del receptor, expresado en unidades de distancia. Esta ecuaci´on

es fundamental en el sistema GPS, permite medir la distancia aparente entre el sat´elite y el

receptor, dada la ubicaci´on del sat´elite, y con esto encontrar la ubicaci´on del receptor.

Te´oricamente 4 sat´elites son suficientes para determinar la posici´on del receptor (ver

(28)

Figura 2.4: Cuatro sat´elites son al menos necesarios para ubicar al usuario mediante la obtenci´on de la distancia

sat´elite-usuario basado en tiempos de transmisi´on y recepci´on.

siguiente secci´on 2.1.2 se describe como ´esto es posible debido a la organizaci´on de las ´orbitas

satelitales, con lo cual se pueden agregar m´as datos al c´alculo de la posici´on del receptor.

Aunque el sistema de ecuaciones aumenta con cada sat´elite agregado, los receptores suelen

estar capacitados para manejar esta informaci´on y as´ı ser m´as precisos en la localizaci´on del

receptor.

2.1.2.

Segmento de Control del Sistema GPS

La ubicaci´on de los sat´elites es conocida debido a que estos est´an organizados en ´orbitas

definidas. Una parte importante de la organizaci´on de los sat´elites es el control y seguimiento

de las ´orbitas, este control y seguimiento es esencial para evitar errores en la precisi´on 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

(29)

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

proce-samiento de las se˜nales correspondientes. El segmento de control consiste de cinco estaciones

en tierra, cuyo prop´osito fundamental es monitorear el desempe˜no, ubicaci´on y

funcionamien-to de los sat´elites GPS.

Incluyendo la estaci´on principal, las estaciones del segmento de control, est´an dispersas a

lo largo de la l´ınea ecuatorial (o lo m´as cercano posible), alrededor de la tierra. La Figura 2.5

muestra la ubicaci´on de estas estaciones. La estaci´on principal de control se ubica en la base

“Falcon” de la fuerza a´erea estadounidense en Colorado Springs.

Figura 2.5:Segmento de Control. Estaciones terrestres: 1. Estaci´on Principal Base de la fuerza a´erea Falcon, Colorado

Springs; 2. Estaci´on de Monitoreo Hawaii; 3. Estaci´on de Monitoreo Cabo Ca˜naveral; 4. Estaci´on de Monitoreo Isla

Asunci´on; 5. Estaci´on de Monitoreo Diego Garc´ıa; 6. Estaci´on de Monitoreo Kwajalein

Toda la informaci´on recolectada por las estaciones de control acerca de los sat´elites es

enviada a la estaci´on principal. Los principales objetivos de esta estaci´on son:

1. Monitorear el desempe˜no del sistema GPS.

2. Generar y transmitir a los sat´elites informaci´on de correcci´on en la ubicaci´on de ´estos

(30)

3. Detectar y corregir un error en los sat´elites, as´ı minimizar las afectaciones al sistema

de posicionamiento.

El segmento espacial define la composici´on del sistema de sat´elites que est´a compuesto

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

Estas ´orbitas est´an separadas por un ´angulo de 60° para cubrir 360°. El radio de la ´orbita

satelital es de 26560km y los sat´elites realizan un viaje alrededor de la tierra dos veces por d´ıa. El cuerpo del sat´elite es un cubo de aproximadamente 1.8m por lado; el panel solar en ´el tiene una longitud de 9 m.

Para minimizar los efectos de un posible error en uno de los sat´elite, ´estos est´an ubicados

como se ve en la Figura 2.6. En cualquier momento y ubicaci´on, un receptor tiene la

posibi-lidad de recibir la se˜nal de m´as de 4 sat´elites, generalmente puede recibir la se˜nal de hasta

11 sat´elites, esto es gracias a la organizaci´on que se tiene.

Figura 2.6: Organizaci´on de ´orbitas satelitales y la separaci´on ente cada sat´elite en una ´orbita

Los sat´elites transmiten una se˜nal de radiofrecuencia y en esta va contenida la informaci´on

que se necesita para calcular la posici´on del usuario, adem´as de otros datos que ayudan a

corregir errores en la misma operaci´on. Esta se˜nal es de una frecuencia espec´ıfica a la cual el

(31)

2.1.3.

odigos y Frecuencias

Existen b´asicamente dos tipos de c´odigos, que son enviados por los sat´elites, llamados:

C´odigo de Adquisici´on Aleatoria (C/A) y C´odigo de Precisi´on (P). Estos c´odigos son

trans-mitidos simult´aneamente, no obstante el c´odigo P contiene informaci´on que no es codificable

para receptores de usuarios civiles, es decir, es el c´odigo que se usa en sistemas militares.

B´asi-camente el c´odigo P se usa para mejorar la precisi´on en el c´alculo realizado con la informaci´on

del c´odigo C/A.

En el sistema GPS estos c´odigos son transmitidos en dos frecuencias portadoras: 1575.42

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

de 1227.6 MHz, L2. La frecuencia portadora L1 contiene la informaci´on de ambos c´odigos

C/A y P, por otro lado en la portadoraL2 solamente se env´ıa el c´odigo P. Cualquier receptor

GPS debe estar capacitado para recibir como m´ınimo la frecuenciaL1.

2.1.4.

Protocolo de Comunicaci´

on NMEA

La asociaci´on nacional de dispositivos electr´onicos marinos (NMEA por sus siglas en

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

otros grupos interesados en dispositivos electr´onicos especializados en el ´ambito mar´ıtimo,

todo esto sin fines de lucro. Entre los logros m´as importantes de esta asociaci´on se encuentra

el desarrollo de un est´andar para dispositivos mar´ıtimos, que especifica tanto la interfaz

el´ectrica de los dispositivos como el protocolo de comunicaci´on entre los mismos, este est´andar

es nombradoNMEA-0183 cuya primera versi´on se presenta en Marzo de 1983.

La interfaz el´ectrica que establece el est´andar NMEA-0183 es una interfaz as´ıncrona serial que trabaja con los par´ametros que se ven en la Tabla 2.1. Este est´andar 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 par´ametros

el´ectricos del est´andar de conexi´onEIA RS-422, no obstante, en la pr´actica es posible utilizar una comunicaci´on a trav´es de un puertoEIA-RS232.

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

(32)

Tabla 2.1: Par´ametros de Transmisi´on del Est´andar NMEA-0183 Tasa de Baudios 4800

Bits de datos 8

Bits de Paro 1

Bits de Paridad ninguno

cada frase comienza con el s´ımbolo “$” y terminan con “<CR><LF>”. Existen tres tipos

de frases: frases de propietario, frases de petici´on y frases de transmisor.

Este est´andar permite a los productores de dispositivos definir sus Frases de Propie-tario, la frase comienza con “$P” y despu´es de esto vienen tres letras que representan el

identificador del productor, seguidas por los campos de informaci´on que el fabricante defina.

Las Frases de Petici´on son para los receptores que tienen la capacidad de transmitir una petici´on de informaci´on. Los primeros dos caracteres son el identificador de transmisor

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

el quinto car´acter es siempre una “Q” definiendo el mensaje como una petici´on (Query). El

siguiente campo es el identificador de la frase o informaci´on que se requiere, un ejemplo de

esto ser´ıa:

$CCGPQ,GGA<CR><LF>

El est´andar NMEA-0183 se define para m´ultiples dispositivos electr´onicos de los que las

Frases de Transmisor pueden provenir y contener informaci´on correspondiente a cada uno. Los primeros dos caracteres despu´es de “$” son el identificador de transmisor, espec´ıficamente

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 s´ımbolos de retorno de l´ınea/siguiente l´ınea.

Una frase pude contener hasta 80 caracteres sin contar los caracteres: “$”,<CR>y<LF>.

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

informaci´on se omite pero las comas que lo delimitan son enviadas en la informaci´on sin

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

(33)

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<CR><LF>

Donde:

$GPGGA Identificador de Frase

161229.487 Posici´on UTC (hhmmss.ss)

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

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

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

07 Sat´elites en vista

1.0 Precisi´on Horizontal

9.0, M Altitud, Metros

0.0, M Separaci´on Geoidal, Metros

Campo Vac´ıo

Campo Vac´ıo

*18 C´odigo de Verificaci´on

<CR><LF> Fin de cadena

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

Frase Informaci´on M´ınima Recomendada de Navegaci´on o RMC.

$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10<CR><LF>

(34)

$GPRMC Identificador de Frase

161229.487 Posici´on UTC (hhmmss.ss)

A A=Datos Validos V=Datos Inv´alidos

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 d´ıa/mes/a˜no

Variaci´on Magn´etica(East-West)

*18 C´odigo de Verificaci´on de errores

<CR><LF> Fin del Frase

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

Frase Latitud y Longitud Geogr´aficas o GLL.

$GPGLL,4916.45,N,12311.12,W,225444,A,*1D,<CR><LF>

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 Inv´alidos

*2D C´odigo para Verificaci´on de errores

<CR><LF> Fin de frase

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

Frase Precisi´on de la Posici´on y Sat´elites Activos o GSA

$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39,<CR><LF>

(35)

$GPGSA Identificador de Frase GSA

A (A)=Auto selecci´on de posici´on 2D o 3D (M = manual)

3 Posici´on 3D (1= no pos., 2 = Pos. 2D, 3 = Pos. 3D)

04 Sat´elites usados para obtener posici´on

2.5 Precisi´on de la posici´on

1.3 Precisi´on Horizontal de la pos.

2.1 Precisi´on Vertical de la pox.

*39 C´odigo para Verificaci´on de errores

<CR><LF> Fin de frase

Frase Sat´elites en Vista o GVS

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

Donde:

$GPGSV Identificador de frase de sat´elites en vista

2 N´umero de frases de la informaci´on completa

1 Frases 1 de 2

08 N´umero de sat´elites en vista

01 N´umero de identificaci´on PRN de sat´elite

40 Elevaci´on, grados

083 Acimut, grados

46,02,17,...,45 Relaci´on Se˜nal/Ruido

*75 C´odigo para Verificaci´on de errores

<CR><LF> Fin de frase

Frase Velocidad Verdadera o VTG

$GPVTG,054.7,T,034.4,M,005.5,N,010.2,K*48<CR><LF>

(36)

$GPVTG Identificador de Frase de velocidad verdadera

054.7,T Direcci´on Real (grados)

034.4,M Direcci´on Magn´etica

005.5,N Velocidad en Nudos

010.2,K Velocidad en Km/h

*48 C´odigo para Verificaci´on de errores

<CR><LF> Fin de frase

2.1.5.

odulo Receptor GPS RGM-3000.

Un receptor GPS es un dispositivo electr´onico capaz de recibir la se˜nales de los sat´elites

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

m´odulo receptor GPS:“RGM-3000”, dispositivo basado en la arquitectura SiRF Star II

y dise˜nado con el algoritmo de navegaci´on deRoyaltek.

Entre sus caracter´ısticas ofrece: 12 canales paralelos para la transmisi´on de datos, es

com-patible con el protocolo NMEA-0183, tiene una excelente recepci´on en ambientes urbanos o con grandes obst´aculos como monta˜nas o ca˜nones, cuenta con una doble protecci´on contra

reflexiones en la se˜nal GPS, adem´as incluye una memoria interna en la que puede almacenar

hasta 1 Mega-bits (Mb) de informaci´on . El modulo receptorRGM-3000 se ve f´ısicamente en la Figura 2.7.

(37)

La Tabla 2.2, resume las caracter´ısticas f´ısicas, el´ectricas y de operaci´on del m´odulo

RGM-3000 [4].

Tabla 2.2: Caracter´ısticas del M´odulo RGM-3000

Caracter´ısticas de Operaci´on

Canales 12

Banda L1, 1575.42 MHz

Adquisici´on C´odigo C/A

Tasa de Actualizaci´on de Navegaci´on 1/s

Caracter´ısticas de Precisi´on

Localizaci´on 1 a 5 m

Velocidad 0.1 m/s

Altitud M´axima 18000 m

Velocidad M´axima 515 m/s

Aceleraci´on M´axima 4 g

Caracter´ısticas El´ectricas

Alimentaci´on 3.3±10œV

Consumo de Corriente 180 mA

Como puede notarse en la Tabla 2.2, este m´odulo receptor realiza la adquisici´on del c´odigo

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

por segundo suficientemente ´util para mantener una navegaci´on ´optima por cualquier medio.

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

preci-si´on de 1 a 5m en lo que respecta a la ubicaci´on real del receptor. Al realizar la localizaci´on en movimiento con este m´odulo se tiene un margen de error de 0.1m/s en su c´alculo de la velocidad de desplazamiento. Aunque en general se tiene un buen desempe˜no en cuanto a la

precisi´on de ubicaci´on, existen l´ımites para este m´odulo GPS, los par´ametros de rendimiento

m´aximo en altitud y velocidad pueden observarse en la Tabla 2.2. Por ´ultimo se observa, en

la Tabla 2.2, los requerimientos de energ´ıa necesarios.

La interfaz f´ısica del m´odulo se realiza a trav´es de un conector de 20 pines, en la Tabla

(38)

Tabla 2.3: Pines del M´odulo 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 l´ıneas de alimentaci´on positiva por donde se suministran los 3.3V, mientras que por los pines 20-22 se conecta la l´ınea negativa. Los pines 3 y 4 son TXA y

RXB, estas l´ıneas son de comunicaci´on de datos serial y es por donde el modulo transmite la

informaci´on de navegaci´on y recibe comandos respectivamente.

Por la l´ınea TXA se trasmite las cadenas de datos en un est´andar RS232 con una raz´on

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 env´ıan 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

(39)

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 est´an compuestos por bloques programables relacionados a

trav´es de conexiones tambi´en programables. A diferencia de otros dispositivos los FPGA

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

dise˜nos o aplicaciones requeridas.

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

co-mercializados en el a˜no de 1984. Existen dos tipos de FPGA, los que basan sus conexiones

programables en Antifusibles y los que est´an basados en celdas de memoria SRAM. La tecnolog´ıa 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 el´ectricamente mientras que

los FPGA de antifusibles son programables el´ectricamente pero no borrables, es decir, son

programables solamente una vez.

Esta tecnolog´ıa de circuito integrado utiliza un Lenguaje de Descripci´on de Hardware

(HDL) para definir la configuraci´on que los componentes internos tendr´an y as´ı ejecutar las

tareas que se necesitan de acuerdo a cada aplicaci´on. Existen varios tipos de HDLs, todos

creados con el objetivo de simplificar el dise˜no de circuitos l´ogicos, sin estar atados a una

tecnolog´ıa de circuitos integrados en particular.

2.2.1.

Estructura de un FPGA

La arquitectura de un FPGA es espec´ıfica dependiendo de cada dispositivo en particular,

no obstante, se puede denominar una estructura b´asica compuesta por cuatro bloques o

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

Bloque L´ogico Configurable (CLB).

(40)

Administrador de Reloj Digital (DCM).

Los 4 tipos de bloques est´an distribuidos a lo largo de la estructura interna de un FPGA,

en la Figura 2.8 se puede visualizar su ubicaci´on usual.

Figura 2.8: Estructura de un FPGA, Bloques Internos.

2.2.1.1. CLB

Los CLBs son la unidad l´ogica b´asica en un FPGA con los cuales se implementan la

l´ogica combinatoria necesaria en diferentes aplicaciones. Cada CLB est´a compuesto por varios

subbloques diferentes. Un CLB se divide en cuatro partes llamadas Slices, usualmente se agrupan en pares, el par izquierdo realiza operaciones l´ogicas y de almacenamiento, mientras

que el par de la derecha solamente puede realizar funciones l´ogicas.

Los slices, a su vez est´an compuestos por componentes l´ogicos m´as b´asicos, dentro de

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

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

(41)

de l´ogica aritm´etica que complementan y simplifican la implementaci´on de pr´acticamente

cualquier funci´on l´ogica. La Figura 2.9(a) muestra como un CLB est´a dividido en un FPGA

y la Figura 2.9(b) muestra la composici´on 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 l´ogicas. Los bloques LUT pueden ser usados como microbloques

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

l´ogica booleana de cuatro variables puede ser implementada por una LUT, una funci´on de

m´as 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 implementaci´on

de funciones l´ogicas de mayor complejidad.

La l´ogica aritm´etica y de acarreo colaboran con la r´apida y eficiente implementaci´on de

funciones matem´aticas.

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

(42)

2.2.1.2. IOB

Todas la se˜nales 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 dise˜no en muchas

aplicaciones. M´as de 20 est´andares de se˜nales de entrada y salida son soportados por un

bloque IOB, con diferentes especificaciones en corriente, voltaje y t´ecnicas de terminaci´on

de l´ınea. 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 v´ıa programable, unidireccional o bidireccional entre el pin

del empaque del FPGA y la l´ogica interna en este. Algunas de las caracter´ısticas que este

bloque ofrece son:

Control programable del tiempo de respuesta de la se˜nal de salida.

Control programable de la corriente de la se˜nal de salida.

Salidas y entradas por Registro (Flip-Flop).

Registros especializados para doble velocidad de datos (DDR).

Retraso programable en las se˜nales de entrada.

Diferente terminaciones de salida.

Inversi´on de la se˜nal de salida o entrada.

Existen tres principales v´ıas que una se˜nal puede seguir en un IOB: entrada, salida o el

tercer estado.

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

bloques para la adecuaci´on del voltaje, comparaci´on con un voltaje de referencia o con su

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

consecutivamente a alguno de los registros opcionales en al v´ıa de entrada. Despu´es de estas

(43)

Figura 2.10: Bloque de Entrada/Salida simplificado.

La v´ıa de salida comienza en las conexiones disponibles de un bloque IOB con la l´ogica

interna del FPGA. Esta ruta lleva la se˜nal a un multiplexor y despu´es a un elemento de tercer

estado. El multiplexor provee la opci´on de redirigir varias se˜nales a una misma salida (Figura

2.10(b)).

La ruta del tercer estado determina cuando la terminaci´on del bloque IOB ser´a de alta

impedancia. La l´ogica interna del FPGA puede accionar o determinar cuando la terminaci´on

(44)

La Figura 2.10 muestra un diagrama simplificado de un bloque IOB, en el cual se pueden

observar las rutas que una se˜nal puede seguir. Adem´as de esto se observan otras cualidades

antes mencionadas de un bloque IOB, es decir, los diferentes tipos de terminaci´on de l´ınea

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

La Tabla 2.4 presenta la descripci´on de las entradas y salidas hacia un bloque IOB que

se observa en la Figura 2.10.

Tabla 2.4: Descripci´on de entradas y salidas del bloque IOB.

Pin Descripci´on

T Salida de habilitaci´on del Tercer Estado.

T1 Entrada Flip-Flop (FF) 1 para habilitaci´on del Tercer Estado

T2 Entrada FF2 para habilitaci´on del Tercer Estado

TCE Habilitador de Chip para FF1 y FF2

S1 Entrada FF1 para sicronizaci´on de salida

SCLK1 Reloj para sincronizaci´on de salida por FF1

S2 Entrada FF2 para sicronizaci´on de salida

SCLK2 Reloj para sincronizaci´on de salida por FF1

SCE Habilitador de Chip para FF1 y FF2 de salida

E Entrada despu´es de retraso programable

EQ1 Entrada a trav´es de FF1

ECKL1 Reloj para sincronizaci´on de entrada por FF1

EQ2 Entrada a trav´es de FF2

ECKL2 Reloj para sincronizaci´on de entrada por FF2

ECE Habilitador de Chip para FF1 y FF2 de entrada

SR Entrada Set/Reset para todos los FF REV1 Entrada Inversa para todos los FF

E/S Pin de Entrada/Salida del FPGA

VREF Voltaje de referencia para comparaci´on del pin E/S

(45)

2.2.1.3. Block RAM

Los bloques de memoria interna RAM est´an disponibles en pr´acticamente todos los FPGA,

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

requieran.

Dependiendo del dispositivo, los bloques RAM est´an posicionados en la periferia del mismo

o en columnas organizadas en alg´un 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 tama˜no, 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 se˜nales 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 Asimetr´ıas en la se˜nal de reloj, ya sea en se˜nales internas o externas al dispositivo, para mejorar el desempe˜no del sistema y eliminar retrasos en la propagaci´on

de la se˜nal.

Desplazamiento de Fase de una se˜nal 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 dividi´endola y/o

multi-plic´andola por un factor.

Acondicionamiento de la se˜nal de reloj para asegurarse de tener una se˜nal de salida con un ciclo ´util determinado.

(46)

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 asimetr´ıas en la se˜nal de reloj, que provee efectivamente de una se˜nal sin retraso. El circuito rectificador

compensa el retraso y asimetr´ıas en la se˜nal de reloj a trav´es de un monitoreo de las se˜nales

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

se˜nal de reloj externa para utilizarse en la l´ogica interna del dispositivo.

Sintetizador Digital de Frecuencias(DFS). Brinda una amplia variedad de frecuencias producidas a partir de dos n´umeros enteros que son definidos por el usuario, un factorDivisor

y otroMultiplicador. La frecuencia de salida es sintetizada a partir de la frecuencia de entrada (CLKIN Figura 2.11) y los factores adecuados de multiplicaci´on o divisi´on. La unidad DFS

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

(47)

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 fracci´on fija la fase de la frecuencia; los valores que se usar´an

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

momento de ser programado.

L´ogica de Estado (ST). Indica el estado actual del DCM, a trav´es de se˜nales de salida del mismo. Estas salidas proveen informaci´on sobre el funcionamiento de un DCM.

La Tabla 2.5 describe las entradas y salidas del DCM observado en la Figura 2.11.

Tabla 2.5: Descripci´on de entradas y salidas del DCM.

Pin Descripci´on

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

PSEN Habilitaci´on del desplazamiento variable de fase

PSCLK Entrada de reloj para aplicar desplazamiento variable de fase

CLKIN Entrada de reloj al DCM

CLKFB Entrada de reloj de retroalimentaci´on

RST Reinicio as´ıncrono 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 est´an acoplados a la frecuencia CLKIN

(48)

2.2.2.

Configuraci´

on de un FPGA.

Un HDL es un lenguaje usado para modelar la operaci´on funcional de una pieza de

hardware en forma textual. Aunque la mayor parte de las referencias bibliogr´aficas se refieren

a un HDL como un lenguaje de programaci´on, esto no es completamente cierto. Un enfoque

m´as adecuado de como definir a un HDL ser´ıa diciendo que es un lenguaje utilizado para

describir hardware digital.

Los HDLs se desarrollaron para solucionar la problem´atica que se presentaba al dise˜nar

circuitos l´ogicos complejos y la consecuente prueba de dichos circuitos. Por tanto un HDL

facilita en gran medida el modelado y la simulaci´on de circuitos integrados digitales, los cuales

son implementados en dispositivos l´ogicos programables tal como un FPGA.

Con el tiempo se han generado muchos HDLs, algunos m´as complejos que otros. Desde

hace a˜nos existen dos principales lenguajes de descripci´on de hardware que han tenido

au-ge, estos son: VHDL y Verilog.Estos lenguajes tienen muchas similitudes pero cada uno deriv´o de una l´ınea diferente en su camino de desarrollo.

VHDL es una acr´onimo de VHSIC Hardware Description Lenguage y a su vez VHSIC

es un acr´onimo 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 El´ectricos y Electr´onicos (IEEE) estandarizo el

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

el lenguaje ten´ıa el prop´osito de modelar las estructuras de hardware sin tener en cuenta la

realizaci´on de pruebas en ´este, posteriormente se adapt´o para tener la posibilidad de realizar

la s´ıntesis y simulaci´on 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 est´andar libre en 1990. Este lenguaje se convirti´o en un est´andar

IEEE en 1995 y fue actualizado en 2001.

Ambos lenguajes realizan la descripci´on de hardware partiendo de bloques llamado

m´odu-los. Un m´odulo es una detallada descripci´on de un dispositivo f´ısico. En los lenguajes de

(49)

estructural y la segunda por comportamiento. Un m´odulo estructural describe como un dis-positivo est´a compuesto por estructuras m´as b´asicas, mientras que un m´odulo por comporta-miento describe el funcionamiento.

Los dos principales prop´ositos de un lenguaje de descripci´on de hardware son la simula-ci´on y el proceso de s´ıntesis. Durante la simulaci´on, se verifica el correcto funcionamiento del m´odulo descrito en un HDL. En el proceso de s´ıntesis la descripci´on de hardware

es-crita se transforma en una asignaci´on de compuertas l´ogicas que realizaran f´ısicamente el

funcionamiento codificado.

Para conocer m´as de los dos principales lenguajes de descripci´on de hardware, a

conti-nuaci´on se presenta un ejemplo de m´odulo por comportamiento en lenguaje VHDL y Verilog

[5, 6].

Verilog

m´odulo 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 <=((not a)and(not b)and(not c));

end;

Un m´odulo en Verilog comienza con la lista de entradas y salidas. La palabra reservada

assing describe la l´ogica combinatoria entre las entradas a, b, c. El s´ımbolo “∼” es un NO

l´ogico y “&” es el s´ımbolo para una AND l´ogica. La palabra logic indica el tipo de dato de las entradas o salidas, en este caso son de tipo l´ogico (0 o 1).

(50)

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

STD LOGIC est´a definido en la librer´ıa 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 predise˜nadas; 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 n´umero de celdas l´ogicas que contienen.

Los fabricantes por lo general dise˜nan dispositivos con prop´ositos preestablecidos con lo que

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

co-laborar´an el objetivo fijado, es decir, las empresas ofrecen tarjetas de desarrollo hechas para

aplicaciones espec´ıficas como: comunicaciones, procesamiento digital de se˜nales, computaci´on,

transmisi´on de se˜nales, uso acad´emico, 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 perif´ericos integrados que tenga cada

modelo de tarjeta de desarrollo, son tambi´en importantes para la selecci´on de ´esta. Un factor

m´as para le elecci´on es la familiaridad que el usuario tenga con alg´un tipo de FPGA ya sea

de un determinado fabricante o dispositivo. Por ´ultimo se debe tener en cuenta tambi´en 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 Figura 2.12. Esta se eligi´o por su uso com´un en proyectos de desarrollo e

investigaci´on acad´emica, por su amplia comercializaci´on y su capacidades de funcionamiento

y conexi´on; que aunque son b´asicas cumplen con los requerimientos para el desarrollos de

este sistema.

Una de las caracter´ısticas principales y m´as ´utiles de esta tarjeta es su capacidad de

programar los dispositivos en ella (FPGA, CPLD, PROM, etc.) a trav´es de una conexi´on

(51)

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 caracter´ısticas de dispositivos que componen esta placa:

FPGA Xilinx XC3S500E.

232 Pines de Entrada y Salida.

10432 Celdas L´ogicas.

Memoria PROM de Xilinx de 4 Mbit, para configuraci´on o programaci´on del FPGA.

CPLD Xilinx XC2C64CA con 64 macroceldas.

(52)

Memoria FLASH serial SPI de 16Mbits.

LCD de 2 l´ıneas por 16 caracteres.

Conector PS/2.

Conector VGA.

Dos conectores RS-232 de 9 pines

Oscilador de reloj de 50 MHz.

Conector para expansi´on Hirose FX2.

Tres conectores de expansi´on Digilent de 6 pines.

Convertidor Digital-Anal´ogico de cuatro salidas basado en protocolo SPI.

Convertidor Anal´ogico-Digital con dos entradas y ganancia programable.

Selector rotatorio con interruptor de bot´on de presi´on central.

Ocho LEDs.

Cuatro interruptores de deslizamiento.

Cuatro interruptores de bot´on.

Conector SMA.

Por s´ı mismo el dispositivo FPGA tiene caracter´ısticas de operaci´on importantes, para

mantener la elecci´on de su uso, tales como:

Generar y trabajar con m´as de 8 posibles frecuencia de reloj desde los 200KHz hasta

los 333MHz.

M´ultiples est´andares de voltaje.

Est´andares: LVCMOS, LVTTL, HSTL, SSTL, GTL, PCI33 y PCI66.

(53)

Abundantes recursos l´ogicos.

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 est´an situados en la esquina inferior derecha de la tarjeta como se ve en la

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

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

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

generando un 0 l´ogico. Un cambio en la posici´on del interruptor tarda aproximadamente 2ms

para que el valor l´ogico 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 inin-terruptor 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 env´ıan 3.3 V al FPGA, generando un 1 l´ogico, y

un 0 l´ogico cuando este no se presiona. Usualmente es necesario un circuito antirebotes para

estos interruptores, posible de implementar mediante c´odigo 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 est´an ubicados justo arriba de los interruptores deslizables

(ver Figura 2.12). Las l´ıneas de conexi´on de estos LEDs est´an multiplexadas con algunas del

(54)

Oscilador de Reloj. Esta tarjeta soporta el uso de tres fuentes para la se˜nal de entrada de reloj, todas est´an 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 precisi´on del

oscilador es de±2500 Hz.

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

por medio del conector SMA. Opcionalmente el FPGA puede generar se˜nales de reloj u otro

tipo de se˜nales 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 Figura 2.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 mayor´ıa 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 l´ogicos a un nivel de voltaje apropiado

RS-232. De igual forma el dispositivo Maxim convierte las se˜nales RS-232 seriales de entrada

a 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.

Figure

Figura 2.2: Localizaci´on de un punto en un espacio bidimensional
Figura 2.5: Segmento de Control. Estaciones terrestres: 1. Estaci´ on Principal Base de la fuerza a´ erea Falcon, Colorado Springs; 2
Figura 2.6: Organizaci´on de ´ orbitas satelitales y la separaci´ on ente cada sat´elite en una ´ orbita
Tabla 2.2: Caracter´ısticas del M´odulo RGM-3000 Caracter´ısticas de Operaci´ on
+7

Referencias

Documento similar

Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el

Fuente de emisión secundaria que afecta a la estación: Combustión en sector residencial y comercial Distancia a la primera vía de tráfico: 3 metros (15 m de ancho)..

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

entorno algoritmo.