Está en la página 1de 99

Radioenlace Experimental

Satélite-Estación Terrena en la
Banda de Ultra Alta Frecuencia
(UHF) para la Transmisión Digital
de Datos.
por
Hernán Ojeda Delgado
Tesis sometida como requisito parcial para
obtener el grado de
MAESTRÍA EN CIENCIA Y TECNOLOGÍA
DEL ESPACIO
en el
Instituto Nacional de Astrofísica, Óptica y
Electrónica
Marzo 2019
Tonantzintla, Puebla
Bajo la supervisión de:
Dr. Celso Gutiérrez Martínez
Investigador Titular INAOE

©INAOE 2019
El autor otorga al INAOE el permiso de
reproducir y distribuir copias parciales o
totales de esta tesis.
RESUMEN

E
n el contexto de las comunicaciones entre una estación terrena y un sa-
télite pequeño en el espacio, existe la necesidad de conocer la manera
en que éste está operando. En este sentido al subsistema encargado de
obtener, controlar y comunicar la información se le conoce como telemetría;
siendo el intercambio de información donde se emplean radioenlaces en las
bandas de ultra alta frecuencia (UHF) para la transmisión de señales de tele-
metría y tele-comando, así como la transferencia de datos provenientes de sen-
sores remotos. En este trabajo de tesis, se propone el estudio y realización de
un subsistema mínimo transmisor; el cual recibe datos de telemetría y estable-
ce un enlace satélite-tierra con subsistema receptor. El subsistema transmisor
procesa los datos de sensores y los codifica hacia el protocolo de comunicación
AX.25. Los datos son transmitidos al subsistema receptor mediante una porta-
dora de comunicaciones en la banda de 430 − 440MHz. Este trabajo es parte de
la investigación y desarrollo de satélites pequeños experimentales, en el mar-
co del posgrado en Ciencia y Tecnología del Espacio del Instituto Nacional de
Astrofísica, Óptica y Electrónica (INAOE).
AGRADECIMIENTOS

Instituto Nacional de Astrofísica,Óptica y Electrónica

P
or la oportunidad de realizar mis estudios de maestría,por los espacios
brindados así como el apoyo alimenticio brindado,a cada una de las per-
sonas que forman parte del instituto que me brindaron su apoyo a largo
de mis estudios de maestría.

Consejo Nacional de Ciencia y Tecnología

Por el apoyo económico brindado bajo la beca otorgada con el número de


registro 777438 a lo largo de mis estudios de maestría. A todas las personas
que contribuyen al financiamiento de las becas CONACYT.

Dr. Celso Gutiérrez Martínez

Por todo el esfuerzo y apoyo que me ha brindado a lo largo de mis estudios


de maestría, por sus comentarios,sugerencias,consejos y paciencia,contribuyeron
en gran medida para hacer posible la terminación de este trabajo de tesis.

Dr. Roberto Stack Murphy Artega,Dr. Rogerio Enríquez Caldera,


Dr. Gustavo Rodríguez Gómez

A todos ustedes agradezco por haber sido parte del el jurado de este trabajo
de tesis,por el tiempo brindado para la revisión de este trabajo, por todos los
comentarios y sugerencias que fueron de ayuda para el desarrollo de esta mis-
ma.
DEDICATORIA

A mis padres:Sara y José.


Mis hermanos:Diana y Ulises.
Mis sobrinos: Diego,Angel,Jared y Mateo.

A mis padres Sara y José

Por enseñarme a ser constante y disciplinado, por todos los cuidados que me
han brindado, por siempre darme animo,darme palabras de apoyo y sus con-
sejos, por ser el ejemplo de vida para mi; padres sin ustedes no hubiera sido
posible terminar mi trabajo de tesis.

Compañeros y amigos

M.C. Jacobo Meza Pérez y a M.C. Alfredo Torres Fórtiz por sus comentarios
y críticas, por todo el apoyo brindado y por toda la contribución que hicieron a
este trabajo de tesis.

A mis amigos, por hacer de este tiempo de alegrías y grandes momentos,por


la motivación y el acompañamiento a lo largo de estos dos años.

Gracias a todos.
Índice general

Índice general viii

Índice de figuras x

Índice de tablas xii

1 Introducción 1
1.1 Propuesta de tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Objetivo general . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.2 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . 2
1.3 Estructura del documento . . . . . . . . . . . . . . . . . . . . . . 2

2 Esquema general de un enlace satélite-estación terrena en la banda


UHF 3
2.1 Arquitectura de un enlace satélite-tierra . . . . . . . . . . . . . . 4
2.2 Subsistema de recepción en tierra . . . . . . . . . . . . . . . . . . 4
2.3 Subsistema transmisor a bordo del satélite . . . . . . . . . . . . . 5
2.4 Transmisión en la banda de UHF . . . . . . . . . . . . . . . . . . . 6
2.5 Formatos de modulación analógica . . . . . . . . . . . . . . . . . 6
2.5.1 Modulación por amplitud (AM) . . . . . . . . . . . . . . . 7
2.5.2 Modulación Angular (FM) . . . . . . . . . . . . . . . . . . 8
2.6 Formatos de modulación digital . . . . . . . . . . . . . . . . . . . 9
2.6.1 Modulación por Desplazamiento de Amplitud(ASK) . . . 10
2.6.2 Modulación por Desplazamiento de Frecuencia(BFSK) . . 11
2.6.3 Modulación por desplazamiento de Fase(BPSK) . . . . . . 12

3 Transmisión de señales de datos desde satélites pequeños 13


3.1 Satélites pequeños . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Datos de sensores a bordo del satélite . . . . . . . . . . . . . . . . 16
3.3 Datos de posicionamiento (GPS) . . . . . . . . . . . . . . . . . . . 16
3.3.1 Características de la señal GPS . . . . . . . . . . . . . . . . 18
3.3.2 Frecuencias de operación de GPS . . . . . . . . . . . . . . 18
3.3.3 Formatos de modulación . . . . . . . . . . . . . . . . . . . 20
3.3.4 Técnicas de multicanalización . . . . . . . . . . . . . . . . 23
3.3.5 Cálculo de la posición y precisión mediante señales GPS . 25
3.3.6 Restricciones del funcionamiento del sistema GPS . . . . 27

4 Protocolo de transmisión de datos AX.25 29


4.1 Modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Protocolo AX.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 Estructura del protocolo AX.25 . . . . . . . . . . . . . . . . . . . 31
4.3.1 Banderas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Dirección . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.3 Bits de control . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.3.4 Identificador de protocolo . . . . . . . . . . . . . . . . . . 34
4.3.5 Información . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3.6 Secuencia de verificación de trama (FCS, Frame Check Se-
quence). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 La comunicación serial: datos de información en formato TTL y
RS232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4.1 Formato TTL . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4.2 RS-232 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5 Desarrollo del enlace experimental satélite-tierra 39


5.1 Bloque transmisor . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.2 Bloque receptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3 Generación de datos digitales . . . . . . . . . . . . . . . . . . . . 48
5.3.1 Generación de la trama AX.25 . . . . . . . . . . . . . . . . 48
5.3.2 Ejemplo de construcción de la trama AX.25 . . . . . . . . 51
5.4 Aplicación experimental: transmisión de posicionamiento GPS . 54
5.4.1 Recepción de señales GPS . . . . . . . . . . . . . . . . . . 54
5.4.2 Bloque transmisor . . . . . . . . . . . . . . . . . . . . . . . 59
5.4.3 Bloque receptor . . . . . . . . . . . . . . . . . . . . . . . . 61

6 Conclusiones 67

Bibliografía 69

A Apéndice 73
Índice de figuras

Figura 2.1 Arquitectura de un enlace tierra-satélite-tierra. . . . . . . 4


Figura 2.2 Modelo básico de una estación terrena [1]. . . . . . . . . . 5
Figura 2.3 Diagrama de bloques de un transpondedor [1]. . . . . . . 5
Figura 2.4 Formas de onda de los formatos de modulación analógica. 7
Figura 2.5 Formas de onda de los formatos de modulación digital [2]. 10
Figura 2.6 Modulador ASK. . . . . . . . . . . . . . . . . . . . . . . . . 11
Figura 2.7 Diagrama a bloques básico de un modulador PSK. . . . . 12

Figura 3.1 Vista isométrica de un CubeSat [3]. . . . . . . . . . . . . . 14


Figura 3.2 Componentes de la señal GPS [4]. . . . . . . . . . . . . . . 19
Figura 3.3 Generación de las portadoras L1 y L2 así como los codigos
C/A y P apartir de la frecuencia fundamental f 0 = 10.23MHz [5, 6]. 20
Figura 3.4 Modulación BPSK [6]. . . . . . . . . . . . . . . . . . . . . . 20
Figura 3.5 Diagrama a bloques básico de un modulador PSK. . . . . 21
Figura 3.6 Comparación de una señal de banda estrecha con una se-
ñal de espectro de propagación de espectro disperso. La señal de
banda estrecha se suprime cuando se transmite espectro expan-
dido [7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figura 3.7 Modulación DSSS [6]. . . . . . . . . . . . . . . . . . . . . . 22
Figura 3.8 Secuencia de tiempos de la señal codificada y decodifica-
da [8]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 3.9 Técnicas de multicanalización [9]. . . . . . . . . . . . . . . 24
Figura 3.10 Solución en la determinación de la posición [10]. . . . . . 25
Figura 3.11 Estación base y móvil del posicionamiento diferencial [10]. 27

Figura 4.1 Comunicación serial [11]. . . . . . . . . . . . . . . . . . . . 37


Figura 4.2 Señal de comunicación serial en formato TTL [11]. . . . . 38
Figura 4.3 Señal de comunicación serial en formato RS-232 [11]. . . 38

Figura 5.1 Diagrama general del subsistema de comunicación. . . . . 40


Figura 5.2 Imagen de la tableta ARDUINO MEGA 2560. [12] . . . . 41
Figura 5.3 Compuerta lógica NOT 74LS04. . . . . . . . . . . . . . . . 41
Figura 5.4 Formato de transmisión asíncrona [13]. . . . . . . . . . . . 42
Figura 5.5 a)Tren de pulsos de amplitud 5V b)Tren de pulsos inver-
tido de amplitud 5V . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Figura 5.6 Señal de datos digitales a la salida del ARDUINO MEGA
y su inversión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Figura 5.7 Circuito transmisor TX-SAW 433/s-Z . . . . . . . . . . . . 43
Figura 5.8 Diseño del circuito impreso cara superior. . . . . . . . . . 44
Figura 5.9 Diseño final PCB. . . . . . . . . . . . . . . . . . . . . . . . 44
Figura 5.10 Portadora generada de 433.92Mhz. . . . . . . . . . . . . . 44
Figura 5.11 Portadora generada de 433.92Mhz. . . . . . . . . . . . . . 45
Figura 5.12 Diagrama a bloques del receptor UHF. . . . . . . . . . . . 45
Figura 5.13 Esquema general del modulo receptor. . . . . . . . . . . . 46
Figura 5.14 Circuito receptor Super-het receiver mod. STD-LC. . . . 46
Figura 5.15 Diseño del circuito impreso cara superior. . . . . . . . . . 47
Figura 5.16 Diseño final PCB. . . . . . . . . . . . . . . . . . . . . . . . 47
Figura 5.17 Imagen de la tableta ARDUINO UNO [12]. . . . . . . . . 47
Figura 5.18 Imagen de la ventana principal de ARDUINO. . . . . . . . 48
Figura 5.19 Diagrama de flujo de codificación de la trama AX.25. . . . 49
Figura 5.20 Diagrama de flujo de decodificación de la trama AX.25. . 50
Figura 5.21 Diagrama general del subsistema de comunicación de la
apliación experimental. . . . . . . . . . . . . . . . . . . . . . . . . 54
Figura 5.22 Modulo NEO-6M-0-001. . . . . . . . . . . . . . . . . . . . 55
Figura 5.23 Ejemplo de la trama NMEA 0183. . . . . . . . . . . . . . . 56
Figura 5.24 Ejemplo de la trama GPRMC. . . . . . . . . . . . . . . . . 56
Figura 5.25 Señal de datos a la salida del receptor GPS. . . . . . . . . 57
Figura 5.26 Diagrama a bloques del sistema transmisor de la aplica-
ción experimental. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Figura 5.27 Bloque transmisor de UHF. . . . . . . . . . . . . . . . . . . 60
Figura 5.28 Bloque transmisor en funcionamiento. . . . . . . . . . . . 60
Figura 5.29 Diagrama a bloques del sistema receptor de la aplicación
experimental. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Figura 5.30 Señal a la salida del modulador y su posterior inversión. . 61
Figura 5.31 Subsistema receptor de UHF y decodificador AX.25. . . . 62
Figura 5.32 Subsistema receptor en funcionamiento. . . . . . . . . . . 63
Figura 5.33 Mediciones del receptor UHF/decodificador AX.25. . . . 63
Figura 5.34 Mediciones del sistema receptor. . . . . . . . . . . . . . . . 64
Figura 5.35 Trama enviada y recibida por los subsistemas. . . . . . . . 64
Figura 5.36 Recepción de trama AX.25 a una velocidad de 600 bps. . . 65
Figura 5.37 Recepción de trama AX.25 a una velocidad de 1200 bps. . 65
Figura 5.38 Recepción de trama AX.25 a una velocidad de 2400 bps. . 66
Índice de tablas

Tabla 3.1 Clasificación de satélites respecto a su masa y costo [14]. . 14


Tabla 3.2 Distribución del espacio radioeléctrico en México [14, 15]. 15

Tabla 4.1 Las sietes capas del modelo de referencia OSI [16]. . . . . . 30
Tabla 4.2 Modelo de máquina de estados finitos AX.25 [17]. . . . . . 31
Tabla 4.3 Trama UI del protocolo AX.25. . . . . . . . . . . . . . . . . 32
Tabla 4.4 Campos de dirección de origen (56 bits). . . . . . . . . . . . 33
Tabla 4.5 Campos de dirección de destino (56 bits). . . . . . . . . . . 34
Tabla 4.6 Definiciones de PID en un paquete de AX.25 [17]. . . . . . 35
Tabla 4.7 Características de la verificación de redundancia cíclica del
protocolo AX.25. . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Tabla 5.1 Declaración de banderas de inicio y fin. . . . . . . . . . . . 51


Tabla 5.2 Campos para la dirección de origen. . . . . . . . . . . . . . 51
Tabla 5.3 Campos para la dirección de origen. . . . . . . . . . . . . . 52
Tabla 5.4 Direcciones de origen y destino. . . . . . . . . . . . . . . . . 52
Tabla 5.5 Bits de control . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Tabla 5.6 Identificador de protocolo . . . . . . . . . . . . . . . . . . . 53
Tabla 5.7 Estructura de la trama RMC [18]. . . . . . . . . . . . . . . . 56
Tabla 5.8 Ejemplo de trama AX.25. . . . . . . . . . . . . . . . . . . . 58
CAPÍTULO 1

INTRODUCCIÓN

1.1. Propuesta de tesis


