Professional Documents
Culture Documents
NACIONAL
ESCUELA SUPERIOR DE INGENIERIA
MECANICA
Y ELECTRICA
Desarrollo e Implementaci
on de un Sistema de
Localizaci
on Geogr
afica en FPGA
TESIS
ELECTRONICA
Presenta:
C
esar Luis P
erez Bautista
Asesor:
Ra
ul Ruiz Meza
Abril 2015
Indice General
Indice General
III
Lista de Figuras
VII
Lista de Tablas
XI
Objetivos
XIII
Introducci
on
2. Teora Relacionada.
2.1.1. Conceptos B
asicos de un Sistema de Posicionamiento. . . . . . . . . .
10
14
2.1.3. C
odigos y Frecuencias . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
17
2.1.5. M
odulo Receptor GPS RGM-3000. . . . . . . . . . . . . . . . . . . . .
22
25
25
2.2.2. Configuraci
on de un FPGA. . . . . . . . . . . . . . . . . . . . . . . . .
34
36
43
43
iii
INDICE GENERAL
45
2.4. SD Card. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
49
51
2.4.3. Descripci
on del Funcionamiento. . . . . . . . . . . . . . . . . . . . . .
63
68
71
71
75
75
79
83
84
84
90
92
95
95
96
99
IPN
iv
ESIME
INDICE GENERAL
3.5.2. Obtenci
on, Decodificacion 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
Bibliografa
157
ESIME
ICE
Lista de Figuras
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 ubicacion del punto x. . . . .
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.
2.5.
. . . . . . . . . . . . . . . .
14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.6. Organizaci
on de
orbitas satelitales y la separacion ente cada satelite en una
orbita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
22
26
2.9. (a) CLBs y Slice dentro de un FPGA; (b) Componentes dentro de un Slice. .
27
. . . . . . . . . . . . . . . . . . . . .
29
32
37
41
2.14. Ubicaci
on de la memoria DDR SDRAM en la tarjeta Spartan 3E. . . . . . . .
42
2.15. Unidad B
asica Pixel y Sustratos en Conjunto. . . . . . . . . . . . . . . . . . .
43
vii
LISTA DE FIGURAS
44
45
2.18. Se
nales de Sincronizaci
on para el dispositivo LQ043T3DX02. . . . . . . . . .
48
50
2.20. Relaci
on de conexiones para la interfaz fsica SD Bus y SPI Bus. . . . . . . .
51
2.21. Operaci
on COMANDO-RESPUESTA. . . . . . . . . . . . . . . . . . . . . . .
52
53
54
55
55
57
58
58
66
. . . . . . . . . . . . . . . . . .
69
70
72
81
3.1. Configuraci
on del MC34063A para un conversor de voltaje de subida. . . . .
86
91
93
94
3.5. Gr
afico de Carga Contra Corriente. . . . . . . . . . . . . . . . . . . . . . . . .
96
97
IPN
viii
ESIME
LISTA DE FIGURAS
. . . . . . . . . . . . . . . . . . . . . . 131
ESIME
ix
ICE
Lista de Tablas
2.1. Par
ametros de Transmisi
on del Estandar NMEA-0183 . . . . . . . . . . . . .
18
23
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
59
60
61
62
. . . . . . . . . . . . .
85
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
xi
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 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 Lenguaje 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 informacion de coordenadas geograficas y mapas digitales.
5. Implementar el prototipo de SILOG.
6. Realizar pruebas experimentales, obtener datos relevantes para una retroalimentaci
on
y proyectar correcciones al prototipo.
xiii
Introducci
on
Desde su aprobaci
on 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 u
til 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 localizaci
on,
rastreo y/o navegaci
on. Teniendo como parte fundamental, entre otras, el sistema de posicionamiento global (GPS), en este trabajo se describe el desarrollo de un Dispositivo de
Localizaci
on Geogr
afica; cuya funci
on 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 complejo que tendr
a el objetivo de automatizar o facilitar las mediciones de campo electrico
requeridas en puntos geogr
aficos especficos [2].
Generalmente un dispositivo como este sera desarrollado usando un microprocesador o
microcontrolador, raz
on por la cual existen microprocesadores especializados para dispositivos
de localizaci
on o navegaci
on a traves de GPS. Sin embargo este trabajo plantea la alternativa
del uso de un circuito integrado FPGA para implementar el sistema planteado.
Objetivos
IPN
ESIME
Captulo 1.
La existencia del sistema de posicionamiento global (por sus siglas en ingles GPS) proporciona una gran ventaja para el desarrollo de nuevas aplicaciones en electronica o el mejoramiento de algunas otras.
Hay aplicaciones o sistemas electronicos en los que, ademas de su funcionamiento intrnseco, una mejora substancial sera agregar las caractersticas de un sistema de navegacion. Este
tipo de sistemas son aquellos en los que parte de su funcionamiento tiene relacion con la
localizaci
on o ubicaci
on 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 extensa 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 agilizara el proceso completo de mediciones.
Una opci
on 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 dise
no general, u
nicamente desarrollados para
cumplir con las funciones b
asicas necesarias en la navegacion; por lo que la posibilidad de
integraci
on 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 obtenci
on de la conductividad del suelo, en este documento se plantea
IPN
ESIME
Esta se seleccion
o por su uso frecuente en proyectos de investigaci
on y desarrollo academico
ESIME
ICE
IPN
ESIME
ESIME
ICE
IPN
ESIME
Captulo 2.
Teora Relacionada.
Este captulo pretende desarrollar los conocimientos basicos acerca de los componentes
fundamentales que se requieren para formar un Sistema de localizaci
on Geogr
afica, exponiendo informaci
on sobre su evoluci
on y/o funcionamiento. En este captulo tambien se expone
informaci
on sobre formatos digitales de imagen relacionados con los mapas que se emplear
an.
Por u
ltimo el captulo contiene la descripcion de las herramientas de software que se utilizar
an
durante el proceso de este proyecto.
2.1.
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 b
asicos de su funcionamiento estan regidos por efectos fsicos predecibles y la localizaci
on de un usuario (receptor) es determinada por ecuaciones geometricas y
la compensaci
on de los errores a los cuales el sistema es susceptible. La informacion necesaria para que un receptor determine su posicion esta proporcionada por los satelites que
conforman el sistema. Los satelites envan se
nales de radiofrecuencia, con codigos que son
interpretados por el receptor para la determinacion de la localizacion propia. Existen diversidad de receptores funcionales en el mercado e incluso los dispositivos internos de recepci
on
son ahora comercializados para desarrollo de aplicaciones especficas en ingeniera.
Teora Relacionada.
2.1.1.
Conceptos B
asicos de un Sistema de Posicionamiento.
2.1.1.1.
La posici
on de un punto en el espacio puede ser determinada a partir de distancias conocidas desde este punto a alg
un otro punto referencial. En la Figura 2.1 el 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 x son 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 ubicaci
on y la distancia al punto x son conocidas para S2 , entonces la
ubicacion del punto x ser
a donde las distancias de los dos puntos S1 y S2 tengan intersecci
on.
IPN
10
ESIME
ESIME
11
ICE
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=
p
(xu x)2 + (yu y)2 + (zu z)2
(2.1)
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
n4
(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 satelite, que es enviada en la informacion transmitida por cada uno de
los satelites. Para resolver el sistema de Ecuaciones 2.2, es necesario conocer las distancias
correspondientes entre cada satelite y el receptor, para esto se desarrolla una particular
metodologa.
2.1.1.2.
Determinaci
on de la distancia.
El metodo usado para medir las distancias necesarias y obtener la ubicacion del receptor
se basa en la propagaci
on 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 3x108 m/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 se
nal 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 sincronizaci
on de 1s puede afectar el calculo de la distancia hasta en
300m.
IPN
12
ESIME
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 atmosfera terrestre presenta un medio particular
en el cual las ondas de radio act
uan 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 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 informacion enviada por el satelite
mejorando la precisi
on 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 transmitida llega al receptor. Esta fuente de error debe ser considerado en el modelo matematico,
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 posicion de alguno de
los satelites, ri es la distancia aparente (psudorange) entre receptor y satelite, y bu 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 satelite y el
receptor, dada la ubicaci
on del satelite, y con esto encontrar la ubicacion del receptor.
Teoricamente 4 satelites son suficientes para determinar la posicion del receptor (ver
Figura 2.4, sin embargo un receptor tiene en lnea de vista mas de 4 satelites a la vez, en la
ESIME
13
ICE
Teora Relacionada.
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 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.
La ubicaci
on 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
El segmento de usuario, se puede decir, es todo lo relativo a los receptores GPS y el procesamiento de las se
nales correspondientes. El segmento de control consiste de cinco estaciones
en tierra, cuyo prop
osito fundamental es monitorear el desempe
no, ubicacion y funcionamiento de los satelites GPS.
Incluyendo la estaci
on 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 Figura 2.5
muestra la ubicaci
on 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. 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 Garca; 6. Estaci
on de Monitoreo Kwajalein
Toda la informaci
on recolectada por las estaciones de control acerca de los satelites es
enviada a la estaci
on principal. Los principales objetivos de esta estacion son:
1. Monitorear el desempe
no 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
Teora Relacionada.
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 est
an separadas por un angulo de 60 para cubrir 360. El radio de la orbita
satelital es de 26560km y los satelites realizan un viaje alrededor de la tierra dos veces por
da. El cuerpo del satelite 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 satelite, estos estan ubicados
como se ve en la Figura 2.6. En cualquier momento y ubicacion, un receptor tiene la posibilidad de recibir la se
nal de m
as de 4 satelites, generalmente puede recibir la se
nal de hasta
11 satelites, esto es gracias a la organizacion que se tiene.
IPN
16
ESIME
2.1.3.
C
odigos y Frecuencias
Existen b
asicamente dos tipos de codigos, que son enviados por los satelites, llamados:
Codigo de Adquisici
on Aleatoria (C/A) y Codigo de Precision (P). Estos codigos son transmitidos simult
aneamente, 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. B
asicamente el c
odigo P se usa para mejorar la precision en el calculo realizado con la informaci
on
del codigo 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 llama L1 mientras 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 L2 solamente se enva el codigo P. Cualquier receptor
GPS debe estar capacitado para recibir como mnimo la frecuencia L1 .
2.1.4.
Protocolo de Comunicaci
on NMEA
La asociaci
on 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 est
andar 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-0183 cuya 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 par
ametros 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 est
andar de conexi
on EIA RS-422, no obstante, en la practica es posible utilizar
una comunicaci
on a traves de un puerto EIA-RS232.
ESIME
17
ICE
Teora Relacionada.
Bits de Paro
Bits de Paridad
ninguno
cada frase comienza con el smbolo $ y terminan con <CR><LF>. Existen tres tipos
de frases: frases de propietario, frases de peticion y frases de transmisor.
Este est
andar permite a los productores de dispositivos definir sus Frases de Propietario, 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 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 peticion (Query). El
siguiente campo es el identificador de la frase o informacion que se requiere, un ejemplo de
esto sera:
$CCGPQ,GGA<CR><LF>
El estandar NMEA-0183 se define para m
ultiples dispositivos electronicos de los que las
Frases de Transmisor pueden 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 mas. 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: $,<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 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
$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
12158.3416, W
07
Satelites en vista
1.0
Precisi
on Horizontal
9.0, M
Altitud, Metros
0.0, M
Separaci
on Geoidal, Metros
Campo Vaco
Campo Vaco
*18
C
odigo de Verificacion
<CR><LF>
Fin de cadena
Frase Informaci
on Mnima Recomendada de Navegaci
on o RMC.
$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10<CR><LF>
Donde:
ESIME
19
ICE
Teora Relacionada.
$GPRMC
Identificador de Frase
161229.487
Posici
on UTC (hhmmss.ss)
3723.2475, N
12158.3416, W
0.13
309.62
120598
Fecha da/mes/a
no
Variaci
on Magnetica(East-West)
*18
C
odigo de Verificacion de errores
<CR><LF>
4916.46, N
12311.12, W
0.13
225444
*2D
C
odigo para Verificacion de errores
<CR><LF>
Fin de frase
IPN
20
ESIME
$GPGSA
Posici
on 3D (1= no pos., 2 = Pos. 2D, 3 = Pos. 3D)
04
2.5
Precisi
on de la posicion
1.3
Precisi
on Horizontal de la pos.
2.1
Precisi
on Vertical de la pox.
*39
C
odigo para Verificacion 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
N
umero de frases de la informacion completa
Frases 1 de 2
08
N
umero de satelites en vista
01
N
umero de identificacion PRN de satelite
40
Elevaci
on, grados
083
Acimut, grados
46,02,17,...,45
Relaci
on Se
nal/Ruido
*75
C
odigo para Verificacion de errores
<CR><LF>
Fin de frase
ESIME
21
ICE
Teora Relacionada.
$GPVTG
054.7,T
Direcci
on Real (grados)
034.4,M
Direcci
on Magnetica
005.5,N
Velocidad en Nudos
010.2,K
Velocidad en Km/h
*48
C
odigo para Verificacion de errores
<CR><LF>
Fin de frase
2.1.5.
M
odulo Receptor GPS RGM-3000.
IPN
22
ESIME
La Tabla 2.2, resume las caractersticas fsicas, electricas y de operacion del modulo RGM3000 [4].
Tabla 2.2: Caractersticas del Modulo RGM-3000
Caractersticas de Operaci
on
Canales
12
Banda
Adquisici
on
Codigo C/A
1/s
Caractersticas de Precisi
on
Localizaci
on
1a5m
Velocidad
0.1 m/s
Altitud M
axima
18000 m
Velocidad M
axima
515 m/s
Aceleraci
on M
axima
4g
Caractersticas El
ectricas
Alimentaci
on
3.310V
Consumo de Corriente
180 mA
Como puede notarse en la Tabla 2.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 u
til para mantener una navegacion optima por cualquier medio.
En la parte media de la Tabla 2.2 se visualiza que este dispositivo proporciona una precision de 1 a 5m en lo que respecta a la ubicacion 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 calculo de la
velocidad de desplazamiento. Aunque en general se tiene un buen desempe
no en cuanto a la
precision de ubicaci
on, existen lmites para este modulo GPS, los parametros de rendimiento
maximo en altitud y velocidad pueden observarse en la Tabla 2.2. Por u
ltimo se observa, en
la Tabla 2.2, los requerimientos de energa necesarios.
La interfaz fsica del m
odulo se realiza a traves de un conector de 20 pines, en la Tabla
2.3 se muestra la relaci
on de pines del modulo RGM-3000:
ESIME
23
ICE
Teora Relacionada.
Nombre
No. Pin
Nombre
No. Pin
Nombre
No. Pin
Nombre
VCC
TIMEMARK
13
GPIO3
19
GPIO15
VCC
RESET
14
GPIO5
20
GND
TXA
BOOTSEL
15
GPIO6
21
GND
RXA
10
WAKEUP
16
GPIO7
22
GND
TXB
11
VBAT
17
GPIO10
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
informaci
on de navegaci
on y recibe comandos respectivamente.
Por la lnea TXA se trasmite las cadenas de datos en un estandar 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 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
2.2.
Los Arreglos de Compuertas Programables en Campo (por sus siglas en ingles FPGA)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
dise
nos o aplicaciones requeridas.
Estos dispositivos fueron desarrollados por primera vez por la empresa Xilinx y comercializados en el a
no 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 antifusibles 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 configuraci
on 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 dise
no de circuitos logicos, sin estar atados a una
tecnologa de circuitos integrados en particular.
2.2.1.
Estructura de un FPGA
ESIME
25
ICE
Teora Relacionada.
2.2.1.1.
CLB
IPN
26
ESIME
Figura 2.9: (a) CLBs y Slice dentro de un FPGA; (b) Componentes dentro de un Slice.
ESIME
27
ICE
Teora Relacionada.
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 tecnicas de terminaci
on
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 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 vas 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, comparacion 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 va de entrada. Despues de estas
etapas la se
nal se puede usar en la logica interna del FPGA (ver Figura 2.10(a)).
IPN
28
ESIME
ESIME
29
ICE
Teora Relacionada.
T1
T2
TCE
S1
SCLK1
S2
SCLK2
SCE
E
EQ1
ECKL1
EQ2
ECKL2
ECE
SR
IPN
Descripci
on
REV1
E/S
VREF
E/S D
30
ESIME
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 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
ESIME
31
ICE
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.
la se
nal de reloj, que provee efectivamente de una se
nal sin retraso. El circuito rectificador
compensa el retraso y asimetras en la se
nal de reloj a traves 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 logica interna del dispositivo.
IPN
32
ESIME
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 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 traves de se
nales de salida
del mismo. Estas salidas proveen informacion sobre el funcionamiento de un DCM.
La Tabla 2.5 describe las entradas y salidas del DCM observado en la Figura 2.11.
Descripci
on
Incremento/Decremento (1/0) del desplazamiento variable de fase
Habilitacion del desplazamiento variable de fase
PSCLK
CLKIN
CLKFB
RST
PSDONE
CLK0
CLK90
CLK180E
CLK270E
CLK2X
CLK2X180
CLKDV
CLKFX
CLKFX180
LOCKED
STATUS
ESIME
33
ICE
Teora Relacionada.
2.2.2.
Configuraci
on de un FPGA.
IPN
34
ESIME
estructural y la segunda por comportamiento. Un modulo estructural describe como un dispositivo est
a compuesto por estructuras mas basicas, mientras que un modulo por comportamiento describe el funcionamiento.
Los dos principales prop
ositos de un lenguaje de descripcion de hardware son la simulaci
on 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 escrita se transforma en una asignacion de compuertas logicas que realizaran fsicamente el
funcionamiento codificado.
Para conocer m
as de los dos principales lenguajes de descripcion de hardware, a continuacion se presenta un ejemplo de modulo 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 smbolo es un NO
logico y & es el smbolo para una AND logica. La palabra logic indica el tipo de dato de
las entradas o salidas, en este caso son de tipo logico (0 o 1).
El codigo VHDL se compone de tres principales partes: La declaracion de libreras (libray), La declaraci
on de entidad (entity) que enlista las entradas y salidas del modulo y
la declaraci
on de arquitectura (architecture) que define el comportamiento del modulo. Las
entradas/salidas en VHDL deben ser declaradas de acuerdo a alg
un tipo de dato, en este
ESIME
35
ICE
Teora Relacionada.
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 librera IEEE.STD LOGIC 1164, es por esto que debe ser
declarada al principio.
2.2.3.
IPN
36
ESIME
ESIME
37
ICE
Teora Relacionada.
IPN
38
ESIME
Abundantes recursos l
ogicos.
Bloques internos de memoria RAM.
Registros de corrimiento.
Multiplexores.
Multiplicadores (18x18).
2.2.3.1.
Interruptores Deslizables.
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 logico.
Por otro lado cuando se encuentra en la posicion baja, el interruptor conecta al FPGA a tierra,
generando un 0 l
ogico. Un cambio en la posicion del interruptor tarda aproximadamente 2ms
para que el valor l
ogico correspondiente se estabilice.
Interruptores Push-Boton.
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 Figura 2.12). Las lneas de conexion de estos LEDs estan multiplexadas con algunas del
conector Hirose de 100 pines.
ESIME
39
ICE
Teora Relacionada.
IPN
40
ESIME
elementos que permiten realizar diversas aplicaciones y una de las herramientas que integra
esta tarjeta es la memoria DDR SDRAM MT46V32M16, fabricada por la compa
na Micron
Technology, Inc; en la Figura 2.14 se 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 se
nal 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 direcci
on seleccionada y despues contin
ua automaticamente de acuerdo a
la longitud de r
afagas predefinida. Esta longitud es programable y pueden ser de 2, 4 y 8
localidades de memoria por r
afaga.
ESIME
41
ICE
Teora Relacionada.
IPN
42
ESIME
2.3.
Pantallas TFT-LCD.
Las Pantallas de Cristal Lquido (LCD) se han convertido en el medio visual predilecto
para mostrar informaci
on de un dispositivo electronico al usuario. La mayor parte de dispositivos electr
onicos 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 imagenes monocromaticas o a color.
2.3.1.
Estructura de un TFT-LCD.
Un TFT-LCD est
a compuesto por un n
umero especfico de celdas basicas conocidas como
pixeles; para pantallas TFT-LCD de color. Para una pantalla de color un pixel esta 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 com
un 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 com
un
(Figura 2.15). El rendimiento de la pantalla TFT-LCD esta intrnsecamente relacionado con
los parametros de dise
no de la unidad de pxel, es decir, la superposicion entre: los electrodos
del TFT, las dimensiones del condensador de almacenamiento o del electrodo de pxel, y el
espacio entre estos elementos intervienen en el desempe
no del panel completo.
ESIME
43
ICE
Teora Relacionada.
Esta unidad b
asica requiere de algunos otros componentes para mantenerse ensamblada,
sustratos o superficies como: el filtro de color que contiene una pelcula de resina con uno
de los tres colores primarios (rojo, verde o azul). Dos sustratos de vidrio (arriba y abajo) se
montan con un sellante manteniendo el espacio entre ellos por medio de espaciadores; el cristal
lquido se inyecta en el espacio formado por estos sustratos. Dos hojas de pelcula polarizadora
estan montadas en las caras exteriores de los sustratos de vidrio. Asi esta formada la unidad
basica de desplegado (ver Figura 2.15) y puede montarse junto a otras para formar un panel.
El conjunto de unidad pixel y substratos se replican una y otra vez para generar un panel
donde los elementos est
an conformados en un matriz como se observa en la Figura 2.16:
Una vez que el panel TFT-LCD esta completamente montado con todas sus partes y
componentes, a
un se necesita de circuitos integrados que controlen cuales pixeles estar
an
encendidos o apagados, para as generar imagenes. De la misma forma estos circuitos deben
controlar no solo la proyecci
on de imagenes estaticas, sino tambien dinamicas, es decir, el desplegado de im
agenes secuencialmente. Ademas de este control, un panel TFT-LCD requiere
de una interfaz que permita la recepcion de la informacion que un procesador, u otro dispositivo, requiera desplegar en pantalla. Es por esto que en una pantalla TFT-LCD siempre
viene integrada una placa con los dispositivos e interfaz requerida para su control y uso.
IPN
44
ESIME
2.3.2.
Pantalla LQ043T3DX02.
Este dispositivo es un LCD a color con transistores de pelcula delgada (TFT) de silicio
amorfo, est
a compuesto por: el panel TFT-LCD de color, circuitos integrados de control, un
conector o interfaz de circuito impreso flexible y una unidad de luz de fondo.
Graficos y texto puede ser desplegados en el panel de 480X3X272 puntos, con alrededor
de 16 millones de colores proporcionados o definidos por los 24 bits o lneas de datos (8bitsxRGB). Utiliza cuatro se
nales de sincronizacion, un voltaje logico (+2.5V) y uno analogico
(+5V) para el control del panel TFT-LCD y ademas una alimentacion extra para la luz de
fondo. La pantalla puede verse en la Figura 2.17.
ESIME
45
ICE
Teora Relacionada.
Nombre
Descripcion
1:2
GND
Tierra(0V)
3:4
VCC
+2.5V de Alimentacion
5:12
R0:R7
13:20
G0:G7
21:28
B0:B7
29
GND
Tierra (0V)
30
CK
Se
nal de reloj
31
DISP
Se
nal de Encendido/Apagado de desplegado
32
Hsync
Se
nal de sincronizacion horizontal
33
Vsync
Se
nal de sincronizacion vertical
34
NC
No conectado
35:36
AVDD
37
NC
No conectado
38
Test1
Sin conexion
39
Test2
Sin conexion
40
Test3
IPN
No. Pin
Nombre
Descripcion
VLED
NC
No conectado
NC
No conectado
VLED+
46
ESIME
+2.5V). Esto
para evitar da
nos en la estructura electrica de la pantalla.
La se
nal de activaci
on para desplegado (DISP), no debe encontrarse en estado alto antes
que el voltaje anal
ogico (AVDD) alcance su valor de +5.0V.
La se
nal de sincronizaci
on vertical (VS O), debe estar en un estado alto (1), mientras
las se
nales anteriores toman su valor adecuado.
No poner varias se
nales en alta impedancia cuando el voltaje l
ogico (VCC) est
a en
estado alto.
Se puede decir que las se
nales, consideradas en la lista, cumplen el proceso de inicializar
la pantalla, por tanto las se
nales restantes que se ven en la Figura 2.18, se remiten al control
de desplegado de informaci
on . Ademas del proceso inicial para proporcionar las se
nales de
voltajes a la pantalla, debe llevarse a cabo un proceso similar para ubicar a la pantalla en un
estado inactivo o apagado, el modo en el que las se
nales deben activarse, tambien se observa
en la Figura 2.18.
Para determinar exactamente el color de cada pixel se requieren de tres se
nales de sincronizacion (ver Figura 2.18), una se
nal de reloj (CK), una se
nal de sincronizacion horizontal
(HSync) y una m
as de sincronizaci
on vertical (VSync).
La se
nal fundamental de sincronizacion es la de reloj, seg
un especificaciones debe estar
en el rango de los 7.83 MHz a los 9.26 MHz, no obstante, tpicamente se toma un valor de 9
MHz. Con la se
nal de reloj de 9 MHz, a la cual tambien se le puede llamar reloj de pixel, es
posible comenzar a desarrollar la de barrido horizontal.
La se
nal de sincronizaci
on horizontal (HSync) cumple con un ciclo cada 525 ciclos de
reloj, de los cuales 41 de estos la se
nal esta en estado bajo (0) y los restantes en estado alto
(1). Es en el estado alto cuando ocurre el desplegado, aunque es importante notar que de
los 484 ciclos en estado alto, 4 ciclos son tomados nulos por la pantalla, dos ciclos al iniciar
el estado alto y dos ciclos al finalizarlo. Dicho de otra forma, los datos RGB enviados a la
ESIME
47
ICE
Teora Relacionada.
Figura 2.18: Se
nales de Sincronizacion para el dispositivo LQ043T3DX02.
pantalla son desplegados u
nicamente por 480 ciclos de reloj durante el estado alto de la se
nal
HSync, estos 480 ciclos resultan ser la cantidad de pixeles horizontalmente u
tiles o visibles.
Como com
unmente se realiza, la se
nal de barrido vertical usa para su funcionamiento la
se
nal HSync. La se
nal de sincronizacion vertical (VSyn), termina con un ciclo cada 286 ciclos
de la se
nal HSync. De estos 286 ciclos, 10 de ellos la se
nal permanece en estado bajo y 276
en estado alto. La pantalla toma como nulos dos ciclos horizontales al inicio y fin del estado
alto de la se
nal Vsyn,para formar un marco negro en los margenes de la pantalla. Por tanto
272 ciclos representan las lneas de desplegado disponibles.
Por otra parte es de importante consideracion mencionar que el voltaje requerido para la
luz de fondo no debe superar los 29.4V[7].
IPN
48
ESIME
2.4 SD Card.
2.4.
SD Card.
2.4.1.
comunicaci
on pueden tener acceso a tarjetas de capacidad alta y extendida.
ESIME
49
ICE
Teora Relacionada.
IPN
50
ESIME
2.4 SD Card.
2.4.2.
Protocolo de Comunicaci
on SD.
La tarjeta SD ha sido desarrollada de forma tal que es posible utilizar cualquiera de dos
sistemas de comunicaci
on, el nativo SD Bus y el ampliamente conocido SPI Bus. Para cada
uno de ellos se definen las lneas de conexion en la Figura 2.20.
Una sucesi
on de comandos indica que la tarjeta funcionara en modo de bajo consumo de energa
ESIME
51
ICE
Teora Relacionada.
SPI ya integrados, puedan emplear la tarjeta SD. A pesar de esto siguen existiendo sutiles
diferencias, por ejemplo: en el sistema nativo (SD Bus) las cadenas de bits son transmitidas
de inicio a fin, junto con los bits de comprobacion de errores, bits de paro e inicio correspondientemente, mientras que en el sistema SPI las mismas cadenas de bits son transmitidas en
secciones de un byte a la vez.
Adem
as el sistema SD Bus puede configurarse para trabajar en dos posibles modos de
funcionamiento: SD Bus 1-bit donde se usa solamente un pin de datos y SD Bus 4-bits donde
se usan 4 pines para transferir informacion.
Los comandos son enviados desde el host hacia la tarjeta o tarjetas conectas al bus de
transmisi
on, estos son transmitidos sobre la lnea o pin CMD (ver Figura 2.20).De igual
modo a un comando, una respuesta es enviada de forma serial por la lnea CMD aunque
en sentido inverso (de tarjeta a host). La Figura 2.21 muestra un ejemplo grafico de una
transacci
on b
asica COMANDO-RESPUESTA.
Los bloques de datos se trasfieren de host a tarjeta o viceversa por medio de las lneas de
datos DAT[0,3]. Estos bloques est
an siempre sucedidos por bits de comprobacion de errores.
Los bloques de datos tienen una longitud configurable, de forma predeterminada la longitud
de un bloque de datos es de 512 bytes y puede llegar a ampliarse hasta 2048 bytes en tarjetas
de capacidad extendida.
El protocolo permite realizar transacciones simples, es decir, leer o escribir un solo bloque
de datos. Tambien es posible realizar operaciones continuas, para lo cual se tienen comandos
especiales que inician y paran a voluntad del usuario los procesos de lectura y escritura. En la
practica la transferencia de datos entre controlador y tarjeta se realiza mediante la transmisi
on
IPN
52
ESIME
2.4 SD Card.
2.4.2.1.
Comandos.
Un comando es una se
nal que da inicio a una operacion. Cada comando tiene una estructura similar, b
asicamente es una cadena de 48 bits, compuesta esencialmente por 3 grupos de
informaci
on y algunos bits adicionales. La cadena comienza con un bit de inicio, seguido por
un bit que indica la direcci
on en que se realiza la trasmision de dicha cadena en particular.
Los siguientes 6 bits son usados para representar el ndice o identificador de comando, este
n
umero es un decimal codificado en binario. La cadena contin
ua su composicion con 32 bits
subsecuentes que representan informacion adicional (argumento) para ciertos comandos o una
direccion de localizaci
on de datos a la que se desea acceder. Cada comando usa un Codigo
de Redundancia Cclica para corregir los errores posibles en la transmision de los mismos y
en un comando este CRC se representa con los 7 bits siguientes al argumento. Finalmente
todos los comandos son terminados con un bit de paro que pone fin a la cadena de 48 bits.
La Figura 2.23 muestra un esquema de lo aqu mencionado.
ESIME
53
ICE
Teora Relacionada.
comandos y respuestas contra errores que se puedan tener en la transmision de los mismos.
Un codigo CRC es generado para cada comando enviado y comprobado para cada respuesta
recibida.
El CRC7 es usado para todos los comandos y para todas las respuestas exceptuando
la respuesta tres (R3), se genera mediante una operacion algebraica de los bits que est
an
protegidos por este c
odigo y un polinomio extra. La operacion que da como resultado el
CRC7 es:
(M (x) x7 )
CRC7 =
G(x)
(2.4)
(2.5)
M(x) es un polinomio que conjuga los datos que seran protegidos por el codigo CRC7 y se
integran de la siguiente forma:
M (x) = 1er bit xn + 2do bit xn1 + ... + ultimo bit x0
(2.6)
en este u
ltimo polinomio el primer bit, del extremo izquierdo, es el mas significativo. El
exponente n est
a definido por el n
umero de bits protegidos por el codigo menos uno, por
ejemplo tomando la longitud de los bits que se protegeran en un comando (40) se le resta
una unidad para obtener el exponente n(39).
Las operaciones que involucran al CRC7, se realizan con elementos binarios, por lo que
estas operaciones se resumen a una operacion logica que la Figura 2.24 ejemplifica.
IPN
54
ESIME
2.4 SD Card.
2.4.2.2.
Respuestas.
Una respuesta es la cadena de bits enviada desde una tarjeta hacia el controlador como
efecto de un comando recibido correctamente por la SD Card. Una respuesta siempre comienza
con un bit de inicio, seguido por el bit de direccion de la transmision y posteriormente el
contenido de la respuesta cuya longitud en bits es variable. Despues de esto se tienen los bits
de protecci
on de errores (CRC) y la cadena de respuesta se finaliza con un bit de paro. La
Figura 2.25 muestra las posibles longitudes de una respuesta.
Existen cinco tipos de respuesta que la tarjeta SD utiliza, con distinta longitud, los tipos
de repuestas que una tarjeta SD puede enviar son:
ESIME
55
ICE
Teora Relacionada.
Respuesta uno (R1): Respuesta normal de comando. Tiene una longitud de 48 bits y
los bits 45 a 40 indican el ndice del comando al que corresponde la respuesta; esta es enviada
como confirmaci
on de un comando recibido por la tarjeta.
Respuesta dos (R2): Envo de: Registro de Identificacion de tarjeta (CID) o Registro
de Datos Especficos(CSD). Ambos son registros de informacion de control de la tarjeta. La
longitud de esta respuesta es de 136 bits. En ella se transmiten el contenido del registro CID
como respuesta a los comandos CMD2 o CMD10. El contenido de la respuesta opcionalmente
puede ser el registro CSD que es enviado como consecuencia de la recepcion del comando
CMD9. Solamente los bits 127 a 1 del registro CSD son enviados.
Respuesta tres (R3): Registro de Condiciones de Operacion (OCR). La longitud de
esta respuesta es de 48 bits; esta transmite el registro OCR como consecuencia de la petici
on
hecha por el comando de aplicaci
on especial ACMD41.
Respuesta seis (R6): Publicacion de Direccion Relativa de Tarjeta (RCA). La respuesta seis tiene una longitud de 48 bits y es una respuesta especfica para el comando CMD3.
En ella se encuentra la direcci
on relativa de la tarjeta que es la direccion que se usa para
direccionar la comunicaci
on con la tarjeta. Esta direccion es una cadena de 16 bits.
Respuesta siete (R7):
48 bits la respuesta siete proporciona la informacion del voltaje soportado por la tarjeta, es
decir, con el que la tarjeta puede trabajar. La respuesta siete es enviada como consecuencia
de la anterior transmisi
on del comando CMD8.
2.4.2.3.
Bloques de Datos.
El formato de un bloque de datos puede tomar dos diferentes formatos, uno llamado
Paquete Tpico en la cual se divide la informacion en palabras de 8 bits y otro de nombre
Paquete Amplio cuyos datos son divididos en palabras de 512 bits.
En el paquete tpico la informacion es enviada en partes de un byte a la vez, iniciando con
el byte menos significativo(LSB) del bloque. Sin embargo en la misma transmision los bits
de un byte son enviados de manera inversa, es decir, el bit mas significativo (MSb) primero
IPN
56
ESIME
2.4 SD Card.
(2.8)
ESIME
(2.9)
57
ICE
Teora Relacionada.
El 1er bit corresponde al bit mas significativo del bloque de datos a enviar. El grado n de la
ecuacion se obtiene de la misma forma al CRC7, en este caso el grado depende de la longitud
del bloque (configurable), ya que predefinidamente esta longitud es de 512 bytes el grado n
seria 4095 (4096 bits menos uno).
La Figura 2.28 muestra la operacion binaria que generara este codigo. El CRC16 se usa
en ambos modos de transmisi
on: el modo 1-bit y 4-bit, aunque en este u
ltimo se genera un
codigo independiente para cada lnea.
IPN
58
ESIME
2.4 SD Card.
2.4.2.4.
Posici
on
Reserved
Descripci
on
Bits reservados
Indicador de Funcionamiento en Bajo Voltaje
15:23
24
30
31
Es un registro opcional,
publicada por la tarjeta durante el proceso de identificacion. Esta direccion se usa para
dirigir las comunicaciones controlador-tarjeta, cuando existen varias tarjetas conectadas al
ESIME
59
ICE
Teora Relacionada.
Regristro Identificaci
on de Tarjeta (CID).
informaci
on usada durante el proceso de identificacion de la tarjeta. Cada tarjeta tiene un
u
nico n
umero de identificaci
on contenido en este registro; su estructura se describe en la
Tabla 2.9.
Posici
on
Descripci
on
Manufacturer ID
127:120
Identificador de Fabricante
OEM ID
119:104
Product Name
103:64
Product Revision
63:56
55:24
Reserved
23:20
Bits reservados
Manufacturing Date
19:8
Fecha de Fabricacion
CRC7
7:1
Not Used
Bit no usado
Registro Configuraci
on de Tarjeta SD (SCR).
IPN
60
ESIME
2.4 SD Card.
Posici
on
Descripci
on
SCR Structure
63:60
59:56
55
54:52
Version de seguridad
51:48
47
46:43
42
Reserved
41:36
Bits reservados
35:32
31:0
Registro de Informaci
on Especifica (CSD). Contiene informacion relacionada con el
acceso a los contenidos de la tarjeta. Los 128 bits de este registro especifican el formato
de los datos, el tipo de correcci
on de errores, el tiempo maximo de acceso a los datos, etc.
Algunos de los datos contenidos en este registro pueden ser modificados u
nicamente mediante
el comando CMD27. Existen dos versiones de este registro la version 1.0 se usa para tarjetas
de capacidad est
andar y la versi
on 2.0 se usa para tarjetas de capacidad alta y extendida.
Son mas de 20 grupos de datos que se especifican en este registro. La Tabla 2.11 muestra el
contenido del registro CSD en su version 1.0; omitiendo los bits reservados.
ESIME
61
ICE
Teora Relacionada.
Descripci
on
CSD structure
127:126
Versi
on del registro CSD (Binario)
119:112
Tiempo m
aximo de acceso a datos
111:104
Tiempo m
ax. acceso a datos en ciclos de reloj
103:96
83:80
Longitud m
axima del bloque de datos
79
Habilitaci
on lectura de bloques parciales
78
77
DSR implemented
76
Device size
73:62
61:59
58:56
55:53
52:50
49:47
Par
ametro para calcular device size
46
45:39
Tama
no de un sector borrable
38:32
Tama
no de grupo protegido contra escritura
31
Habilita protecci
on contra escritura
28:26
25:22
21
15
Copy flag
14
13
Habilita la protecci
on de escritura permanente
12
Habilita la protecci
on de escritura temporal
File format
CRC
not used, always1
IPN
Posici
on
11:10
7:1
Bits de correcci
on de errores
Bit siempre en 1
62
ESIME
2.4 SD Card.
2.4.3.
Descripci
on del Funcionamiento.
2.4.3.1.
Control de Reloj.
ESIME
63
ICE
Teora Relacionada.
2.4.3.2.
Modo de Inicializaci
on e Identificaci
on.
La operaci
on de identificaci
on e inicializacion se lleva a cabo por medio de la lnea CMD
de cada tarjeta. En este modo se realizan basicamente tres operaciones, reiniciar todas las
tarjetas para comenzar con la comunicacion, validar el rango de voltaje operacional, identificar
la tarjeta y pedir la correspondiente direccion relativa (RCA).
Reinicio de tarjetas.
espera para recibir comandos del controlador. Al conectar una o varias tarjetas, se inicia un
proceso de espera mientras el voltaje que se suministra a la tarjeta alcanza un nivel apropiado.
Esta espera dura 74 ciclos de reloj de la frecuencia de inicializacion.[8].
El controlador enva constantemente por la lnea CMD el comando CMD0, que es el
comando de reinicio, hasta recibir una respuesta de la(s) tarjeta(s). Al recibir el CMD0 todas
las tarjetas, conectadas al bus de comunicaciones, ponen sus lneas CMD en modo de entrada
para esperar el bit de inicio del siguiente comando. En el argumento del comando CMD0
se enva una direcci
on relativa (RCA) generica, con una valor 0x0000, lo cual indica que
cualquier tarjeta conectada al canal de comunicaciones debe reiniciar su maquina de estados.
Validaci
on de Condiciones de Operaci
on. En el inicio de la comunicaciones de controlador y tarjeta, se debe de conocer el voltaje en el que tarjeta puede trabajar y los voltajes
que el controlador puede proporcionar para realizar una adecuacion del nivel de voltaje en
el que se desarrollar
a enteramente la comunicacion. Cabe hacer notar que el primer comando enviado (CMD0), se transmite con un voltaje que el controlador asume la tarjeta puede
manejar.
Para verificar el voltaje adecuado en el que se realizara la comunicacion se enva el comando CMD8. La tarjeta analiza el argumento de este comando, donde se transmiten los estandares de voltaje que el controlador puede manejar, para validar las condiciones de operaci
on.
El controlador, por su parte, analiza las mismas condiciones en la respuesta correspondiente
al comando CMD8.
Si la tarjeta valida y puede operar en el voltaje especificado, enva en su respuesta un
reflejo de las condiciones de operacion que recibio y soporta. En caso contrario, si la tarjeta
no soporta las condiciones de operacion enviadas por el controlador, omite el envo de una
IPN
64
ESIME
2.4 SD Card.
Identificaci
on de Tarjeta.
cion del registro OCR de la tarjeta SD; mediante el comando especial ACMD41. El proceso
indicara si la tarjeta conectada es de capacidad alta, extendida o estandar, de esta forma el
controlador puede decidir si podr
a o no entablar comunicacion con la tarjeta conectada.
El bit 31 del registro OCR, se utiliza para saber cuando el proceso de deteccion de voltaje
ha terminado. Mientras este bit este en 0 el controlador enva constantemente el comando
especial ACMD41, al menos una vez por segundo, hasta verificar que el bit esta en 1 y
por tanto se ha energizado la tarjeta de manera adecuada. Mientras esto siga ocurriendo el
controlador no puede enviar ning
un otro comando diferente al ACMD41.
El host debe desarrollar el mismo procedimiento de inicializacion para todas las tarjetas
conectadas al bus de comunicaciones. Despues de las secuencias anteriores el controlador
enva un comando CMD2, para obtener el n
umero de identificacion o tambien conocido como
registro CID. Las tarjetas que a
un no han sido identificadas envan como respuesta al comando
CMD2 su exclusibo n
umero de identificacion.
Despues de recibir el n
umero de identificacion de tarjeta el host transmite un nuevo
comando (CMD3) que realiza la peticion a la tarjeta SD para que proporcione una RCA.
Con la direcci
on relativa de tarjeta el host puede direccionar las comunicaciones con una
tarjeta en especifico cuando existen varias conectadas. El controlador esta habilitado para
cambiar esta direcci
on relativa, enviando nuevamente un comando CMD3 cuando la RCA
proporcionada por la tarjeta SD no es adecuada. El proceso de identificacion finaliza cuando
el controlador acepta una RCA para cada tarjeta conectada.
La sucesi
on de comandos descrita realiza el proceso de inicializacion e identificacion, la
Figura 2.29 muestra un diagrama de flujo con este proceso y as visualizarlo adecuadamente.
ESIME
65
ICE
Teora Relacionada.
2.4.3.3.
IPN
66
ESIME
2.4 SD Card.
pondientes a la configuraci
on de recursos de la tarjeta SD, tales como la seleccion del n
umero
de lneas de datos (ACMD6), la habilitacion de funciones especiales (CMD6) y la petici
on
de informaci
on y/o registros de la tarjeta (ACMD51, ACMD22, ACMD23, etc.) Estas tareas
no conllevan transacciones de datos pero si de informacion del comportamiento que la tarjeta debe establecer o reportar al controlador. Ademas en este apartado tambien se incluyen
comandos relacionados con la configuracion de funciones especiales de la tarjeta SD como:
propiedades de funcionamiento mejorado, velocidades de transferencia de datos mayores, etc.
Tareas de Lectura. Esta clasificacion se hace para todas las actividades que est
an
relacionadas con la lectura de datos de la memoria SD, como: establecer la longitud del bloque
de datos a leer (CMD16), leer u
nicamanete un bloque de datos (CMD17), leer continuamente
bloques de datos (CMD18), conocer el n
umero de bloques ledos (CMD23), etc. Aunque la
longitud de bloque est
a predefinida a 512 Bytes el controlador puede variar esta longitud
dependiendo de la capacidades de cada tarjeta. La transaccion de informacion se hace en la
lneas de comunicaci
on que se hayan configurado con anterioridad, es decir, el controlador
previamente ha establecido que usara una o cuatro lneas de transmision de datos.
Tareas de Escritura.
en esta clasificaci
on. De este grupo tambien forma parte el comando CMD16 que configura
la longitud del bloque de datos y el comando CMD23 que en este caso contara el n
umero
de bloques escritos en la tarjeta SD. Por otro lado los comandos especficos de escritura de
un solo bloque o escritura continua son el CMD24 y CMD25 correspondientemente. Existen
algunos comandos extra (CMD20, CMD27, etc.) en este grupo que se encargan de controlar
funciones especiales relacionadas con la escritura de datos.
Tareas de Borrado.
lleva tres comandos: el comando CMD32 que proporciona la direccion del sector donde se
ESIME
67
ICE
Teora Relacionada.
la tarjeta o incluso a no permitir el acceso a la tarjeta misma. Son tres los comando que se
encargan de configurar las opciones de proteger sectores de la memoria contra escritura, estos
comando son CMD28, CMD29, CMD30 que respectivamente protegen ciertos sectores contra
escritura, deshabilita esta protecci
on o ratifican el estado de los sectores de la memoria con
respecto a la protecci
on contra escritura. Tambien existen comandos que niegan el acceso
total a la tarjeta SD y no solamente a ciertos sectores (CMD42), esto se realiza estableciendo
una palabra clave para el acceso a los datos de la tarjeta.
La Figura 2.30 ejemplifica los estados en los que la tarjeta entra dependiendo de la operacion que realice, Adem
as se visualizan alguno de los comandos pertenecientes a cada clasificacion.
2.4.4.
Sistema de Archivos.
Partici
on. A su vez el
area regular se divide en dos, el Area
de Sistema y el Area
de Usuario,
el area de sistema contiene la informacion u
til para reconocer el sistema de archivos que usa
cada memoria particular y contiene tres campos: el Sector de Inicio de Partici
on, laTabla de
Asignaci
on de Archivos y el Directorio Raz. El area de usuario contiene los Datos de Usuario
es decir los datos que pertenecientes a los archivos que se almacenan en la tarjeta SD. La
Figura 2.31 muestra como se organizan estas partes.
Este sistema de archivos se utiliza para realizar b
usquedas de los archivos contenidos en
una memoria, en lugar de buscar un archivo durante todo el volumen de una memoria, en
IPN
68
ESIME
2.4 SD Card.
ESIME
69
ICE
Teora Relacionada.
IPN
70
ESIME
2.5.
Formatos de Imagen.
2.5.1.
El formato Windows BMP es un formato de imagen nativo del sistema operativo Windows.
Soporta im
agenes con 1, 4, 8, 16, 24 y 32 bits por pixel. El contenido de informacion de pixeles
puede estar comprimido cuando se trabaja con imagenes de 4 u 8 bits por pixel.En un archivo
BMP los valores de n
umeros enteros que ocupan mas de un byte estan almacenados con el
ESIME
71
ICE
Teora Relacionada.
byte menos significativo primero. La estructura del archivo BMP se observa en la figura 2.32.
Es bastante simple ya que est
a compuesta de cuatro partes:
Encabezado de archivo.
Encabezado de imagen.
Paleta de colores.
Datos de pixeles.
IPN
72
ESIME
ESIME
73
ICE
Teora Relacionada.
32 bits por pixel. Cada pixel es representado por un valor entero de 4 bytes. Los
componentes de color pueden estar especificados por los 3 bytes menos significativos,
dejando sin uso el byte mas significativo o en el encabezado de imagen se especifican
los bits que se toman para formar cada componente.
Cuando los datos de la imagen tiene una profundidad de 4 u 8 bits por pixel estos datos
pueden ser comprimidos por el metodo RLE4 o RLE8. El metodo de compresion RLE es uno
de los mas simples; en el los datos que se encuentran repetidos en una secuencia se sustituyen
por dos bytes siendo el primero una cuenta del n
umero de veces que se repite el valor del
segundo byte. Este metodo de compresion es adecuado cuando se trabaja con dibujos que
contengas lneas definidas , en otro caso el metodo RLE puede generar un archivo de mayor
tama
no que sin compresi
on.
El formato BMP es ideal cuando se realizan pruebas de sistemas que usen imagenes ya
que es simple de implementar, depurar y utilizar.
IPN
74
ESIME
2.6.
Herramientas de Software.
Realizar la configuraci
on de un FPGA a partir de codigo en HDL es un proceso que
convierte este c
odigo en las instrucciones binarias necesarias para programar el dispositivo.
Este proceso se lleva a cabo usualmente mediante herramientas de software especializado,
que desarrollan las etapas en el proceso de configuracion para cualquier FPGA.
2.6.1.
2.6.1.1.
Elaboraci
on y Sntesis.
ESIME
75
ICE
Teora Relacionada.
este medio puede elaborarse una aplicacion conectando simples compuertas individuales o
combinarlas con bloques con funcionalidades mas complejas.
Xilinx proporciona libreras que contienen definiciones con el nombre, smbolo y descripcion de circuitos elementales (AND, OR y elementos especiales para dispositivos FPGA
particulares como: bloques RAM o DCMs; a estas definiciones se les llama primitivas. Adem
as
de las primitivas, Xilinx, tambien define libreras de Macros los cuales pueden contener en la
descripci
on de su funcionamiento primitivas y otros macros.
Al usar un editor de texto para describir en HDL, se tienen algunas caractersticas adicionales las cuales pueden ser ventajosas. Un HDL tpico soporta la descripcion funcional mixta,
es decir, se pueden utilizar compuertas basicas y/o bloques mas complejos para desarrollar
una aplicaci
on; esta caracterstica permite describir las estructura de un sistema a un nivel
mayor de abstracci
on.
Con ambas opciones de elaboracion es importante realizar la descripcion de la aplicaci
on
de manera jer
arquica, con esto se obtienen ventajas como:
Facilita la conceptualizaci
on.
Da estructura.
Facilita el an
alisis y depuraci
on.
Facilita la combinaci
on de diferentes metodos de elaboracion.
Reduce el tiempo de optimizacion.
Facilita la descripci
on modular, entre varias personas.
Adem
as de elaborar la descripcion funcional, en la parte de elaboracion es posible y necesario agregar algunas especificaciones o restricciones de los tiempos de sincronizacion entre
elementos y la asignaci
on de Entradas/Salidas del FPGA que deben usarse en la implementacion de la aplicaci
on. Estas restricciones o asignacion de entradas y salidas, se almacenan
en un archivo difrangente a los de descripcion de funcionamiento. Un archivo de especificaciones y asignaci
on de entradas/salidas creado por el usuario tiene una extension UCF (User
Constraints file).
IPN
76
ESIME
2.6.1.2.
Implementaci
on del Dise
no.
ESIME
77
ICE
Teora Relacionada.
Una vez ubicados y distribuidos los componentes, el siguiente paso es conectarlos. La fase
de conexi
on desarrolla un proceso para unir todos los elementos de acuerdo a las especificaciones de sincronizaci
on entre cada elemento. En esta parte la herramienta PAR reescribe el
archivo de salida NCD con la informacion de conexiones y ubicacion creada.
Para realizar el proceso de ubicacion y conexion de componentes, Xilinx tiene herramientas de software m
as especializadas que permiten realizar de manera manual y grafica tales
procesos. El programa llamado Plan Ahead provee el medio grafico para situar los componentes basicos a lo largo del FPGA usado, mientras que el programa FPGA Editor proporciona
la utilidad de realizar ambos procesos manualmente en un ambiente grafico. Ambos pueden
ser utilizados antes o despues de ejecutar el programa PAR para analizar o modificar esta
fase del proceso.
La u
ltima fase de este proceso se remite a la configuracion o programacion del dispositivo
con los datos generados y as observar que las funciones deseadas se ejecutan. Esta configuracion se hace con el archivo generado por el software llamado BitGen que convierte toda
la informaci
on, antes descrita y contenida en el archivo NCD, en una cadena de bits que
servira para programar al FPGA.
Para conectar una tarjeta de desarrollo de Xilinx a una PC o PC portatil, se tienen dos
posibles interfaces que se usan para la mayora de las tarjetas. Una de estas interfaces es el
puerto JTAG-Paralelo y la otra el puerto JTAG-USB. JTAG (Joint Test Action Group) es
la interfaz usualmente usada para configurar dispositivos programables y realizar pruebas en
los mismos cuando se encuentran fsicamente conectados a una placa PCB.
La tarjeta SP3E incluye una l
ogica de programacion incrustada basada en JTAG-USB, a
traves de USB el software de programacion iMPCAT de Xilinx puede programar el FPGA
desde una PC. Al conectar mediante un cable USB la tarjeta SP3E y una PC, se instalan
los controladores necesarios para que la PC reconozca la tarjeta de desarrollo y los dispositivos programables en ella. cuando la tarjeta es conectada adecuadamente el software de
programaci
on iMPACT reconoce los dispositivos en el archivo de programacion JTAG.
Una vez reconocidos los dispositivos programables puede asignarse el archivo que se desea
programar a cada dispositivo correspondientemente. En este caso se debe asignar o seleccionar
el archivo BIT antes generado, para programar el FPGA con el codigo elaborado.
Habiendo programado el FPGA se da por finalizado el proceso de implementacion de una
IPN
78
ESIME
aplicacion, los subsecuentes es verificar el funcionamiento del FPGA con el codigo programado.
2.6.1.3.
Verificaci
on.
La verificaci
on es el proceso de probar la funcionalidad y desempe
no de la aplicaci
on
implementada. Se pueden realizar verificaciones de las siguientes formas:
Simulaci
on.
An
alisis est
atico de sincronizacion.
Verificaci
on en circuito.
La simulaci
on involucra probar la funcionalidad usando modelos de comportamiento relacionados con la aplicaci
on creada. Es un procedimiento muy efectivo cuando se debe probar
la funcionalidad bajo las condiciones mas difciles o improbables, ya que en la realidad no se
pueden forzar tales condiciones y simularlas es mucho mas sencillo para obtener resultados
en esos casos. De esta forma se facilita probar puntos clave del comportamiento de la aplicacion desarrollada y usar los resultados de la simulacion para hacer adecuaciones y cambios
necesarios.
Un an
alisis est
atico de sincronizacion es ideal para un chequeo rapido despues de la fase
de interconexi
on. Este an
alisis permite detectar retrasos en las trayectoria de la informaci
on
causados por una ubicaci
on o conexion de los componentes no adecuada.
Como una prueba final se puede verificar el dise
no ya implantado en el dispositivo FPGA,
la verificaci
on en circuito es una prueba para evaluar e funcionamiento bajo condiciones tpicas
de operaci
on . Ya que se puede programar el FPGA repetidamente, no hay problema en cargar
diferentes versiones modificadas de la aplicacion, realizando cambios necesarios cada ocasi
on
y programar el FPGA hasta lograr el funcionamiento optimo.
2.6.2.
ESIME
79
ICE
Teora Relacionada.
los dise
nadores desarrollar las aplicaciones necesarias rapida y facilmente. En esta integraci
on
de software se encuentran herramientas que automatizan el proceso de dise
no, la siguiente
lista relaciona las herramientas de software con las partes del proceso de desarrollo.
Elaboraci
on y Sntesis.
Editor de HDL .
Editor esquem
atico (ECS) .
Generador de n
ucleos predefinidos de Xilinx.
XTS- Tecnologa de sntesis de Xilinx.
Integraci
on con otras herramientas de Sntesis.
Implementaci
on.
Herramienta de interpretacion (Translate).
Herramienta de asignaci
on(Map).
Herramienta de ubicaci
on y conexion (PAR).
Editor ubicaci
on y conexion (Floorplanner).
Editor del FPGA.
Analizador de sincronizacion.
Verificaci
on del dise
no.
Generador de cadena de bits.
Herramienta de configuracion (iMPACT).
Analizador l
ogico (ChipScope).
Simulador de Xilinx (ISE Simulator).
Integraci
on con otras herramientas de simulacion.
El Navegador de Proyecto es la herramienta principal del ambiente de desarrollo ISE, este
permite crear, definir y compilar los dise
nos usando las herramientas de software, la cuales
pueden ser ejecutadas desde este navegador. La figura 2.33 muestra la ventana del Navegador
de Proyecto.
IPN
80
ESIME
ESIME
81
ICE
Teora Relacionada.
de la descripci
on de una aplicaci
on. Los archivos fuente incluidos en un proyecto pueden ser
descripciones de un circuito (en HDL o esquematicamente), diagramas de estado, modelos de
simulacion, archivos de prueba, documentacion, archivos de datos de memoria, etc.
Los archivos fuente deben cumplir con una jerarqua, u
nicamente uno de los archivos fuente deber ser el principal en la jerarqua. En este deben estar instanciada4 la logica descriptiva,
representada como archivos fuente de un nivel inferior. Los archivos fuente de nivel inferior
tambien pueden realizar instancias de otros, construyendo as diferentes niveles jerarquicos
necesarios para describir un sistema.
Un archivo fuente v
alido para ser el principal puede ser:
Un archivo esquem
atico.
Un archivo en HDL.
Un archivo EDIF o de descripcion de hardware estandar.
La herramienta de software Core Generator, del grupo de programas del ambiente de
desarrollo, tiene dentro de sus opciones la herramienta Memory Interface Generator
(MIG) que se usa para crear interfaces de control de memorias para los diferentes FPGAs
de Xilinx. La herramienta MIG genera archivos de dise
no VHDL o Verilog, Ademas de los
m
ultiples archivos necesarios para la sntesis, simulacion y otros procesos en el desarrollo y
programaci
on de aplicaciones en un FPGA.
IPN
82
ESIME
Captulo 3.
El objetivo del presente captulo es exponer la forma en que se desarrollo el SILOG. Para
esto, antes es indispensable realizar el control independiente de cada dispositivo que conforma
el sistema. Durante este captulo el desarrollo del control de los dispositivos independientes
se expondr
a iniciando con la descripcion de la interfaz fsica entre el elemento de control
y dispositivo a controlar. La descripcion continuara explicando como se realizo el control
mediante c
odigo VHDL, presentando partes esenciales de codigo VHDL para su comprensi
on.
El codigo completo del software de control se presenta en el Apendice A. Una vez terminado el
control independiente de dispositivos, en este mismo captulo, se detalla como estos elementos
se conjuntan en el SILOG propuesto. El contenido en este captulo estara relacionado con la
informaci
on expuesta en los captulos anteriores, es decir, ser hara referencia a tablas, figuras
y contenidos ya expuestos.
83
3.1.
3.1.1.
Para realizar la interfaz fsica entre la pantalla LQ043T3DX02 y la tarjeta SP3E, como
se ve en el apartado (a) de la Figura 1.2, se hizo necesario fabricar una placa PBC donde
montar el conector que requiere la pantalla y el circuito convertidor de voltaje CD-CD de
subida para proporcionar el voltaje necesario a la luz de fondo.
El conector de la pantalla tiene 40 lneas, como se puede ver en la Tabla 2.6, y mediante
estas se deben proporcionar las se
nales de control, voltajes de alimentacion y conexion a tierra
correspondientes. Las lneas de voltaje, tierra y otras que deben dejarse sin conexion ocupan
mas de una lnea para su prop
osito y por tanto se reduce el n
umero total de conexiones
necesarias. Concretamente las conexiones que se deben realizar son 31, contemplando: lneas
de datos de color (8-R, 8-G, 8-B), se
nales de sincronizacion (CLK, VSync, HSync, DISP) y
energa (+2.5V, +5V, GND).
La u
nica o m
as evidente forma de conectar 31 se
nales de control de la pantalla TFT-LCD
con la tarjeta SP3E es el conector de expansion Hirose de 100 pines (J3), como se se
nalo en
la Figura 1.2.
En el conector de expansi
on Hirose de 100 pines, 40 de estos son de E/S directos al
FPGA[10]. Algunas de estas lneas estan multiplexadas con otros conectores de expansi
on
y LEDs de la tarjeta SP3E. Las lneas multiplexadas con los LEDs pueden ser utilizadas
tomando en cuenta que estos estaran encendidos o apagados correspondientemente a las
se
nales enviadas por estas lneas. Se tiene la posibilidad de seleccionar entre un VCC de 3.3V
o de 2.5V, para proporcionarse mediante este conector. Tambien por este conector, la tarjeta
SP3E provee otras lneas de E/S como: lneas de programacion JTAG, lnea para reloj de
entrada, lnea para reloj de salida y voltaje de +5V [10].
La placa fabricada conecta las terminales de la pantalla y la tarjeta SP3E usando solo
algunas de las 40 lneas disponibles; de acuerdo a la relacion que se ve en la Tabla 3.1.
De los 40 pines del FPGA a los que se tiene acceso, mediante el conector Hirose, los
primeros 4 de la Tabla 3.1 est
an compartidos con el conector de expansion J1 que se utilizara para conectar la tarjeta de memoria SD; por tanto estos no se utilizan para la interfaz
IPN
84
ESIME
Pin
FPGA
Hirose
Nombre
Pin
FPGA
TFT
LCD
Hirose
Nombre
Pin
FPGA
TFT
LCD
IO1
B4
IO15
C11
Green(2)
IO29
C4
CLK
IO2
A4
IO16
D11
Green(3)
IO30
E13
DISP
IO3
D5
IO17
E11
Green(4)
IO31
A11
HSync
IO4
C5
IO18
F11
Green(5)
IO32
B11
VSync
IO5
B6
Red(0)
IO19
F12
Green(6)
IO33
A8
IO6
A6
Red(1)
IO20
E12
Green(7)
IO34
G9
IO7
F7
Red(2)
IO21
B13
Blue(0)
IO35
D12
IO8
E7
Red(3)
IO22
A13
Blue(1)
IO36
C12
IO9
C7
Red(4)
IO23
B14
Blue(2)
IO37
A15
OI10
D7
Red(5)
IO24
A14
Blue(3)
IO38
B15
IO11
E8
Red(6)
IO25
D14
Blue(4)
IO39
C3
IO12
F8
Red(7)
IO26
C14
Blue(5)
IO40
C15
IO13
E9
Green(0)
IO27
B16
Blue(6)
IO14
F9
Green(1)
IO28
A16
Blue(7)
TFT
LCD
ESIME
85
ICE
IPN
86
ESIME
Para cada tipo de circuito posible de construir con este dispositivo, existe una configuracion diferente de elementos externos. Aunque son tres las mnimas distribuciones realizables
se presenta u
nicamente la que es u
til para implementar un circuito conversor de voltaje de
subida, en la Figura 3.1. Los elementos externos necesarios para construir un circuito convertidor de voltaje DC-DC de subida son: resistencias, capacitores, un diodo y un inductor.
El valor de algunos de estos elementos es determinado mediante ecuaciones de dise
no [11].
Para calcular los valores de los elementos externos es primordial comenzar por proponer
los valores de energa de entrada y salida deseados y conocer algunas caractersticas de los
elementos activos que participan en el proceso.
Especficamente se necesitan conocer las magnitudes de: voltaje de entrada (Vin ), voltaje
deseado de salida (Vout ), corriente de salida (Iout ), voltaje de rizo de salida (Vripple ), frecuencia
mnima de operaci
on (Fmin ) y voltaje de saturacion del transistor de salida (Vsat ) del circuito
MC34063 que en este caso es de 0.45 V[11]. Tambien es necesario le valor del voltaje del diodo
1N5819 en polarizaci
on directa (VF ) que seg
un sus hojas de especificaciones es de 0.55 V.
La Tabla 3.2 muestra las ecuaciones de dise
no en la parte alta y en la parte baja los valores
propuestos de entrada y salida.
Formula
1.-
ton
tof f
3.-
tof f
Factor
Formula
2.-
ton + tof f
1
f
4.-
ton
of f
5.-
CT
6.-
Ipk
7.-
RSC
0.3Ipk
8.-
L(min)
9.-
CO
ton
9 IVout
ripple
10.-
Vout
Valores Propuestos
ESIME
1.-
Vin
5V
2.-
Vout
25 V
3.-
Iout
18 mA
4.-
Vripple
100 mV
5.-
Fmin
100 KHz
6.-
VF
0.5 V
7.-
Vsat
0.45 V
8.-
R1
5.6 K
87
ICE
A continuaci
on se realizan los c
alculos necesarios de acuerdo a los parametros propuestos:
25V + 0.5V 5V
ton
Vout + VF Vin
20.5V
=
=
=
= 4.50549
tof f
Vin Vsat
5V 0.45V
4.55V
ton + tof f =
tof f =
1
1
=
= 10S
f
100KHz
ton + tof f
10S
10S
=
=
= 1.81636S
ton
4.50549 + 1
5.50549
tof f + 1
(3.1)
(3.2)
(3.3)
(3.4)
(3.5)
L(min) =
Iout ton
18mA 8.18363S
=9
= 13.25748F
Vripple
100mV
(3.6)
(3.7)
(3.8)
(3.9)
La corriente que atraviesa el inductor sera la misma corriente pico que pase por el transistor o switch interno del circuito MC34063[11].
Ya que se usaran resistores de 1/8 de watt y el voltaje que debe pasar el resistor R1 es
de 1.25V se propone a R1 como 5.6K de esa forma se asegura que no se supere la corriente
maxima de operaci
on de este resistor. Para obtener su valor de R2, se despeja de la Ecuaci
on
3.10 (ver Tabla 3.2) y se obtiene:
Vout
R2
= 1.25 1 +
R1
R2
Vout
=1+
1.25
R1
Vout
R2
1=
1.25
R1
Vout
25V
R2 = R1
1 = 5.6K
1 = 106400
1.25
1.25
(3.10)
Los valores obtenidos, como los de Lmin , CO , CT , RSC y R2, no son valores estandarizados,
que los fabricantes distribuyen, razon que obliga a tomar elementos con valores comerciales
cercanos a los obtenidos. Los elementos elegidos por su valor aproximado son:
IPN
88
ESIME
100K
R2
= 1.25 1 +
= 23.57142V
= 1.25 1 +
R1
5.6K
La comprobaci
on del voltaje de salida demuestra que el voltaje de salida sera de 23.57 V,
al ser mayor a los 15V mnimos necesarios para activar la luz de fondo, se concluye que la
resistencia R2 seleccionada por aproximacion es funcional.
Por otro lado es primordial comprobar que la corriente de salida no sea mayor que 25 mA
ya que es el m
aximo permitido que se puede aplicar a la luz de fondo de la pantalla [7]. De
las Ecuaciones 3.6 y 3.7 se puede despejar y calcular el valor de corriente maxima de salida
esperada:
De la Ecuaci
on 3.7...
RSC =
Ipk =
ESIME
0.3
Ipk
0.3
0.3
=
= 0.3333
RSC
1.5
89
ICE
De la Ecuaci
on 3.6...
Ipk = 2Iout
Ipk
Iout =
2
ton
tof f
+1
=
ton
+1
tof f
0.3333
= 18.16368mA
2 (4.50549 + 1)
330pF
CT
=
= 8.25S
4.0 105
4.0 105
Y de la Ecuaci
on 3.9...
CO = 9
Vripple = 9
Iout ton
Vripple
18.16368mA 8.25S
Iout ton
=9
= 134.86532mV
CO
10F
Con esta u
ltima comprobaci
on se concluye que a pesar de modificar los valores calculados
de los elementos externos, a
un se tienen parametros de salida u
tiles para activar la luz de
fondo de la pantalla LQ043T3DX02.
En la Figura 3.2 se muestra un diagrama de la placa que contiene las conexiones realizadas
y el circuito de subida de voltaje para la luz de fondo.
3.1.2.
IPN
90
ESIME
ESIME
91
ICE
se describe en la secci
on 2.3.2 y Figura 2.18. El modulo controlador desarrollado, se asegura
de iniciar en estado alto esta se
nal.
Adem
as de las se
nales VSync y HSync es necesario sincronizar los datos RGB que ser
an
enviados a la pantalla. Considerando el marco negro en los margenes de la pantalla (seccion 2.3.2) se construye la se
nal de habilitacion de desplegado de imagen, VDE. Esta se
nal
esta activa cuando los contadores se encuentran en el punto en el que las se
nales RGB deben comenzar a desplegarse. Ambos contadores deben estar en el rango de: 435contador
horizontal5523 y 125contador vertical5284 para que la se
nal VDE este activa y se puedan
enviar datos de im
agenes a la pantalla.
El codigo VHDL que genera las se
nales HSync, VSync y VDE se muestra a continuaci
on:
signal HCnt : NATURAL range 0 to 525 := 0; --horizontal counter
signal VCnt : NATURAL range 0 to 286 := 0; --vertical counter
signal hs, vs: std_logic; -- horizontal/vertical sync
signal vde : std_logic;
process (PCLK_I)--9MHz
begin
if Rising_Edge(PCLK_I) then
if (RST_I = 1) then
HCnt <= 525 - 1;
VCnt <= 286 - 1;
vde <= 0;
hs <= 1;
vs <= 1;
else
if (HCnt >= (41)) and (HCnt < 525) then
hs <= 0;
if (VCnt >= (10)) and (VCnt < 286) then
vs <= 0;
else
vs <= 1;
end if;
else
hs <= 1;
end if;
if ((HCnt >= 43 and HCnt < 523) and (VCnt >= 12 and VCnt <= 286)) then
vde <= 1;
else
vde <= 0;
end if;
end if;
end if;
end process;
3.1.3.
La placa PCB fabricada se ve en la Figura 3.3, en ella se observa el conector y las lneas
necesarias para interconectar la pantalla TFT-LCD con la tarjeta SP3E. Tambien se observa
IPN
92
ESIME
el circuito integrado MC34063A junto a los componentes que integran el circuito convertidor
de voltaje de subida. Experimentalmente este circuito convertidor proporciona un voltaje de
23.6V y una corriente de 20mA valores suficientes para accionar la luz de fondo de la pantalla.
3.1.3.1.
La fuente de voltaje implementada para activar la luz de fondo presento los siguientes
resultados experimentales; comparados, en la Tabla 3.3, con los resultados esperados.
ESIME
93
ICE
Parametros Experimentales
Voltaje de Salida
23.5 V
23.57V
Corriente de Salida
18.16mA
20.3mA
Voltaje de rizo
134.16 mV
1.32V
IPN
94
ESIME
Corriente(mA)
Voltaje(V)
Resistencia()
Corriente(mA)
Voltaje(V)
25
300
1400
18.2
23.6
50
180
6.1
1500
15.75
23.6
75
150
6.1
1600
14.65
23.6
100
120
6.7
1700
13.93
23.6
200
85
11
1800
13.73
23.6
300
52.7
16.9
1900
13.6
23.6
400
48.8
18.9
2000
13
23.6
500
42.9
20.3
2100
12.1
23.6
600
38.3
22
2200
11.4
23.6
700
34.5
23.2
2300
10.8
23.6
800
30
23.3
2400
10.5
23.6
900
26.6
23.4
2500
10.5
23.6
1000
24.2
23.4
5000
4.7
23.6
1100
21.4
23.6
7500
3.14
23.6
1200
19.9
23.6
10000
2.34
23.6
1300
18.2
23.6
3.2.
3.2.1.
ESIME
95
ICE
3.2.2.
El principal objetivo recibir las cadenas GPS que se enva de forma serial por una interfaz
con el m
odulo RGM-3000. De la seccion 2.1.5 se sabe que la transmision de datos seriales en
un estandar RS-232 con las siguientes caractersticas:
Baud Rate: 48000 bps.
Bits de datos : 8.
IPN
96
ESIME
ESIME
97
ICE
end if;
end if;
end process;
process (clk,reset)is
begin
if reset = 1 then
baud_clock_rising_edge <= 0;
elsif rising_edge(clk)then
if
baud_counter = conv_std_logic_vector(10416,14) then
baud_clock_rising_edge <= 1;
elsebaud_clock_rising_edge
baud_clock_rising_edge <= 0;
end if;
end if;
end process;
process (clk, reset) is
begin
if reset = 1 then
baud_clock_falling_edge <= 0;
elsif rising_edge(clk) then
if baud_counter = conv_std_logic_vector(5208,14) then
baud_clock_falling_edge <= 1;
else
baud_clock_falling_edge <= 0;
end if;
end if;
end process;
nal se deshabilita
Mientras las se
nal reset counters sea 1 el contador no iniciara. Esta se
cuando se detecta el bit de inicio, de la cadena trasmitida por el modulo RGM-3000, por la
entrada de datos seriales serial data in; de la siguiente manera:
process (clk, reset) is
begin
if (reset = 1) then
receiving_data <= 0;
elsif rising_edge(clk) then
if(all_bits_received = 1) then
receiving_data <= 0;
elsif (serial_data_in = 0) then
receiving_data <= 1;
end if;
end if;
end process;
.
.
.
reset_counters <= not receiving_data;
La se
nal all bits received indica cuando se han recibido la totalidad de bits de la
cadena que transmite el RGM-3000, que en este caso son 10 bits; tomando en cuenta el bit de
inicio , 8 bits de datos y un bit de paro. Este proceso se realiza con la se
nal que indica el final
IPN
98
ESIME
del lapso en que cada bit es trasmitido (baud clock rising edge), con esta se
nal se hace un
conteo de los bits que se reciben y al llegar el contador a 10 se considera que ha terminado
la cadena que se espera recibir.
A traves de un registro de corrimiento se almacenan los bits hasta que se completa la
transmisi
on de 8 bits de datos. Cuando esto sucede se activa la se
nal received data valid
que indica que se tiene el contenido valido de una cadena transmitida, es decir, un valor
ASCII de 8. Este valor de 8 bits se obtiene por una de las salidas del modulo VHDL creado
(received data). Este proceso se realiza de la siguiente forma:
process (clk, reset) is
begin
if (reset = 1) then
data_in_shift_reg<= (others =>0);
elsif rising_edge (clk) then
if (baud_clock_falling_edge = 1) then
data_in_shift_reg <= serial_data_in & data_in_shift_reg(9 downto 1);
end if;
end if;
end process;
process (clk, reset, all_bits_received) is
begin
if (reset = 1) then
data_reg
<= (others =>0);
elsif rising_edge (all_bits_received) then
data_reg
<= data_in_shift_reg(8 downto 1);
else
data_reg <= data_reg;
end if;
end process;
.
.
.
received_data
<= data_reg;
El m
odulo en c
odigo VHDL elaborado, realiza la tarea de convertir los datos seriales en
paralelos que representan valores ASCII individuales de informacion GPS, sin embargo son
cadenas completas de datos las que se busca. El proceso para obtener dicha cadena se trata
en la secci
on 3.5.1.
3.2.3.
Mediante software y una PC portatil se obtuvieron las cadenas de informacion del modulo
RGM-3000. Se recolectaron 15 ejemplares de la cadena de informacion geografica GPRMC
que proporciona el modulo RGM-3000, mismas que se observan en la Tabla 2.1.4, con las que
ESIME
99
ICE
se realizo un promedio de para determinar un valor geografico medio con el cual comparar la
ubicacion con otro dispositivo.
Promedio
Latitud
Longitud
193647.16N
990234.49W
193647.17N
990234.85W
193647.18N
990234.85W
193647.19N
990234.81W
193647.20N
990234.76W
193647.21N
990234.76W
193647.22N
990234.74W
193647.24N
990234.71W
193647.25N
990234.69W
193647.26N
990234.68W
193647.28N
990234.68W
193647.28N
990234.68W
193647.29N
990234.67W
193647.29N
990234.65W
193647.30N
990234.63W
193647.4723N
990234.763W
IPN
100
ESIME
ESIME
101
ICE
IPN
102
ESIME
3.3.
3.3.1.
Los mapas son una parte importante de un dispositivo de localizacion geografica, estos
suelen ser un banco de im
agenes digitales que se almacenan en un dispositivo de memoria.
Retomando informaci
on del captulo 1, se utiliza para almacenar las imagenes de mapas
digitales la tarjeta SD, por ello se elaboro una interfaz de conexion entre la SD Card y la
tarjeta SP3E como se ejemplific
o en la Figura 1.1.
La interfaz fsica de conexi
on con la tarjeta SD debe hacerse a traves de sus 9 pines, esto
es as cuando se usan las 4 lneas de datos disponibles en la tarjeta (SD Bus 4-bits ver secci
on
2.4.2). Sin embargo, se decidi
o utilizar una sola lnea de comunicacion de datos para facilitar
la implementaci
on del programa controlador de la tarjeta SD y hacer un uso mas eficiente de
los pines de conexi
on del FPGA. De esta manera se reducen las lneas de comunicacion, de
nueve a u
nicamente 6.
Potencialmente es posible utilizar el puerto de expansion J1 de 6 pines de la tarjeta SP3E,
que se ubica justo debajo del conector Hirose de 100 pines; como se ve en la Figura 2.12. Este
conector de expansi
on J1 comparte las lneas hacia el FPGA con el conector Hirose de 100
pines por lo que es posible realizar la interfaz de FPGA y tarjeta SD por cualquiera de estos
conectores de expansi
on.
La distribuci
on de los pines de la tarjeta de memoria SD se trato en la seccion 2.4.2 y en la
Figura 2.20. De acuerdo a esta distribucion de lneas, se realizaron algunas adecuaciones, por
medio de una placa PCB, para tener una conexion adecuada. En la Figura 3.9 se observan
las adecuaciones de conexi
on realizadas.
Las especificaciones de conexi
on de la tarjeta SD [8] mencionan que las lneas de datos
(DAT[0:3]) y la de comandos (CMD) deben conectarse a una resistencia de pull up. Utilizando
una de las caractersticas de los bloques de Entrada/Salida del FPGA, vistos en la secci
on
2.2.1.2, se activa la terminaci
on de lnea con resistencia de pull up; esta resistencia tiene un
valor aproximado a los 10K que es el mnimo recomendado por las especificaciones de la SD.
Empleando estas resistencias de pull up se logra no utilizar elementos externos en la placa
PCB de conexi
on entre SD Card y tarjeta SP3E.
ESIME
103
ICE
3.3.2.
IPN
104
ESIME
ESIME
105
ICE
tarjeta SD inicia (o reinicia) la secuencia de control esperando 74 ciclos de reloj para que el
voltaje de operaci
on se estabilice (seccion 2.4.3.2)[8].
Posteriormente se comienza con la secuencia de envo de comandos de inicializacion y
la recepci
on de sus correspondientes respuestas (Estados: s Generar Comando Predefinido,
s Esperar Transmisi
on Comando Predefinido, s Esperar Respuesta Comando Predefinido,
s Siguiente Comando).
Adem
as de los comandos en la secuencia de inicializacion vista en la Figura 2.29 de la
seccion 2.4.3, se envan algunos comandos adicionales para obtener todos los registros de
funcionamiento de la tarjeta SD. La secuencia predefinida de comandos que se enva a la
tarjeta SD es: CMD0 (Reinicia la tarjeta SD), CMD8(Peticion de condiciones de interfaz),
CMD55(Previo a un comando de aplicacion especial), ACMD41(CMD especial, peticion registro OCR), CMD2(Petici
on registro CID), CMD3 (Peticion registro RCA), CMD9(Petici
on
registro CSD), CMD7(Selecci
on de tarjeta y cambio a estado interno de la tarjeta de transferencia de datos), CMD13(Petici
on de registro de estado).
Despues de enviar estos 9 comandos y estando inicializada la tarjeta SD, es necesario cambiar a la frecuencia de transferencia de datos lo que se hace en el estado s Cambio Frecuencia.
Posterior al cambio de frecuencia se aguarda un comando perteneciente a las tareas descritas
en la secci
on 2.4.3.3. Ya que en este estado se aguarda un comando que podra no ser recibido
inmediatamente, se detiene temporalmente el suministro de la frecuencia de reloj a la tarjeta
SD.
Cuando se recibe la se
nal de envo de un nuevo comando se reactiva el suministro de la
frecuencia de reloj a la tarjeta SD (s Ractivar Reloj ) y se procede a generar el nuevo comando
(s Generar Comando). Despues el proceso es similar al del principio, enviar el comando a la
tarjeta SD y esperar la recepci
on de la respuesta.
Cabe se
nalar que en ambos casos (respuesta de comandos predefinidos y respuestas de
comandos) se realiza una generaci
on y verificacion del CRC; con los comandos y respuestas
respectivamente. Cuando una tarjeta recibe un comando que no reconoce omite la respuesta, o bien recibe el comando y su repuesta contiene alg
un error de transmision. En ambas
circunstancias debe ejecutarse un reenvo del comando inmediatamente anterior al error de
CRC detectado.
Otra consideraci
on en cuanto a las respuestas de la tarjeta SD, es el tiempo que se espera
IPN
106
ESIME
3.3.2.1.
Generador de Reloj.
ESIME
107
ICE
El m
odulo VHDL de la m
aquina de estados de control, utiliza la se
nal i mode para determinar con un 0 cuando se requiere la frecuencia de reloj para el estado de inicializacion y
con 1 para el de transferencia de datos. Por la salida o clock mode, de este modulo VHDL
generador de reloj, se manifiesta el momento en que ha conmutado la frecuencia.
Para habilitar o deshabilitar al contador binario y por tanto la creacion de las se
nales de
reloj pertinentes se utiliza se
nal i enable (ver seccion 2.4.3). El modulo que dirige el proceso
general de controlar la tarjeta SD, activa o desactiva esta se
nal.
Adicionalmente se generan las se
nales o before receive y o before send. La primera
otorga una se
nal que se activa un momento antes de que la se
nal de reloj de salida cambie de estado bajo a estado alto para as alertar del momento oportuno en que se puede
comenzar a recibir informaci
on (respuestas) proveniente de la tarjeta SD. Por otro lado la
nal de reloj actual cambie de
se
nal o before send se dispara medio ciclo antes de que la se
un estado bajo a alto para comenzar la transmision de bits en el punto en que el reloj se
encuentre en un valor de 1.
3.3.2.2.
Generador de Comandos.
IPN
108
ESIME
downto 0);
downto 0);
downto 0);
downto 0);
El m
odulo generador de comandos almacena temporalmente el valor del ndice de comando
para tener la informaci
on del u
ltimo comando enviado. Incluso, con el registro de ndice de
comando, es posible saber si la siguiente instruccion sera un comando de los clasificados como
comandos de aplicaci
on especial, ya que uno de estos siempre es precedido por el comando
CMD55 [8]. Este mismo valor define el tipo de respuesta que se espera recibir, debido a que
cada comando esta relacionado directamente con uno de los 5 tipos posibles de respuestas.
Al conocer la respuesta esperada se puede advertir de la longitud de la cadena que se espera
recibir.
La cadena que se tiene hasta ahora en el registro message bits esta compuesta por 40
bits, para ser enviados deben de ser protegidos por un codigo de redundancia cclica. Este
CRC son 7 bits generador por un submodulo VHDL, dedicado u
nicamente a la creacion de
CRC
ESIME
109
ICE
CRC7.
Para generar los 7 bits de proteccion de errores para comandos se debe seguir el
proceso que se observa en la Figura 2.24, que se transforma en el siguiente codigo VHDL:
process (i_clk, i_rst)
begin
if (i_rst = 1) then
shift_register <= (OTHERS => 0);
else
if (rising_edge(i_clk)) then
if (i_enable = 1) then
if (i_shift = 0) then
shift_register(0) <= i_datain XOR shift_register(6);
shift_register(1) <= shift_register(0);
shift_register(2) <= shift_register(1);
shift_register(3) <= shift_register(2) XOR i_datain XOR shift_register(6);
shift_register(4) <= shift_register(3);
shift_register(5) <= shift_register(4);
shift_register(6) <= shift_register(5);
else -- shift CRC out (no more calculation now)
shift_register(0) <= 0;
shift_register(6 downto 1) <= shift_register(5 downto 0);
end if;
end if;
end if;
end if;
end process;
Los 40 bits se transmiten de forma serial tanto a la tarjeta como al generador CRC7
mediante un registro de corrimiento, tomando los bits de izquierda a derecha y enviandolos
uno a uno. El registro de corrimiento se auxilia de un contador binario, que utiliza el reloj
de transmisi
on para llevar el conteo bits transmitidos a partir del bit de inicio del comando.
if (produce_next_bit = 1) then
-- Shift message bits.
message_bits(39 downto 1) <= message_bits(38 downto 0);
message_bits(0) <= 0;
end if;
sent_bit_counter: process(i_clk, i_rst, i_generate, produce_next_bit, counter)
begin
if (i_rst = 1) then
counter <= (OTHERS => 0);
else
if (rising_edge(i_clk)) then
if (i_generate = 1) then
counter <= "0000000";
else
if (produce_next_bit = 1) then
counter <= counter + 1;
end if;
end if;
end if;
end if;
end process;
IPN
110
ESIME
Cuando los 40 han pasado por el generador CRC7 y enviados a la tarjeta, comienza
la transmisi
on de los 7 bits de proteccion generados, agregando por u
ltimo el bit de paro;
completando la cadena de 48 bits de un comando.
data_bit_register: process(i_clk, i_rst, i_generate, produce_next_bit, counter)
begin
if (i_rst = 1) then
bit_to_send <= 1;
else
if (rising_edge(i_clk)) then
if (i_generate = 1) then
bit_to_send <= 1;
elsif (produce_next_bit = 1) then
if (sending_CRC = 0) then
bit_to_send <= message_bits(39);
else
if ((counter = 47) or (counter = 48)) then
bit_to_send <= 1;
else
bit_to_send <= CRC_generator_out;
end if;
end if;
end if;
end if;
end if;
end process;
3.3.2.3.
Una respuesta es la consecuente accion de una tarjeta SD como efecto de haber recibido
un comando. La acci
on de recibir una respuesta, en cuanto a codificacion VHDL, se cumple
con la sucesi
on de varias etapas. Debe iniciarse en un estado de espera, aguardando la se
nal
que confirma el envi
o completo del comando y as pasar a un estado de alerta en busca de un
valor 0 (bit de inicio de respuesta), sobre la linea CMD, que indica el comienzo de la cadena
de respuesta correspondiente al comando enviado.
El bit de inicio de la respuesta dispara o inicia la recepcion de los bits de la cadena
entrante. Es necesario usar un registro de corrimiento para almacenar uno a uno los datos
que llegan desde la tarjeta SD. La respuesta, proveniente de la tarjeta SD, puede tener una
longitud de 48 o 136 bits, este valor de longitud de respuesta es u
til para saber el limite al
que debe llegar el contador binario que lleva el control de los bits recibidos. Este proceso se
lleva a cabo con el siguiente c
odigo VHDL.
process (i_clk, i_rst)
begin
if (i_rst = 1) then
registered_data_input <= (OTHERS=>0);
ESIME
111
ICE
IPN
112
ESIME
3.3.2.4.
ESIME
113
ICE
Figura 3.11: M
aquina de Estados para el Envo/Recepcion de Datos
Bit de inicio.
Bloque de 512 bytes.
Bits de protecci
on de errores (CRC16).
Bit de paro.
El bit de inicio como se ve en la Figura 2.26 tiene siempre un valor 0. El bloque de datos
es tomado o almacenado en una memoria temporal que fue implementada dentro del FPGA;
la longitud de esta memoria temporal es la misma que la del bloque de datos.
IPN
114
ESIME
El paquete que se transfiere a la memoria SD tambien incluye los 16 bits de CRC que son
tomados del modulo generador e integrados al paquete. Estos deben ser generados de acuerdo
a lo expuesto en la secci
on 2.4.2.3. El codigo VHDL que genera estos 16 bits de protecci
on
de errores es:
process (i_clk, i_rst)
begin
if (i_rst = 1) then
shift_register <= (OTHERS => 0);
else
if (rising_edge(i_clk)) then
if (i_sync_reset = 1) then
shift_register <= (OTHERS => 0);
elsif (i_enable = 1) then
if (i_shift = 0) then
shift_register(0) <= i_datain XOR shift_register(15);
shift_register(4 downto 1) <= shift_register(3 downto 0);
shift_register(5) <= shift_register(4) XOR
i_datain XOR shift_register(15);
shift_register(11 downto 6) <= shift_register(10 downto 5);
shift_register(12) <= shift_register(11) XOR
i_datain XOR shift_register(15);
shift_register(15 downto 13) <= shift_register(14 downto 12);
else
shift_register(15 downto 1) <= shift_register(14 downto 0);
shift_register(0) <= 0;
end if;
end if;
end if;
end if;
end process;
Una vez que se ha integrado el paquete de datos, la maquina de estados cambia a un
estado en el cual se realiza la transmision del paquete; con ayuda de un contador de bits y
bytes pertenecientes al paquete. El bloque de 512 bytes de datos se encuentra en una memoria
temporal y mediante los contadores de bytes y bits, se extrae este bloque para ser transmitido.
if ((current_state = s_RECEIVING_DATA) or
(current_state = s_SEND_DATA)) then
if (not ((bit_counter = "000") and
(byte_counter = "111111111"))) then
if (bit_counter = "000") then
byte_counter <= byte_counter + 1;
bit_counter <= "111";
else
bit_counter <= bit_counter - 1;
end if;
end if;
end if;
.
.
.
addra => byte_counter & bit_counter,
douta => single_bit_out,
Despues de haber terminado de enviar los datos, se pasa a un estado de espera donde se
ESIME
115
ICE
aguarda el tiempo suficiente para que la tarjeta SD reciba y verifique los datos enviados. Esta
espera de tiempo se realiza mediante un contador binario. Si la se
nal de recepcion exitosa no
llega antes de que el contador de tiempo de espera llegue a su maximo se considera que ha
ocurrido un error en la transmisi
on. Terminada una operacion de escritura (exitosa o fallida)
el modulo regresa a su estado inicial de espera.
process(i_clk, i_rst, current_state, i_sd_clock_pulse_trigger)
begin
if (i_rst = 1) then
timeout_register <= (OTHERS => 0);
elsif (rising_edge(i_clk)) then
if ((current_state = s_SEND_STOP) or
(current_state = s_WAIT_REQUEST)) then
timeout_register <= (OTHERS => 0);
elsif (i_sd_clock_pulse_trigger = 1) then
if (((current_state = s_WAIT_DATA_START) or
(current_state = s_WAIT_BUSY)) and
(not (timeout_register = TIMEOUT))) then
timeout_register <= timeout_register + 1;
end if;
end if;
end if;
end process;
Se ejemplific
o un proceso de escritura de datos, el proceso de escritura es similar a este y
se puede tener una idea de el observando la Figura 3.11. El codigo completo del control del
proceso de escritura/lectura se tiene en el Apendice A.
3.3.3.
IPN
116
ESIME
Figura 3.12: Spartan 3E con placa fabricada para la conexion de la tarjeta SD.
ESIME
117
ICE
Posteriormente al almacenamiento de datos en la tarjeta por medio de una PC, se pretende leer los datos en la tarjeta SD mediante el modulo de control generado en VHDL para
consecuentemente desplegar en la pantalla LCD de texto, que la tarjeta SP3E tiene integrada,
la cadena de texto que se guard
o con anterioridad. Aunque es una cadena de 30 caracteres y
la tarjeta SD tiene capacidad para una gran cantidad de informacion, se desea u
nicamente comprobar el acceso a los datos en la tarjeta SD mediante el software en VHDL
desarrollado.
El m
odulo creado en VHDL requiere de la direccion fsica de memoria para acceder a los
datos contenidos en la SD correctamente[8]. Para obtener la adecuada direccion de memoria se
pueden usar herramientas de software y as visualizar la direccion correcta o seguir el metodo
de calculo que el est
andar SD da en sus especificaciones [8]. Al igual que el argumento de un
comando, la direcci
on de localidad de memoria (fsica o logica) es una cadena de 32 bits.
Programando el FPGA se usa el controlador por VHDL desarrollado, con el se espera a
que se ejecute el proceso de inicializacion y la lectura de un bloque de datos. En el bloque de
datos que se obtiene de la tarjeta SD esta el mensaje que se desea desplegar. Al observar
en la pantalla del LCD de texto el texto Hola Datos de la tarjeta SD, se puede concluir
que el software en VHDL desarrollado funciona adecuadamente; estos resultados se
pueden ver tambien en la Figura 3.12.
IPN
118
ESIME
3.4.
3.4.1.
La funci
on de la memoria DDR-SDRAM MT46V32M16 es almacenar temporalmente los
archivos extrados de la tarjeta SD, en este caso especficamente las imagenes de mapas
relacionadas a la ubicaci
on geogr
afica.
Para lograr introducir una cierta cantidad de datos en la memoria SDRAM es indispensable tener un medio de comunicacion y control con la misma. La memoria MT46V32M16 es
un dispositivo integrado desde f
abrica en la tarjeta Spartan 3E por tanto su interfaz fsica se
encuentra ya definida[10]. La Figura 3.14 muestra el diagrama de conexiones entre la tarjeta
SP3E y la memoria MT46V32M16; ademas en la Tabla 3.6 se detallan las conexiones entre
pines del FPGA y los respectivos de la DDR-SDRAM.
Tabla 3.6: Conexi
on entre pines del FPGA y memoria MT46V32M16
DDR SDRAM
MT46V32M16
Pin
FPGA
DDR SDRAM
MT46V32M16
Pin
FPGA
DDR SDRAM
MT46V32M16
Pin
FPGA
A[0]
T1
BA[0]
K5
DQ[2]
L3
A[1]
R3
BA[1]
K6
DQ[3]
L4
A[2]
R2
UDM
J1
DQ[4]
M3
A[3]
P1
LDM
J2
DQ[5]
M4
A[4]
F4
CK N
J4
DQ[6]
M5
A[5]
H4
CK P
J5
DQ[7]
M6
A[6]
H3
UDQS
G3
DQ[8]
E2
A[7]
H1
LDQS
L6
DQ[9]
E1
A[8]
H2
RAS
C1
DQ[10]
F1
A[9]
N4
CAS
C2
DQ[11]
F2
A[10]
T2
CS
K4
DQ[12]
G6
A[11]
N5
WE
D1
DQ[13]
G5
A[12]
P2
DQ[0]
L2
DQ[14]
H6
CKE
K3
DQ[1]
L1
DQ[15]
H5
ESIME
119
ICE
3.4.2.
IPN
120
ESIME
controlador creado para la memoria que se usa en este proyecto y las opciones seleccionadas
con la herramienta MIG tiene las siguientes caractersticas:
Longitud de r
afaga de dos columnas.
Latencia CAS1
Tipo de r
afaga secuencial.
Auto actualizaci
on.
Enmascarado de datos.
Frecuencia de trabajo de 100 MHz.
Generado sin DCM.
Modulos generados en VHDL.
En la Figura 3.15, se observa un diagrama a bloques del controlador, en el que se ven todas
la lneas de comunicaci
on y su direccion de transmision con respecto al controlador. Se nota en
la parte superior izquierda, de la misma Figura, las se
nales de reloj que deben proporcionarse
al controlador para cumplir con sus funciones. Ademas se tienen las se
nales indispensables
de control como: envo de comandos, direccion de localidad de memoria, entrada y salida de
datos, etc.
Este m
odulo controlador VHDL, esta dividido en varios submodulos que permite un
analisis m
as especfico de las tareas a realizar y su consecuente ejecucion; estos son:
Tiempo de espera, en ciclos de reloj, entre el registro de comando de lectura y la disponibilidad de los
ESIME
121
ICE
Control de Sincronizaci
on.
los otros m
odulos que componen al controlador de la memoria DDR SDRAM. Genera y/o
maneja las se
nales de reloj ya sean simples o diferenciales mediante los buffers especializados
en el FPGA. Usualmente se usan dos se
nales de reloj: la que se definio para el funcionamiento
principal y esta misma se
nal de frecuencia pero desplazada 90 grados en su fase (CLK0 y
CLK90). Adem
as se generan, en este modulo, diferentes se
nales de reinicio.
bloques de entrada y salida del FPGA que seran usados para implementar los puertos, pines
o se
nales que interconectaran a la memoria DDR SDRAM y el FPGA.
De forma similar a otros dispositivos de memoria, este necesita del envio de comandos
para operar, adem
as del cumplimiento de un proceso de inicializacion que se desarrolla de la
siguiente manera.
IPN
122
ESIME
3.4.2.1.
Inicializaci
on de la DDR SRAM.
Antes de usar los comandos de lectura o escritura, el controlador debe inicializar la memoria DDR SDRAM usando el comando especifico para esto. Solamente se puede enviar o usar el
comando de inicializaci
on despues de que todas las se
nales de reinicio han sido desactivadas.
El controlador se encuentra en estado de reinicio durante 200s despues de haber sido energizado. El controlador toma en cuenta la frecuencia maxima a la que puede funcionar para
obtener el valor del conteo m
aximo de espera, por tanto a frecuencias inferiores, el tiempo
que el controlador permanece en estado de reinicio sera mayor. La memoria DDR SDRAM
requiere este retraso de 200s para comprobar que el sistema ha sido energizado y los voltajes de referencia son estables. Cuando se recibe el comando de inicializacion, el controlador
inicia este proceso con la memoria DDR SDRAM. Una vez que el proceso termina el controlador advierte de esto mediante la se
nal Init Done(Inicializacion Terminada). La Figura 3.16
muestra las se
nales que toman parte en el proceso de incializacion y su sicronizacion con las
se
nales de reloj y reinicio. Despues que el proceso ha terminado se puede enviar el siguiente
comando en cualquier momento.
3.4.2.2.
Escritura.
La operaci
on de escritura comienza enviando el comando para esta operacion al controlador de la memoria, este comando se enva en el momento que inicia el ciclo bajo de la
frecuencia de reloj principal(CLK0). Al enviar un comando de lectura o escritura, se debe
proporcionar la primera direcci
on de memoria simultaneamente con el comando, posterior-
ESIME
123
ICE
mente se espera la se
nal de confirmacion de recepcion de comando; el tiempo en que la se
nal
de reconocimiento se produce varia, dependiendo del estado del controlador.
La se
nal de reconocimiento se activa en el siguiente ciclo de reloj despues de enviar
el comando, si el controlador no esta ocupado en otros procesos. En caso contrario, si el
controlador se encuentra ocupado ejecutando una instruccion de autoactualizacion, la se
nal
de reconocimiento se activar
a al terminar el periodo de autoactualizacion del controlador.
La primera direcci
on de memoria (fila + columna + banco) debe mantenerse activa durante tres ciclos de reloj despues de la activacion de la se
nal de reconocimiento. Las siguientes
direcciones de memoria deber
an ser proporcionadas cada ciclo de reloj.
La transferencia de datos se sincroniza con la se
nal de reloj defasada 90 (CLK90). La
primera palabra de datos debe enviarse en el primer ciclo alto de esta se
nal de reloj. El ancho
de palabra que se enva al controlador es de 16 bits, este es el doble del ancho de palabra de
la interfaz fsica con la memoria DDR SDRAM, debido a que el controlador divide la palabra
de datos enviada a el en dos y las enva a la memoria en ambos flancos de la se
nal de reloj
(DDR).
El final de una tarea de escritura se marca con la se
nal Burst Done (Rafaga Terminada)
inmediatamente despues de la u
ltima direccion de memoria donde se desea escribir. Dependiendo de la longitud de r
afaga con la que se trabaja, la duracion de la se
nal Burst Done
varia de 1 a 4 ciclos de reloj. La consecuente accion de la recepcion de esta se
nal es que el
controlador desactiva la se
nal de reconocimiento cuando ha cargado los datos exitosamente
en la memoria, adem
as se debe dejar de enviar el comando despues de activarse la se
nal de
rafaga terminada.
El siguiente comando debe ser enviado hasta asegurarse que la se
nal de reconocimiento
esta desactivada. Las operaciones consecutivas de escritura, cada una mediante un
comando, solo son soportadas cuando los datos se encuentran en la misma fila y
banco. En la Figura 3.17 se demuestra como debe realizarse o sincronizarse una operaci
on
de escritura. La Figura muestra la escritura de datos para un controlador con longitud de
rafaga cuatro, mientras se escriben datos en dos localidades de memoria.
IPN
124
ESIME
3.4.2.3.
Lectura.
ESIME
125
ICE
3.4.2.4.
Auto Actualizaci
on.
La naturaleza de las memoria SDRAM requiere que estas sean actualizadas periodicamente para no perder el contenido de las celdas de memoria. Para actualizar una memoria
de tipo SDRAM se debe acceder periodicamente a la mayor cantidad de filas, en la memoria,
que sea posible, leyendo y reescribiendo los datos en las mismas localidades de memoria. El
proceso de actualizaci
on (lectura y reescritura de datos)se completa internamente.
Abriendo y cerrando la mayor cantidad de celdas, en las filas y bancos de la memoria
se logra no perder el contenido de estas, sin embargo para simplificar el controlador de
la memoria los dispositivos de memoria proporcionan un comando de Auto Actualizaci
on,
que desarrolla esta operaci
on en una fila en cada banco simultaneamente. El dispositivo
SDRAM adem
as contiene un contador interno que itera para cubrir o actualizar todas las
filas posibles. El controlador debe simplemente enviar un n
umero suficiente de comandos de
Autoactualizaci
on (uno por fila de memoria) cada cierto intervalo. El periodo entre cada
comando de autoactualizaci
on esta definido para cada dispositivo en particular y mientras
este proceso se lleva a cabo ning
un otro comando puede ser enviado a la memoria SDRAM.
Este controlador realiza una actualizacion de la memoria en intervalos definidos por la
IPN
126
ESIME
frecuencia de operaci
on. Por ejemplo para una frecuencia de 166 MHz, la peticion de un
proceso de actualizaci
on se activa cada 7.8 S; cuando esto sucede se debe terminar cualquier
operacion en proceso en los pr
oximos 20 ciclos de reloj.
Cuando la memoria ha terminado con el proceso de actualizacion, se activa la se
nal ar done
del controlador. En promedio el proceso de autoactualizacion se toma 40 ciclos de reloj, por
tanto este periodo varia con la frecuencia de reloj que se use con el controlador.
Es primordial tener en cuenta el proceso de autoacutalizacion, ya que interfiere en algunos
casos con la escritura o lectura de datos y debe esperarse a que este proceso se complete para
seguir con sus operaciones de datos con la memoria.
Al obtener el controlador de la memoria DDR SDRAM a traves de la herramienta MIG,
de Xilinx, es certero tener el control de la misma, usando el dise
no obtenido de la manera
adecuada. Conocer como funciona este controlador, proporciona el medio ideal para darle la
funcion deseada al dispositivo de memoria.
3.4.3.
ESIME
127
ICE
3.5.
Integraci
on de Elementos Para Implementar el
SILOG.
Las secciones anteriores de este captulo han desarrollado y descrito como se elaboraron
los controladores en c
odigo VHDL que permitiran el manejo de los dispositivos constituyentes
del prototipo de SILOG propuesto, sin embargo estos a
un funcionan independientemente y se
necesita de un medio que los haga trabajar en conjunto para obtener los resultados buscados.
Entrelazar estos m
odulos es una tarea mas compleja que solo relacionar las entradas y
salidas correspondientes, adem
as de esto es indispensable tener el conocimiento adecuado
del funcionamiento de las partes independientes y la forma en que proporcionan y requieren
informaci
on para as realizar las transferencias, transiciones, esperas y adecuaciones necesarias
para un funcionamiento
optimo.
La pantalla TFT-LCD es el destino final de la mayora de la informacion que se utiliza,
debido que esta pantalla es el medio principal de visualizacion en el sistema; existen dos
fuentes de datos que deben terminar desplegandose en la pantalla. Por un lado la informaci
on
de coordenadas de ubicaci
on terrestre la cual es texto que proviene del modulo RS232-GPS
y por el otro lado la segunda fuente de datos proviene originalmente de la memoria SD sin
embargo estos datos son acarreados desde esta memoria hasta la DDR SDRAM; a traves
del control del FPGA. La Figura 3.19 muestra un diagrama a bloques de como todos los
elementos independientes se relacionan y la direccion del flujo de datos en el sistema.
El proceso de integraci
on, direccion y control de las diferentes tareas de los modulos
independientes se realiza en una secuencia de eventos necesarios para recolectar la informaci
on
necesaria y su correspondiente exposicion.
Los dos procesos principales de obtencion de informacion y su desplegado se llevan a cabo
de la siguiente forma.
3.5.1.
Obtenci
on y Desplegado de Coordenada Geogr
afica.
Con el m
odulo VHDL desarrollado en la seccion 3.2.2 se convierten los datos seriales del
modulo receptor RGM-3000 en caracteres ASCII individuales pertenecientes a las cadenas
de informaci
on que el mismo receptor provee. Se eval
ua cada caracter que se obtiene y se
IPN
128
ESIME
3.5 Integraci
on de Elementos Para Implementar el SILOG.
ESIME
129
ICE
end if;
when st4_search_P =>
if data = x"50" then
next_state <= st5_search_R;
else
next_state <= st2_search_24;
end if;
when st5_search_R =>
if data = x"52" then
next_state <= st6_search_M;
else
next_state <= st2_search_24;
end if;
when st6_search_M =>
if data = x"4D" then
next_state <= st9_ram;
else
next_state <= st2_search_24;
end if;
when st7_search_C =>
if data = x"43" then
next_state <= st9_ram;
else
next_state <= st2_search_24;
end if;
when st8_search_A =>
if data = x"41" then
next_state <= st9_ram;
else
next_state <= st8_search_A;
end if;
when st9_ram =>
if data = x"0D" or data = x"0A" then
next_state <=st10_bypass;
else
next_state <= st9_ram;
end if;
when st10_bypass =>
next_state <=st2_search_24;
end case;
end process;
Ram_Data:process (data_valid, ram_en)
begin
if rising_edge(data_valid) then
if ram_en = 1 then
char_rs232(cntr)<= data;
end if;
end if;
end process;
Despues de almacenar la cadena requerida y comprobada su validez mediante el tercer
parametro de la misma (ver Tabla 2.1.4) es necesario dar a conocer esta informacion mediante
la pantalla TFT-LCD.
Para desplegar en pantalla caracteres alfanumericos, se utilizan dos colores contrastantes
para tener una visualizaci
on adecuada de las palabras, com
unmente se utilizan el negro y
blanco para tal prop
osito, es decir un color para el texto y otro para el fondo.
IPN
130
ESIME
3.5 Integraci
on de Elementos Para Implementar el SILOG.
ESIME
131
ICE
IPN
132
ESIME
3.5 Integraci
on de Elementos Para Implementar el SILOG.
end if;
end process;
process(VDE, i_RST, i_VS_GPS)
begin
if i_RST = 1 or VSync = 0 then
linecnt <= (others => 0);
elsif falling_Edge(VDE) then
linecnt <= linecnt + 1;
else
linecnt <= linecnt;
end if;
end process;
addra
Instance : rom
PORT MAP (
ADDR
=>
DATA
=>
);
addra,
douta
Se usan las se
nales propias de la sincronizacion de la pantalla TFT-LCD, para ubicar el texto
en alguna parte especfica de la misma y realizar el barrido vertical por las 16 lneas de los
caracteres. Se comienza con la lnea superior de cada caracter, continuando hacia abajo con
las 16 lneas que componen a los caracteres y sus respectivos pixeles individuales, para lograr
mostrar por completo una lnea de texto.
A partir de la cadena de caracteres ASCII obtenida del modulo RGM-3000 y con la
combinaci
on de la memoria ROM de representaciones binarias de caracteres ASCII, se generan u
nicamente los valores RGB que se necesitan para desplegar en pantalla el texto de la
informaci
on GPS obtenida; con el siguiente codigo VHDL:
process(i_CLK_9MHz, i_RST, bitcnt, douta, VSync)
begin
if i_RST = 1 or VSync = 0 then
txt_R <= (others => 0);
txt_G <= (others => 0);
txt_B <= (others => 0);
elsif rising_Edge(i_CLK_9MHz) then
if douta(conv_integer(bitcnt)) = 1 then
txt_R <= (others => 1);
txt_G <= (others => 1);
txt_B <= (others => 1);
else
txt_R <= (others => 0);
txt_G <= (others => 0);
txt_B <= (others => 0);
end if;
end if;
end process;
ESIME
133
ICE
3.5.2.
Obtenci
on, Decodificaci
on y Desplegado de Mapas Digitales.
La tarjeta SD usa un sistema de archivos FAT (ver seccion 2.4.4), este sistema de archivos
se utiliza para realizar b
usquedas de archivos contenidos en una memoria, en lugar de buscar
un archivo durante todo el volumen de una memoria en la tabla de asignacion de archivos se
tiene una lista de los archivos contenidos y la direccion logica del principio de cada archivo,
lo que agiliza en gran medida la ubicacion de los mismos.
Usualmente la b
usqueda de archivos mediante la tabla de asignacion de archivos se realiza
en sistemas mas complejos como: sistemas operativos de computadoras personales o dispositivos moviles; por tanto usar este metodo para la localizacion de los archivos de imagen en
la tarjeta SD implicara crear un control especializado para utilizar la tabla de asignacion de
archivos. Sin embargo esta etapa no esta considerada en el dise
no original del sistema por lo
que la localizaci
on de los archivos de imagen se realizo de diferente forma.
Para ubicar los diferentes archivos de imagen en formato BMP se utilizo una herramienta
de software para visualizar la direccion en que se encontraba el inicio de cada archivo. La
direccion obtenida mediante software corresponde a la direccion logica de sectores del area
de usuario de la tarjeta SD y esta no es la misma que la direccion fsica necesaria para ser
enviada a traves de un comando de lectura de datos del protocolo SD Bus. Las especificaciones
del formato de datos de la tarjeta SD proporcionan una gua, incluso una formula, para
determinar el inicio del
area de datos de usuario y as conocer o recalcular la direccion fsica
en la que se encuentra cada archivo [8].
Con las direcciones fsicas de localidad de memoria en la tarjeta SD de los archivos se
realizo una peque
na base de datos que relaciona el nombre del archivo y la direccion fsica
necesaria para acceder a los datos correspondientes. En codigo VHDL estas direcciones se
transforman en constantes de 32 bits.
constant
constant
constant
constant
constant
constant
constant
constant
constant
IPN
IMAGE_A
IMAGE_B
IMAGE_C
IMAGE_D
IMAGE_E
IMAGE_F
IMAGE_G
IMAGE_H
IMAGE_I
:
:
:
:
:
:
:
:
:
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
STD_LOGIC_VECTOR(31
134
DOWNTO
DOWNTO
DOWNTO
DOWNTO
DOWNTO
DOWNTO
DOWNTO
DOWNTO
DOWNTO
0)
0)
0)
0)
0)
0)
0)
0)
0)
:=
:=
:=
:=
:=
:=
:=
:=
:=
x"00050200";
x"000B0200";
x"00110200";
x"00170200";
x"001D0200";
x"00230200";
x"00290200";
x"002F0200";
x"00350200";
ESIME
3.5 Integraci
on de Elementos Para Implementar el SILOG.
Para transportar una imagen completa desde la tarjeta SD a la memoria DDR SDRAM,
se efect
uan m
ultiples operaciones de lectura de bloques de 512 Bytes de la tarjeta SD. Se
inicia obteniendo el primer bloque de un archivo de imagen mediante una correspondiente
direccion predeterminada. Esta direccion se enva en el argumento de un comando de lectura
a la tarjeta SD, mientras la tarjeta se encuentre en modo de transferencia de datos, con esto
se ejecuta la transferencia del primer bloque de datos de un archivo desde la memoria SD a
un buffer temporal en el FPGA.
Con el primer bloque de datos en el FPGA se realiza un analisis de su contenido. La
primera comprobaci
on que se realiza se trata de la verificacion de los primeros dos bytes del
bloque, estos deben corresponder a los caracteres ASCII B y M, que aseguran que se tiene
el primer bloque de un archivo de imagen en formato de mapa de bits.
if SD_buffer_address = x"00" then
if i_SD_bffr_data = x"4D42" then ----BM
Header_BMP(CONV_INTEGER(SD_buffer_address)) <= i_SD_bffr_data;
end if;
end if;
Asegurando que se tiene el bloque inicial de un archivo BMP, se almacenan en un registro
los campos del tama
no total de archivo en bytes y tambien los bytes que determinar el valor
de bytes que se deben recorrer desde el principio del archivo para encontrar datos de pixeles.
El registro del tama
no total de archivo se usa para controlar la cantidad de bloques que
se leeran de la tarjeta SD para obtener el contenido total de un solo archivo de imagen. El
segundo valor almacenado, se usa para conocer la localizacion del inicio de los datos de pixeles
y desde ah comenzar la transferencia de datos u
tiles hacia la DDR SDRAM.
file_size_inbytes <= Header_BMP(3)&Header_BMP(2);
off_bytes
<= Header_BMP(7)&Header_BMP(6);
Se inicia la transferencia a la memoria DDR SDRAM mediante el controlador de la misma
y el correspondiente comando de escritura. Cuando el buffer temporal de 512 bytes se ha
vaciado se llena con un nuevo bloque de datos proveniente de la memoria SD y se realiza la
transferencia de datos hasta terminar con la transferencia del archivo de imagen completo a
la memoria DDR SDRAM.
o_RAM_input_data
<= i_SD_bffr_data;
ESIME
135
ICE
IPN
136
ESIME
3.5 Integraci
on de Elementos Para Implementar el SILOG.
ESIME
137
ICE
RED
<= PixPix(0)(1)(7 downto 0);
GREEN <= PixPix(0)(0)(15 downto 8);
BLUE <= PixPix(0)(0)(7 downto 0);
when "001" =>
RED
<= PixPix(0)(2)(15 downto 8);
GREEN <= PixPix(0)(2)(7 downto 0);
BLUE <= PixPix(0)(1)(15 downto 8);
when "010" =>
RED
<= PixPix(0)(4)(7 downto 0);
GREEN <= PixPix(0)(3)(15 downto 8);
BLUE <= PixPix(0)(3)(7 downto 0);
when "011" =>
RED
<= PixPix(0)(5)(15 downto 8);
GREEN <= PixPix(0)(5)(7 downto 0);
BLUE <= PixPix(0)(4)(15 downto 8);
when "100" =>
RED
<= PixPix(1)(1)(7 downto 0);
GREEN <= PixPix(1)(0)(15 downto 8);
BLUE <= PixPix(1)(0)(7 downto 0);
when "101" =>
RED
<= PixPix(1)(2)(15 downto 8);
GREEN <= PixPix(1)(2)(7 downto 0);
BLUE <= PixPix(1)(1)(15 downto 8);
when "110" =>
RED
<= PixPix(1)(4)(7 downto 0);
GREEN <= PixPix(1)(3)(15 downto 8);
BLUE <= PixPix(1)(3)(7 downto 0);
when "111" =>
RED
<= PixPix(1)(5)(15 downto 8);
GREEN <= PixPix(1)(5)(7 downto 0);
BLUE <= PixPix(1)(4)(15 downto 8);
when others =>
RED
<= x"00";
GREEN <= x"00";
BLUE <= x"00";
end case;
end process;
IPN
138
ESIME
3.5 Integraci
on de Elementos Para Implementar el SILOG.
Estos botones cambian la imagen mostrada, cada accion de un boton tiene una relaci
on
directa con la direcci
on de memoria de la tarjeta SD en donde se ubica la imagen de mapa
digital requerido. Esto hace que sea necesario desarrollar un modulo VHDL que controle esta
relacion.
NEXT_IMAGE_DECODE: process (i_CLK, i_RST, active_image, trigger)
begin
if (i_RST = 1) then
next_active_image <= IMAGE_E;
elsif (rising_edge(i_CLK)) then
case (active_image) is
when IMAGE_A =>
if trigger = "0001" then
next_active_image <= IMAGE_G;
elsif trigger = "0010" then
next_active_image <= IMAGE_B;
elsif trigger = "0100" then
next_active_image <= IMAGE_D;
elsif trigger = "1000" then
next_active_image <= IMAGE_C;
end if;
when IMAGE_B =>
if trigger = "0001" then
next_active_image <= IMAGE_H;
elsif trigger = "0010" then
next_active_image <= IMAGE_C;
elsif trigger = "0100" then
next_active_image <= IMAGE_E;
elsif trigger = "1000" then
next_active_image <= IMAGE_A;
end if;
.
.
.
when IMAGE_I =>
if trigger = "0001" then
next_active_image <= IMAGE_F;
elsif trigger = "0010" then
next_active_image <= IMAGE_G;
elsif trigger = "0100" then
next_active_image <= IMAGE_C;
elsif trigger = "1000" then
next_active_image <= IMAGE_H;
end if;
when others =>
next_active_image <= IMAGE_E;
end case;
end if;
end process;
ESIME
139
ICE
Captulo 4.
Implementaci
on Final y Resultados del
SILOG.
De acuerdo a la secci
on 2.6.1 el captulo 3 desarrollo la etapa de elaboracion de una aplicacion mediante un HLD, se describi
o la aplicacion o sistema en el editor de HDL del ambiente
ISE Design Suite; completamente en lenguaje VHDL. Este captulo expone la metodologa
para poner en funcionamiento los procesos desarrollados en codigo VHDL en el FPGA de la
tarjeta Spartan 3E. Tambien se describen los resultados obtenidos y observados al programar
el FPGA.
4.1.
Implementaci
on del SILOG.
Siguiendo el proceso de la seccion 2.6.1, concluida la etapa de elaboracion consecuentemente se debe pasar a la etapa de implementacion. Para esto se hace uso mayoritariamente
de las herramientas de software de Xilinx y principalmente del navegador de proyecto del
ambiente ISE Desing Suite. La Figura 4.1 muestra parte de la ventana del navegador de
proyecto de Xilinx con los archivos fuente del prototipo de SOLOG.
141
Implementaci
on Final y Resultados del SILOG.
IPN
142
ESIME
4.1 Implementaci
on del SILOG.
Se pueden visualizar, en orden descendente, los controladores: de la interfaz RS232 para el control del m
odulo GPS, de la pantalla TFT-LCD, de la tarjeta SD, de la memoria
DDR SDRAM como n
ucleo proporcionado por Xilinx y la logica adicional de funcionamiento
como: el generador de reloj, el control de botones de navegacion y la maquina de estados de
control general.
En el mismo panel se observa el archivo Top.ucf que contiene especificaciones de sincronizacion respectivas al controlador de la memoria DDR SDRAM. En el tambien se encuentra
la asignaci
on de pines del FPGA, es decir, las conexiones del FPGA con los dispositivos
externos. Estas mismas especificaciones incluyen el estandar de voltaje usado en cada lnea
de conexi
on seg
un fue necesario. El texto completo del archivo TOP.ucf se muestra en el
Apendice A
Dentro de la jerarqua, mostrada en la Figura 4.1, se observan los controladores de dispositivos externos junto a los subrutinas de control necesarias en cada uno de ellos. Dentro
de estas subrutinas se encuentran bloques de memoria que son usados como buffer en el caso
del modulo SD Card Memory Block y como memoria de datos de caracteres ASCII para el
caso del archivo fuente ROM memory.
Todos estos archivos en conjunto deben pasar por el proceso de sntesis. En la parte
izquierda baja del panel de dise
no (Figura 4.1) se observan los tres procesos principales que
deben ser ejecutados para implementar la aplicacion. Basta con realizar un doble click en el
icono de cada proceso para ejecutar los programas adecuados automaticamente.
Al ejecutar el proceso de Synthesize - XTS toda la descripcion hecha en VHDL se convierte en un archivo NGC (descrito en la seccion 2.6.1.1). Ademas el software de sntesis
XTS compila (depura) los circuitos o estructuras elaboradas y proporciona advertencias o
informaci
on de errores encontrados. Sin ning
un error que detenga la siguiente fase, se pueden
ejecutar los procesos de interpretacion, asignacion, ubicacion y conexion que se engloban en la
parte de Implement Design en el panel izquierdo de la ventana del Navegador de Proyecto. Al
terminar estos procesos el navegador arroja un reporte de los recursos del dispositivo FPGA
que fueron utilizados, un resumen de este reporte se ve en la Figura 4.2.
Adem
as del reporte de uso de recursos la Figura 4.3 muestra graficamente como se sit
uan
los elementos fsicos, que componen al codigo VHDL desarrollado, en el dispositivo FPGA.
Concluidos los procesos de interpretacion, asignacion, ubicacion y conexion, por u
ltimo
ESIME
143
ICE
Implementaci
on Final y Resultados del SILOG.
IPN
144
ESIME
4.1 Implementaci
on del SILOG.
ESIME
145
ICE
Implementaci
on Final y Resultados del SILOG.
resta generar el archivo .BIT que se usara para configurar o programar el dispositivo FPGA.
Al dar doble click en el apartado Generate Programming File se ejecuta el proceso de creacion del archivo de cadena de bits que contiene toda la informacion u
til al FPGA. Una vez
generado este archivo, que tendr
a el nombre del archivo principal junto con la extension bit
(Top SILOG.bit).
Para programar o configurar el FPGA se requieren de dos recursos: el archivo de cadena
de bits y un medio o herramienta para trasladar este al FPGA. La tarjeta Spartan 3E usada
en este proyecto incluye en su dise
no intrnseco una interfaz JTAG-USB para configurar
los dispositivos programables en ella, por tanto lo u
nico necesario es conectar la tarjeta a
una PC y ejecutar desde el software iMPACT la exploracion para reconocer los dispositivos
programables en ella; de acuerdo a lo expuesto en la seccion 2.6.1.2. Los resultados de tal
exploraci
on y la ventana principal del software iMPACT se muestra en la Figura 4.4.
IPN
146
ESIME
4.2.
Resultados Observados.
ESIME
147
ICE
Implementaci
on Final y Resultados del SILOG.
IPN
148
ESIME
creada para recopilar las cadenas ASCII envidas por el modulo RGM-3000. De esta misma
forma se comprueba el funcionamiento de la conversion de datos ASCII a colores RGB desplegables, proceso que describi
o en la seccion 3.5.1.
Para comprobar que estos datos son realmente del modulo RGM-3000 se desconecta la
interfaz RS232 que une a este dispositivo y a la tarjeta Spartan 3E, con lo cual se observa
que en la pantalla se dejan de percibir cambios en las coordenadas y la hora actual.
Con la visualizaci
on de la imagen de un mapa digital en pantalla se deduce que tres de
los controladores elaborados cumplen con sus tareas, estos son: el controlador de la pantalla
TFT-LCD, el controlador de la tarjeta SD y ademas el controlador de la memoria DDR
SDRAM. Se deduce el buen funcionamiento ya que se observan en la pantalla la informaci
on
desplegada de manera adecuada de las imagenes de mapas digitales que son trasportadas
desde la tarjeta SD donde inicialmente residen hacia el FPGA para ser desplegadas en la
pantalla. Tambien cumple su funci
on el controlador de la memoria DDR SDRAM debido a
que esta es una intermediaria entre la tarjeta SD y la pantalla TFT-LCD para las imagenes.
Un metodo de comprobaci
on de los elementos que integran el sistema es la desconexi
on
de los mismos y as verificar el posible cambio en el funcionamiento del sistema. Debido a
que la memoria DDR-SDRAM esta fija en la tarjeta Spartan 3E no es posible desconectarla
sin embargo al desconectar la tarjeta SD una vez que el sistema esta funcionando este sigue
presentando una imagen en pantalla, esto es normal pues los datos de la imagen han sido
transferidos de la tarjeta SD hacia la memoria temporal DDR-SDRAM.
Al realizar la misma desconexi
on de la tarjeta SD y reiniciar el sistema su funcionamiento
cambia y se observa una pantalla negra, es decir, no se muestra la imagen de un mapa digital
aunque se observan los datos GPS. Este comportamiento es precisamente esperado de acuerdo
a las condiciones en que se pone en funcionamiento el sistema.
La u
ltima parte fsica del sistema a poner a prueba son los botones de navegacion, estos
deberan al presionarlos cambiar la imagen que se observa en pantalla de modo que sea
visible el desplazamiento en un mapa. Al realizar pruebas de estos botones se observo un
funcionamiento adecuado del 50, es decir, el funcionamiento esperado se obtiene solo la
mitad de las veces de la pruebas. El error observado es que al presionar alguno de los botones
de desplazamiento la imagen que se obtiene en pantalla se encuentra distorsionada.
ESIME
149
ICE
Implementaci
on Final y Resultados del SILOG.
4.3.
An
alisis de los Resultados.
El sistema dise
nado presenta dos errores en su funcionamiento. Tras un analisis, a partir
de la verificaci
on en circuito, se detecto la posible causa de los puntos blancos visibles en la
imagen en pantalla. En la Figura 4.6 se observan mas a detalle los resultados observables en
pantalla.
IPN
150
ESIME
4.3 An
alisis de los Resultados.
ESIME
151
ICE
En conclusi
on el sistema cumplio en su mayor parte con el funcionamiento esperado,
logrando la visualizaci
on deseada en primera instancia. Los errores encontrados tienen cabida
al estar implementando una primera version de sistema actual, la posterior adecuacion con
certeza lograr
a rectificar tales errores.
Por tanto se logr
o en esta primera etapa tener control certero sobre los elementos de
hardware seleccionados para el sistema, aunque aun debe mejorarse el sistema para observar
un comportamiento similar a un dispositivo comercial.
Debe tomarse en cuenta ademas, de manera bastante importante, que el sistema fue
totalmente desarrollado en c
odigo VHDL con lo que este sistema contiene un n
umero amplio
de lneas de c
odigo que deben ser analizadas para rectificar el sistema.
Es importante recalcar que el controlador desarrollado para la tarjeta SD a traves de un
FPGA, no es implementado por el puerto de comunicaciones SPI, con esto se debe entender
que la forma en que se desarroll
o este controlador permite una mayor cantidad de datos
intercambiada entre FPGA y SD. Con esto, ademas de ser u
til al actual sistema, el controlador
aqu desarrollado para la tarjeta SD tambien es u
til en m
ultiples aplicaciones que podran ser
desarrolladas posteriormente.
Finalmente, la implementaci
on de al menos cuatro controladores independientes y su
consecuente funcionamiento en conjunto es el verdadero logro y avance que debe tomarse en
cuenta para valorar este proyecto.
Las recomendaciones propuestas para mejorar el dise
no de SILOG son:
Dise
nar un control de frecuencias de reloj con mejor compatibilidad.
Dise
nar un control de archivos FAT para la tarjeta SD para mejorar la b
usqueda de
153
archivos.
Relacionar activamente las imagenes de mapas digitales con coordenadas geograficas.
Dise
nar un metodo de almacenamiento hacia la memoria DDR-SDRAM diferente para
mostrar en pantalla las im
agenes activamente de acuerdo a las coordenadas geograficas.
IPN
154
ESIME
Ap
endice A C
odigos en VHDL.
Se anexa al documento un CD-ROM que contiene el codigo VHDL elaborado para este
proyecto.
155
Bibliografa
[1] James Bao-yen Tsui. Fundamentals of global positioning system receivers: a software
approach. John Wiley & Sons, Inc., 2000.
[2] Direcci
on General de Normas de Sistemas de Difusion de la Subsecretara de Comunicaciones y Desarrollo Tecnologico de la Secretara de Comunicaciones y Transportes.
Especificaciones y requerimientos para la instalaci
on y operaci
on de estaciones de radiodifusi
on sonora moduladas en amplitud, Enero 2000.
[3] Ra
ul Ruiz Meza; Jose Manuel Riera Sals. Obtencion de conductividad del suelo mediante
mediciones de campo electrico. In XXI Simposium Nacional de la Uni
on Cientfica
Internacional de Radio, pages 155159, 2006.
[4] RoyalTek Company LTD. RGM-3000/REB-3000 Operational Manual, 1.3 edition, Mayo
2002.
[5] Stuart Sutherland. Verilog HDL, Quick Reference Guide. Sutherland HDL Inc., 2001.
[6] Peter J. Ashenden. VHDL Tutorial. Elsevier Science, 2004.
[7] SHARP. Device Specification For TFT-LCD Module.
[8] SD Card Association. SD Specifications Part 1 Physical Layer Simplified Specification
Version 4.10.
[9] Kamran; Ebrahim Mansoor; Talha Umar Ahmad, Jahanzeb; Raza. Fpga based implementation of baseline jpeg decoder. pages 29:129:6, 2009.
[10] Xilinx. Spartan-3E FPGA Starter Kit Board User Guide, 1.2 edition, Enero 2011.
157
BIBLIOGRAFIA
IPN
158
ESIME