En el marco de una misión satélital, se debe contar con un esquema de co-
municación entre una estación terrena y un nanosatélite distante cuando se
realizan pruebas de misión, tanto en tierra como en vuelos suborbitales. Esto
requiere del establecimiento de un enlace de comunicación con la estación te-
rrena y que ésta pueda seguir la trayectoria del nanosatélite. La comunicación
con el satélite es critica ya que debe asegurarse el envío de comandos y recibir
en respuesta datos de telemetría y de la misión espacial.

Para conocer la posición del nanosatélite, este recibirá señales GPS y las con-
vertirá en datos de posición que podrá retransmitir hacia la estación terrena
mediante el enlace de radiofrecuencia. El subsistema procesará los datos GPS
y los convertirá en datos numéricos mediante el protocolo AX.25. Los datos de
posición serán transmitidos a la estación terrena mediante una portadora de
comunicaciones en la banda de radioaficonados, específicamente en la banda
de 430-440MHz.

1.2. Objetivos
1.2.1. Objetivo general
Desarrollar de un esquema para comunicación satélite-estación terrena de
señales digitales utilizando el protocolo AX.25 en satélites pequeños (TubeSat,
CubeSat).
2 1. Introducción

1.2.2. Objetivos específicos


Analizar enlaces de radiofrecuencia satélite-estación terrena.
Determinar el esquema de sensores abordo del satélite.
Elaborar un esquema receptor mínimo de señales GPS, a bordo del nano-
satélite.
Realizar la conversión datos de sensores y posición al protocolo AX.25
para su transmisión en banda UHF.
Diseñar y realizar el esquema experimental del esquema transmisor-receptor
en UHF en la banda 430-440 MHz.
Desarrollar y validar pruebas del proceso de transmisión-recepción.

1.3. Estructura del documento


Para describir de manera detallada la realización de este trabajo de tesis, el
documento presentado tiene la siguiente estructura:

En el capítulo 1, se explica la propuesta de este trabajo, asimismo se pun-


tualizan el objetivo general y los específicos.
En el capítulo 2, se describe el esquema general del enlace satélite estación
terrena en la banda UHF, los elementos que lo componen, así como también la
descripción de formatos de modulación tanto analógicos como digitales.
En el capítulo 3, se describen los sistemas de nanosatelitales, se describe la
importancia de los sensores, se incluyen las características más relevantes de
las señales de posición GPS.
En el capítulo 4, se describe la estructura del protocolo de datos AX.25, con
el fin de programar la conversión de señales TTL o RS-232 y su transmisión por
el enlace de radiofrecuencia.
En el capítulo 5, se describe el esquema completo de adquisición de señales
de sensores y GPS, la conversión hacia el protocolo AX.25 y la transmisión de
los datos por el enlace de comunicaciones en la banda de UHF.
En la sección final del documento, se incluye el Apéndice A, el cual detalla
los programas realizados para la codificación y decodificación de las tramas
AX.25.
CAPÍTULO 2

ESQUEMA GENERAL DE UN ENLACE SATÉLITE-ESTACIÓN


TERRENA EN LA BANDA UHF

L
os sistemas satélitales constan de diferentes elementos, los cuales traba-
jando en conjunto hacen posible la transmisión de información desde
el espacio hacia la tierra. Generalmente, la información es: voz, audio,
vídeo y datos digitales. Este tipo de información se denomina banda base. En
un sistema de radio frecuencia inalámbrico, la transmisión de señal de baja
frecuencia, requiere una señal portadora de RF, la cual se modula por la infor-
mación a transmitir [14]. En este capitulo se describirá de manera general un
enlace satelite-tierra, y cada uno de los elementos que lo conforman y algunos
de los formatos de modulación empleados para la transmisión de la informa-
ción.
4 2. Esquema general de un enlace satélite-estación terrena en la banda UHF

2.1. Arquitectura de un enlace satélite-tierra


Un enlace satélital esta conformado por un enlace ascendente y uno des-
cente, como se ilustra en la figura 2.1 [19]. El enlace desde la estación terrena
tranmisora (TX) al satélite es llamado ascendente (up link), mientras el enlace
del satélite a la estación terrena receptora (RX) es llamado descendente (down
link). El satélite, mediante sus transpondedores recibe la señal ascendente,la
amplifica y la procesa, y después la transmite de regreso a la tierra[19].

Figura 2.1: Arquitectura de un enlace tierra-satélite-tierra.

2.2. Subsistema de recepción en tierra


Los enlaces tanto de subida como de bajada requieren de una estación terre-
na, ya sea para transmitir o recibir señales desde el espacio. El primer compo-
nente es un modulador de frecuencia intermedia (FI) en trasmisión y un demo-
dulador para la recepción. El segundo comprende un convertidor elevador de
FI a alta frecuencia para la transmisión de RF a FI. El tercer componente es un
amplificador de potencia para la transmisión y un amplificador de bajo ruido.
El cuarto componente en la estación terrena son las antenas [1].
6 2. Esquema general de un enlace satélite-estación terrena en la banda UHF

2.4. Transmisión en la banda de UHF


La banda UHF (UHF,ultra high frequency) es la parte del espectro electro-
magnético que ocupa el rango de frecuencia de 300MHz a 3GHz, equivalentes
en longitud de onda de 1 metro a 10 centímetros, por ello reciben la denomina-
ción de decimétricas. Las frecuencias de esta banda son usadas comúnmente en
comunicaciones vía satélite, en estos sistemas la propagación es a través de la
ionósfera y la polarización de la señal puede cambiar de acuerdo al efecto com-
binado del campo magnético de la tierra y la concentración de iones libres. La
Banda de UHF proporciona pérdidas relativamente bajas para el enlace de RF,
por lo que requiere menor potencia en comparación con sistemas de altas fre-
cuencias [14]. Prácticamente la mayoría de los satélites pequeños en operación
están en el rango de UHF y VFH, siendo suficiente para las misiones actuales
[20].

Algunos sistemas que ocupan esta banda de frecuencia son [21]:

399.9−403MHz: Esta banda se utiliza para la navegación, posicionamien-


to, estándares de tiempo y frecuencia y para satélites meteorológicos. Al-
rededor de los 400MHz se encuentra una banda complementaria para los
satélites que transmiten en 150MHz.
432 − 438MHz: Esta banda es utilizada por satélites amateurs y por al-
gunos satélites de observación de la tierra. Esta banda es de importancia
para este proyecto de tesis debido a que el sistema de transmisión y re-
cepción opera en este rango (433.92MHz).

460 − 470MHz: Esta banda se utiliza para satélites meteorológicos y am-


bientales e incluye frecuencias de subida para sensores de datos remotos.

2.5. Formatos de modulación analógica


Las señales de información se transportan entre un transmisor y un receptor
mediante una frecuencia portadora. El proceso de imprimir señales de infor-
mación de baja frecuencia en una señal portadora de alta frecuencia se llama
modulación [22, 23]. La demodulación es el proceso inverso, donde la señal
portadora se procesa para recuperar la información [24, 14].

En general una señal portadora Sc (t) se expresa por

Sc (t) = A cos(ωct t + Φ) (2.1)


2.5. Formatos de modulación analógica 7

donde:

Sc (t) es la señal portadora


A es la amplitud de la señal portadora
ωc = 2πf c es la frecuencia angular
f c es la frecuencia de la señal portadora [25]

Los parámetros de la señal portadora que pueden ser variados de manera


continua o analógica son la amplitud A, la frecuencia f c o la fase φ . Por lo tanto,
la señal portadora puede presentar modulación de amplitud (AM),modulación
de frecuencia (FM) o modulación de fase (PM) [14]. En la figura 2.4 se pueden
observar las diferentes formas de onda de los formatos de modulación analógi-
ca.

Figura 2.4: Formas de onda de los formatos de modulación analógica.

2.5.1. Modulación por amplitud (AM)


La modulación de amplitud (AM, amplitude modulation) es el proceso de
cambiar la amplitud de una señal portadora de frecuencia relativamente alta,
en proporción con el valor instantáneo de la señal moduladora (información)[24].
Si se modula la amplitud de la portadora de la ecuación (2.1), se genera la
siguiente forma de onda
8 2. Esquema general de un enlace satélite-estación terrena en la banda UHF

Sm (t) = A(t) cos(ωc t + Φ) (2.2)


donde:

Sm (t) es la señal modulada


A(t) es la amplitud o valor instantáneo de la señal portadora
ωc = 2πf c es la frecuencia angular
f c es la frecuencia de la señal portadora
φ es la fase incial

La frecuencia de la portadora f c y su fase φ son constantes. La amplitud A(t)


varia linealmente con la señal de la información s(t). Es posible simplificar la
ecuación (2.2), si φ = 0. Si A(t) representa una señal moduladora s(t) [14][25],
la portadora modulada es de la forma

Sm (t) = s(t) cos(2πf c t) (2.3)


donde:

Sm (t) es la señal modulada


s(t) es la amplitud o valor instantáneo de la señal moduladora
ωc = 2πf c es la frecuencia angular
f c es la frecuencia de la señal portadora

La modulación puede presentar diferentes tipos de esquemas dependien-


do de la naturaleza del espectro generado: modulación de amplitud ordinaria
(AM), modulación de doble banda lateral (DSB), modulación de banda lateral
única (SSB), y la modulación de banda lateral vestigial (VSB) [14][25].

2.5.2. Modulación Angular (FM)


La modulación angular hace referencia a los esquemas donde cambia la fase
o la frecuencia de la señal portadora, estos esquemas comprenden la modu-
lación de frecuencia (FM, frequency modulation) y la modulación de fase (PM,
phase modulation) [14] [24] [25].

La señal modulada en ángulo se describe matemáticamente como sigue

m(t) = Vc cos(ωc t + φ(t)) (2.4)


donde:
2.6. Formatos de modulación digital 9

m(t) es la onda de modulación angular


Vc es la amplitud de la portadora
ωc = 2πf c es la frecuencia angular
φ(t) es la desviación instantánea de fase

El argumento de la sinusoide puede considerarse por sí mismo como con


angulo de fase instantáneo φ(t), con

φ(t) = 2πf c t + θ(t) (2.5)


La portadora recorre un ciclo completo a medida que φ(t) cambia por 2π. La
desviación pico de la fase se define como: |θ(t)max |. La derivada φ ′ (t) describe
la tasa de cambio de φ(t) y produce la frecuencia instantánea como


ωM (t) = = 2πf c + θ ′ (t) (2.6)
dt

1 ′
f M (t) = f c + θ (t) (2.7)

La modulación de fase (PM) se refiere al esquema que cambia a φ(t) mo-
dificando la fase θ(t), mientras la modulación de frecuencia (FM) describe al
esquema que cambia a φ(t) mediante la modificación de la frecuencia instan-
tánea [22].

2.6. Formatos de modulación digital


La modulación digital es el proceso mediante el cual los símbolos digitales
son transformados en formas de onda que son compatibles con la característi-
ca espectral de un canal pasa banda. En el caso de modulación pasa banda, la
señal de información desada modula una sinusoide llamada onda portadora o
simplemente portadora, para la transmisión de radio frecuencia (RF).

La señal portadora es una señal cosenoidal de alta frecuencia que es modifi-


cada en algunos de sus parámetros por una secuencia de símbolos digitales; los
parámetros principales de una señal sinusoidal son su amplitud, frecuencia y
fase. Por lo tanto, los tres métodos de modulación binarias básicas son la modu-
lación por desplazamiento de amplitud(ASK), modulación por desplazamiento
de frecuencia(FSK) y la modulación por desplazamiento de fase(PSK)[14]. En
la figura 2.5 se pueden observar las diferentes formas de onda de los formatos
de modulación digital.
10 2. Esquema general de un enlace satélite-estación terrena en la banda UHF

Figura 2.5: Formas de onda de los formatos de modulación digital [2].

2.6.1. Modulación por Desplazamiento de Amplitud(ASK)


La modulación por desplazamiento de amplitud (ASK ,amplitude shift ke-
ying), es una técnica de modulación digital en la que la información se encuen-
tra modulada en amplitud. Así pues, ASK no es más que un caso particular de
modulación AM. La modulación ASK también en conocida como todo o nada
(OOK, on-off keying).

La función de la señal modulada ASK esta dada por

(
A cos(2πf t) para 1
S1,2 (t) = (2.8)
0 para 0

En la figura 2.6 se muestra un modulador ASK. En él, la señal analógica es


el resultado del producto de dos señales de entrada. Como se puede observar a
la salida del modulador aparece el producto de la señal f (t) digital y cos(wc t)
portadora, que se corresponde a la señal modulada ASK [26].
2.6. Formatos de modulación digital 11

Figura 2.6: Modulador ASK.

Consideraciones del ancho de banda en ASK

Para la modulación ASK el ancho de banda mínimo necesario esta dado por

ABASK = Nbaud (2.9)

Donde Nbaud es la tasa de transmisión en baudios [26].

2.6.2. Modulación por Desplazamiento de Frecuencia(BFSK)


La modulación por desplazamiento de fase binaria (BFSK, Binary frequency-
shift keying) es una forma de modulación angular, de amplitud constante, pa-
recida a la modulación FM. Para conseguir la modulación FSK, la señal modu-
ladora es binaria que varía entre dos valores discretos de voltaje.

La función de la portadora modulada FSK esta dada por

(
A cos(2πf 1 t + Φ1 ) para 1
S1,2 (t) = (2.10)
A cos(2πf 2 t + Φ2 ) para 0

donde:

f 1,2 = f c ± sm (t)∆f
f 1,2 (t) es la forma de onda binaria con variación de frecuencia
A es la amplitud de la señal portadora [V ]
Φ1,2 (t) son las fases inciales en t = 0
12 2. Esquema general de un enlace satélite-estación terrena en la banda UHF

2.6.3. Modulación por desplazamiento de Fase(BPSK)


La modulación por desplazamiento de fase binaria (BPSK, Binary phase-shift
keying) es una forma de modulación angular, de amplitud constante. En este
tipo de modulación se tienen dos fases de salida a la misma frecuencia de por-
tadora. La señal portadora de RF se transmite tal cual o con un cambio de fase
de 180º en intervalos sucesivos en el tiempo dependiendo de si se transmite un
0 o 1 digital[6].

En la modulación BPSK la información binaria es representada en fases, es-


tas dos fases son Φ1 = 0 y Φ2 = π y las señales se expresan por
(
A cos(2πf c t + Φ1 ) para 1
S1,2 (t) = (2.11)
A cos(2πf c t + Φ2 ) para 0
(
A cos(2πf c t) para 1
S1,2 (t) = (2.12)
−A cos(2πf c t) para 0
Estas dos señales son llamadas antípodas. La razón de la elección de estas
dos señales es que tienen un coeficiente de correlación de −1, lo que implica un
error de probabilidad mínimo [14].

Figura 2.7: Diagrama a bloques básico de un modulador PSK.


CAPÍTULO 3

TRANSMISIÓN DE SEÑALES DE DATOS DESDE SATÉLITES


PEQUEÑOS

L
a evolución de la tecnología y los avances científicos han permitido la
construcción y diseño de satélites cada vez más pequeños. Estos avances
han permitido el desarrollo de satélites pequeños llamados nanosatéli-
tes y picosatélites. Todo esto se basa en el concepto de la elaboración de com-
ponentes e instrumentos cada vez de menor tamaño. Esto significa un menor
costo con el objeto de facilitar el acceso al espacio de misiones espaciales de
naturaleza variada.
En este capítulo se describirán los sistemas de satelites pequeños, su funcio-
namiento y conceptos relacionados con éstos, se describen también las carac-
terísticas de las señales GPS y los protocolos utilizados por los mismas para su
transmisión por el espacio, debido a que éstas son utilizadas en el contexto de
trabajo de tesis.

3.1. Satélites pequeños


El desarrollo de proyectos en pequeños satélites se ha caracterizado por sus
escalas en desarrollo, rapidez para misiones experimentales en comparación
con la industria convencional, teniendo tiempos desde su implantación hasta
su lanzamiento de hasta 36 meses[27]. Estos cuentan con diferentes caracte-
rísticas: son pequeños, rápidos, livianos, con un menor precio y un periodo
rápido de desarrollo. Esto gracias a la microelectrónica de baja potencia y a la
reducción del presupuesto o balance del enlace. En la figura 3.1 se puede apre-
ciar un tipo de este tipo de satélites pequeños llamado CubeSat, el cuales tiene
dimensiones de 10x10x10cm y un peso maximo de 1kg [14].
14 3. Transmisión de señales de datos desde satélites pequeños

Figura 3.1: Vista isométrica de un CubeSat [3].

En la tabla 3.1 se observa la clasificación de satélites pequeños de acuerdo a


características de los mismos, la tabla muestra como es que el tiempo de desa-
rrollo, costo y masa presentan ahorros considerables a medida que estos son
más pequeños en comparación de un satélite convencional.

Tipo Masa(kg) Costo(US $) Tiempo de desarrollo


Satélite convencional grande >1000 0.1-2B >5 años
Satélite mediano 500-1000 50-100M 4 años
Minisatélite 100-500 10-50M 3 años
Microsatélite 10-100 2-10M 1 año
Nanosatélite 1-10 0.2-2M 1 año
Picosatélite <1 20-200k <1 año
Femtosatélite <0,1 0.1-20k <1 año

Tabla 3.1: Clasificación de satélites respecto a su masa y costo [14].

Originalmente los proyectos espaciales eran financiados por organismos del


gobierno, sin embargo, el paradigma económico ha ido cambiado debido a las
necesidades políticas y financieras para la reducción de costos; además de los
avances tecnológicos que empujan cada vez mas en elementos de micro elec-
trónica de baja potencia y procesamiento digital de señales [14].

La Universidad de Surrey en 1978 inicio con el proyecto UoSat, el satélite


UoSat-1 fue lanzado al espacio en octubre de 1981 seguido por UoSat2 lan-
zado en 1984. En 1985 esta misma universidad genero a Surrey Satellite Tech-
3.1. Satélites pequeños 15

nology Ltd(SSTL), la cual fue la primera organización en comerciar la innova-


ción de satélites pequeños [27]. En años posteriores el proyecto CubeSat fue
desarrollado por la Universidad Politécnica de California y la Universidad de
Stanford[14][28], esto dio paso a que la comunidad científica, instituciones y
universidades tuvieran oportunidad de poder adentrarse a la exploración es-
pacial.

En México, existen ciertas bandas de frecuencia que han sido asignadas con
propósitos de comunicación espacial por la UIT (Unión Internacional de Tele-
comunicaciones), para el enlace descendente y ascendente las bandas utilizadas
son de 144 − 146MHz y 432 − 438MHz respectivamente[14]. Específicamente
la banda de 432 − 438MHz se conoce como banda de 70cm la cual es utilizada
por satélites amateurs y por algunos satélites de observación de la tierra [21].
Ejemplos de estas bandas se muestran en la tabla 3.2.

Bandas para
Símbolos Nombre Gama de frecuencias Subdivisión métrica aficionados por
satélite
VLF Very Low Frequency 3 a 30 kHz Ondas miriamétricas
LF Low Frequency 30 a 300 kHz Ondas kilométricas
MF Medium Frequency 300 kHz a 3 MHz Ondas hectométricas
7,000-7,100 kHz
18,068-18,168 kHz
HF High Frequency 3 a 30 MHz Ondas decamétricas 21,000-21,450 kHz
24,890-24,990 kHz
28-29.7 MHz
VHF Very High Frequency 30 a 300 MHz Ondas métricas 144-146 MHz
UHF Ultra High Frequency 300 MHz a 3 GHz Ondas decimétricas 432-438 MHz
SHF Super High Frequency 3 a 30 GHz Ondas centimétricas
47-47.2 GHz
76-77.5 GHz
77.5-78 GHz
78-79GHz
EHF Extremely High Frequency 30 a 300 GHz Ondas milimétricas 79-81 GHz
134-136 GHz
136-141 GHz
241-248 GHz
248-250 GHz
– NA 300 a 3000 GHz Ondas decimilimétricas

Tabla 3.2: Distribución del espacio radioeléctrico en México [14, 15].

Un satélite cuenta con varios susbsistemas, ellos en conjunto hacen que el


mismo funcione en su totalidad, cada uno de ellos es importante por lo que si
falla de alguno de ellos podría significar la inutilidad o falla completa o parcial
de la misión.

Los subsistemas que componen un satélite son:


Subsistema de Comunicación
16 3. Transmisión de señales de datos desde satélites pequeños

Subsistema de telemetría, rastreo y comando


Subsistema Eléctrico y de potencia
Subsistema de control térmico
Subsistema de posición y orientación
Subsistema de propulsión
Subsistema Estructural
Subsistema de computadora a bordo
El diseño un satélite dependerá de la misión, necesidades y aplicaciones; por
tanto un satélite pequeño puede no contar con alguno de los susbsistemas an-
tes mencionados.

3.2. Datos de sensores a bordo del satélite


Cuando se pone en un órbita un satélite artificial, es necesario conocer, de
forma remota, la manera en la que está operando; muchas de las decisiones que
se tomarán respecto al satélite y su misión dependerá de la información que se
obtiene del mismo. El subsistema encargado de obtener, controlar y comunicar
la información del satélite, o del ambiente en que éste se encuentre, se le co-
noce como Telemetría [29], el cual, como se mencionó en la sección anterior,
forma parte de los subsistemas que componen un satélite.

Este sistema de telemetría es el encargado del intercambio de información


con la estación terrena permitiendo conservar y monitorean su estado de fun-
cionamiento en cualquier momento[27]. Entonces el sistema de telemetría re-
cogerá, formateara y transmitirá datos de varios tipos. Para llevar a cabo el
intercambio de información con la estación terrena es necesario contar antes
con la información necesaria para su transmisión; los sensores son los encar-
gados de recopilar la misma, un sensor remoto es un equipo que nos permite
recolectar información, datos, a distancia, sin estar físicamente presente, los
cuales forman parte de la estructura del satélite. Muchos sensores monitorean
el desempeño de la operación de diversos sistemas abordo, el tipo de sensores
dependerá la misión principal del satélite, algunos por ejemplo: datos de tem-
peratura, voltaje, corriente, presión, posición, etcétera.

3.3. Datos de posicionamiento (GPS)


Como se menciono en la sección anterior existen diferentes tipos de sensores
que ayudan a la recolección de datos de interés para su posterior transmisión a
3.3. Datos de posicionamiento (GPS) 17

la estación; uno de ellos es el posicionamiento, que es alimentado por los siste-


mas de navegación. Los sistemas de navegación solucionan un problema muy
antiguo en la historia de la humanidad: la necesidad de conocer la posición so-
bre la superficie terrestre. Sin esa capacidad los movimientos por tierra deben
basarse en puntos de referencia conocidos, y los movimientos marítimos deben
restringirse a una franja de mar en que la costa sea visible. A esta altura es
ampliamente difundido que la tecnología satélital permite determinar, con la
precisión necesaria, la posición espacial de objetos, sean éstos fijos o móviles.
Por otra parte tal posición se obtiene con referencia a un sistema único global,
lo que permite correlacionar información proveniente de distintas fuentes y de
distintas épocas. Rapidez, seguridad y economía son características distintivas
del posicionamiento satélital[30].

La implementación del programa NAVSTAR, GPS (Navigation System Ti-


ming And Ranging, Global Positioning System) fue efectivamente iniciada en
diciembre de 1973. El 22 de febrero de 1978 fue lanzado el primer satélite de
una serie de cuatro[30].

El GPS es un sistema basado en satélites artificiales, dispuestos en un cons-


telación de 24 de ellos, para brindar al usuario una posición precisa. En este
punto es importante definir el término "precisión". Para un excursionista o un
soldado que se encuentre en el desierto, la precisión significa más o menos 15
m. Para un barco en aguas costeras, la precisión significa 5m. Para un topógra-
fo, la precisión significa 1cm o menos. El GPS se puede emplear para obtener
todos estos rangos de precisión, la diferencia radicará en el tipo de receptor a
emplear y en la técnica aplicada.

El sistema GPS cuenta con tres segmentos principales[31]:

Segmento Espacial: El segmento espacial consiste en una constelación


de 24 satélites con enlaces descendentes de datos que incluyen señales
de rango codificadas, información de posición, datos atmosféricos y al-
manaque (datos sobre información de órbita aproximada de todos los
satélites)[31], cada uno de ellos vuelan en órbita terrestre media (MEO) a
una altitud de aproximadamente 20, 200km (12, 550millas). Cada satélite
rodea la Tierra dos veces al día[32].

Segmento de Control: El segmento de control consiste de una estación de


control maestro, 5 estaciones de observación y 4 antenas en tierra distri-
buidas entre 5 puntos muy cercanos al ecuador terrestre. El segmento de
Control rastrea los satélites GPS, actualiza su posición orbital, calibra y
sincroniza sus relojes.
18 3. Transmisión de señales de datos desde satélites pequeños

Segmento de Usuarios: Este sector lo compone el instrumental que deben


utilizar los usuarios para la recepción, lectura, tratamiento y configura-
ción de las señales, con el fin de alcanzar los objetivos de su trabajo. Los
elementos son el equipo de observación y el software de cálculo, que pue-
de ser objeto de uso tras la campaña de observación, o bien realizable en
tiempo real, donde se obtienen los resultados en sitio [33].

3.3.1. Características de la señal GPS


3.3.2. Frecuencias de operación de GPS
Las señales de GPS se transmiten en dos frecuencias de radio en la banda
L(1000 – 2000MHz). Estas dos frecuencias son denominadas L1 y L2 y se deri-
van de una frecuencia fundamental f 0 = 10.23MHz [6, 34, 35, 36]:

f L1 = 154f 0 = 1575.42MHz
(3.1)
f L2 = 120f 0 = 1227.60MHz
Las señales de GPS la integran tres componentes:

Portadora: las frecuencias L1 y L2.


Datos de navegación: contienen información acerca de las órbitas sateli-
tales; esta información se envía a todos los satélites desde las estaciones
del segmento de tierra del GPS.
Secuencia de ensanchado: como ocurre en el caso de las comunicaciones
móviles, la señal GPS contiene un código o secuencia que ensancha el es-
pectro mas allá de lo que le correspondería de acuerdo a la información
que transporta; este código tiene la forma de un pseudoruido, que modu-
la la portadora de tal forma que aumente el ancho de banda de la trans-
misión y reduzca la densidad de potencia espectral. Como se mencionó
anteriormente en este capítulo, este método de codificación es conocido
como espectro ensanchado por secuencia directa (DSSS, Direct Sequence
Spread Spectrum) el cual fue explicado anteriormente. La señal resultante
tiene un espectro muy parecido al del ruido; sin embargo esto tiene gran
significado en los receptores dado que a todos ellos les parecerá ruido me-
nos a aquel a quien va dirigida la señal[34]. Este tipo de modulación se
conoce como acceso múltiple por división de código en secuencia directa
(DS-CDMA, direct-sequence code division multiple access).

Los dos códigos GPS se denominan de adquisición aproximada (o código


C / A) y Precisión (o código P). Cada código consiste en un flujo de dígi-
tos binarios, ceros y unos, conocidos como bits o chips. Los códigos son
20 3. Transmisión de señales de datos desde satélites pequeños

Figura 3.3: Generación de las portadoras L1 y L2 así como los codigos C/A y P apartir
de la frecuencia fundamental f 0 = 10.23MHz [5, 6].

3.3.3. Formatos de modulación


La modulación por desplazamiento de fase binaria (BPSK- Binary pashe shift
keying) es una forma de modulación angular, de amplitud constante. En este
tipo de modulación se tienen dos fases de salida a la misma frecuencia de por-
tadora. La señal portadora de RF se transmite tal cual o con un cambio de fase
de 180º en intervalos sucesivos en el tiempo dependiendo de si se transmite un
0 o 1 digital.Una señal BFSK se presenta en la Figura 3.4[6].

Figura 3.4: Modulación BPSK [6].


3.3. Datos de posicionamiento (GPS) 21

En la modulación BPSK la información binaria es representada en fases, es-


tas dos fases son Φ1 = 0 y Φ2 = π y las señales se expresan mediante

Figura 3.5: Diagrama a bloques básico de un modulador PSK.

(
A cos(2πf c t + Φ1 ) para 1
S1,2 (t) = (3.2)
A cos(2πf c t + Φ2 ) para 0

(
A cos(2πf c t) para 1
S1,2 (t) = (3.3)
−A cos(2πf c t) para 0

El espectro disperso por secuencia directa(DSSS- Direct Sequence Spread Spec-


trum) es una técnica que usa el sistema GPS y otros sistemas de navegación
satelital [6]. DSSS consiste en agregar otro tercer componente; un código de
ruido pseudoaleatorio (PRN,pseudo random noise) para modular digitalmente
una portadora, de tal forma que aumente el ancho de banda de la transmisión
y reduzca la densidad de potencia espectral, como se pueda ver en la Figura
3.6. La señal resultante tiene un espectro muy parecido al del ruido, de tal for-
ma que a todos los radiorreceptores les parecerá ruido menos al que va dirigida
la señal como se puede obserar en la Figura 3.7)[7].
22 3. Transmisión de señales de datos desde satélites pequeños

Figura 3.6: Comparación de una señal de banda estrecha con una señal de espectro de
propagación de espectro disperso. La señal de banda estrecha se suprime cuando se
transmite espectro expandido [7].

Figura 3.7: Modulación DSSS [6].

El transmisor y el receptor deben conocer el código PRN que es utilizado


para realizar la modulación, ya que este mismo se utiliza para lograr la demo-
dulación, esto se logra multiplicando la señal recibida por el receptor por el
codigo PRN. En la figura 3.8 se muestra el proceso de codificación, la señal de
datos es multiplicada por el código PRN o secuencia pseudo-aleatoria dando
como resultado la señal modulada, posteriormente se observa el proceso inver-
so teniendo como resultado los datos demodulados [8].
3.3. Datos de posicionamiento (GPS) 23

Figura 3.8: Secuencia de tiempos de la señal codificada y decodificada [8].

3.3.4. Técnicas de multicanalización


Las técnicas de multicanalización o técnicas de acceso al medio, consisten
en transmitir información de más de una fuente a más de un destino a través
del mismo medio de transmisión.

Existen diferentes métodos para multicanalizar señales:

Multicanalización por división de frecuencia (FDM, frequency-division mul-


tiplexing) : en esta técnica el ancho de banda total se divide en una serie de
bandas de frecuencia más pequeñas o sub-bandas, cada señal que desee
enviar se le asigna una sub-banda de frecuencia, de manera que se trans-
mite en forma simultánea por un solo medio de transmisión. Así se pue-
den transmitir muchos canales de banda relativamente angosta por un
solo sistema de transmisión de banda ancha [24].

Multicanalización por división de tiempo (TDM, time-division multiple-


xing) : en este tipo de multicanalización el envío de datos de varias fuentes
se hacen por el mismo canal de comunicación pero no al mismo tiempo.
El envío de datos procedentes de distintas fuentes se intercalan en el do-
minio del tiempo[24].
3.3. Datos de posicionamiento (GPS) 25

3.3.5. Cálculo de la posición y precisión mediante señales GPS


Existen diferentes métodos para obtener una posición empleando GPS. El
método a utilizar depende de la precisión requerida por el usuario y el tipo de
receptor disponible así como la aplicación necesaria. En esta sección se descri-
birán dos técnicas el posicionamiento autónomo o absoluto y diferencial.

Posicionamiento absoluto
Cuando hablamos de posicionamiento absoluto nos referimos al caso de un
solo receptor operando en modo autónomo, es decir, la función típica de na-
vegación, calculando las coordenadas del receptor sobre la superficie terrestre
con base en las mediciones de distancia que realiza a los satélites y mostrando
estas coordenadas sin ningún tipo de corrección [30].

Para resolver un posicionamiento absoluto es necesario recibir la informa-


ción de al menos 4 satélites, ya que cada uno de ellos proporciona una ecuación
al sistema, con esto las incógnitas son 4: posicionamiento en X,posicionamiento
en Y , posicionamiento en Z y estado del reloj de receptor [33]. En la Figura 3.10
se muestran como cada uno de los satélites proporciona una solución al sistema
de ecuaciones de 4 incógnitas.

Figura 3.10: Solución en la determinación de la posición [10].


26 3. Transmisión de señales de datos desde satélites pequeños

Con este método de operación la precisión general alcanzable en las coor-


denadas de los puntos será mejor que 10 metros en horizontal y 15 metros en
vertical [30]. Todos los receptores GPS realizan algunas correcciones para los
retardos de la señal, además que existen fuentes de error que degradan la po-
sición GPS algunos metros. Estas fuentes de error son:

Retrasos ionosféricos y atmosféricos

Errores en el reloj del satélite y del receptor

Efecto multitrayectoria

Dilución de la precisión

Disponibilidad selectiva (S/A)

Posicionamiento Diferencial

Muchos errores son los que afectan la medición de distancia de los satéli-
tes, estos errores pueden ser completamente eliminados o reducidos cuando
es necesario incrementar la precisión de la posición. A esto se le conoce como
posicionamiento diferencial, el cual consiste en obtener los datos satélitales en
forma simultánea por dos receptores, uno de los cuales es ubicado en una posi-
ción conocida y otro en una posición variable. Los errores de propagación de la
señal afectan de manera similar a dos estaciones no muy alejadas entre sí, que
utilizan los mismos satélites. Esto es así porque la distancia entre los receptores
sobre la superficie terrestre resulta muy pequeña comparada con la distancia
en la que se localizan los satélites [30, 33].

La técnica de posicionamiento diferencial hace uso de estas características


similares para eliminar las influencias de los errores en el cálculo de la posición
de la segunda estación (móvil) a partir de conocerlos en una primera estación
(base), de la que se conocen sus coordenadas[30], además permite a lo usuarios
civiles incrementar la precision de la posición a 2 a 3 metros o menos [38].

En la Figura 3.11 se puede apreciar la disposición de la estación base y móvil


del posicionamiento diferencial.
3.3. Datos de posicionamiento (GPS) 27

Figura 3.11: Estación base y móvil del posicionamiento diferencial [10].

3.3.6. Restricciones del funcionamiento del sistema GPS


Todos lo receptores GPS comerciales tienen que cumplir con ciertas direc-
trices conocidas como COCOM-limites o restricciones (CoCom- Committee for
Multilateral Export Controls). Estos receptores deben operar sólo a velocidades
menores que 1, 854km/h y/o a a altitudes menores que 18, 300 metros[39].
CAPÍTULO 4

PROTOCOLO DE TRANSMISIÓN DE DATOS AX.25

L
a arquitectura de comunicación es la disposición, o configuración, de sa-
télites y estaciones terrestres en un sistema espacial, y la red de enlaces
de comunicación que transfieren información entre ellos.

Un protocolo de la capa de enlace de datos del modelo OSI es necesario pa-


ra que el envío de tramas y el flujo de datos se lleve a cabo de manera fiable
a través de un circuito de transmisión de datos. La capa de enlace datos es la
encargada del envió de las tramas de información de un nodo a otro. Esto es
un punto critico para la transferencia confiable de los datos de telemetría [40];
estos paquetes de datos son encapsulados en tramas antes de la transmisión.

En este capítulo se describirá el protocolo así como la estructura de la trama


del mismo, además se muestran las ventajas de su utilización en sistemas na-
nosatélitales de misiones espaciales para transmisión de información.

4.1. Modelo OSI


El modelo de interconexión de sistemas abiertos (OSI, Open System Inter-
connection), es un modelo desarrollado por la Organización Internacional de
Normalización (ISO, International Organization for Standardization). Este mo-
delo facilita la interconexción de diferentes tipos de sistemas computacionales.

El modelo presenta una estructura basada en capas. De acuerdo con este pro-
30 4. Protocolo de transmisión de datos AX.25

totipo la comunicación entre procesos se realiza entre capas, representadas en


una estructura vertical, como se muestra en la Tabla 4.1 [17].

Capa Nombre Función


Sirve como ventana para que los usuarios y los
7 Aplicación procesos de aplicación accedan a los servicios
de red.
Formatea los datos que se presentarán a la capa
de aplicación. Se puede ver como el traductor de
la red.Esta capa puede traducir los datos de un
6 Presentación formato utilizado por la capa de aplicación a un
formato común en la estación emisora, y luego
traducir el formato común a un formato conocido
por la capa de aplicación en la estación receptora.
Permite el establecimiento de sesiones entre
5 Sesión
procesos que se ejecutan en diferentes estaciones.
Garantiza que los mensajes se entreguen sin errores,
4 Transporte
en secuencia y sin pérdidas ni duplicaciones.
Controla el funcionamiento de la subred,
decidiendo qué ruta física deben tomar los datos
3 Red
según las condiciones de la red, la prioridad del
servicio y otros factores.
Proporciona una transferencia libre de errores
de marcos de datos de un nodo a otro a través
2 Enlace de datos de la capa física, lo que permite que las capas
superiores asuman una transmisión virtualmente
sin errores a través del enlace.
Es la capa inferior del modelo OSI, se ocupa
de la transmisión y recepción del flujo de bits
en bruto sin estructurar a través de un medio
1 Física
físico. Describe las interfaces eléctricas / ópticas,
mecánicas y funcionales del medio físico, y
transporta las señales de todas las capas superiores.

Tabla 4.1: Las sietes capas del modelo de referencia OSI [16].

La capa física y la capa de enlace de datos pueden subdividirse en varias


máquinas de estados finitos; es decir, en cada uno de los estados se realizan
4.2. Protocolo AX.25 31

procesos bien definidos en un tiempo discreto, donde cada entrada diferente


genera una salida diferente, pero siempre el mismo resultado con los mismos
datos de entrada. En la tabla 4.2 se muestra esta división. AX.25 es un protoco-
lo de la capa de enlace de datos.

Capa Función
Segmentos Gestión de enlace
Enlace de datos(2) Enlace de datos de datos
Multicanalizador de enlace
Física
Física(1)
Radio

Tabla 4.2: Modelo de máquina de estados finitos AX.25 [17].

4.2. Protocolo AX.25


La comunidad de radioaficionados ha justificado la necesidad de definir un
protocolo que pueda aceptar y entregar datos de manera confiable a través de
una variedad de enlaces de comunicaciones entre dos terminales de señaliza-
ción. El protocolo AX.25 permite este servicio, independientemente de la exis-
tencia de cualquier capa superior en el modelo de referencia OSI [17].
AX.25 es un protocolo de la capa de enlace de datos, derivado del protocolo
X.25, el cual fue diseñado para uso de radioaficionados. AX.25 se utiliza prin-
cipalmente para establecer conexiones y transferencia de datos entre nodos,
detectando los errores que fueron introducidos por el canal de comunicacio-
nes. Es utilizado ampliamente en las bandas VHF y UHF [41].

La razón por la que este proyecto se basa en el protocolo AX.25 es por com-
patibilidad, y puede ser usado en la banda de frecuencias ultra altas (UHF).
Además, el protocolo es ampliamente utilizado en proyectos de satélites pequeños[42][20].

4.3. Estructura del protocolo AX.25


Las transmisiones de radio de paquetes del protocolo se envían en pequeños
bloques de datos, llamados tramas [17].

Existen 3 tipos de tramas AX.25


32 4. Protocolo de transmisión de datos AX.25

1. Trama de información (Trama I): Las tramas I contienen la información


que se envía de un extremo del enlace al otro.
2. Trama de supervisión (Trama S): Las tramas S brindan control de enlace
de supervisión, como reconocer o solicitar la retransmisión de tramas I y
el control de ventana de capa de enlace.
3. Trama no numerada (Trama U): Las tramas U son responsables de man-
tener un control adicional sobre el enlace más allá de lo que se logra con
las tramas S. Las tramas U son responsables de establecer y terminar las
conexiones de enlace. Las tramas U también permiten la transmisión y
recepción de información fuera del control de flujo normal.

En este documento se describirá una combinación especial; el formato de


trama UI (UI, unnumbered information) del protocolo AX.25, el cual es utili-
zado en la mayoría de los esquemas de comunicaciones CubeSat. Esta trama
contiene los campos de información e identificador de protocolo (PID, protocol
identifier) [42] y es utilizado para la transmisión de información a lo largo del
enlace.

La trama UI está conformada por pequeños bloques llamados campos. Cada


campo está formado por un número entero de octetos y cada uno de ellos tie-
ne una función específica. Cada campo tiene un tamaño en especifico como se
clasifica en la Tabla 4.3.

Secuencia de
Bandera Dirección Dirección Identificador Bandera
Bits de Campo de verificación
de de de de protocolo de
Control Información de trama
Inicio Destino Origen (PID) fin
(FCS)
8 Bits 56 Bits 56 Bits 8 Bits 8 Bits 2048 Bits 16 Bits 8 Bits

Tabla 4.3: Trama UI del protocolo AX.25.

4.3.1. Banderas
Las banderas de inicio y de fin identifican el comienzo y el final de la trama.
Las dos banderas ocupan un octeto y tienen el mismo patrón; comienzan con
un cero, seguido de seis unos y después otro cero (011111110).

4.3.2. Dirección
El campo de dirección identifica tanto la fuente de la trama, como su destino.
La dirección de destino consiste de los distintivos de llamada y del identifica-
4.3. Estructura del protocolo AX.25 33

dor de conjunto de servicios (SSID, Service Set Identifier).

Los distintivos de llamada están conformados por seis letras mayúsculas, nú-
meros o espacios en formato ASCII. Si la señal de llamada es menor que seis
caracteres, éste se completa con espacios en blanco en formato ASCII. Todos los
caracteres en los campos de dirección son desplazados a la izquierda un bit, sin
implicar que la información se pierda debido a que el bit más significativo no
es utilizado. Los seis caracteres del distintivo de llamada son colocados en los
primeros seis octetos del campo (C1 a C6), como se muestra en las tablas 4.4 y
4.5.

Distintivo de llamada(48 bits) SSID (8 bits)


C1(8 bits) XXXXXXX 0
C2(8 bits) XXXXXXX 0
C3(8 bits) XXXXXXX 0
C4(8 bits) XXXXXXX 0 011SSID1
C5(8 bits) XXXXXXX 0
C6(8 bits) XXXXXXX 0

Tabla 4.4: Campos de dirección de origen (56 bits).

El SSID es un identificador único para las estaciones que utilizan el mismo


distintivo de llamada. Las configuraciones de los distintivos de llamada y los
SSID para las direcciones de origen y el destino son muy similares, la única va-
riación se presenta en el bit menos significativo (LSB) del SSID de origen; este
bit se configura como ‘1’ e indica que es la última dirección en el campo de
direcciones de la trama como se muestra en la tabla 4.4. En la tabla 4.5 el bit
menos significativo se encuentra configurado como ‘0’ [42].
34 4. Protocolo de transmisión de datos AX.25

Distintivo de llamada(48 bits) SSID (8 bits)


C1(8 bits) XXXXXXX 0
C2(8 bits) XXXXXXX 0
C3(8 bits) XXXXXXX 0
C4(8 bits) XXXXXXX 0 011SSID0
C5(8 bits) XXXXXXX 0
C6(8 bits) XXXXXXX 0

Tabla 4.5: Campos de dirección de destino (56 bits).

4.3.3. Bits de control

El campo de control puede tener una longitud de uno a dos octetos y man-
tiene la información de control de el flujo de la transmisión. Este campo es
utilizado en la trama de información (Trama I), trama de supervisión (Trama S)
y trama no numerada (Trama U).

Para las tramas UI, el campo de control tiene un octeto de longitud y siempre
tiene el valor binario: 00000011 [40].

4.3.4. Identificador de protocolo

El campo de identificador de protocolo (PID) aparece sólo en las tramas de


información (I and UI). Este campo identifica el tipo de protocolo de capa 3 que
esta siendo utilizado [43].

El PID en sí no se incluye como parte de la cuenta de octetos del campo de in-


formación. La codificación del PID se muestra en la tabla 4.6, donde se muestra
que valor debe tomar este campo, dependiendo el tipo de protocolo utilizado.
4.3. Estructura del protocolo AX.25 35

Hexadecimal MSB LSB Traducción


** yy01yyyyy Protocolo AX.25 de capa 3 implementado
** yy10yyyyy Protocolo AX.25 de capa 3 implementado
0x01 00000001 ISO 8208/CCITT X.25 PLP
Paquete TCP/IP comprimido. Van
0x06 00000110
Jacobson (FRC 1144)
Paquete TCP/IP no comprimido. Van
0x07 00000111
Jacobson (RFC 1144)
0x08 00001000 Fragmento de segmentación
0xC3 11000011 Protocolo de datagramas TEXNET
0xC4 11000100 Protocolo de calidad de enlace
0xCA 11001010 Appletalk
0xCB 11001011 Appletalk ARP
0xCC 11001100 Protocolo de internet ARPA
0xCD 11001101 Resolución de dirección ARPA
0xCE 11001110 FlexNet
0xCF 11001111 Net/ROM
0xF0 11110000 Protocolo de capa 3 no implementado
Caracter de escape. El siguiente octeto
0xFF 11111111 contiene más información
del protocolo de nivel 3
Caracter de escape. El siguiente octeto
contiene más información 00001000
del protocolo de nivel 3

Tabla 4.6: Definiciones de PID en un paquete de AX.25 [17].

4.3.5. Información
El campo de información puede tomar cualquier valor entre 0-2048 bits (0-
256 bytes). Este campo puede llevar cualquier tipo de datos, y no es evaluado
por el protocolo.

4.3.6. Secuencia de verificación de trama (FCS, Frame Check


Sequence).
La secuencia de verificación de trama (FCS) consiste de dos octetos (16 bits),
y es calculado por el transmisor. Este asegura que la trama no sea corrompida
por el medio de transmisión. El campo FCS es vuelto a calcular por el receptor.
36 4. Protocolo de transmisión de datos AX.25

Si el campo FCS no coincide con el valor enviado, la trama es desechada.

Teoría de la verificación de redundancia cíclica


El campo FCS es implementado como una verificación de redundancia cícli-
ca (CRC), consiste en 16 bits, de acuerdo al estándar CRC-16-CCITT. El CRC
para AX.25 se describe por las características que se dan en la tabla 4.7.

Nombres asociados con CRC CRC-CCITT, CRC-16-X25,


del protocolo AX.25 CRC-16-CCITT
Grado del polinomio 16
Generador polinomial G(x) = x16 + x12 + x5 + 1
Polinomio en notación hexadecimal 0x1021
Octeto de entrada reflejado
Orden de los bits
(LSB enviado primero)
Valor inicial 0xFF
0xFF (registro de desplazamiento
Máscara de salida XOR invertido en modo bit para producir
la secuencia de verificación de trama)

Tabla 4.7: Características de la verificación de redundancia cíclica del protocolo AX.25.

La cadena de bits a verificarse se representa como los coeficientes de un


polinomio, en lugar de un número binario grande. El generador polinomial del
CRC-16 se describe por la ecuación: G(x) = x16 +x12 +x5 +1 = 0001, 0000, 0010, 0001,
para facilitar los cálculos, la aritmética se realiza en formato binario, en modu-
lo 2 sin acarreo.

Para el calculo del CRC, el mensaje M(x) son todos los bits entre la bande-
ra de inicio y el campo FCS. El resto r(x) se calcula de la siguiente manera:
r(x) = xn M(x)/G(x), donde n es el grado del generador polinomial y G(x) el ge-
nerador polinomial. La trama que será transmitida antes de agregar la bandera
de fin será: T (x) = x16 M(x) − r(x).

El receptor calculara T (x)/G(x), el resultado de esta división deberá ser 0. Si


el resultado es diferente de 0 significara que la trama AX.25 contiene errores y
el receptor la desechara.
CAPÍTULO 5

DESARROLLO DEL ENLACE EXPERIMENTAL


SATÉLITE-TIERRA

E
l diseño y construcción de satélites pequeños en los últimos años ha si-
do de gran interés para instituciones publicas, centros universitarios y
de investigación. Su facilidad de diseño, el tiempo de construcción y el
bajo costo, en comparación con un satélite industrial, han sido las principales
ventajas para la realización de misiones espaciales de baja complejidad.

El diseño y descripción de un enlace satélite-tierra en la banda UHF descrito


en esta tesis, tiene como propósito el envío de datos de telemetría, posición y
misión espacial, utilizando el protocolo de comunicación AX.25. En este tra-
bajo se diseñó el sistema de comunicación satélite-tierra en la banda UHF de
radioaficionados (430-440MHz). El subsistema puede transmitir datos de sen-
sores (temperatura, presión, posicionamiento, etcétera), los cuales proporcio-
nan datos de misión y se transmitirán a tierra en formato AX.25. El esquema
de adquisición de datos y su conversión en AX.25 utiliza dos bloques conver-
tidores basados en arduino, un transmisor y un receptor de RF en UHF. En la
figura 5.1 se muestra el diagrama a bloques del sistema de transmisión - recep-
ción de datos en la banda UHF.
40 5. Desarrollo del enlace experimental satélite-tierra

Figura 5.1: Diagrama general del subsistema de comunicación.

5.1. Bloque transmisor


El diagrama a bloques transmisor de UHF consiste de

Sensores: Este modulo presenta la primera etapa del transmisor. Los sen-
sores de variantes físicas y de posicionamiento GPS proporcionan la in-
formación que se transmitirá a tierra.
Convertidor AX.25 basado en ARDUINO: El programa ARDUINO cuenta
con una interfaz gráfica para realizar la programación, compilación de
transferencia de programas, es la segunda etapa del transmisor. La table-
ta ARDUINO MEGA 2560 mostrada en la figura 5.2 es la encargada de
procesar los datos de los sensores; es decir procesa los datos recibidos por
los sensores y los codifica hacia el protocolo AX.25. Este proceso se lleva
a cabo mediante la programación del ARDUINO MEGA. En el Apéndice
A.1 se,incluye el código de programación. Una vez que se obtiene la tra-
ma AX.25 en forma de pulsos, se envía al transmisor. Los pulsos modulan
una portadora de 433.92MHz en formato digital ASK.
5.1. Bloque transmisor 41

Figura 5.2: Imagen de la tableta ARDUINO MEGA 2560. [12]

Acondicionamiento de señal: Previo a la modulación ASK en el transmi-


sor, los pulsos AX.25 se invierten mediante el circuito inversor 74LS04
mostrado en la figura 5.3.

Figura 5.3: Compuerta lógica NOT 74LS04.

La señal de salida del ARDUINO MEGA, debe invertirse debido a que la


comunicación serial es de tipo asíncrono en niveles lógicos TTL [12](5V
para un uno lógico - 0V para un cero lógico). En la comunicación asín-
crona no existe una línea de reloj común que establezca la duración de
un bit y el caracter puede ser enviado en cualquier momento. La forma
estándar de encuadrar un caracter es a través de un bit de inicio y un bit
de finalización. Durante el intervalo de tiempo en que no son transferidos
caracteres, la linea TX presenta un nivel alto (uno lógico) como se observa
en la figura 5.4 [13][12].
42 5. Desarrollo del enlace experimental satélite-tierra

Figura 5.4: Formato de transmisión asíncrona [13].

En la figura 5.5 a se ejemplifica un tren de pulsos obtenido a la salida del


ARDUINO MEGA, posterior al proceso de inversión se obtiene el tren de
pulsos de forma invertida como se muestra en la figura 5.5 b). El proceso
de inversión es necesario debido a que el tren de pulsos obtenido debe
tener una forma adecuada para el proceso de modulación. En la modula-
ción ASK, la portadora se presenta cuando existe en nivel alto ("1"lógico)
en la señal binaria de información; si se enviara la trama de información
proporcionada por el codificador, durante el intervalo de tiempo en que
no son transferidos caracteres la linea TX presentaría un nivel alto; por
consiguiente, siempre se emitiría la portadora de RF haciendo gastos in-
necesarios en potencia.

Figura 5.5: a)Tren de pulsos de amplitud 5V b)Tren de pulsos invertido de amplitud


5V .
44 5. Desarrollo del enlace experimental satélite-tierra

figura 5.10.

Figura 5.8: Diseño del circuito impreso cara


superior. Figura 5.9: Diseño final PCB.

Figura 5.10: Portadora generada de 433.92Mhz.

En la figura 5.11 se puede observar la señal portadora modulada por la


señal de datos de 1200bps y ampliutd de 5V pp.
5.2. Bloque receptor 45

Figura 5.11: Portadora generada de 433.92Mhz.

Antena: Es utilizada una antena de tipo dipolo omnidireccional de baja


potencia para la transmisión de la señal portadora.

5.2. Bloque receptor


El diagrama a bloques del receptor UHF se muestra en la figura 5.12:

Figura 5.12: Diagrama a bloques del receptor UHF.

Receptor demodulador ASK: El modulo receptor Super-het receiver mod.


STD-LC, trabaja en una frecuencia de recepción de 433.92 MHz, y consis-
te de un resonador de onda acústica de superficie, un oscilador local, mez-
clador, un filtro pasa-banda, amplificador de baja frecuencia y un compa-
rador, como se muestra en la figura 5.13. El receptor de UHF convierte la
5.2. Bloque receptor 47

Figura 5.15: Diseño del circuito impreso ca-


ra superior. Figura 5.16: Diseño final PCB.

Acondicionamiento de señal: Como se mencionó en la sección del módulo


transmisor se requirió de la inversión de la señal AX.25 del ARDUINO
MEGA. De igual manera, en el modulo receptor se lleva a cabo la inver-
sión de la señal demodulada con el fin de que el decodificador AX.25
pueda recuperar las tramas de información originales.
Decodificador basado en ARDUINO: El decodificador basado en la tableta
ARDUINO UNO es la tercera etapa en proceso de recepción, procesa los
pulsos demodulados y decodifica las tramas AX.25 recibidas.

Figura 5.17: Imagen de la tableta ARDUINO UNO [12].

Computadora: La computadora es la receptora de la información. Su fun-


ción es la de desplegar los datos de misión por el enlace satélite-estación
terrena.
48 5. Desarrollo del enlace experimental satélite-tierra

5.3. Generación de datos digitales


Para la generación de las tramas AX.25 se generaron códigos para la tableta
ARDUINO MEGA, la obtención de los datos de los sensores y así como su pro-
cesamiento hacia el protocolo son ejecutados por la plataforma. En esta sección
se describen la codificación de la trama AX.25 así como su decodificación.

5.3.1. Generación de la trama AX.25


Para la elaboración de la codificación y decodificación de las tramas AX.25,
se eligió la plataforma ARDUINO MEGA para la programación de los mismos,
éste cuenta con una interfaz gráfica al usuario sencilla pero con todo lo necesa-
rio para realizar la programación, compilación y transferencia de programas al
microcontrolador [45]. En la figura 5.18 se muestra una imagen de la ventana
principal de ARDUINO. La interfaz cuenta con las siguientes características:

Editor para los programas con sangría automática.


Compilador.
Selector de tabletas ARDUINO.
Selector de puerto serie.
Cargador de programa compilado a tarjeta.
Ventana de volcado RS232 con comunicación bidireccional.

Figura 5.18: Imagen de la ventana principal de ARDUINO.


5.3. Generación de datos digitales 49

Se generaron los siguientes códigos de programación en este proyecto:

AX.25_ ARDUINO_ SINCOMSERIAL.ino


rector_ trama_ ax25.ino
De esta manera el código de programación AX.25_ ARDUINO_ SINCOMSERIAL.ino
será ejecutado en la tableta ARDUINO MEGA del transmisor y el código rector_
trama_ ax25.ino será ejecutado en la tableta ARDUINO UNO en el recep-
tor.

Flujo del programa transmisor


El programa AX.25_ ARDUINO_ SINCOMSERIAL.ino, consiste en la co-
dificación de la trama AX.25. Este consiste en la conversión de los datos de
proporcionados por los sensores. En la figura 5.19 se muestra el diagrama de
flujo del manejo de datos.

Figura 5.19: Diagrama de flujo de codificación de la trama AX.25.


50 5. Desarrollo del enlace experimental satélite-tierra

Flujo del programa receptor

El programa rector_ trama_ ax25.ino, consiste en la decodificación


de la trama AX.25. Para recuperar los datos de posición. En la figura 5.20 se
muestra el diagrama de flujo de la codificación de datos.

Figura 5.20: Diagrama de flujo de decodificación de la trama AX.25.


5.3. Generación de datos digitales 51

5.3.2. Ejemplo de construcción de la trama AX.25

Banderas

Para la programación de las banderas se declararon dos arreglos, cada uno


de ellos tiene un tamaño de 8 espacios y se identifican como: “head” and “tail”,
como se muestra en la tabla 5.1.

Banderas de inicio y fin


int head[]={0,1,1,1,1,1,1,0};

int tail[]={0,1,1,1,1,1,1,0};

Tabla 5.1: Declaración de banderas de inicio y fin.

Dirección

Para el cálculo de las direcciones en el programa se tomó en cuenta que no


se utilizarán los distintivos de llamada ni tampoco direcciones SSID; es decir
los distintivos de llamada serán representados como espacios en formato ASCII
(00100000) y los SSID como ceros, debido a que las pruebas sólo se realizarán
con dos dispositivos, las direcciones de origen y destino se muestran en las ta-
blas 5.2 y 5.3.

Campos para la dirección de origen


Valor en Desplazamiento a
Octeto Callsing(Indentificiador) Valor final del campo SSID
formato ASCII la izquierda
C1 00000000 00100000 01000000 01000000
C2 00000000 00100000 01000000 01000000
C3 00000000 00100000 01000000 01000000
C4 00000000 00100000 01000000 01000000 01100001
C5 00000000 00100000 01000000 01000000
C6 00000000 00100000 01000000 01000000

Tabla 5.2: Campos para la dirección de origen.


52 5. Desarrollo del enlace experimental satélite-tierra

Campos para la dirección de origen


Valor en Desplazamiento a
Octeto Callsing(Indentificiador) Valor final del campo SSID
formato ASCII la izquierda
C1 00000000 00100000 01000000 01000000
C2 00000000 00100000 01000000 01000000
C3 00000000 00100000 01000000 01000000
C4 00000000 00100000 01000000 01000000 01100000
C5 00000000 00100000 01000000 01000000
C6 00000000 00100000 01000000 01000000

Tabla 5.3: Campos para la dirección de origen.

De esta forma las direcciones quedan programadas como se muestra en la


tabla 5.4:

Direcciones de origen y destino


int des_addC1[]={0,1,0,0,0,0,0,0};
int des_addC2[]={0,1,0,0,0,0,0,0};
int des_addC3[]={0,1,0,0,0,0,0,0};
int des_addC4[]={0,1,0,0,0,0,0,0};
int des_addC5[]={0,1,0,0,0,0,0,0};
int des_addC6[]={0,1,0,0,0,0,0,0};
int des_addSSID[]={0,1,1,0,0,0,0,0};

int source_addC1[]={0,1,0,0,0,0,0,0};
int source_addC2[]={0,1,0,0,0,0,0,0};
int source_addC3[]={0,1,0,0,0,0,0,0};
int source_addC4[]={0,1,0,0,0,0,0,0};
int source_addC5[]={0,1,0,0,0,0,0,0};
int source_addC6[]={0,1,0,0,0,0,0,0};
int source_addSSID[]={0,1,1,0,0,0,0,1};

Tabla 5.4: Direcciones de origen y destino.

Bits de control

Para las tramas UI el campo de control es un octeto, y siempre tiene el valor


de 00000011 en binario [42] , como se muestra en la tabla 5.5.
5.3. Generación de datos digitales 53

Bits de control
int control[]={0,0,0,0,0,0,1,1};

Tabla 5.5: Bits de control

Identificador de protocolo
Para este caso el valor que debe tomar es 11110000 en binario, el cual indica
que no hay protocolo de capa 3 implementado (ver tabla 4.6), como se muestra
en la tabla 5.6.

Identificador de protocolo
int control[]={1,1,1,1,0,0,0,0};

Tabla 5.6: Identificador de protocolo

Información
En esta sección será ingresada la información recolectada por los sensores,
como ya se mencionó en secciones anteriores, el protocolo AX.25 no hace nin-
gún tipo de verificación sobre este campo y puede tomar cualquier valor entre
0 − 2048 bits.

Secuencia de verificación de trama (FCS)


El cálculo del campo FCS se realiza mediante la aplicación del algoritmo
CRC, este proceso se encuentra programado dentro del procesamiento de codi-
ficación y es aplicado a los bits que se encuentran entre la campo de bandera de
inicio y el campo FCS, una vez calculado el campo FCS es agregado a la trama
final para el envío.
54 5. Desarrollo del enlace experimental satélite-tierra

5.4. Aplicación experimental: transmisión de posi-


cionamiento GPS
Para un enlace de transmisión de posición GPS, se diseñaron y se construye-
ron dos subsistemas, uno para la recepción, codificación y trasmisión de datos
de posicionamiento GPS; y el otro para la recepción, decodificación y observa-
ción de los mismos. En la figura 5.21 se muestra el diagrama general del sistema
experimental.

Figura 5.21: Diagrama general del subsistema de comunicación de la apliación experi-


mental.

5.4.1. Recepción de señales GPS


El modulo NEO-6M-0-001 (Figura 5.22) pertenece a una familia de recep-
tores GPS autónomos con el motor de posicionamiento u-blox 6 de alto rendi-
miento. Estos receptores miniatura ofrecen numerosas opciones de conectivi-
dad. Su arquitectura compacta y sus opciones de energía y memoria hacen que
los módulos NEO-6 sean ideales para dispositivos móviles que funcionan con
5.4. Aplicación experimental: transmisión de posicionamiento GPS 55

baterías y en espacio reducidos. El modulo cuenta con las siguientes especifi-


caciones:

1. Voltaje de alimentación: 3 − 5Vdc

2. Tamaño de modulo 23x30mm

3. Antena cerámica de 22x22mm

4. Interfaz: RS232 , TTL.

5. Baud Rate por Default: 9600bps

6. Comunicación serial

7. Sensibilidad de captura -148dBm

Figura 5.22: Modulo NEO-6M-0-001.

El modulo recibe señales GPS de diferentes protocolos de posicionamiento.


La configuración utilizada es para recepción de mensajes en protocolo NMEA.
En el caso especifico de este trabajo de tesis se utilizarán los mensajes de tipo
RMC (RMC, Recommended Minimum Data))[18]. Los conjuntos de datos NMEA
0183 son flujos de datos en formato ASCII; la velocidad de transmisión es de
4, 800bps [34]. En la tabla 5.7 se describen los campos que son utilizados en
este proyecto: latitud, longitud, fecha y hora.
58 5. Desarrollo del enlace experimental satélite-tierra

una trama final en formato AX.25.

Trama AX.25
Campo Valor
Bandera de inicio 01111110
C1 01000000
C2 01000000
C3 01000000
Dirección C4 01000000
de C5 01000000
destino
C6 01000000
SSID 01100000
C1 01000000
C2 01000000
C3 01000000
Dirección C4 01000000
de C5 01000000
origen
C6 01000000
SSID 01100001
Control 00000011
PID 11110000
000000000010011
000000001100010
000000000000100
Información 000000000001010
000011111100010
000000000010110
000000000011111
FCS 0111010011000101
Bandera de fin 01111110

Tabla 5.8: Ejemplo de trama AX.25.


5.4. Aplicación experimental: transmisión de posicionamiento GPS 59

5.4.2. Bloque transmisor


Para poder llevar a cabo la prueba experimental se integraron todos los mó-
dulos del transmisor UHF. En la figura 5.26 se puede observar el diagrama a
bloques todos los elementos que lo integran.

Figura 5.26: Diagrama a bloques del sistema transmisor de la aplicación experimental.

Elementos que constituyen el bloque transmisor:

Receptor GPS: Este modulo presenta la primera etapa del bloque trans-
misor. El receptor GPS recibe las tramas de posicionamiento. El modulo
GPS entrega los datos serie la tableta ARDUINO MEGA con una velociad
de 9600 bps.
Subsistema de potencia: Para el bloque transmisor se diseño un subsistema
de potencia que consiste de dos baterías de: 3.7V y corriente de 2600mAh,
conectadas en serie para voltaje total de 7.4V y corriente de 2600mAh. Es-
te subsistema alimenta a la tableta ARDUINO MEGA y todos los demás
módulos del bloque transmisor (receptor GPS, inversor 74LS04, modula-
dor TX-SAW). El bloque transmisor puede trabajar de forma autónoma,
con el propósito de realizar pruebas a distancia.
Convertidor de protocolo basado en ARDUINO: Como se menciono en la
sección 5.1, la tableta ARDUINO UNO recibe la información de los sen-
sores; en este caso el receptor GPS y la codifica al protocolo AX.25.
Acondicionamiento de señal: En esta sección se adecua la señal para que
esta cuente con una forma apta para su transmisión, en la sección 5.1 se
describe el proceso de acondicionamiento.
Transmisor modulador ASK: Finalmente una vez adecuada la señal de da-
tos esta es enviada al modulador ASK para su transmisión en UHF.

En la figura 5.27 se muestra el bloque transmisor con todos los módulos que
lo integran. En la figura 5.28 el bloque transmisor en pruebas de funcionamien-
to a distancia.
5.4. Aplicación experimental: transmisión de posicionamiento GPS 63

Figura 5.32: Subsistema receptor en funcionamiento.

Figura 5.33: Mediciones del receptor UHF/decodificador AX.25.


CAPÍTULO 6

CONCLUSIONES

E
n conclusión, la propuesta del estudio y la realización del sistema míni-
mo transmisor, tuvo como objetivo el envió de datos de telemetría así
como de sensores a través de un enlace de comunicaciones, utilizando
el formato de modulación ASK con una portadora RF en UHF a 433.92MHz.
En particular, se estudió la estructura del protocolo de comunicación AX.25.
Asimismo, se realizó la programación y codificación de sus tramas, tomando
en cuenta las características establecidas por el protocolo.

Para la realización y codificación de los programas, se utilizó la tableta AR-


DUINO MEGA para el bloque transmisor, esto por la capacidad de puertos
seriales con los que cuenta, disminuyendo los retardos en la ejecución del pro-
grama y la comunicación implementada con el bloque receptor. De este modo,
el programa codificador se diseñó para la recepción de datos de sensores; el
cual crea cada uno de los campos de las tramas y las entrega para su posterior
modulación. En este sentido, se creó la rutina para el cálculo de la secuencia
de verificación de trama (FCS), implementando una verificación de redundan-
cia cíclica CRC-16. Por otra parte, se realizó el programa decodificador para el
bloque receptor, que se encargó de recibir las tramas que se enviaron, decodi-
ficándolas y transmitiéndolas a una computadora para su despliegue final.

En cuanto la aplicación experimental, se presentó la arquitectura general de


los sistemas transmisor y receptor; en este sentido se eligió un módulo receptor
GPS NEO-6M para la obtención de los datos de telemetría. La trama AX.25 que
es entregada por la tableta ARDUINO MEGA se encuentra con una configura-
ción de comunicación asíncrona; debido a esto, es necesario la inversión de la
señal para su posterior proceso de modulación. De acuerdo con lo anterior las
tramas se enviaron al modulador ASK el cual genera una portadora de RF de
433.92MHz y tiene una potencia de salida de +10dBm. Asimismo, el bloque
68 6. Conclusiones

receptor contó con un receptor super heterodino para demodulación ASK, el


cual se encargó de enviar las tramas al inversor con el fin de ser comprendidos
por el decodificador. De esta forma, se decodificaron las tramas AX.25, la cual
se validó y posteriormente se obtuvo la información de posicionamiento. Para
finalizar con lo propuesto, los datos de posicionamiento fueron enviados a una
computadora para su despliegue final.
BIBLIOGRAFÍA

[1] S. P. Álvarez, “Software para analisis del presupuesto de enlace para co-
municaciones vía satélite,” 2004.

[2] A. LEICK, GPS SATELITTE SURVEYING. JOHN WILEY & SONS, 2004.

[3] CubeSat, “Cubesat.” https://www.cubesat.org/, 2019.

[4] u-ublox AG, GPS. ublox, 2009.

[5] Leica, Introduccion al Sistema GPS. 1999.

[6] E. D. Kaplan and C. J. Hegarty, Understanding GPS. 2 ed., 2006.

[7] S. Bible, “Spread spectrum - it’s not just for breakfast anymore!,” 2014.

[8] J. A. C. AGUIRRE and A. L. R. HURTADO, “TransmisiÓn de informaciÓn


usando la modulaciÓn (dsss).”

[9] B. H. Fleury, “Spread-spectrum technique and its application to ds/cd-


ma,” 2008.

[10] G. G. M., “Sesión 11: Captura de datos, procesamiento y análisis: Gps -


pda en cartografía censal.” https://slideplayer.es/slide/6120283/, 2008.

[11] Jimblom, “Serial communication.”

[12] Arduino, “Serial,” 2018.

[13] “Dispositivos lÓgicos microprogramables,” 2014.

[14] L. A. R. Meneses, “Diseño e integración de un radioenlace experimental


en la banda de uhf para comunicaciones satelitales,” 2014.
70 BIBLIOGRAFÍA

[15] C. F. de Telecomunicaciones, “Cuadro nacional de atribución de frecuen-


cias,” techreport, Secretaría de Comunicaciones y Transportes, 2012.

[16] W. Liu, “Osi model reference chart,” 2018.

[17] W. A. Beech, D. E. Nielsen, and J. Taylor, “Ax.25 link access protocol for
amateur packet radio,” techreport, Tucson Amateur Packet Radio Corpo-
ration, July 1998.

[18] “Gps,” 2009.

[19] J. Louis J. Ippolito, Satellite Comunications Systems Engineering. 2008.

[20] B. L. E. Mendez, “Link budget fot ntnu test satellite.”

[21] C. D. Muñoz, “Frecuencias de comunciación satelital,” 2010.

[22] A. Ambardar, Procesamiento de Señales Analógicas y Digitales. 2 ed.

[23] H. HSU, Analog and Digital Communications. 2 ed., 2003.

[24] W. Tomasi, Sistemas de Comunicaciones Electrónicas. 2003.

[25] I. LEON W. COUCH, SISTEMAS DE COMUNICACIÓN DIGITALES Y


ANALOGICOS. séptima edición ed., 2008.

[26] J. L. Rodríguez and S. C. Suero, MODULACIÓN DE SEÑALES DIGITALES.

[27] F. J. A. Moreno, “AnÁlisis y evaluaciÓn de tecnologÍas para pequeÑos sa-


telites,” 2007.

[28] C. G. Martínez, Introducción al Diseño de Satélites Pequeños. 2014.

[29] P. Fortescue, J. Stark, and G. Swinerd, Spacecraft systems Engineering. third


edition ed., 2003.

[30] E. Huerta, A. Mangiaterra, and G. Noguera, GPS - Poscionamiento satelital.


1 ed., 2005.

[31] “Global positioning system,” 2009.

[32] G. de los Estados Unidos, “Gps.gov.”

[33] M. P. H. Blas and J. C. B. Ortega, GPS & GLONASS. 1998.

[34] A. El-Rabbany, INTROUDUCTION TO GPS. 2002.

[35] J. B.-Y. Tsui, Fundamentals of Global Positioning System Receivers. 2000.


BIBLIOGRAFÍA 71

[36] D. Wells, N. Beck, D. Delikaraoglou, A. Kleusberg, E. J. Krakiwsky, G. La-


chapelle, R. B. Langley, M. Nakiboglu, K.-P. S. andJames M. Tranquilla,
and P. Vanicek, Guide to GPS Positioning. 1986.

[37] I. Ali and A. Agarwal, “Next generation cdma technology,” Elixir Interna-
tional Journal, 2013.

[38] L. G. Inc., GPS Basics. 1 ed., 1999.

[39] ublox AG, “The gps dictionary,” tech. rep., ublox, 2010.

[40] M. A. Gronstad, “Implementation of a communication protocol for cubes-


tar,” Master’s thesis, University of Oslo, July 2010.

[41] “Ax.25 amateur packet-radio link-layer protocol.”

[42] F. George and S. Billeter, “Ax.25 telemetry and telecommand transfer fra-
mes format,” techreport 1, Swiss Space Center EPFL, Mar. 2015.

[43] Y. A. Ahmad, N. J. Nazmin, and S. S. Yuhaniz, “Design of a terminal node


controller hardware for cubesat tracking applications,” AEROTECH VI -
Innovation in Aerospace Engineering and Technology, 2016.

[44] “The cyclic redundancy check (crc) for ax.25,” 11 2008.

[45] J. M. Pérez, C. G. Martínez, J. A. T. Fórtiz, and A. M. Díaz, “Computado-


ra de control del nanosatélite ulises i,” tech. rep., Instituto Nacional de
Astrofísica Optica y Electrónica, 2014.
APÉNDICE A

APÉNDICE

1 //GENERACION DE TRAMA AX. 2 5


2 //HERNAN OJEDA DELGADO INAOE 2018
3
4 // L i b r e r i a s a u t i l i z a r
5 # i n c l u d e < S o f t w a r e S e r i a l . h> // Para comunciacion s e r i a l de
c u a l q u i e r pin d i g i t a l
6 # i n c l u d e <TinyGPS . h> // L i b r e r i a para d e c o d i f i c a r l a s tramas GPS
NMEA
7 # i n c l u d e < A l t S o f t S e r i a l . h> // L i b r e r i a para u t i l i z a r o t r o puerto
serial
8
9 // D e c l a r a c i o n de p i n e s a u t i l i z a r
10 TinyGPS gps ; // Declaramos e l o b j e t o gps
11 // S o f t w a r e S e r i a l mySerial ( 4 , 5 ) ; / / Declaramos e l pin 4 Rx y 5 Tx
12 A l t S o f t S e r i a l a l t S e r i a l ; // Declaramos e l pin 8 Rx y 9 Tx
13
14 // Declaramos l a v a r i a b l e s para l a o b t e n c i o n de d a t o s
15 i n t ye a r ; // V a r i a b l e para anio
16 f l o a t l a t i t u d e , l o n g i t u d e ; // V a r i a b l e s para l a t i t u d y l o n g i t u d
17 byte month , day , hour , minute , second , hundredths ; // V a r i a b l e s
para mes , dia , hora , minuto , segundo , c e n t e s i m a s
18 f l o a t package [ 7 ] ; // Array con l o s d a t o s de p o s i c i o n
19 i n t G[ ] = { 0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,1 } ; // Generador
p o l i n o m i a l para CCITT−CRC
20 i n t GFlip [ ] = { 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 } ; // Se v o l t e a e l
polinomio generador
21 i n t r = 15 ; // Longitud d e l r e g i s t r o de deplazamiento
22 i n t SR [ ] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 } ;
23 i n t FCS [ ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ;
24 i n t paqueteFCS [ 232 ] ;
25

26 void setup ( )
27 {
74 A. Apéndice

28 // I n i c i a m o s comunicacion s e r i a l con PC
31 S e r i a l . begin ( 9600 ) ;
32 // I n i c i a m o s l a comucion s e r i a l con GPS NEO−6M
33 S e r i a l 1 . begin ( 9600 ) ; // I n i c i a m o s e l puerto s e r i e d e l gps
34 // I n i c i a m o s comunicacion con r e p e c i o n
35 S e r i a l 2 . begin ( 1200 ) ;
36 }
37
38 void loop ( ) //Run over and over
39 {
40 bool newdata = f a l s e ;
41 unsigned long s t a r t = m i l l i s ( ) ;
42 // Cada 5 segundos e x i s t e a c t u a l i z a c i o n
43 while ( m i l l i s ( ) − s t a r t < 5000 )
44 {
45 i f ( Serial1 . available ( ) )
46 {
47 char c = S e r i a l 1 . read ( ) ;
48 i f ( gps . encode ( c ) )
49 {
50 newdata = t r u e ;
51 break ; // uncomment t o p r i n t new data immediately !
52 }
53 }
54 }
55
56 i f ( newdata )
57 {
58 gps . f _ g e t _ p o s i t i o n (& l a t i t u d e , &l o n g i t u d e ) ;
59 gps . c r a c k _ d a t e t i m e (& year ,&month,&day ,& hour ,& minute ,& second
,& hundredths ) ;
60
61 Serial . println
("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
;
62 S e r i a l . p r i n t ( " L a t i t u d / Longitud : " ) ;
63 Serial . print ( latitude , 5) ;
64 Serial . print ( " , " ) ;
65 Serial . println ( longitude , 5 ) ;
66 S e r i a l . p r i n t ( " Fecha : " ) ; S e r i a l . p r i n t ( day , DEC) ; S e r i a l .
print ( " / " ) ;
67 S e r i a l . p r i n t ( month , DEC) ; S e r i a l . p r i n t ( " / " ) ; S e r i a l .
p r i n t l n ( ye a r ) ;
68 S e r i a l . p r i n t ( " Hora : " ) ; S e r i a l . p r i n t ( hour , DEC) ; S e r i a l .
print ( " : " ) ;
69 S e r i a l . p r i n t l n ( minute , DEC) ;
70

71 package [ 0 ] = latitude ;
72 package [ 1 ] = l o n g i t u d e *−1 ;
73 package [ 2 ] = day ;
74 package [ 3 ] = month ;
75

75 package [ 4 ] = ye a r ;
78 package [ 5 ] = hour ;
79 package [ 6 ] = minute ;
80 ax25 ( package ) ; // Manda todo e l paquete de
informacon a l a funcion para conformar l a trama ax . 2 5
81
82 }
83 }
84
85 // Funcion para conformar l a trama AX. 2 5
86 void ax25 ( f l o a t package [ ] )
87 {
88 //−−−−−−−−−−−−−−−−−−−−CONFORMACION DE LA TRAMA AX
.25−−−−−−−−−−−−−−−−−−−−−−−−−−−−−//
89
90 //HEAD FLAG ( Bandera de i n c i o ) BIN:01111110 HEX: 0 x7E
91

92 i n t head [ ] = { 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 } ;
93
94 //ADRESSS ( D i r e c c i o n de o r i g e n y d e s t i n o ) D e s t i n a t i o n Adress (HEX
: 4 0 , 4 0 , 4 0 , 4 0 , 4 0 , 4 0 , 6 0 ) Source Adress ( 4 0 , 4 0 , 4 0 , 4 0 , 4 0 , 4 0 , 6 1 )
95
96 int des_addC1 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
97 int des_addC2 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
98 int des_addC3 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
99 int des_addC4 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
100 int des_addC5 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
101 int des_addC6 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
102 int des_addSSID [ ] = { 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 } ;
103
104 int source_addC1 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
105 int source_addC2 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
106 int source_addC3 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
107 int source_addC4 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
108 int source_addC5 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
109 int source_addC6 [ ] = { 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 } ;
110 int source_addSSID [ ] = { 0 , 1 , 1 , 0 , 0 , 0 , 0 , 1 } ;
111
112 //CONTROL ( 8 ) ( Determina que t i p o de trama s e e s t a u t i l i z a n d o en
e s t e c a s o UI frame ) BIN:00000011 HEX: 0 x03
113

114 int control [ ] = { 0 ,0 ,0 ,0 ,0 ,0 ,1 ,1 } ;


115
116 //PID ( 8 ) ( Determina que t i p o de p r o t o c o l o de capa 3 s e e s t a
u t i l i z a n d o en e s t e c a s o no s e usa ) BIN:11110000 HEX: 0 xF0
117
118 i n t PID [ ] = { 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 } ;
119
120 //DATA(0 −256) ( Datos de informacion ) }
121

122 int latitude_binario [ ] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 } ;


76 A. Apéndice

123 i n t num=package [ 0 ] ;
126 i n t j =14 ;
127 do
128 {
129 l a t i t u d e _ b i n a r i o [ j ] = num%2 ;
130 num=num/2 ;
131 j − −;
132 } while (num != 0 ) ;
133
134 int longitude_binario [ ] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 } ;
135 num=package [ 1 ] ;
136 j =14 ;
137 do
138 {
139 l o n g i t u d e _ b i n a r i o [ j ] = num%2 ;
140 num=num/2 ;
141 j − −;
142 } while (num != 0 ) ;
143
144 int day_binario [ ] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 } ;
145 num=package [ 2 ] ;
146 j =14 ;
147 do
148 {
149 d a y _ b i n a r i o [ j ] = num%2 ;
150 num=num/2 ;
151 j − −;
152 } while (num != 0 ) ;
153

154 i n t month_binario [ ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ;
155 num=package [ 3 ] ;
156 j =14 ;
157 do
158 {
159 month_binario [ j ] = num%2 ;
160 num=num/2 ; ;
161 j − −;
162 } while (num != 0 ) ;
163
164
165 int year_binario [ ] { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 } ;
166 num=package [ 4 ] ;
167 j =14 ;
168 do
169 {
170 y e a r _ b i n a r i o [ j ] = num%2 ;
171 num=num/2 ;
172 j − −;
173 } while (num != 0 ) ;
174

175 int hour_binario [ ] = { 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 } ;


77

176 num=package [ 5 ] ;
179 j =14 ;
180 do
181 {
182 h o u r _ b i n a r i o [ j ] = num%2 ;
183 num=num/2 ;
184 j − −;
185 } while (num != 0 ) ;
186
187
188 i n t m i n u t e _ bi n a r i o [ ] = { 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 } ;
189 num=package [ 6 ] ;
190 j =14 ;
191 do
192 {
193 m i n u t e _ b i n a r i o [ j ] = num%2 ;
194 num=num/2 ;
195 j − −;
196 } while (num != 0 ) ;
197
198 //FCS ( 1 6 ) ( Frame check sequence : asegura que l a trama no fue
corrompida durante l a t r a n s m i s i o n )
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
199
200 f o r ( i n t i =0 ; i <=232 ; i ++)
201 {
202 i f ( i >= 0 && i <=7 )
203 {
204 paqueteFCS [ i ]= des_addC1 [ i ] ;
205 }
206 e l s e i f ( i >= 8 && i <=15 )
207 {
208 paqueteFCS [ i ]= des_addC2 [ i −8 ] ;
209 }
210 e l s e i f ( i >= 16 && i <=23 )
211 {
212 paqueteFCS [ i ]= des_addC3 [ i −16 ] ;
213 }
214 e l s e i f ( i >= 24 && i <=31 )
215 {
216 paqueteFCS [ i ]= des_addC4 [ i −24 ] ;
217 }
218 e l s e i f ( i >= 32 && i <=39 )
219 {
220 paqueteFCS [ i ]= des_addC5 [ i −32 ] ;
221 }
222 e l s e i f ( i >= 40 && i <=47 )
223 {
224 paqueteFCS [ i ]= des_addC6 [ i −40 ] ;
225 }
226 e l s e i f ( i >= 48 && i <=55 )
78 A. Apéndice

227 {
230 paqueteFCS [ i ]= des_addSSID [ i −48 ] ;
231 }
232 e l s e i f ( i >=56 && i <=63 )
233 {
234 paqueteFCS [ i ]= source_addC1 [ i −56 ] ;
235 }
236 e l s e i f ( i >=64 && i <=71 )
237 {
238 paqueteFCS [ i ]= source_addC2 [ i −64 ] ;
239 }
240 e l s e i f ( i >=72 && i <=79 )
241 {
242 paqueteFCS [ i ]= source_addC3 [ i −72 ] ;
243 }
244 e l s e i f ( i >=80 && i <=87 )
245 {
246 paqueteFCS [ i ]= source_addC4 [ i −80 ] ;
247 }
248 e l s e i f ( i >=88 && i <=95 )
249 {
250 paqueteFCS [ i ]= source_addC5 [ i −88 ] ;
251 }
252 e l s e i f ( i >=96 && i <=103 )
253 {
254 paqueteFCS [ i ]= source_addC6 [ i −80 ] ;
255 }
256 e l s e i f ( i >=104 && i <=111 )
257 {
258 paqueteFCS [ i ]= source_addSSID [ i −104 ] ;
259 }
260 e l s e i f ( i >=112 && i <=119 )
261 {
262 paqueteFCS [ i ]= c o n t r o l [ i −112 ] ;
263 }
264 e l s e i f ( i >=120 && i <=127 )
265 {
266 paqueteFCS [ i ]=PID [ i −120 ] ;
267 }
268 e l s e i f ( i >=128 && i <=142 )
269 {
270 paqueteFCS [ i ]= l a t i t u d e _ b i n a r i o [ i −128 ] ;
271 }
272 e l s e i f ( i >=143 && i <=157 )
273 {
274 paqueteFCS [ i ]= l o n g i t u d e _ b i n a r i o [ i −143 ] ;
275 }
276 e l s e i f ( i >=158 && i <=172 )
277 {
278 paqueteFCS [ i ]= d a y _ b i n a r i o [ i −158 ] ;
279 }
79

280 e l s e i f ( i >=173 && i <=187 )


283 {
284 paqueteFCS [ i ]= month_binario [ i −173 ] ;
285 }
286 e l s e i f ( i >=188 && i <=202 )
287 {
288 paqueteFCS [ i ]= y e a r _ b i n a r i o [ i −188 ] ;
289 }
290 e l s e i f ( i >=203 && i <=217 )
291 {
292 paqueteFCS [ i ]= h o u r _ b i n a r i o [ i −203 ] ;
293 }
294 e l s e i f ( i >=218 && i <=232 )
295 {
296 paqueteFCS [ i ]= m i n u t e _ b i n a r i o [ i −218 ] ;
297 }
298 }
299
300
301 i n t N_bits= s i z e o f ( paqueteFCS ) / s i z e o f ( paqueteFCS [ 0 ] ) ;
302
303 f o r ( i n t i =1 ; i <=N_bits ; i ++)
304 {
305 i n t Outbit=SR [ r ] ;
306
307 f o r ( i n t j =15 ; j >=0 ; j −−)
308 {
309 i f ( j ==0 )
310 {
311 SR [ j ]=0 ;
312 }
313 else
314 {
315 SR [ j ]=SR [ j −1 ] ;
316 }
317 }
318
319 i f ( Outbit != paqueteFCS [ i −1 ] ) // S i son d i f e r e n t e s
320 {
321
322 f o r ( i n t k=0 ; k<=15 ; k++)
323 {
324 i f ( SR [ k]== GFlip [ k ] )
325 {
326 SR [ k]=0 ;
327 }
328 else
329 {
330 SR [ k]=1 ;
331 }
332 }
80 A. Apéndice

333 }
336 }
337
338
339

340 //NEGACION Y VOLTEO


341
342 f o r ( i n t i =0 ; i <=15 ; i ++)
343 {
344 i f ( SR [ i ]==1 )
345 {
346 SR [ i ]=0 ;
347 }
348 else
349 {
350 SR [ i ]=1 ;
351 }
352 }
353
354
355 f o r ( i n t i =0 ; i <=15 ; i ++)
356 {
357 FCS [ i ]=SR [ 15− i ] ;
358 }
359
360
361 //TAIL FLAG( 1 ) ( Bandera de f i n a l ) BIN:01111110 HEX: 0 x7E
−−−−−−−−−−−−−−−−−−−−−−−−−−−
362

363 int t a i l [ ] = { 0 ,1 ,1 ,1 ,1 ,1 ,1 ,0 } ;
364
365 //−−−−−−−−−−−−−−−−−−−−FIN DE CONFORMACION DE LA TRAMA AX
.25−−−−−−−−−−−−−−−−−−−−−−//
366
367

368 // SE MANDA CADA UNA DE LAS PARTES LA TRAMA A LA FUNCION ENVIAR


PARA QUE ESTAS SEAN ENVIADAS A LA SALIDA DEL PIN13
369
370
371 i n t elementos= s i z e o f ( head ) / s i z e o f ( head [ 0 ] ) ;
372 e n v i a r ( head , elementos ) ;
373
374 i n t elementos2= s i z e o f ( des_addC1 ) / s i z e o f ( des_addC1 [ 0 ] ) ;
375 e n v i a r ( des_addC1 , elementos2 ) ;
376 i n t elementos3= s i z e o f ( des_addC2 ) / s i z e o f ( des_addC2 [ 0 ] ) ;
377 e n v i a r ( des_addC2 , elementos3 ) ;
378 i n t elementos4= s i z e o f ( des_addC3 ) / s i z e o f ( des_addC3 [ 0 ] ) ;
379 e n v i a r ( des_addC3 , elementos4 ) ;
380 i n t elementos5= s i z e o f ( des_addC4 ) / s i z e o f ( des_addC4 [ 0 ] ) ;
381 e n v i a r ( des_addC4 , elementos5 ) ;
382 i n t elementos6= s i z e o f ( des_addC5 ) / s i z e o f ( des_addC5 [ 0 ] ) ;
81

383 e n v i a r ( des_addC5 , elementos6 ) ;


386 i n t elementos7= s i z e o f ( des_addC6 ) / s i z e o f ( des_addC6 [ 0 ] ) ;
387 e n v i a r ( des_addC6 , elementos7 ) ;
388 i n t elementos8= s i z e o f ( des_addSSID ) / s i z e o f ( des_addSSID [ 0 ] ) ;
389 e n v i a r ( des_addSSID , elementos8 ) ;
390
391
392 i n t elementos9= s i z e o f ( source_addC1 ) / s i z e o f ( source_addC1 [ 0 ] ) ;
393 e n v i a r ( source_addC1 , elementos9 ) ;
394 i n t elementos10= s i z e o f ( source_addC2 ) / s i z e o f ( source_addC2 [ 0 ] ) ;
395 e n v i a r ( source_addC2 , elementos10 ) ;
396 i n t elementos11= s i z e o f ( source_addC3 ) / s i z e o f ( source_addC3 [ 0 ] ) ;
397 e n v i a r ( source_addC3 , elementos11 ) ;
398 i n t elementos12= s i z e o f ( source_addC4 ) / s i z e o f ( source_addC4 [ 0 ] ) ;
399 e n v i a r ( source_addC4 , elementos12 ) ;
400 i n t elementos13= s i z e o f ( source_addC5 ) / s i z e o f ( source_addC5 [ 0 ] ) ;
401 e n v i a r ( source_addC5 , elementos13 ) ;
402 i n t elementos14= s i z e o f ( source_addC6 ) / s i z e o f ( source_addC6 [ 0 ] ) ;
403 e n v i a r ( source_addC6 , elementos14 ) ;
404 i n t elementos15= s i z e o f ( source_addSSID ) / s i z e o f ( source_addSSID [ 0 ] )
;
405 e n v i a r ( source_addSSID , elementos15 ) ;
406

407 i n t elementos16= s i z e o f ( c o n t r o l ) / s i z e o f ( c o n t r o l [ 0 ] ) ;
408 e n v i a r ( c o n t r o l , elementos16 ) ;
409
410 i n t elementos17= s i z e o f ( PID ) / s i z e o f ( PID [ 0 ] ) ;
411 e n v i a r ( PID , elementos17 ) ;
412

413 i n t elementos18= s i z e o f ( l a t i t u d e _ b i n a r i o ) / s i z e o f ( l a t i t u d e _ b i n a r i o
[0 ] ) ;
414 e n v i a r ( l a t i t u d e _ b i n a r i o , elementos18 ) ;
415
416 i n t elementos19= s i z e o f ( l o n g i t u d e _ b i n a r i o ) / s i z e o f (
longitude_binario [0 ] ) ;
417 e n v i a r ( l o n g i t u d e _ b i n a r i o , elementos19 ) ;
418
419 i n t elementos20= s i z e o f ( d a y _ b i n a r i o ) / s i z e o f ( d a y _ b i n a r i o [ 0 ] ) ;
420 e n v i a r ( d ay_bin ario , elementos20 ) ;
421
422 i n t elementos21= s i z e o f ( month_binario ) / s i z e o f ( month_binario [ 0 ] ) ;
423 e n v i a r ( month_binario , elementos21 ) ;
424
425 i n t elementos22= s i z e o f ( y e a r _ b i n a r i o ) / s i z e o f ( y e a r _ b i n a r i o [ 0 ] ) ;
426 e n v i a r ( y e a r _ b i n a r i o , elementos22 ) ;
427
428 i n t elementos23= s i z e o f ( h o u r _ b i n a r i o ) / s i z e o f ( h o u r _ b i n a r i o [ 0 ] ) ;
429 e n v i a r ( hour_bi na ri o , elementos23 ) ;
430
431 i n t elementos24= s i z e o f ( m i n u t e _ b i n a r i o ) / s i z e o f ( m i n ut e _ b i n a r i o [ 0 ] )
;
82 A. Apéndice

432 e n v i a r ( minute_binario , elementos24 ) ;


435
436 i n t elementos25= s i z e o f ( FCS ) / s i z e o f ( FCS [ 0 ] ) ;
437 e n v i a r ( FCS , elementos25 ) ;
438

439 i n t elementos26= s i z e o f ( t a i l ) / s i z e o f ( t a i l [ 0 ] ) ;
440 e n v i a r ( t a i l , elementos26 ) ;
441
442
443 de la y ( 10000 ) ;
444 Serial . println ( ) ;
445 }
446
447 // Funcion para conformar l a trama AX. 2 5
448 void e n v i a r ( i n t cadena [ ] , i n t elementos )
449 {
450

451 f o r ( i n t i =0 ; i <=elementos −1 ; i ++)


452 {
453 i f ( cadena [ i ]==1 )
454 {
455 Serial . print ("1 " ) ;
456 Serial2 . print ("1 " ) ;
457 }
458 e l s e i f ( cadena [ i ]==0 )
459 {
460 Serial2 . print ("0 " ) ;
461 Serial . print ("0 " ) ;
462 }
463 }
464
465 Serial . println ( ) ;
466 }

Listing A.1: Código de codificación de la trama AX.25 en Arduino.

1 //REPECION DE TRAMA AX. 2 5


2 //HERNAN OJEDA DELGADO INAOE 2018
3
4 # i n c l u d e < S o f t w a r e S e r i a l . h>
5
6 //CREAMOS UN NUEVO PUERTO SERIE (RX, TX)
7 S o f t w a r e S e r i a l S e r i e 2 ( 10 , 11 ) ; //RX TX
8
9 i n t data [ 265 ] ; // Trama de d a t o s o b t e n i d a
10 i n t l a t i t u d [ 15 ] , l o n g i t u d [ 15 ] , d i a [ 15 ] , mes [ 15 ] , ano [ 15 ] , hora [ 15 ] ,
minuto [ 15 ] ; // Datos de e n t r e g a
11 i n t contador=0 , dato ;
12

13 void setup ( )
14 {
83

15 // I n i c i a m o s l a comunicacion s e r i a l
16 S e r i a l . begin ( 9600 ) ;
19 S e r i e 2 . begin ( 1200 ) ;
20 }
21

22 void loop ( ) //Run over and over


23 {
24
25 Serie2. listen ( ) ;
26 i f ( S e r i e 2 . a v a i l a b l e ( ) >0 ) //Comprobamos s i en e l b u f f e r hay d a t o s
27 {
28 i n t dato= S e r i e 2 . read ( ) ; // Lee cada c a r a c t e r uno por uno y
s e almacena en una v a r i a b l e
29
30 i f ( dato == 48 )
31 {
32 data [ contador ]=0 ;
33 contador ++;
34 }
35 e l s e i f ( dato == 49 )
36 {
37 data [ contador ]=1 ;
38 contador ++;
39 }
40 }
41
42 i f ( ( contador==265 ) && ( data [ 0]==0 ) &&(data [ 1]==1 ) &&(data [ 2]==1 )
&&(data [ 3]==1 ) &&(data [ 4]==1 ) &&(data [ 5]==1 ) &&(data [ 6]==1 ) &&(
data [ 7]==0 ) ) // V e r i f i c a c i o n de trama y banderas
43 {
44 contador=0 ;
45 Serial . println
("−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
;
46 S e r i a l . p r i n t l n ( " Trama o b t e n i d a : " ) ;
47
48 f o r ( i n t i =0 ; i <=264 ; i ++)
49 {
50 S e r i a l . p r i n t ( data [ i ] ) ;
51 }
52

53 l a t i t u d [ 0]= data [ 136 ] ;


54 l a t i t u d [ 1]= data [ 137 ] ;
55 l a t i t u d [ 2]= data [ 138 ] ;
56 l a t i t u d [ 3]= data [ 139 ] ;
57 l a t i t u d [ 4]= data [ 140 ] ;
58 l a t i t u d [ 5]= data [ 141 ] ;
59 l a t i t u d [ 6]= data [ 142 ] ;
60 l a t i t u d [ 7]= data [ 143 ] ;
61 l a t i t u d [ 8]= data [ 144 ] ;
62 l a t i t u d [ 9]= data [ 145 ] ;
84 A. Apéndice

63 l a t i t u d [ 10]= data [ 146 ] ;


66 l a t i t u d [ 11]= data [ 147 ] ;
67 l a t i t u d [ 12]= data [ 148 ] ;
68 l a t i t u d [ 13]= data [ 149 ] ;
69 l a t i t u d [ 14]= data [ 150 ] ;
70
71 i n t P=14 ; // Contador a 14
72 dato=0 ; // Dato a c e r o
73
74 f o r ( i n t i =0 ; i <=14 ; i ++)
75 {
76 dato =( l a t i t u d [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
77 P− −;
78 }
79 Serial . println ( ) ;
80 S e r i a l . p r i n t ( " L a t i t u d : " ) ; S e r i a l . p r i n t ( dato ) ;
81 Serial . println ( ) ;
82
83 l o n g i t u d [ 0]= data [ 151 ] ;
84 l o n g i t u d [ 1]= data [ 152 ] ;
85 l o n g i t u d [ 2]= data [ 153 ] ;
86 l o n g i t u d [ 3]= data [ 154 ] ;
87 l o n g i t u d [ 4]= data [ 155 ] ;
88 l o n g i t u d [ 5]= data [ 156 ] ;
89 l o n g i t u d [ 6]= data [ 157 ] ;
90 l o n g i t u d [ 7]= data [ 158 ] ;
91 l o n g i t u d [ 8]= data [ 159 ] ;
92 l o n g i t u d [ 9]= data [ 160 ] ;
93 l o n g i t u d [ 10]= data [ 161 ] ;
94 l o n g i t u d [ 11]= data [ 162 ] ;
95 l o n g i t u d [ 12]= data [ 163 ] ;
96 l o n g i t u d [ 13]= data [ 164 ] ;
97 l o n g i t u d [ 14]= data [ 165 ] ;
98
99 P=14 ; // Contador a 14
100 dato=0 ; // Dato a c e r o
101
102 f o r ( i n t i =0 ; i <=14 ; i ++)
103 {
104 dato =( l o n g i t u d [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
105 P− −;
106 }
107 S e r i a l . p r i n t ( " Longitud : " ) ; S e r i a l . p r i n t ( dato *−1 ) ;
108 Serial . println ( ) ;
109
110 d i a [ 0]= data [ 166 ] ;
111 d i a [ 1]= data [ 167 ] ;
112 d i a [ 2]= data [ 168 ] ;
113 d i a [ 3]= data [ 169 ] ;
114 d i a [ 4]= data [ 170 ] ;
115 d i a [ 5]= data [ 171 ] ;
85

116 d i a [ 6]= data [ 172 ] ;


119 d i a [ 7]= data [ 173 ] ;
120 d i a [ 8]= data [ 174 ] ;
121 d i a [ 9]= data [ 175 ] ;
122 d i a [ 10]= data [ 176 ] ;
123 d i a [ 11]= data [ 177 ] ;
124 d i a [ 12]= data [ 178 ] ;
125 d i a [ 13]= data [ 179 ] ;
126 d i a [ 14]= data [ 180 ] ;
127
128 P=14 ; // Contador a 14
129 dato=0 ; // Dato a c e r o
130
131 f o r ( i n t i =0 ; i <=14 ; i ++)
132 {
133 dato =( d i a [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
134 P− −;
135 }
136 S e r i a l . p r i n t ( " Fecha : " ) ; S e r i a l . p r i n t ( dato ) ;
137
138 mes [ 0]= data [ 181 ] ;
139 mes [ 1]= data [ 182 ] ;
140 mes [ 2]= data [ 183 ] ;
141 mes [ 3]= data [ 184 ] ;
142 mes [ 4]= data [ 185 ] ;
143 mes [ 5]= data [ 186 ] ;
144 mes [ 6]= data [ 187 ] ;
145 mes [ 7]= data [ 188 ] ;
146 mes [ 8]= data [ 189 ] ;
147 mes [ 9]= data [ 190 ] ;
148 mes [ 10]= data [ 191 ] ;
149 mes [ 11]= data [ 192 ] ;
150 mes [ 12]= data [ 193 ] ;
151 mes [ 13]= data [ 194 ] ;
152 mes [ 14]= data [ 195 ] ;
153
154 P=14 ; // Contador a 14
155 dato=0 ; // Dato a c e r o
156
157 f o r ( i n t i =0 ; i <=14 ; i ++)
158 {
159 dato =(mes [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
160 P− −;
161 }
162 S e r i a l . p r i n t ( " / " ) ; S e r i a l . p r i n t ( dato ) ;
163
164 ano [ 0]= data [ 196 ] ;
165 ano [ 1]= data [ 197 ] ;
166 ano [ 2]= data [ 198 ] ;
167 ano [ 3]= data [ 199 ] ;
168 ano [ 4]= data [ 200 ] ;
86 A. Apéndice

169 ano [ 5]= data [ 201 ] ;


172 ano [ 6]= data [ 202 ] ;
173 ano [ 7]= data [ 203 ] ;
174 ano [ 8]= data [ 204 ] ;
175 ano [ 9]= data [ 205 ] ;
176 ano [ 10]= data [ 206 ] ;
177 ano [ 11]= data [ 207 ] ;
178 ano [ 12]= data [ 208 ] ;
179 ano [ 13]= data [ 209 ] ;
180 ano [ 14]= data [ 210 ] ;
181

182 P=14 ; // Contador a 14


183 dato=0 ; // Dato a c e r o
184
185 f o r ( i n t i =0 ; i <=14 ; i ++)
186 {
187 dato =( ano [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
188 P− −;
189 }
190 S e r i a l . p r i n t ( " / " ) ; S e r i a l . p r i n t ( dato ) ;
191 Serial . println ( ) ;
192
193 hora [ 0]= data [ 211 ] ;
194 hora [ 1]= data [ 212 ] ;
195 hora [ 2]= data [ 213 ] ;
196 hora [ 3]= data [ 214 ] ;
197 hora [ 4]= data [ 215 ] ;
198 hora [ 5]= data [ 216 ] ;
199 hora [ 6]= data [ 217 ] ;
200 hora [ 7]= data [ 218 ] ;
201 hora [ 8]= data [ 219 ] ;
202 hora [ 9]= data [ 220 ] ;
203 hora [ 10]= data [ 221 ] ;
204 hora [ 11]= data [ 222 ] ;
205 hora [ 12]= data [ 223 ] ;
206 hora [ 13]= data [ 224 ] ;
207 hora [ 14]= data [ 225 ] ;
208
209 P=14 ; // Contador a 14
210 dato=0 ; // Dato a c e r o
211

212 f o r ( i n t i =0 ; i <=14 ; i ++)


213 {
214 dato =( hora [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
215 P− −;
216 }
217 S e r i a l . p r i n t ( " Hora : " ) ; S e r i a l . p r i n t ( dato ) ;
218
219 minuto [ 0]= data [ 226 ] ;
220 minuto [ 1]= data [ 227 ] ;
221 minuto [ 2]= data [ 228 ] ;
87

222 minuto [ 3]= data [ 229 ] ;


225 minuto [ 4]= data [ 230 ] ;
226 minuto [ 5]= data [ 231 ] ;
227 minuto [ 6]= data [ 232 ] ;
228 minuto [ 7]= data [ 233 ] ;
229 minuto [ 8]= data [ 234 ] ;
230 minuto [ 9]= data [ 235 ] ;
231 minuto [ 10]= data [ 236 ] ;
232 minuto [ 11]= data [ 237 ] ;
233 minuto [ 12]= data [ 238 ] ;
234 minuto [ 13]= data [ 239 ] ;
235 minuto [ 14]= data [ 240 ] ;
236
237 P=14 ; // Contador a 14
238 dato=0 ; // Dato a c e r o
239
240 f o r ( i n t i =0 ; i <=14 ; i ++)
241 {
242 dato =( minuto [ i ] * pow ( 2 , P ) ) +dato+0.5 ;
243 P− −;
244 }
245 S e r i a l . p r i n t ( " : " ) ; S e r i a l . p r i n t ( dato ) ;
246 Serial . println ( ) ;
247 }
248
249
250
251 }

Listing A.2: Código de decodificación de la trama AX.25 en Arduino.

También podría gustarte