recepción, demodulación y decodificación de la se˜nal de tiempo
TRANSCRIPT
Universidad de Costa RicaFacultad de Ingenierıa
Escuela de Ingenierıa Electrica
Recepcion, demodulacion y decodificacion
de la senal de tiempo transmitida por la
estacion radial WWVB del NIST
Por:
Kendall Solano Oviedo
Ciudad Universitaria “Rodrigo Facio”, Costa Rica
Julio de 2014
Recepcion, demodulacion y decodificacion
de la senal de tiempo transmitida por la
estacion radial WWVB del NIST
Por:
Kendall Solano Oviedo
IE-0499 Proyecto electrico
Aprobado por el Tribunal:
M.Sc. Teodoro Willink CastroProfesor guıa
M.Sc. Guillermo Rivero Gonzalez Ing. Juan Pablo Cruz RıosProfesor lector Profesor lector
ResumenEste documento corresponde a una investigacion teorico – practica, cuyo
proposito central fue realizar una implementacion electronica para captar, de-modular y decodificar la senal de tiempo transmitida por el Instituto Nacionalde Estandares y Tecnologıa desde su estacion radial WWVB, ubicada en FortCollins, Colorado.
Se estudiaron en primera instancia las caracterısticas de codificacion ymodulacion utilizadas para generar la senal de tiempo (ASK, PWM, entreotras). Dado esto, se realizo un estudio para elegir y disenar la electronicaanalogica y digital mas adecuada para tratar la onda.
Para demodular la senal de tiempo se utilizo un circuito detector de envol-vente en conjunto con una etapa de amplificacion y una seccion de afinamiento.Conociendo de antemano que la modulacion de la senal de tiempo se realizaa 60 KHz, se calcularon los componentes adecuados (circuito RC, diodo, en-tre otros), para detectar solo la senal de interes. El proceso de demodulacionculmino con una etapa para generar una senal digital entre 0 y 5 V, esto pormedio, del comparador LM311.
Por su parte, para comprobar la logica del demodulador, primero se gene-ro una senal de prueba con Arduino que imito las principales caracterısticasde la senal de tiempo enviada por el NIST. La informacion de esta onda semodulo a 60 KHz mediante un generador de senales y un circuito seguidor deemisor, esto tratando de ejecutar una senal similar a la real. Con la ayuda delsoftware y hardware libre Arduino se estructuro el codigo necesario para queuna vez demodulada la senal de tiempo, se pudieran seguir en tiempo real lasvariaciones de pulso (ceros, unos y marcadores), y de esta forma, decodificarlos datos de tiempo.
No fue posible ejecutar la evaluacion del receptor y el codigo Arduino conla senal real de tiempo enviada desde Colorado, ya que, no se logro recibircon los medios implementados la onda de interes. Los principales hechos quepropiciaron esta situacion fueron la limitada disponibilidad de la senal enCosta Rica (entre las 20:00 y las 4:00 horas, segun informacion oficial delNIST), ademas, de la dificultad que supone construir una antena para unasenal de baja frecuencia (aspecto que se sale de los objetivos del proyecto).
Los sistemas analogicos y logica total efectuada se analizaron finalmentemediante pruebas de laboratorio. Ası, se obtuvieron resultados satisfactoriosque avalaron el trabajo realizado y permitieron la visualizacion de los datoscontinuos de tiempo y fecha contenidos en la senal de tiempo de prueba, pormedio de la pantalla LED – Arduino.
v
Indice general
Indice de figuras ix
Indice de cuadros xi
Nomenclatura xiii
1 Introduccion 11.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Metodologıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Marco Teorico 52.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Informacion de reloj en America . . . . . . . . . . . . . . . . . 62.3 NIST y la estacion radial WWVB . . . . . . . . . . . . . . . . 82.4 Descripcion y caracterısticas generales de la Senal de Tiempo . 92.5 Recepcion y demodulacion de ondas moduladas en amplitud . . 182.6 Microcontroladores Programables . . . . . . . . . . . . . . . . . 26
3 Diseno del receptor de la senal de tiempo 293.1 Receptor de radio y demodulador . . . . . . . . . . . . . . . . . 293.2 Decodificacion de la senal de tiempo . . . . . . . . . . . . . . . 353.3 Validacion del receptor y demodulador . . . . . . . . . . . . . . 43
4 Resultados Generales 534.1 Implementacion practica del receptor y demodulador para la
senal de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . 534.2 Verificacion de funcionamiento del CO-ST implementado con
Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5 Conclusiones y recomendaciones 65
Bibliografıa 67
6 Anexos 716.1 Anexo 1 - Mas sobre el NIST y entes de tiempo-frecuencia ad-
juntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716.2 Anexo 2 - Codigo para decodificar senal de tiempo . . . . . . . 75
vii
6.3 Anexo 3 - Codigo de prueba para CO-ST . . . . . . . . . . . . 85
viii
Indice de figuras
2.1 Propagacion de la senal de tiempo segun hora del dıa (NIST, 2010c) 11
2.2 Escala del WWVB para codificacion de la senal de tiempo (NIST,2010c) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Senal de tiempo modulada por fase y amplitud (Lowe, 2013) . . . 17
2.4 Diagrama de bloques del tratamiento de una senal en el receptor(UTM, 2010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 Circuito electrico de un receptor de envolvente . . . . . . . . . . . 19
2.6 Senal de interes modulada en AM captada por la antena (Nassar,2001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.7 Senal de interes despues de pasar por el diodo (Nassar, 2001) . . . 20
2.8 Senal de interes filtrada y demodulada (Nassar, 2001) . . . . . . . 20
2.9 Etapa antena en receptor de envolvente (Martı, 2010) . . . . . . . 21
2.10 Antena helicoidal (Dıaz, 2007) . . . . . . . . . . . . . . . . . . . . 22
2.11 Antena para senal de tiempo WWVB (Wikipedia, 2014b) . . . . . 23
2.12 Amplificador operacional en configuracion no inversor . . . . . . . 24
2.13 Arduino Uno (Arduino, 2014) . . . . . . . . . . . . . . . . . . . . 27
2.14 Pantalla LCD (CRCibernetica, 2014) . . . . . . . . . . . . . . . . 28
3.1 Circuito receptor y demodulador . . . . . . . . . . . . . . . . . . . 30
3.2 Prototipo Antena 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Etapa acomple y amplificacion prototipo Antena 1 . . . . . . . . . 33
3.4 Prototipo Antena 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 Etapa acomple y amplificacion prototipo Antena 2 . . . . . . . . . 34
3.6 Diagrama general del codigo implementado . . . . . . . . . . . . . 36
3.7 Etapa Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Etapa Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.9 Etapa Interrupcion . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.10 Etapa Lazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.11 Etapa Analisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.12 Etapa Decodificacion . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.13 Etapa Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.14 Codigo emulador de senal de tiempo . . . . . . . . . . . . . . . . . 46
3.15 Modulador de senal generica . . . . . . . . . . . . . . . . . . . . . 46
3.16 Senal sinusoidal de 60 KHz . . . . . . . . . . . . . . . . . . . . . . 47
3.17 Senal cuadrada de 400 Hz . . . . . . . . . . . . . . . . . . . . . . . 48
ix
3.18 Senal de prueba modulada a 60 Khz . . . . . . . . . . . . . . . . . 493.19 Demodulador de prueba y circuito receptor . . . . . . . . . . . . . 503.20 Receptor, etapa amplificacion . . . . . . . . . . . . . . . . . . . . . 503.21 Demodulacion por detector de envolvente . . . . . . . . . . . . . . 513.22 Senal generica demodulada . . . . . . . . . . . . . . . . . . . . . . 52
4.1 a) Circuito modulador de senal de prueba. b) Circuito receptor ydemodulador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.2 Circuito total implementado . . . . . . . . . . . . . . . . . . . . . . 544.3 Onda sinusoidal con frecuencia de 60 KHz . . . . . . . . . . . . . . 554.4 Codigos de tiempo generados con Arduino . . . . . . . . . . . . . . 564.5 Senal de tiempo modulada a 60 KHz . . . . . . . . . . . . . . . . . 564.6 Acercamiento a la senal modulada . . . . . . . . . . . . . . . . . . 574.7 Comparacion entre senal modulada (superior) y senal de tiempo
Arduino (inferior) . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.8 Senal modulada despues de etapa amplificacion . . . . . . . . . . . 594.9 Senal demodulada despues de etapa detector-envolvente . . . . . . 594.10 Senal de tiempo Arduino demodulada con etapa LM311 . . . . . . 604.11 Comparacion entre senal Arduino original (superior) y la senal de-
modulada (inferior) . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.12 Implementacion del CO-ST Arduino-Arduino . . . . . . . . . . . . 624.13 Diferentes etapas del codigo CO-ST . . . . . . . . . . . . . . . . . 634.14 Implentacion visual del codigo de prueba Arduino . . . . . . . . . 634.15 Implementacion del CO-ST Arduino-modulador-demodulador-Arduino 644.16 CO-ST en distintos instantes temporales . . . . . . . . . . . . . . . 64
6.1 Oscilador atomico NIST-F1 (NIST, 2013) . . . . . . . . . . . . . . 72
x
Indice de cuadros
2.1 Estaciones radiales que transmiten informacion de tiempo en elmundo (Lombardi, 2010) . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Servicios de Tiempo y Frecuencia brindados por el NIST (Lombar-di, 2002) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Codigo empleado por el NIST . . . . . . . . . . . . . . . . . . . . 122.4 Esquema de Ponderacion BCD usado por Codigo de Tiempo WWVB
(Lowe, 2013) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.5 Descripcion de los bits del codigo de tiempo WWVB (Lowe, 2013) 152.6 Caractecterısticas del Arduino Uno (Arduino, 2014) . . . . . . . . 27
3.1 Declaracion y funcion de variables en CO-ST . . . . . . . . . . . . 37
6.1 Banda de Frecuencias (MINAET, 2008) . . . . . . . . . . . . . . . 73
xi
Nomenclatura
AM modulacion de amplitud (Amplitude Modulation, en in-gles)
ASK modulacion por desplazamiento de amplitud (Amplitude-Shift Keying, en ingles)
BCD codigo binario decimal (Binary Decimal Code, en ingles)
BPSK modulacion binaria por desplazamiento de fase (BinaryPhase-Shift Keying, en ingles)
CO − ST Codigo en Arduino para decodificacion de la Senal deTiempo
DST horario de verano (Daylight Saving Time, en ingles)
EHF frecuencia extremadamente alta (Extremely High Frequency,en ingles)
ERP potencia efectiva radiada (Effective Radiated Power, eningles)
HF alta frecuencia (High Frequency, en ingles)
IRIG grupo de instrumentacion inter-rango (Inter-Range Ins-trumentation Group, en ingles)
LF baja frecuencia (Low Frequency, en ingles)
MF mediana frecuencia (Medium Frecuency, en ingles)
NICT Instituto Nacional de la Tecnologıa de la Informaciony Comunicaciones(National Institute of Information andCommunications Technology, en ingles)
NPL Laboratorio Fısico Nacional (National Physical Labora-tory, en ingles)
NIST Instituto Nacional de Estandares y Tecnologıa (NationalInstitute of Standards and Technology, en ingles)
xiii
NTSC Centro Nacional del Servicio del Tiempo (National TimeService Center, en ingles)
PM modulacion por fase (Phase Modulation, en ingles)
PTB Agencia federal de Fısica y Tecnologıa (Physikalisch-TechnischeBundesantalt, en aleman)
PWM modulacion por ancho de pulso (Pulse-Width Modula-tion, en ingles)
RCC reloj controlado por reloj (Radio Controlled Clock, eningles)
SHF super alta frecuencia (Super High Frequency, en ingles)
ST tiempo estandar (Standar Time, en ingles)
UHF ultra alta frecuencia (Ultra High Frequency, en ingles)
ULF ultra baja frecuencia (Ultra Low Frequency, en ingles)
UT1 tiempo universal (Universal Time, en ingles)
UTC tiempo universal controlado (Universal Time Controlled,en ingles)
V HF muy alta frecuencia (Very High Frequency, en ingles)
V LF muy baja frecuencia (Very Low Frequency, en ingles)
xiv
1 Introduccion
La carrera por el desarrollo tecnologico ha fomentado en el transcurso de losanos la creacion de aplicaciones especıficas y la incursion de tendencias globa-les, que a pesar de las multiples aristas involucradas, siguen girando en torno aconsignas basicas como la exactitud. Dado esto, contar con herramientas quebrinden informacion de tiempo de rigurosa exactitud, permite marcar trascen-dencia en lo que a confiabilidad se refiere.
El Instituto Nacional de Estandares y Tecnologıa (NIST, por sus siglas eningles) posee en sus instalaciones de investigacion situadas en Estados Unidosun oscilador de partıculas atomicas que suministra datos de reloj (segundo,minuto, hora, dıa, mes y ano) precisos y coordinados internacionalmente. Ası,el NIST mediante su estacion de radio WWVB en Fort Collins, Colorado envıala informacion del oscilador a gran parte de America, por medio de una ondaportadora de 60 KHz a 70KW (Lombardi, 2002).
El NIST transmite esta senal con el proposito de brindar informacion detiempo confiable y exacta para todos los usuarios que tengan acceso a ella(principalmente de Norteamerica), propiciando ası, un medio sencillo para lacoordinacion de multiples procesos y actividades. Es importante destacar quela senal de tiempo por ser emitida a traves de una organizacion gubernamental,gira en torno, a intereses economicos e industriales, no obstante, su disponibi-lidad abierta en el medio radioelectrico la hace util para variadas aplicacionescomo: sincronizacion de relojes controlados por radio - RCC (grandes y demano), camaras, controles de irrigacion, entre otros (NIST, 2010a).
De esta manera, la trascendencia de este documento y trabajo en general,radica en el aprovechamiento de recursos tecnologicos gratuitos, seguros yrespaldados por instituciones de renombre como el NIST, que podrıan marcarun aspecto de beneficio adicional para futuras investigaciones y aplicacionesde tiempo en Costa Rica.
1
2 1 Introduccion
1.1 Objetivos
Objetivo general
Recibir, demodular y decodificar la senal de tiempo emitida por la estacionde radio WWVB del Instituto Nacional de Estandares y Tecnologıa, con elproposito de utilizar su informacion de reloj.
Objetivos especıficos
Para el desarrollo de este proyecto se establecieron los siguientes objetivos:
• Construir un circuito receptor de senal modulada en amplitud que per-mita captar y filtrar la onda portadora de baja frecuencia, transmitidapor el NIST desde la estacion de radio WWVB ubicada en Fort Collins,Colorado.
• Utilizar el microcontrolador Arduino para decodificar la senal de interesy desarrollar un dispositivo capaz de leer e interpretar la informacionrecopilada con rapidez y exactitud.
• Presentar mediante medios visuales los datos adquiridos y traducidos dela onda transmitida por el WWVB-NIST.
1.2. Metodologıa 3
1.2 Metodologıa
Este trabajo se constituyo basicamente en cuatro etapas, las cuales son inves-tigacion, diseno, implementacion y pruebas. Las etapas de diseno e implemen-tacion son validas tanto para la parte analogica como para la parte digital.
El desarrollo del proyecto incluyo los siguientes pasos y procedimientos,listados en secuencia:
1. Revision y busqueda bibliografica de material relacionado con la trans-mision y recepcion de ondas portadoras moduladas por ancho de pulso.
2. Estudio del codigo empleado por el NIST en la senal de interes paratransmitir la informacion de tiempo.
3. Construccion de un circuito electronico analogico y una antena parala recepcion de la senal de tiempo enviada por el WWVB desde FortCollins, Colorado.
4. Implementacion mediante el microcontrolador Arduino de un dispositivocapaz de demodular y decodificar la senal de tiempo receptada.
5. Presentacion de la informacion de tiempo brindada por el NIST, me-diante el uso de una pantalla de visualizacion.
2 Marco Teorico
2.1 Antecedentes
La historia de la humanidad siempre ha estado sujeta al intercambio de infor-macion como mecanismo de convivencia, desarrollo y formacion de relacionessocioculturales. No obstante, los medios para traspasar esta informacion soncambiantes y evolucionan paulatinamente con el tiempo, desde los jeroglıficospresentes en el antiguo Egipto, pasando por el sistema numerico arabe, el co-digo Morse, las teorıas de Maxwell y Hertz sobre electromagnetismo, la radiode Marconi, el televisor de Jenkins, los satelites rusos, hasta llegar a la trans-mision en alta frecuencia por medios opticos, el internet y el procesamientodigital de senales (Couch, 2008).
Entender la comunicacion de datos mediante ondas electromagneticas, pri-mero requiere la comprension de ciertos terminos y procesos especıficos que sedescriben rapidamente a continuacion.
Sistema de comunicacion
Para Couch (2008) los sistemas de comunicacion son los encargados de latransmision de datos e informacion de interes, y se disenan basandose en cuatroparametros principales:
• Seleccion de la forma de onda que contendra la informacion
• El ancho de banda y la potencia de la forma de onda
• El efecto del ruido en la informacion recibida
• El costo del sistema
Onda o senal electromagnetica
Segun Herrrera (1999) se define una senal como una manifestacion electrica dela informacion, explıcitamente como una cantidad mesurable del mensaje quese desea transmitir (similar a lo que representa tension o corriente). Una ondaelectromagnetica es producto de la interaccion un campo de energıa magneticoy un campo de energıa electrico.
Por sus caracterısticas fısicas las ondas de radio son senales electromagne-ticas. Segun Solıs (2008), este tipo de senales presenta las mayores longitudes
5
6 2 Marco Teorico
de onda en todo el espectro, con valores superiores a un metro. Se ubicanen el rango de frecuencias de los 30 KHz hasta los 300 Khz y se empleangeneralmente en aplicaciones como envıo de informacion para temporizacion,telefonıa celular, television y emisoras radiales.
Modulacion
Es una tecnica empleada para modificar las senales de banda base (bandaoriginal de frecuencias) que se generan de las fuentes de comunicacion, ya que,estas no presentan por si solas condiciones adecuadas para ser transmitidas deforma directa en un canal dado. El proceso de modulacion fundamentalmenteconsiste en hacer variar algun parametro de la onda portadora en funcion dela senal de banda base. Permite entre muchos aspectos: radiacion eficiente dela senal, transmision multiple de informacion, disminucion del efecto ruido,empleo eficiente del espectro de frecuencias y superacion de las limitacionesde los equipos empleados en la transmision (Herrrera, 1999).
Hay un factor importante en esta tematica que se conoce como ındice demodulacion. Segun Correa (2010), este ındice es una relacion sin unidad quese utiliza para describir la profundidad de la modulacion lograda en una senal.Ası, el porcentaje en que la senal moduladora cambia la portadora senoidales conocido como el ındice de modulacion y se describe mediante la ecuacion2.1.
m =VmVp
(2.1)
Donde m es el ındice de modulacion sin unidad, Vm la tension pico de lasenal moduladora en Volts y Vp la tension pico de la portadora tambien enVolts.
Atenuacion
Existe una caracterıstica general a todos los medios de transmision y es la ate-nuacion, decremento progresivo de la senal con la distancia (Herrrera, 1999).Influyen condiciones ambientales, intensidad lunınica, entre otros. Las senalesque son transmitidas a menor frecuencia presentan menos atenuacion, y porende, son capaces de alcanzar mayores recorridos (Apuy, 2013).
2.2 Informacion de reloj en America
La informacion de tiempo o de reloj es administrada por diversos entes al-rededor del mundo. Algunos organismos ademas de mantener los datos enlaboratorios, tambien tienen como proposito hacer llegar esta informacion a
2.2. Informacion de reloj en America 7
Cuadro 2.1: Estaciones radiales que transmiten informacion de tiempo en elmundo (Lombardi, 2010)
Nombre de Frecuencia (KHz) Paıs Organizacion de controlla estacion
BPC 68.5 China National Time ServiceCenter (NTSC)
DCF77 77.5 Alemania Physikalisch-TechnischeBundesantalt (PTB)
JJY 40, 60 Japon National Institute of Informationand CommunicationsTechnology (NICT)
MSF 60 Reino Unido National Physical Laboratory(NPL)
WWVB 60 Estados Unidos National Institudeof Standars and Technology (NIST)
la mayor cantidad de personas posible. Por esta razon, la envıan como unaonda electromagnetica mediante estaciones de radio ubicadas en posicionesestrategicas de los diversos continentes (Lombardi, 2010). En el cuadro 2.1 esposible observar las estaciones radiales que transmiten senales de tiempo entodo el planeta, el paıs donde se localizan, la frecuencia de transmision y laorganizacion encargada de su control.
El Instituto Nacional de Estandares y Tecnologıa (NIST, por sus siglas eningles) es la entidad encargada de administrar la informacion de reloj en losEstados Unidos; no obstante, por medio de la estacion radial WWVB situadaen Fort Collins, Colorado transmite una senal de tiempo que por su bajafrecuencia, logra traspasar los lımites de este paıs y llegar a gran parte deAmerica (Lombardi et al., 2009).
La senal de tiempo controlada por el NIST presenta caracterısticas es-peciales que la hacen robusta, pero sobretodo exacta, de ahı realza el valoragregado de su utilizacion en aplicaciones de temporizacion. La exactitud yconfiabilidad de la informacion que provee la senal se debe a que esta es deter-minada por un oscilador atomico. Segun NIST (2010b) un oscilador atomicoes usado para cuantificar los niveles de energıa en los atomos o moleculas deuna fuente de resonancia y se basa en el principio de que los atomos de unmismo elementos son exactamente iguales, por lo que deben producir la mismafrecuencia cuando absorben o entregan energıa. De esta forma, si se considera
8 2 Marco Teorico
un atomo como un pendulo perfecto, contando el numero de sus oscilacionesse pueden medir intervalos de tiempo.
2.3 NIST y la estacion radial WWVB
El NIST es una agencia federal no regulada del gobierno de los Estados Unidosque pertenece al Departamento de Comercio. Tiene como mision institucionalpromover la innovacion y la competitividad industrial de este paıs en formasque garanticen seguridad y calidad de vida, como por ejemplo avances en laciencia de la medicion, estructuracion de estandares y desarrollo de tecnolo-gıa(NIST, 2014). Este ente se ramifica en varias areas de investigacion, noobstante, para efectos de este documento se hara enfasis en la Division deTiempo y Frecuencia.
La Division de Tiempo y Frecuencia cuenta con diversas areas de trabajoe interes, como lo son: el Servicio de Tiempo de Internet, tres radio estaciones(WWV, WWVB, WWVB), calibraciones de frecuencia y tiempo, escalas detiempo, relojes opticos, atomos neutros, iones atrapados, mediciones de rui-do de fase, escalas atomicas y estandares primarios como el NIST-F1 (NIST,2010b). En el cuadro 2.2 se observan algunos de estos servicios y otros adicio-nales, ademas de los tiempos de incertidumbre a considerar y los mecanismosque se deben utilizar para su correcta implementacion. Se destaca la estacionradial WWVB, la cual tiene un papel trascendente en la transmision de lasenal de tiempo, topico central de este documento.
Como se observa en el cuadro 2.2, la Division de Tiempo y Frecuencia ad-ministra tres estaciones de radio en los Estados Unidos: la WWW, la WWVHy la WWVB. La diferencia central entre las primeras dos estaciones (WWW yWWVH) y la WWVB es la forma de transmision (frecuencia) y alcance de lainformacion enviada. La estacion radial WWVB se ubica en Fort Collins, Co-lorado y tiene la funcion de distribuir el tiempo del dıa, intervalos temporalesy estandares de frecuencia para el gobierno, industria y publico en general
Es importante destacar que la informacion con que se establece el codigode la senal de tiempo viene dada por un oscilador atomico denominado NIST-F1. Los datos de tiempo recolectados del reloj atomico son transmitidos porel NIST continuamente los 365 dıas del ano. Cada 60 segundos (60 bits porminuto) la informacion es renovada y los elementos receptores de onda tienen laposibilidad de actualizar el tiempo (Lombardi, 2002). Es posible ampliar massobre este topico y los entes administrativos mencionados durante la presenteseccion, en el Anexo 1.
2.4. Descripcion y caracterısticas generales de la Senal de Tiempo 9
Cuadro 2.2: Servicios de Tiempo y Frecuencia brindados por el NIST (Lom-bardi, 2002)
Servicios Requerimientos Incertidumbre
nist.time.gov sitio web Computadora, < 2sconexion a internet
Telefono Telefono < 30msservicio time-of-dayServicio de Tiempo Computadora, modem < 15msAutomatico para Computadora analogo, softwareServicio de Tiempo Computadora, modem < 100mspara Internet analogo, softwareEstacion Radial Receptor HF 1− 20msWWV y WWVHEstacion Radial Receptor LF 0,1− 15msWWVBServicio de Medicion Equipo suministrado < 20nsde Frecuencia por el NIST
2.4 Descripcion y caracterısticas generales de laSenal de Tiempo
La senal de tiempo provee informacion del UTC, especıficamente: minuto, ho-ra, dıa del ano y ultimos dos dıgitos del ano actual; recibir los datos completostiene una duracion un minuto y se necesita electronica analogica y digital pa-ra poder visualizarlos (NIST, 2010c). Para estructurar la senal se emplea uncodigo de tiempo, en el cual se envıa un sımbolo por segundo hasta comple-tar 60 bits; los ceros y unos logicos representan valores decimales, mientrashay marcadores que ejecutan el papel de barreras temporales para indicar elcambio de valor o la llegada de informacion actualizada. A continuacion sehara una descripcion de la propagacion, funcionamiento, formatos y tecnicasde modulacion empleados en la senal de tiempo.
Propagacion de la senal de tiempo
La senal de tiempo emitida por la WWVB presenta caracterısticas especialescomo su alta ERP y baja frecuencia de transmision que la hacen idonea pararecorrer largas distancias. Segun (Nelson y Lombardi, 2005), a una frecuenciaemision de 60 KHz y una potencia de salida cercana a los 70 KW, la senal de
10 2 Marco Teorico
tiempo tiene una longitud de onda que corresponde a aproximadamente 5000metros, cualidad que le permite propagarse por zonas geograficas difıciles,grandes ciudades e incluso paıses.
Las ondas electromagneticas presentan mayor o menor distorsion depen-diendo del medio en donde se propaguen. La cantidad de luz incidente en elmedio y los fenomenos atmosfericos son factores a tomar en cuenta para cal-cular la distancia que puede recorrer una onda desde la antena de transmisionhasta el receptor. De esta forma, la senal de tiempo no es ajena a este hechoy tiene mayor o menor alcance de acuerdo a la hora del dıa. En la figura 2.1se muestra un diagrama proporcionado por el NIST para ver la propagacionde la onda en America en distintos lapsos temporales. Las zonas sombreadaspresentan una intensidad de onda cercana a los 100 mV/m.
En la figura 2.1 se evidencia como la senal de tiempo tiene mayor alcancede propagacion en las horas con menos luz solar, lapso que segun la escalatemporal del UTC corresponde al perıodo entre las 2:00 am y las 10:00 am(madrugada e inicio de la manana). Si se desea recibir la senal de tiempo enun paıs de Centroamerica, especıficamente Costa Rica (situado a 4000 Km deColorado), es importante hacerlo en horarios nocturnos o en dıas con pocaradiacion lumınica. Es importante recordar que Costa Rica se rige por UTCmenos 6 horas, es decir, la senal llegarıa entre las 8:00 pm y las 4:00 am.
Las areas de cobertura presentes en la figura 2.1 son tendencias anualesde comportamiento, la propagacion continua y diaria de la senal de tiempopuede variar drasticamente debido al efecto de muchos elementos como ruido,interferencia, lluvia, nieve y contaminacion electromagnetica (NIST, 2010c).
Modulacion
Para modular la informacion de la senal de tiempo dentro de la onda porta-dora, se emplea un codigo con formato BCD y una tasa de transmision de unbit por segundo (Wikipedia, 2014b). Este codigo es modulado por medio dedos sistemas independientes:
Amplitud (AM)
• Modulacion por Ancho de Pulso (PWM): Segun Wikipedia (2014a), es-ta es una tecnica en la cual se modifica el ciclo de trabajo de una senalperiodica para transmitir informacion a traves de un canal de comuni-caciones o para controlar la cantidad de energıa que se envıa.
• Modulacion por Desplazamiento de Amplitud (ASK): Segun Stallings(2004), esta modulacion consiste basicamente en activar o desactivaruna portadora sinusoidal con una senal binaria unipolar.
Fase (PM)
2.4. Descripcion y caracterısticas generales de la Senal de Tiempo 11
Figura 2.1: Propagacion de la senal de tiempo segun hora del dıa (NIST, 2010c)
• Modulacion Binaria por Desplazamiento de Fase (BPSK): En este tipode modulacion dos sımbolos estan separados 180o. Un cero es represen-tado por una portadora con fase no modulada (fase en cero grados) y unvalor de 1 es mostrado como la inversion de la portadora. (Lowe, 2013)
Modulacion por Amplitud de la Senal de Tiempo
La modulacion por amplitud es el procedimiento mas antiguo que emplea laWWVB para transmitir la informacion de la senal de tiempo, lo utiliza desde1965 y presenta pocos cambios hasta la fecha. Se combinan los metodos dePWM y ASK para modular la portadora y generar los datos de tres sımboloslogicos: cero, uno y marcador (Nelson y Lombardi, 2005). Esta es la modu-lacion mas utilizada y confiable en la actualidad para los diversos elementosreceptores de la senal de tiempo en America (Lowe, 2013).
Los sımbolos logicos se identifican por la disminucion de 17 dB de la poten-cia de la onda portadora (la ERP pasa de 50 kW a 1,4kW). En el cuadro 2.3se visualizan los valores de codigo que utiliza el NIST, de acuerdo al tiempoque permanece la portadora de la senal de tiempo en 1.4 KW.
12 2 Marco Teorico
Cuadro 2.3: Codigo empleado por el NIST
Sımbolo Duracion de la portadoradisminuida 17 dB
Cero logico 0.2 msUno logico 0.5 msMarcador 0.8 ms
Codigo de Tiempo utilizado en la Modulacion por Amplitud:
El codigo de tiempo que emplea el NIST para modular en amplitud es basadoel estandar de codificacion IRIG, aunque el orden en que se transmiten lossımbolos difiere de cualquier estandar actual o pasado del mismo. (Wikipedia,2014b). El sistema IRIG ha ido perdiendo relevancia en el mercado debido ala incursion de metodos modernos para codificar, no obstante, organismos derenombre lo siguen usando por su sencillez.
IRIG: Segun lo establecido por TCT (1998), el IRIG es un estandar quedefine las caracterısticas de seis codigos de tiempo utilizados por las Agenciasde Gobierno de los Estados Unidos e industria privada de este paıs. Se empleaen ambitos tecnologicos como sistemas de electronica moderna y comunicacio-nes, manejo de datos, misiles y expedicion espacial, ademas de otras muchasaplicaciones que requieren precision.
Para transmitir la informacion decimal (datos como minutos, horas, dıadel ano, ultimos dıgitos del ano actual, entre otros), la estacion radial WWVBhace uso del Codigo Binario Decimal (BCD), en el cual el bit mas significativoes transmitido primero, y ası secuencialmente bit a bit en orden de magnitudhasta terminar la palabra de codigo (Lowe, 2013). El cuadro 2.4 muestra elesquema de ponderacion BCD que utiliza la WWVB para asignar los valoresdel codigo de tiempo.
Tomando en cuenta que se envıa toda la informacion del UTC en 60 bits porminuto, algunas consideraciones basicas del codigo de tiempo que se establecenen Lowe (2013), son descritas a continuacion:
• Hay 44 bits entre ceros y unos logicos que llevan informacion binaria delcodigo de tiempo y datos de actualizacion.
• Existen en total 11 bits que no tienen uso, para transmitirlos se utilizaun cero logico. Se indican como reservados.
2.4. Descripcion y caracterısticas generales de la Senal de Tiempo 13
Cuadro 2.4: Esquema de Ponderacion BCD usado por Codigo de TiempoWWVB (Lowe, 2013)
Numero Bit 1 Bit 2 Bit 3 Bit 4Decimal 23 22 21 20
0 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 1
• Los bits enviados del segundo 1 al segundo 8 contienten la informacion deminutos, los bits entre los segundos 12 y 18 muestran los datos de hora,por su parte, el rango de bits entre los segundos 22 al 33 determinan eldıa del ano y finalmente los bits entre el 45 y el 53 almacenan el anovigente (ultimos dos dıgitos).
• Se envıan 7 marcadores de posicion durante los segundos 0, 9, 19, 29,39, 49 y 59 para indicar cambio entre datos de minuto, hora, dıa yano. Cuando dos marcadores son transmitidos consecutivamente significael final de 60 bits de codigo y la llegada de una nueva senal de relojactualizada.
• El UT1 es una escala astronomica de tiempo anterior al estandar UTC yse basa en el movimiento rotacional de la Tierra. Al existir aplicacionesimportantes de navegacion espacial y satelites que todavıa la emplean,la diferencia entre el UT1 y el UTC debe ser cuantificable, permitiendoque los organismos que hacen uso del UT1 puedan efectuar las correccio-nes correspondientes en sus elementos de temporizacion; la discrepanciaentre ambas escalas nunca debe ser mayor a 0.9 segundos.
Las correcciones UT1-UTC pueden ser positivas o negativas y se realizandurante los intervalos de 36-38 y 40-43 segundos. En el primer rango,si los segundos 36 y 38 tienen un uno (bit 37 en cero), significa que seadicionara una cantidad de tiempo, mientras tanto, si el bit 37 es 1 (bits
14 2 Marco Teorico
36-38 en cero) se sustraera tiempo. Los segundos del 40 al 43 indican eltotal de milisegundos a quitar o agregar.
Si las escalas UT1 y UTC difieren alrededor de 1s, se debe ajustar estevalor numerico de tiempo en el UTC (el segundo puede ser positivo onegativo). Este metodo se llama segundo de salto (leap second) y esrequerido por el Servicio Internacional de Rotacion de la Tierra 4 vecescada 5 anos; generalmente se inserta en el dıa final de Junio o Diciembre.
• La alerta de leap second se presenta al segundo 56, si el bit es 1 significaque un segundo de salto sera agregado al UTC cuando concluya el mesactual en ese periodo. Apenas el tiempo es adicionado, el bit del segundo56 se coloca en un cero logico nuevamente.
Para aplicar un segundo de salto se envıa un marcador adicional. Deesta forma, se transmiten 3 marcadores seguidos en los segundos 59, 60(bit anexo) y 0, con lo que al culminar el tercer marcador empieza unnuevo minuto.
• En el segundo 55 se transmite la informacion de ano bisiesto (leap year),si el bit que corresponde a esta posicion es 1, el ano actual es bisiesto. Elbit permanece activo desde el primero de Enero hasta el 29 de Febrero,ya luego se coloca en cero.
• El horario de verano (DST) y el tiempo estandar (ST) son anunciadosen los segundos 57 y 58. Cuando ambos bits son cero se esta en tiempoestandar, mientras que si ambos bits son 1 se esta en horario de verano.En el paso de ST a DST, el bit 57 cambia de 0 a 1 a las 0000 UTC y elbit 58 cambia de 0 a 1, 24 horas despues. Por otra parte, en el paso deDST a ST, el bit 57 cambia de 1 a 0 a las 0000 UTC y el bit 58 cambiade 1 a 0, 24 horas despues.
En el cuadro 2.5 se visualiza un resumen de los puntos anteriormente men-cionados y explicados. Se presenta la descripcion unitaria de cada uno de los60 bits-segundos y su peso en la formacion del codigo para la senal de tiempo.
Ası tambien, en la figura 2.2 se observa una ejemplificacion grafica delcodigo de tiempo modulado en amplitud. Dividiendo la escala temporal de lafigura en 6 secciones, se puede ejecutar un mejor analisis del ejemplo:
• Segundo 1 al 8: El formato BCD de la senal de tiempo establece elminuto 42.
• Segundo 12 al 18: El formato BCD de la senal de tiempo establece lahora 18.
2.4. Descripcion y caracterısticas generales de la Senal de Tiempo 15
Cuadro 2.5: Descripcion de los bits del codigo de tiempo WWVB (Lowe, 2013)
Numero de Bit Descripcion Numero de Bit Descripcion
0 Marcador ref, Pr 30 Dıa del ano, 81 Minutos, 40 31 Dıa del ano, 42 Minutos, 20 32 Dıa del ano, 23 Minutos, 10 33 Dıa del ano, 14 Reservado 34 Reservado5 Minutos, 8 35 Reservado6 Minutos, 4 36 Signo UT1, +7 Minutos, 2 37 Signo UT1, -8 Minutos, 1 38 Signo UT1, +9 Marcador 1, P1 39 Marcador 4, P4
10 Reservado 40 Correccion UT1, 0.8 s11 Reservado 41 Correccion UT1, 0.4 s12 Horas, 20 42 Correccion UT1, 0.2 s13 Horas, 10 43 Correccion UT1, 0.1 s14 Reservado 44 Reservado15 Horas, 8 45 Ano, 8016 Horas, 4 46 Ano, 4017 Horas, 2 47 Ano, 2018 Horas, 1 48 Ano, 1019 Marcador 2, P2 49 Marcador 5, P5
20 Reservado 50 Ano, 821 Reservado 51 Ano, 422 Dıa del ano, 200 52 Ano, 223 Dıa del ano, 100 53 Ano, 124 Reservado 54 Reservado25 Dıa del ano, 80 55 Indicador Salto de Ano26 Dıa del ano, 40 56 Alerta de Salto de Segundo27 Dıa del ano, 20 57 DST28 Dıa del ano, 10 58 DST29 Marcador 3, P3 59 Marcador 3, P0
16 2 Marco Teorico
Figura 2.2: Escala del WWVB para codificacion de la senal de tiempo (NIST,2010c)
• Segundo 22 al 33: El formato BCD de la senal de tiempo establece eldıa del ano numero 258 (15 de setiembre de un ano no bisiesto).
• Segundo 36 al 46: Se establece la correccion de tiempo entre los es-tandares UT1-UTC y es necesaria una correccion de −0.7 s
• Segundo 45 al 53: El formato BCD de la senal de tiempo establece losultimos dos dıgitos del ano en curso, 01 (2001).
• Segundo 55 al 58: Los valores de estos 4 bits tienen como valor uncero logico, aspecto que implica que no requiere un leap second, no esano bisiesto y no hay horario de verano presente.
Modulacion de Fase en la Senal de tiempo
La modulacion por fase es una tecnica relativamente nueva aplicada por laradio estacion WWVB para transmitir su senal de tiempo. La incursion deeste proceso se dio en el ano 2012 y se basa en la Modulacion Binaria porDesplazamiento de Fase. Es un metodo sofisticado que mejora la relacion se-nal/ruido/interferencia (SNIR) y otorga precision en el codigo empleado (Lo-we, 2013).
2.4. Descripcion y caracterısticas generales de la Senal de Tiempo 17
Figura 2.3: Senal de tiempo modulada por fase y amplitud (Lowe, 2013)
Segun Lowe (2013), la formacion de los bits que constituyen el codigo detiempo se logra ejecutando variaciones en la fase de la senal emitida. Un unologico es representado por la inversion de la fase de la portadora ( 180o) durantelos ultimos 0.9 s de un segundo UTC, mientras que un cero logico correspondea fase en 0o de la senal en un periodo temporal del segundo correspondiente.
En la figura 2.3 es posible observar un ejemplo de como se modula por fasey amplitud la senal de tiempo en una misma onda (modulacion en paralelo).De 0s a 0.8s, hay una disminucion en la amplitud de la portadora y no sepresenta inversion de la fase (valor igual a marcador en AM – tabla 2.3 y ceroen PM), durante el periodo entre 1s y 1.2s la portadora cambia de polaridad yse mantiene disminuida en amplitud durante 0.2 s (cero en AM y uno logico enPM); posteriormente a los 2s la senal vuelve a estar alineada en 0o y reducidaen amplitud 0.5s (uno en AM y cero en PM).
Ademas de mostrar las dos tecnicas utilizadas para modular la senal detiempo, la figura 2.3 permite visualizar las tensiones pico de la onda portadoray la onda moduladora. Magnitudes con las que es posible determinar el ındicede modulacion de la senal del NIST. Utilizando la relacion de la ecuacion 2.1se calcula dicho coeficiente en la ecuacion 2.2.
m =0,5
0,6= 0,83 (2.2)
Dada la ecuacion 2.2, se tiene un coeficiente de modulacion cercano al 83 %para la senal de tiempo.
La senal de tiempo contiene paralelamente la informacion de modulacionen amplitud y modulacion de fase. De esta forma, es posible escoger solo uno
18 2 Marco Teorico
Figura 2.4: Diagrama de bloques del tratamiento de una senal en el receptor(UTM, 2010)
de los metodos para la decodificacion de la informacion en la onda; como lasenal en Costa Rica es recibida con mucha atenuacion, es mas sencillo detectarlos cambios en amplitud que los valores de fase. Se obvia ası, la descripciondel codigo de tiempo para modulacion de fase.
2.5 Recepcion y demodulacion de ondasmoduladas en amplitud
Existen multiples formas y circuitos capaces de captar ondas del espectro elec-tromagnetico. Sin embargo, todos son dependientes de las caracterısticas de lasenal a recibir y el grado de calidad con que se desee obtener la informacion.La implementacion de receptores se establece en base a ciertos parametrosde diseno como: la frecuencia de la portadora (LF, MF, HF, VHF, UHF, mi-croondas, entre otras), senal de la banda-base (digital o analogica), tipo yprofundidad de modulacion (AM, FM, PM), ancho de banda de recepcion,esquema de conversion (homodino, superheterodino, varias etapas), ruido enla transmision, sensibilidad, forma de sintonıa (fija, continua, discreta) y porel tipo de servicio (radio, telefonıa, vıdeo o datos) (UTM, 2010).
UTM (2010) presenta en la figura 2.4 un esquema basico de las etapas derecepcion y demodulacion de una senal. Ejecutando una descripcion rapida,mediante la antena se toman del medio las senales sin discriminacion de fre-cuencias, luego se amplifican para que entren en rangos aceptables de trabajoy posteriormente, con la ayuda de un filtro se sintoniza la frecuencia de laonda portadora de interes. A traves de la etapa de demodulacion, se logravolver a la fuente original de datos e informacion, los cuales son enviados a unmecanismo adecuado de decodificacion para hacer uso de ellos.
Los receptores AM han ido evolucionando en el transcurso de los anosconforme el envıo de informacion ha alcanzado un requerimiento mas elevadode precision (al menos a nivel comercial), no obstante, su elaboracion y fun-cionamiento siguen girando alrededor de principios elementales de electronicay fısica. La razon del desarrollo de la electronica para AM es, precisamente,
2.5. Recepcion y demodulacion de ondas moduladas en amplitud 19
Figura 2.5: Circuito electrico de un receptor de envolvente
el uso de modulacion digital (incluyendo ASK). Elegir un receptor para unaaplicacion especıfica depende de las cualidades de la onda y las necesidadesdel usuario final (como se menciono anteriormente). De esta forma, si se bus-ca sencillez, bajo costo y efectividad para recibir informacion (como la senalde tiempo), se puede emplear el circuito propuesto por Nassar (2001) pararecepcion y demodulacion de AM. Se denomina detector de envolvente y suesquematico se visualiza en la figura 2.5.
Se puede explicar el funcionamiento del circuito de la figura 2.5 en tresfases:
• La etapa antena capta del espectro electromagnetico las frecuencias pre-sentes en el medio, y a traves de un circuito resonante, se ajusta enuna onda portadora especıfica. Para fines ilustrativos, en la figura 2.6se observa una senal y su envolvente sinusoidal, aunque bien, podrıa sercuadrada.
• Mediante el diodo se modula la senal por polaridad, es decir, se eliminala parte negativa (su valor se convierte en cero) y solo queda los sectorespositivos de la onda portadora. En la figura 2.7, se muestra la senal dela figura 2.6 despues de haber pasado por el diodo.
• El circuito RC corta las variaciones rapidas de la senal y rescata conpoca distorsion las variaciones lentas (envolvente), por medio del resistory capacitor se disena un circuito pasa-bajo para ejecutar esta funcion.En la figura 2.8 se visualiza la senal de la figura 2.6 despues de atravesarel diodo y el filtro RC.
20 2 Marco Teorico
Figura 2.6: Senal de interes modulada en AM captada por la antena (Nassar,2001)
Figura 2.7: Senal de interes despues de pasar por el diodo (Nassar, 2001)
Figura 2.8: Senal de interes filtrada y demodulada (Nassar, 2001)
2.5. Recepcion y demodulacion de ondas moduladas en amplitud 21
Figura 2.9: Etapa antena en receptor de envolvente (Martı, 2010)
A continuacion, se definen los parametros de escogencia para disenar laetapa de antena, el diodo y los valores del circuito RC presentes en la figura2.5.
Etapa antena
Segun Paniagua (2008), una antena en su estructura basica es un instrumentoutilizado para recibir o transmitir ondas electromagneticas. Las hay de dis-tintos tipos, formas, materiales, y son muy dependientes de la informacionimplicada en el medio. La etapa antena consta fundamentalmente de tres sec-ciones: construccion e implementacion fısica, amplificacion de senal y disenodel circuito resonante para sintonizacion de la frecuencia portadora buscada.En la figura 2.9 se muestra la ultima seccion mencionada.
Construccion e implementacion fısica
En un circuito sencillo como el de la figura 2.5, se pueden construir antenas dedipolo o helicoidales para la recepcion de la senal portadora. No obstante, unaantena para captar baja frecuencia (como la requerida por la senal de tiempo),necesita de ciertas caraterısticas adicionales que son difıciles de obtener conun diseno artesanal. Se proponen algunos prototipos de implementacion, pero,se recalca que el objetivo de este documento no gira en torno a la construccionde una antena.
Las antenas helicoidales se fabrican a bajo costo y son muy faciles de hacer,tienen la ventaja de aumentar la ganancia de recepcion con solo incrementarel numero de espiras de cobre, aunque la relacion no es lineal (Durney et al.,2007). Para su implementacion, se le quita a un cable RG8 (30 a 40 cm) lafunda de plastico y malla de blindaje, dejando solo el cable interno de cobre
22 2 Marco Teorico
Figura 2.10: Antena helicoidal (Dıaz, 2007)
con su aislante. Posteriormente se suelda un extremo del conductor a unaplaca de metal (base) y el otro extremo de un hilo de cobre de 0.2 mm quese enrolla sobre el, esto realizando formas de espiras juntas hasta alcanzar lamitad del aislante (20 cm). El paso final es recubrir todo el conjunto paraevitar interferencias (Dıaz, 2007). En la figura 2.10 se observa una antenahelicoidal.
Por otra parte, en la figura 2.11 se visualiza un diseno de antena propuestopor ka7oei (2012) para recepcion de la senal de tiempo enviada desde Colorado.Sus principales caraterısticas se destacan a continuacion.
• Son necesarios aproximadamente ocho metros de alambre desnudo paragenerar cuatro vueltas en el interior de un lazo, como el mostrado en lafigura 2.11.
• La dimension lateral del elemento mostrado en la figura 2.11, es cercanoa 45 cm. Con esto, una vuelta completa de alambre corresponde a 1,80m.
• Se utiliza conduit con un diametro de 12 pulgadas; por medio de unio-
nes curvas se genera una estructura similar a un cuadrado. Las cuatrosvueltas de alambre son colocadas en el conduit, generando ası, un mediode induccion electromagnetica.
• Las uniones del alambre son acopladas con cable coaxial RG-6 median-te uniones mecanicas, este tipo de cable se utiliza para evitar camposparasitos en la antena.
• Como se muestra en la figura 2.11, los lazos de alambre actuan en pa-ralelo con cuatros capacitores de 0.1 uF (o una relacion equivalente que
2.5. Recepcion y demodulacion de ondas moduladas en amplitud 23
Figura 2.11: Antena para senal de tiempo WWVB (Wikipedia, 2014b)
genere una capacitancia total de 0,4 uF ), esto tratando de hacer resonarel circuito a 60 KHz. Es importante destacar que los condensadores em-pleados no pueden ser de tipo ceramico, ya que, introducen ruido termicoal sistema y son inestables.
Amplificacion
Las intensidad de las senales captadas por la antena depende de multiplesfactores como: propagacion en el medio, ganancia del receptor, hora del dıa,entre otros. Generalmente, la amplitud de las ondas recibidas se encuentraen el rango de los milivolts, por lo que es necesario, recurrir a etapas deamplificacion para generar senales de trabajo que puedan ser utilizadas porsecciones posteriores del circuito (Boylestad y Nashelsky, 2009).
24 2 Marco Teorico
Figura 2.12: Amplificador operacional en configuracion no inversor
Es posible ejecutar la amplificacion de senales por medio de varios meto-dos, entre los que destacan los circuitos pasivos (transistores) y los circuitosactivos (amplificadores operacionales). Por practicidad, robustez y ganancia,las etapas de amplificacion para antena se realizaran utilizando operaciona-les en configuracion no inversor, tal y como se muestra en la figura 2.12. Laecuacion de ganancia para esta configuracion viene dada en la ecuacion 2.3.
Ganancia =Rf
Rin(2.3)
Circuito resonante LC
La configuracion LC paralelo de la figura 2.9 permite la sintonizacion de unaonda electromagnetica a una frecuencia de interes. Segun Dorf y Svodoba(2008), este es un circuito resonante por la presencia de un inductor y uncapacitor, es decir, configurando los valores de los elementos pasivos es po-sible discriminar-filtrar las tensiones alternas incidentes que provienen de laantena y que tienen frecuencias diferentes a la de resonancia. La frecuencia deresonancia en la figura 2.9 viene dada por la ecuacion 2.4.
fr =1
2π√LC
(2.4)
En la ecuacion 2.4, fr representa la frecuencia de resonancia (portadora) enHz, L el valor del inductor en H y C el valor del capacitor en F .
2.5. Recepcion y demodulacion de ondas moduladas en amplitud 25
Diodo
La eleccion del diodo es sencilla, unicamente se debe elegir un componentecapaz de soportar las corrientes de la onda de entrada (en promedio muy bajas)y que pueda manejar las frecuencias de conmutacion de la senal requerida. Porlo general se usa un diodo de germanio (Martı, 2010).
Circuito RC
Segun explica textualmente Martı (2010), el calculo de la constante de tiempoRC es dependiente de las caracterısticas de la senal portadora. Ası, cuandose estan incrementando los picos positivos sucesivos de la forma de onda deentrada del detector, es importante que el capacitor mantenga su carga entrepicos (constante de tiempo RC grande). No obstante, cuando los picos positivosdecrecen en amplitud, es importante que el capacitor descargue, entre picossucesivos, a un valor menor que el siguiente pico (constante de tiempo RCcorta). Se establece con esto, la importancia de un diseno que satisfaga ambasnecesidades.
• Si la constante de tiempo RC es muy corta, la forma de onda de salidaasemeja una senal rectificada de media onda (distorsion del rectificador).
• Si la constante de tiempo RC es muy grande, la pendiente de la forma deonda de salida no puede seguir a la pendiente de la envolvente (recortadordiagonal).
La pendiente de la envolvente depende de la frecuencia de la senal modu-lante y del coeficiente de modulacion (m) de la senal. La frecuencia de la senalmodulante mas alta que puede demodularse por un detector de envolvente sinatenuarse se presenta en la ecuacion 2.5
fmmax =
√m−2 − 1
2 ∗ π ∗RC(2.5)
Donde fm −max es la maxima frecuencia de la portadora en Hz, m esel coeficiente de modulacion (sin unidad) y RC es la constante de tiempo ensegundos.
La ecuacion 2.5 se puede simplificar para generar una relacion mas sencilla.Tomando en cuenta que no es necesario que la amplitud de la senal modulantesea 100 %, una relacion para obtener el 70.7 % (atenuacion de 3 dB) de la ondamodulante se visualiza en la ecuacion 2.6 (Martı, 2010).
wp >>1
RC(2.6)
26 2 Marco Teorico
Donde wp es la frecuencia de la portadora en rad/s, y su valor es muchomayor que el inverso de la constante de tiempo.
Post-demodulacion
Una vez demodulada la senal de interes de la onda portadora, es necesarioejecutar un proceso de afinamiento para generar una senal electrica que tengacaracterısticas aceptables, ya sea, para procesos analogicos o digitales. Segunla precision del esquema de demodulacion que se emplee, la senal moduladapuede ser extraıda con menor o mayor grado de distorsion. Ası, se puedenutilizar circuitos activos como amplificadores operacionales (comparadores,recortadores, entre otros) para adecuar las condiciones de la senal a los valoresoptimos requeridos.
2.6 Microcontroladores Programables
Existen en el mercado gran variedad de microcontroladores programables, lagran mayorıa con las caracterısticas necesarias para decodificar la senal detiempo (ciclos de trabajo mas rapidos a la maxima frecuencia de transmisionde la senal de tiempo). Con esto, se empleara el dispositivo de plataformaabierta Arduino, potenciando su posicion de prestigio en la electronica actual,precio accesible y variedad de documentacion existente.
Hardware Arduino y elemento de visualizacion
Arduino como plataforma abierta cuenta con varios modelos funcionales (Me-ga Duemilanove, Mini, entre otros). No obstante, entre los mas sencillos y debajo costo se encuentra el Arduino UNO. Las principales caracterısticas deeste ejemplar se presentan en el cuadro 2.6. Evaluando los datos del cuadro,el modelo UNO es suficientemente robusto y rapido para manejar la decodi-ficacion de la senal de tiempo sin contratiempos. En la figura 2.13 es posiblevisualizar la constitucion fısica de este dispositivo. El lenguaje de programa-cion Arduino esta basado principalmente en dos sistemas: C y C++. Dadoesto, la arquitectura y forma de programar siguen patrones estandar como lainiciacion de variables, declaracion de entradas-salidas o procesos, ası como laimplementacion de lazos que se ejecutan una y otra vez mientras el programalo solicite.
Ası tambien, en la figura 2.14 se observa la pantalla LCD que se emplearaen acople junto al Arduino UNO; una vez que sean decodificados, los datos detiempo y fecha podran ser visibles en el medio de visualizacion.
2.6. Microcontroladores Programables 27
Cuadro 2.6: Caractecterısticas del Arduino Uno (Arduino, 2014)
Elemento Caracterıstica
Microcontrolador ATmega328Tension de operacion 5 VPines Digitales E/S 14Pines Analogicos E 6Corriente Pines E/S 40 mAMemoria Flash 32 KBSRAM 2 KBEEPROM 1 KBVelocidad de reloj 16 MHz
Figura 2.13: Arduino Uno (Arduino, 2014)
28 2 Marco Teorico
Figura 2.14: Pantalla LCD (CRCibernetica, 2014)
3 Diseno del receptor de la senalde tiempo
El primer paso para lograr la recepcion de la senal de tiempo es ejecutar lacaptacion mediante antena y posterior demodulacion de onda. En esta secciondel documento se explico el funcionamiento de los circuitos analogicos que seemplearon para las tareas mencionadas, ademas de las respectivas simulacionesde corroboracion.
La seccion se divide en tres etapas de diseno y construccion: un circuitoreceptor de radio y demodulador, la etapa de decodificacion del codigo detiempo y la seccion de validacion. A continuacion, se trata por separado cadatopico de interes.
3.1 Receptor de radio y demodulador
El codigo de tiempo por sus cualidades constituye una onda digital cuyos uni-cos valores son cero (0 V) y uno (5 V). No requiere un seguimiento continuo(como algunas aplicaciones de audio), ya que la perdida de una fraccion deinformacion no afecta gravemente el mensaje final. Dado esto, el circuito detec-tor de envolvente mostrado en la figura 2.4, aunado a otras etapas, establecioun esquema sencillo para solventar la recepcion y la demodulacion de la senalde tiempo.
En la figura 3.1 se visualiza el circuito demodulador que se empleo paratratar la senal de tiempo. Consta de tres etapas en las cuales se centra el diseno:amplificacion (E1), detector de envolvente (E2) y ajuste de onda con LM311(E3). A continuacion se estudian los detalles de amplificacion, demodulacion,afinamiento y antena.
Etapa Amplificacion
La etapa de amplificacion corresponde a la seccion E1 de la figura 3.1. Alno tener una idea clara de la amplitud con que arriba la senal de tiempo a laantena (suponiendo grandes perdidas por atenuacion), esta seccion del circuitose encarga de elevar la tension de la onda a un nivel factible de trabajo. Seusa un amplificador LF353 por su bajo costo y caracterısticas sencillas deoperacion y alimentacion.
29
30 3 Diseno del receptor de la senal de tiempo
Figura 3.1: Circuito receptor y demodulador
Como se visualiza en la figura 3.1, el amplificador LF353 esta trabajandoen una configuracion de no inversor en la que la antena, junto a un acople deimpedancia (generalmente una resistencia de 50 Ω), se conecta en el terminalpositivo del operacional. Por su parte, las resistencias R4 y R5 forman undivisor de tension entre la terminal negativa del LF353 y la salida del dispo-sitivo, la ecuacion de ganancia para el amplificador no inversor viene dada enla ecuacion 2.3.
En el circuito se dieron valores 1000 Ω y 20000 Ω a las resistencias R4 yR5 respectivamente (ganancia de 20 veces). Sin embargo, estas cantidades sonsolo para aspectos de simulacion, ya que, la ganancia a considerar depende dela magnitud con que se capte la senal de tiempo. Ambos elementos pasivospodrıan ser sustituidos por un potenciometro para tener una relacion de salida-entrada variable, evitando ası, la saturacion del operacional.
Detector de envolvente
La etapa E2 de la figura 3.1 es la encargada de efectuar la demodulacion de laonda. Es un circuito detector de envolvente y su funcionamiento se visualizaen las figuras 2.6, 2.7 y 2.8. Con esta seccion de circuito se busca volver lasenal de tiempo al codigo inicial, antes de ser modulado por la WWVB.
El detector de envolvente consta de tres componentes, un diodo D1 paraeliminar la parte negativa de la onda portadora y un capacitor C2 que actua
3.1. Receptor de radio y demodulador 31
en paralelo con una resistencia R6, ambos elementos encargados de generar uncircuito para seguir las variaciones externas de la onda modulada (se disena uncapacitor adecuado para que su descarga y carga esten acorde con la frecuenciade modulacion).
Segun Martı (2010), la forma de disenar los componentes C2 y R6 esutilizar la formula simplificada presente en la ecuacion 2.6. Considerando quela frecuencia de la portadora (60 KHz en la senal de tiempo) debe ser muchomayor (aproximadamente 100 veces) que la constante de tiempo inversa RC,se trabaja con un capacitor comercial de 100 nF y se tiene una resistencia de2700 Ω. Ademas el diodo escogido es el 1N4006, elemento que cumple con lacaracterıstica de velocidad de conmutacion requerida.
Ajuste de onda con LM311
La seccion E3 de la figura 3.1 se emplea en el circuito para generar una on-da digital limpia que vaya de los 0 a 5 V sin distorsiones, como el codigogenerico antes de ser modulado. Para realizar esta tarea se utilizo un opera-cional LM311, cuyo funcionamiento emplea electronica basica de referencia ycomparacion.
Como se visualiza en la figura 3.19, la senal de salida del detector deenvolvente entra a la terminal positiva del comparador, mientras tanto, en laterminal negativa se coloca una fuente de corriente directa V6 que estableceel punto de referencia en la tension de analisis. Ası tambien, en la salida delLM311 se coloca una fuente DC V7 de 5 V en serie con una resistencia R7(cuyo valor de 1000 Ω limita la corriente de salida y permite un buen acoplea la carga).
Dado lo anterior, cuando la tension de la terminal positiva supera el valorde V6, la salida del circuito es colocada en 5 V; sin embargo, si la onda deentrada es menor a la referencia V6, la salida va a tierra con un valor de 0 V.
Etapa Antena
Por ser requerida para este proyecto, una antena que captara senales en ba-ja frecuencia (senal de tiempo), muchos de los disenos comerciales quedaronobsoletos y se requirieron soluciones constructivas mas ingeniosas o de ela-boracion manual. A continuacion, se presentan algunos prototipos basicos deantena para captacion de senales a 60 KHz encontrados y desarrollados enbase a teorıa de sitios web (ka7oei (2012)) y literatura especializada (Stutz-man y Thiele (1981) y Huang y Boyle (2008)); es necesario aclarar que laimplementacion de una antena funcional esta ligada al uso de materiales decalidad, capacitacion previa y comprobacion-experimentacion mediante equi-
32 3 Diseno del receptor de la senal de tiempo
Figura 3.2: Prototipo Antena 1
po de diagnostico normado (todos aspectos, ausentes durante la ejecucion delproyecto).
Prototipo 1
Este tipo de antena es muy sencillo pero limitado en ganancia, su realizaciontoma poco tiempo y se trata de una antena helicoidal realizada con cablecoaxial RG8. Se realizan espiras alrededor de un conductor aislado, con elproposito, de captar campos electromagneticos en el espectro. En la figura 3.2a) es posible visualizar la ejecucion real del elemento.
Por otra parte, en la figura 3.2 b) se muestra la antena en el circuito deacople resonante y de amplificacion LM746. Utilizando la ecuacion 2.4 y uncapacitor comercial de 0.1 uF , se calculo un inductor de aproximadamente70 uH. Ambos elementos en paralelo y junto a la antena, hacen resonar elcircuito a la frecuencia de la senal de tiempo. La seccion de amplificacion serealizo con un amplificador LM746 en configuracion no inversor y ganancia100; el sistema completo se muestra en el esquema de la figura 3.3.
Prototipo 2
El diseno de este prototipo se realizo basado en las condiciones generales brin-dadas por (ka7oei (2012), junto a algunas modificaciones requeridas. En la
3.1. Receptor de radio y demodulador 33
Figura 3.3: Etapa acomple y amplificacion prototipo Antena 1
figura 3.4 se muestra la implementacion realizada de la antena y su acoplecon el circuito amplificador. Los principales puntos a considerar se presentanenseguida.
• Los materiales de construccion utilizados para la antena de la figura3.4, no son exactamente los mismos a los propuestos por ka7oei (2012).Se buscaron materiales equivalentes que no afectaran la generalidad deldiseno.
• El acople de las espiras de alambre con los condensadores se realizopor medio de una tarjeta de prototipos, esto en aras, se poder ejecutarvarias pruebas de comprobacion y no dejar limitado el diseno a un unicocircuito.
• Se utilizaron capacitores electrolıticos para generar los 0.4 uF , la pro-puesta de ka7oei (2012) solo restringe el uso de componentes ceramicos,dejando abierta la posibilidad de cualquier otro material para los con-densadores.
En la figura 3.5 se visualiza el esquematico completo de los lazos de alambrey capacitores junto a un amplificador operacional de senal LM741, similar aldesarrollado en el prototipo de antena 1.
34 3 Diseno del receptor de la senal de tiempo
Figura 3.4: Prototipo Antena 2
Figura 3.5: Etapa acomple y amplificacion prototipo Antena 2
3.2. Decodificacion de la senal de tiempo 35
3.2 Decodificacion de la senal de tiempo
Planteadas las etapas de recepcion y demodulacion, se alcanzo el proceso dedecodificacion de la senal de tiempo. Esta seccion fue quizas la de mayorcomplejidad para el proyecto en general, ya que, permitio mostrar visualmentelos resultados e informacion de una onda electromagnetica que se encuentraen el espacio.
Por practicidad y cualidades especificas de la senal de tiempo, se eligiotratar la onda enviada por el NIST con un microcontrolador programable,especıficamente la plataforma Arduino. Los tiempos en bajo de los bits (ceros,unos y marcadores, la modulacion en amplitud y la condicion secuencial en quees transmitida la informacion, hacieron mas eficiente el uso de programacionpara tratar los casos especıficos.
Programacion en Arduino para decodificar la senal de tiempo
La programacion para decodificar la senal de tiempo enviada por la WWVBesta sujeta principalmente a lo establecido en los cuadros 2.3 y 2.5. Es necesariocrear las condiciones adecuadas para que el microcontrolador detecte los pulsosde la senal, y posteriormente, sea capaz de interpretar y convertir los datosbinarios en informacion de tiempo valida, acorde a lo esperado. El codigoexplıcito creado para la decodificacion y visualizacion de la senal de tiempo seencuentra en el Anexo 2.
En la figura 3.6 se plantea un diagrama de las 7 etapas utilizadas en ladecodificacion y su interaccion durante el desarrollo del programa. Como consi-deraciones generales, el programa sigue una logica secuencial en su estructura,no obstante, la etapa de Interrupcion puede ser llamada en cualquier mo-mento del sistema cuando se presente una variacion en la senal entrante dealto a bajo o viceversa. Ademas, la etapa Error, envıa el sistema a la Etapa
Lazo si se dan las restricciones establecidas.
A continuacion, se presenta un analisis detallado de la logica ejecutada encada una de las etapas para obtener un decodificador funcional.
Etapa Inicial
Esta seccion del codigo no es una rutina como tal, pero se utiliza para ini-cializar las librerıas y variables globales del sistema, que luego seran llamadasindefinido numero de veces durante el programa. En la figura 3.7 se observaun diagrama resumen de los procesos que se transcurren en esta etapa.
En el caso del codigo para la decodificacion de la senal de tiempo (este ter-mino se tratara como CO-ST en lo que sigue del texto), las librerıas empleadasfueron en su mayorıa las que vienen por defecto en el software libre Arduino;
36 3 Diseno del receptor de la senal de tiempo
Código Arduino para decodificaciónde señal de tiempo WWVB
Etapa Setup
Etapa Lazo
Etapa Análisis
Etapa Decodificación
Etapa Error
Etapa Interrupción
Figura 3.6: Diagrama general del codigo implementado
a excepcion de la denominada LiquidCrystal.h, la cual se utiliza para generarla interfaz de comunicacion entre la pantalla LCD y el dispositivo UNO.
Ademas, la declaracion de las variables esta sujeta a la informacion dealmacenamiento que contendran y su ciclo de trabajo durante la ejecucion delprograma. En el cuadro 3.1 se presenta un resumen de las funciones empleadasen el CO-ST y su uso especifico.
Etapa Setup
La etapa mostrada en la figura 3.8 corresponde a la seccion de arranque delArduino, es decir, hasta la llegada de esta rutina comienza la transmision dedatos entre el dispositivo y el procesador donde se aloja la logica implemen-tada. La etapa Setup es llamada una unica vez durante el inicio del programay no se vuelve a ejecutar, a menos que se presente una senal de reinicio en el
3.2. Decodificacion de la senal de tiempo 37
Llamado de librerías para pantalla Liquid Crystal
Declaración de pin de entrada Pin 2
Declaración de variables para rutina de interrupción
Declaración de variables para coordinación de fecha y hora
Figura 3.7: Etapa Inicial
Cuadro 3.1: Declaracion y funcion de variables en CO-ST
Empleo en CO-ST Tipo Funcion
Contador de marcadores byte Almacena de 0 a 256Tipo y numero de bitPulso de senalNombre del mes char Variable para textoVariables de hora y fecha int Numeros enteros decimalesAlmacenar tiempos de la senal unsigned int Entero sin signoValor senal recibida volatile Registra almacenamiento
sistema (Arduino, 2014).
Como se muestra en el diagrama de la figura 3.8, en esta etapa se da lainicializacion de la pantalla LCD para su utilizacion en el CO-ST. Se danalgunos procesos de encendido como energizar los 16 espacios de escritura queconforman la pantalla (separados en dos filas de ocho columnas), la limpiezatotal ante posibles escrituras anteriores y la colocacion de los cursores en lasposiciones deseadas. Ademas de lo anterior, se presenta el saludo inicial queadvierte la llegada de la senal de tiempo proveniente del WWVB-NIST.
En la etapa Setup se da tambien la declaracion del pin 2 como entradadigital al Arduino; se escogio una entrada digital y no analogica, porque lasenal de tiempo es tratada en la seccion de demodulacion para visualizarsecomo un pulso de solo dos valores logicos: cero (0V) y uno (5V).
38 3 Diseno del receptor de la senal de tiempo
Inicialización de la pantalla LCD
Descripción y saludo
Tasa de transferencia de bits en el Arduino
Llamado de interrupción
Etapa Setup
9600 bps
Figura 3.8: Etapa Setup
Finalmente, en la etapa Setup del CO-ST se definen el bit-rate y el llamadoa interrupciones presentes en el codigo. El bit-rate corresponde a la velocidadcon que se comunica el Arduino a la pantalla LCD y a la computadora, seestablece en 9600 bps. De la misma forma, el CO-ST cuenta con una etapa deinterrupcion, la cual se establece en esta rutina y se explicara en detalle conel diagrama de la figura 3.9.
Etapa Interrupcion
La Etapa Interrupcion tiene una funcion preponderante en la ejecucion delCO-ST, ya que es la encargada de reconocer los pulsos cambiantes en la senalde tiempo, esto para que en etapas posteriores sea posible discriminar los ceros,los unos y los marcadores. Se declara en la Etapa Setup y actua cuando hayun cambio logico en la senal de entrada (pin 2), tal y como se muestra en lafigura 3.9.
Las llamadas a interrupcion no funcionan en orden secuencial, estas seactivan en cualquier instante del programa, mientras se cumpla la condicionpreviamente establecida (en el caso del CO-ST, la condicion es el cambio enel pulso de entrada, sea de 0V A 5V o viceversa).
Cuando se presenta un cambio en el pulso del pin 2, el programa envıa elsistema a la Interrupcion y almacena en una variable volatil (ver cuadro 3.1)el valor logico de la senal de tiempo, sea BAJO (0) o ALTO (1).
3.2. Decodificacion de la senal de tiempo 39
ActúaWcuandoWhayWunWcambioWenWelWpulsoWdelWpinW2
SeWguardaWúltimoWestadoWpresenteWenWelWpinW2
Etapa Interrupción5VWaW0V
0VWaW5V
HIGH
LOW
Figura 3.9: Etapa Interrupcion
Etapa Lazo
La Etapa Lazo es la seccion del codigo que vuelve al programa cıclico, es decir,permite la ejecucion repetida y permanente de las funciones compiladas en elArduino (incluidas las restricciones). Para el CO-ST las consideraciones delazo se pueden visualizar en el diagrama de la figura 3.10.
De forma intrınseca, la Etapa Lazo esta estrechamente relacionada conla Etapa Interrupcion, esto debido a que, las condiciones que rigen el ciclodependen de los cambios logicos en el pulso de la senal de tiempo. Duranteel lazo, se censan permanentemente los valores de variables que almacenan elvalor alto o bajo de la senal. Mientras el pulso permanezca invariante el Ar-duino se mantiene en un estado de espera activa (milisegundos), no obstante,cuando se genera un cambio de tension, el sistema cumple las condiciones mar-cadas para llegar a una seccion de identificacion posterior denominada Etapa
Analisis.
Desarrollada la Etapa Analisis y sus procesos internos, la seccion deLazo actualiza las variables de almacenamiento y espera el siguiente cambiode pulso.
Etapa Analisis
La Etapa Analisis es la seccion encargada del CO-ST para discriminar si unpulso entrante se considera como cero, uno o marcador. En la figura 3.11se observa el diagrama completo de los procesos que se implementa en estarutina; sin embargo, a continuacion se describen en detalle sus principalescaracterısticas.
• Cuando inicia la rutina, se almacena el valor actual de la variable mi-llis() (reloj interno del Arduino que arranca cuando se carga el codigo
40 3 Diseno del receptor de la senal de tiempo
FunciónAcompruebaAelAcambioAenAelApulsoAdelApinA2
Etapa Lazo
¿CambióAelApulso?NO
-ASeAguardaAestadoAdelAúltimoApulso-ASeAenvíaAelAsistemaAaAlaAEtapaAAnálisis
SI
Figura 3.10: Etapa Lazo
al dispositivo, no se puede reiniciar ni modificar) en un entero (1).
• Si el pulso actual es bajo, se guarda el valor de millis() en una variableestablecida entero (2) y el sistema vuelve a la Etapa Lazo para censarla senal nuevamente.
• Si el pulso actual es uno, se ejecuta una resta de tiempos (entero (1) -entero (2)) y se almacena el resultado en una variable entera que repre-senta la cantidad de tiempo que estuvo la senal de tiempo en un valorbajo.
• Se crean variables denominadas contadores de bits, esto para ejecutarlas cuentas de pulsos y coordinar la llegada de los 60 bits que se envıanpor senal.
• Si la cantidad de tiempo es menor a 100 ms, se considera que hubo ruidoen la senal de tiempo, y por lo tanto, el sistema es enviado a la Etapa
Error.
• Si la cantidad de tiempo esta entre 100 ms y 350 ms, se considera quese recibio un cero en la senal de tiempo (el valor determinado por elNIST para enviar un cero es de 200 ms segun la tabla 2.3, no obstante,se agrega robustez al sistema brindando rangos de trabajo amplios).Se aumentan los contadores de bits en una unidad y se almacena unavariable con valor 0.
3.2. Decodificacion de la senal de tiempo 41
• Si la cantidad de tiempo entre 350 ms y 650, se considera que se recibioun uno en la senal de tiempo (el valor determinado por el NIST paraenviar un uno es de 500 ms segun la tabla 2.3, no obstante, se agregarobustez al sistema brindando rangos de trabajo amplios). Se aumentanlos contadores de bits en una unidad y se almacena una variable convalor 1.
• Si la cantidad de tiempo esta entre 650 ms y 950, se considera que serecibio un marcador en la senal de tiempo (el valor determinado porel NIST para enviar un marcador es de 800 ms segun la tabla 2.3, noobstante, se agrega robustez al sistema brindando rangos de trabajo am-plios). Se aumentan los contadores de bits en una unidad y se almacenauna variable con valor 2.
• Si la cantidad de tiempo esta entre 650 ms y 950, no se recibio unmarcador en el bit anterior, los contadores son iguales a 59 y ya sehan recibido 6 marcadores durante la transmision, el sistema reinicia loscontadores y pasa a la Etapa Decodificacion.
• Si la cantidad de tiempo esta entre 650 ms y 950, no se recibio unmarcador en el bit anterior, los contadores son menores a 59 y ya se hanrecibido 6 marcadores durante la transmision, el sistema pasa a la Etapa
Error.
• Si la cantidad de tiempo esta entre 650 ms y 950, se recibio un marcadoren el bit anterior y los contadores son menores a 59, el codigo detectouna senal por primera vez, se reinician contadores y el sistema vuelve ala Etapa Lazo.
Etapa Decodificacion
La Etapa Decodificacion es la encargada de brindar una interfaz visible a losdatos tratados en las secciones de codigo anteriores. Un diagrama explicativode esta seccion se presenta en la figura 3.12. Sus principales caracterısticas sedescriben a continuacion:
• Se guardan en variables enteras los valores decimales de minutos, horas,dıa del ano y ano. Esto se realiza multiplicando los valores generados dela Etapa Analisis (0 o 1), por los valores que representa cada uno delos 60 bits segun su posicion secuencial (de acuerdo a lo establecido enla tabla 2.5).
• Se almacena en variables enteras el valor logico de las correcciones delUT1, leap second y ano bisiesto.
42 3 Diseno del receptor de la senal de tiempo
SeEguardaEúltimoEtiempoEdelErelojEinternoEdelEArduino
Etapa Análisis
PulsoE==EceroE0low3NO
CEAlmacenaEelEtiempoEenEqueEiniciaEpulsoEceroCESeEenvíaEelEsistemaEaElaEEtapaELazo
SI
SeEcalculaEelEtiempoEdelEpulsoEenEbajo
TE<=EfDDEms
TE<=E35DEms
TE<=E65DEms
NO
NO
SeEenvíaEsistemaEaEEtapaEError SI
SeErecibióEunEcero
SeErecibióEunEuno SI
SI
SeErecibióEunEmarcador
ContE==E59E
SeEenvíaEsistemaEaEEtapaEError
MarSE==EDEEMarTE==E6E
MarSE==EDE
SeEenvíaEsistemaEaEEtapaEDecodificación
NO
SI
SINO
CEDetecciónEdeEseñalEporEprimeraEvezECESeEinicializanEcontadoresCESeEenvíaEsistemaEaEEtapaELazo
SeEenvíaEsistemaEaEEtapaELazo SI
NO
TE<=E95DEms
NO
SI
SeEenvíaEsistemaEaEEtapaEError
NO
Figura 3.11: Etapa Analisis
3.3. Validacion del receptor y demodulador 43
• Se verifican errores basicos en el sistema como: minutos >59, horas >24,marcadores no encontrados en su posicion y dıas del ano >365. Si sepresentan datos erroneos el sistema es enviado a la Etapa Error
• Se ejecutan correcciones por zona horaria y las diferencias de tiempo queimplican las marcas en los bits de UT1.
• Se realiza el calculo del mes y dıa especıfico del mismo, haciendo lamatematica correspondiente con la informacion de dıa del ano y bit deano bisiesto.
• Se inicializa la pantalla LCD y se colocan en la primera fila los valorescorrespondientes a tiempo en formato minuto:hora. Se redirige el cursorde la pantalla a la segunda fila y se establece la informacion de fecha enformato mes:dıa:ano.
Etapa Error
La Etapa Error es la seccion encargada de informar mediante la pantalla LCDsobre posibles problemas con la recepcion y decodificacion de la senal de tiem-po. El diagrama explicativo sobre su implementacion en el CO-ST se presentaen el diagrama de la figura 3.13. De forma general, en esta etapa se brinda unmensaje de error que alerta sobre la busqueda de una nueva senal, se reini-cian los contadores globales para evitar conflictos con la Etapa Analisis y seenvıa el sistema a la Etapa Lazo para esperar un nuevo cambio en el pulso.
3.3 Validacion del receptor y demodulador
Los disenos presentados en esta seccion se desarrollaron con el proposito detener herramientas validas para comprobar las etapas de recepcion, demodu-lacion y decodificacion. La limitante del horario en el que la senal de tiempoarriva a Costa Rica, propicio que se generaran mecanismos para simular laestructura del codigo de tiempo y sus eventuales condiciones de llegada alreceptor.
Con esto, en la presente seccion se implemento un transmisor virtual queconsta de dos etapas: un microcontrolador Arduino con el que se emulan lascaracterısticas del codigo de tiempo y una etapa de modulacion analogicapara dicha senal u ondas con cualidades similares. Se pretendio ası, modularun codigo de tiempo generico en una portadora de 60 Khz para de esta forma,tratar de imitar la senal de tiempo enviada por el NIST.
44 3 Diseno del receptor de la senal de tiempo
Seyejecutanylosycálculosydeylasyvariablesydeylayseñal
Etapa DecodificaciónMinutos
Horas
Díaydelyaño
Año
Verificaciónydeymarcadores
ComprobaciónydeybisiestoIyleapysecondyyycorreccionesyUTCNUT1
Colocaciónyenypantallaydeyhorayyyfecha
Seybuscanyerroresyenylayseñal
¿Existen?y
SeyenvíaysistemayayEtapayLazo
SeyenvíaysistemayayEtapayErrorSI
NO
Figura 3.12: Etapa Decodificacion
Se coloca en pantalla el mensaje de error
Se ponen en cero los contadores globales
Se reenvía el sistema a la Etapa Lazo
Etapa Error
Figura 3.13: Etapa Error
3.3. Validacion del receptor y demodulador 45
Transmisor virtual con Arduino
En el Anexo 3 se muestra el codigo de prueba Arduino implementado paracomprobar la eficacia del receptor y el CO-ST. Su funcionamiento es muysencillo y trata de asemejar las caracterısticas de las senales generadas por elNIST-F1, a continuacion se describe mas a fondo:
• Se generan 60 bits respetando las reglas y secuencia de la tabla 2.5.
• Cada bit corresponde a un pulso de 0 a 5V con un perıodo de 0.2, 0.5 o0.8 milisegundos en bajo, segun la informacion que se quiera transmitir.Se utilizan las cualidades del Arduino para generar retrasos (‘delay’)y establecer valores logicos de tension en sus pines digitales (BAJO yALTO).
• La senal se establece en BAJO (durante el tiempo requerido) al iniciode cada envıo de bit, luego se coloca en ALTO hasta complementar unsegundo, de esta forma, con 60 bits se emula la transmision de un minutoque genera la estacion radial WWVB.
• Se envıan bits estrategicos en los segundos adecuados para simular untiempo de 12 horas y 50 o 51 minutos (se varıa el valor logico del bit 8para ejecutar una prueba dinamica).
• Se envıan bits estrategicos en los segundos adecuados para simular lafecha 21 de Mayo (dıa 141 en un ano no bisiesto) del ano 2014.
• Cada valor de bit (cero, uno o marcador) es colocado en la pantalla LCDpara visualizar en tiempo real lo que sucede con el codigo.
En el esquema de la figura 3.14, se presenta un resumen basico de como seimplemento el codigo de prueba de la senal de tiempo.
Circuito modulador de prueba
El esquematico desarrollado en esta etapa obedece principalmente a la nece-sidad de manejar un circuito de prueba que permita comprobar la electronicadel demodulador-amplificador sin antena. Para solventar este requerimientose empleo un circuito basico llamado amplificador de drenaje comun (seguidorde fuente). Este se diseno y simulo en el programa de simulacion OrCAD, taly como se muestra en la figura 3.15.
La electronica presente en la figura 3.15 constituye una forma relativamentesencilla de modular senales, es un circuito de facil de implementar, barato,tiene una salida en fase y presenta un rendimiento aceptable para efectuarpruebas de funcionamiento (Boylestad y Nashelsky, 2009).
46 3 Diseno del receptor de la senal de tiempo
Declaración del pin de salida
Marcador
Código de prueba Arduino
Uno Cero
PinS Bajo
Delay 500 ms
PinS Alto
Delay 500 ms
PinS Bajo
Delay 800 ms
PinS Alto
Delay 200 ms
PinS Bajo
Delay 200 ms
PinS Alto
Delay 800 ms
Figura 3.14: Codigo emulador de senal de tiempo
Figura 3.15: Modulador de senal generica
3.3. Validacion del receptor y demodulador 47
Figura 3.16: Senal sinusoidal de 60 KHz
Analizando el circuito por secciones, la fuente V1 provee la onda sinusoidalde 60 KHz con una amplitud de 0,5 V. Esta onda intenta replicar las caracte-rısticas de la portadora empleada por el NIST en la modulacion de la senal detiempo. En la figura 3.16 se muestra la simulacion de la fuente V1 realizadaen OrCAD, como se nota, el periodo de la senal es cercano a los 0.000017segundos o 60000 Hz.
Por otra parte, mediante la fuente V2 se realizo una senal cuadrada gene-rica que imita un codigo binario aleatorio. Su amplitud va de 0 a 5 V y tieneuna frecuencia periodica de 400 Hz (se utiliza esta frecuencia y no una masbaja, para mejorar los tiempos de simulacion en el programa OrCAD). La ideade la fuente V2 es generar una onda que sea semejante a la senal de tiempo,dado la imposibilidad de simular con OrCAD la senal del transmisor virtualArduino. En la figura 3.17 se visualizan los pulsos generados en la simulacion.
Con las fuentes V1 y V2 se tienen la senal portadora y modulada respec-tivamente. La union de estas ondas se logra mediante la logica del circuitototal de la figura 3.15. El capacitor C1 (100 nF) funciona en el acople de lafuente de entrada sinusoidal y elimina cualquier desplazamiento presente. Lasresistencias R1 y R2 son de igual magnitud (ambas de 1 KΩ. para estructurarel seguidor) y forman un divisor de tension con la fuente de 5 Vdc. Se estableceeste valor de fuente debido a que 5 V es la maxima tension que alcanza V2,lo cual brinda una referencia para la modulacion.
La senal de la fuente V1 referenciada en 2,5 V entra en la compuerta del
48 3 Diseno del receptor de la senal de tiempo
Figura 3.17: Senal cuadrada de 400 Hz
MOSFET de canal ’n’ y sigue las variaciones de la fuente V2 en el drenaje.Cuando V2 se encuentra en 5 V, la senal de salida en la fuente tiene la mag-nitud de la tension V1 durante el periodo que permanezca el pulso activo, sinembargo, una vez que V2 va a cero, la onda de salida tiene camino a tierra ytoma los valores de la tension en la resistencia de carga R3 alimentada por lasenal de la compuerta (valores altos mejoran la impedancia). El grafico de latematica anterior se puede apreciar con mas detalle en la figura 3.18, salidatomada en la fuente del MOSFET.
Es importante mencionar que la senal modulada no es del todo ideal, yaque presenta variaciones leves de tension entre las transiciones. No obstante, essuficientemente buena para simular el comportamiento de la senal recibida. Esposible calcular el coeficiente de modulacion de la senal mostrada en la figura3.18 para compararlo con el 83 % que presenta la senal de tiempo teorica de lafigura 2.3. Mediante la ecuacion 3.1 y las tensiones de la figura se determinaeste ındice.
m =0,300
0,400= 0,75 (3.1)
Tomando en cuenta los valores aproximados de tension que se tienen conla figura 3.18, hay un error cercano al 10 % entre el coeficiente de modula-cion teorico y el obtenido con el circuito seguidor de fuente. Valor aceptableconsiderando que se trata de un modulador de onda sencillo.
3.3. Validacion del receptor y demodulador 49
Figura 3.18: Senal de prueba modulada a 60 Khz
Comprobada la efectividad del circuito de la figura 3.15 mediante la senalmodulada de la figura 3.18, es posible verificar ahora, los circuitos de amplifica-cion, demodulacion y comparador LM311 establecidos en la seccion: Receptorde radio y demodulador.
Las simulaciones se efectuaron con el circuito completo presente en la figura3.19, el cual es el acople de las esquematicos brindados en las figuras 3.15y 3.1; lo anterior para tener datos que reflejen el comportamiento real delamplificador-demodulador ante una onda generica similar a la senal de tiempo.
Verificacion de etapa amplificacion
El grafico de la figura 3.20 efectuado con OrCAD corresponde a la salidadel amplificador operacional del circuito de simulacion (figura 3.19). Como sevisualiza, la senal mantiene un comportamiento similar al presente en la figura3.18, solo que con magnitudes de tension elevadas (se cumple el objetivo de laetapa). Hay que recordar que el modulador de prueba no tiene alta precisiony se emplea principalmente para emular la llegada de la senal de tiempo.
Verificacion de etapa detector de envolvente
En la figura 3.21, se muestra la grafica a la salida del detector de envolventeante una senal de entrada como la propuesta en la figura 3.20. Es evidenteanalizando las dos ondas, como las cualidades del circuito descrito permiten
50 3 Diseno del receptor de la senal de tiempo
Figura 3.19: Demodulador de prueba y circuito receptor
Figura 3.20: Receptor, etapa amplificacion
3.3. Validacion del receptor y demodulador 51
Figura 3.21: Demodulacion por detector de envolvente
que se elimine la influencia de la senal portadora y se deje unicamente elcontorno de la senal modulada, aunque no del todo perfecta y utilizable.
Verificacion de etapa LM311
En la figura 3.22 se visualiza la salida del comparador LM311. Se tiene unaonda con valores digitales de cero y uno que representan la demodulacion dela senal proporcionada por la fuente V2. Ejecutando un estudio comparativoentre las graficas de las figuras 3.17 y 3.22, se puede concluir que el circuitototal de la figura 3.1 demodula de buena forma la senal generica, y por ende,deberıa ejecutar una labor similar con la senal de tiempo.
52 3 Diseno del receptor de la senal de tiempo
Figura 3.22: Senal generica demodulada
4 Resultados Generales
Este capıtulo tiene como proposito presentar los resultados de las diferentesetapas disenadas en la seccion anterior. Se analizan el receptor-demoduladory el decodificador con Arduino.
4.1 Implementacion practica del receptor ydemodulador para la senal de tiempo
Ejecutadas todas las pruebas de simulacion y comprobacion con OrCAD paralos circuitos disenados en las figuras 3.15 y 3.1, el siguiente paso fue realizarsu implementacion fısica y verificacion de funcionamiento. En la figura 4.1 a)se visualiza el modulador con seguidor de emisor para senal generica. En estecaso, la senal V2 (figura 3.15) corresponde al codigo de prueba desarrolladocon Arduino (que sigue fielmente las caracterısticas de la senal de tiempo).De esta forma, el amplificador-demodulador de la figura 4.1 b) primero secomprueba con el codigo de prueba modulado (desarrollado con Arduino) yposteriormente con la etapa antena.
En la figura 4.2 es posible visualizar juntas ambas etapas desarrolladas enla figura 4.1. Ası, se tiene un circuito inicial que modula en amplitud a 60 KHzuna onda cuadrada generada con Arduino (caracterısticas similares al codigo
Figura 4.1: a) Circuito modulador de senal de prueba. b) Circuito receptor ydemodulador
53
54 4 Resultados Generales
Figura 4.2: Circuito total implementado
de tiempo con respecto amplitud y logica digital). Posteriormente, la salida delmodulador entra a una etapa de amplificacion con un operacional LF353, paraluego ser tratada por detector de envolvente que elimina los sectores negativosde la onda y elimina la senal portadora. Finalmente, mediante un dispositivoLM311 se limpia la senal y se coloca en un ambito de 0 a 5 V con los tiemposcorrectos de ejecucion. Las graficas y capturas tomadas con osciloscopio paratodas las secciones mencionadas se presentan a continuacion.
En la figura 4.3, se muestra la grafica de la onda sinusoidal realizada conel generador de senales para modular en amplitud el codigo de tiempo creadocon Arduino. Esta senal toma el papel de V1 en la figura 3.15. Segun la figura4.3, cuenta con un periodo aproximado de 17 µs (aspecto que representa unafrecuencia cercana a los 60 KHz esperados), ademas de una tension de 500mV .
Por su parte, la figura 4.4 permite visualizar el codigo de tiempo generadocon el microcontrolador Arduino (en diversos instantes de tiempo) para reali-zar pruebas de funcionamiento sin necesidad de una antena. Como se mencionoanteriormente, la senal simulada representa fielmente las cualidades otorgadaspor el NIST a su senal. Estudio de los casos presentes en la figura 4.4.
• 1) En la grafica a) (2V/div), se observa como la amplitud de la onda vadesde los 0 V hasta los 5 V de tension, CERO y UNO en logica digital.
• 2) En la grafica a) se muestra como hay una senal en bajo de 0,2 segun-dos, es decir, se acaba de enviar un cero en la transmision.
• 3) En la grafica a), es posible presenciar el inicio una transmision en elbit 59 y 0, llegan dos marcadores que establecen la culminacion e inicio
4.1. Implementacion practica del receptor y demodulador para la senal detiempo 55
Figura 4.3: Onda sinusoidal con frecuencia de 60 KHz
de un minuto de 60 datos.
• 4) En la grafica b) se nota como hay una senal en bajo de 0,8 segundos,es decir, se acaba de enviar un marcador en la transmision.
• 5) En la grafica b) se visualiza como hay una senal en bajo de 0,5 se-gundos, es decir, se acaba de enviar un uno en la transmision.
• 6) En la grafica b) (0,5s/div), es notorio como cada bit tiene una du-racion de un segundo exacto entre su periodo en bajo y alto. Ademas,la indicacion de tipo de bit siempre se realiza en los primeros 0,8 s detransmision.
Continuando secuencialmente, en la grafica de la figura 4.5 se observa elcodigo de tiempo modulado, obtenido a la salida del amplificador de drenajecomun. Con una senal centrada en 0 V, es evidente como el codigo ya nocorresponde a un tren de pulsos de baja frecuencia y se asemeja mas a unaonda sinusoidal que varıa en amplitud.
La figura 4.5 refleja como cada parte de las ondas cuadradas visualizadasen la figura 4.4 a), son ‘llenadas’ con una senal sinusoidal de alta frecuencia(modulacion AM); siguiendo un comportamiento muy similar al que tendrıansi fueran transmitidas desde Fort Collins por la estacion radial WWVB. Como
56 4 Resultados Generales
Figura 4.4: Codigos de tiempo generados con Arduino
Figura 4.5: Senal de tiempo modulada a 60 KHz
punto de atencion, es posible mencionar que las ondas cuando estan en altopresentan una magnitud negativa mucho menor a la positiva, no obstante, lademodulacion inhibe esta seccion de onda, por lo que, al final no son de grantrascendencia. En un analisis visual, la figura refleja la llegada de dos ceroslogicos, dos marcadores y un uno logico.
En la figura 4.6 se presenta un acercamiento de la senal presentada en la
4.1. Implementacion practica del receptor y demodulador para la senal detiempo 57
Figura 4.6: Acercamiento a la senal modulada
figura 4.5. Con esto, se pueden verificar caracterısticas importantes como laamplitud de la onda cercana a 500 mV (se recuerda que se trata de un circuitoseguidor de emisor, ganancia 1), ası tambien, una frecuencia aproximada a60000 Hz (el periodo de la onda corresponde a 16 us ).
Un estudio comparativo se puede ejecutar mediante el uso de la figura4.7. En ella se presentan el codigo de prueba Arduino original (inferior) y elcodigo de prueba Arduino modulado (superior). Como se visualiza, la senalmodulada sigue fielmente las variaciones logicas del codigo prueba; ası, esfactible establecer que el circuito planteado para modulacion desempena unpapel aceptable y representa de forma adecuada, la llegada de una transmisionde senal de tiempo por parte del NIST.
Realizadas con exito las pruebas necesarias de comprobacion al codigo detiempo y circuito modulador, ahora es posible introducir con certeza de fun-cionamiento, una senal valida al circuito amplificador-demodulador planteadoen la figura 3.18 e implementado con electronica analogica en el circuito de lafigura 4.1 a).
La primera seccion del esquematico de la figura 4.1 a) corresponde a laetapa amplificacion, encargada de aumentar los valores de tension de la senalde llegada para que sean trabajables en las demas partes del circuito total.Para este caso, se utilizaron las resistencias calculadas en el capıtulo anterior,propiciando que el amplificador operacional obtenga una ganancia aproximada
58 4 Resultados Generales
Figura 4.7: Comparacion entre senal modulada (superior) y senal de tiempoArduino (inferior)
de 20 veces.
En la figura 4.8 se presenta la respuesta del circuito amplificador anteuna entrada como la senal de la figura 4.5 (en otro perıodo temporal). Sevisualiza un mismo comportamiento estructural, la diferencia central radicaen un cambio de magnitud de la onda, la cual aumento de 0,5 V a casi 5 V.Este hecho ratifica un buen desempeno de la etapa de amplificacion ante unasenal controlada como el codigo de prueba Arduino modulado en amplitud.
La figura 4.9 representa por su parte, la senal de la figura 4.8 despues depasar por la seccion principal de demodulacion: el detector de envolvente. Seobserva una eliminacion contundente de los valores negativos de la onda pormedio del diodo. Ademas, no varıa la magnitud de tension y se excluyen casipor completo los efectos de la portadora de 60 KHz, aunque no del todo.Como se menciono en el capitulo anterior, este metodo de demodulacion esefectivo, pero no alcanza gran precision.
El circuito real para el receptor de envolvente obtiene mejores resultadosque los ejecutados mediante simulacion (recordar figura 3.21), lo cual es unaspecto constructivo positivo que brinda mayor seguridad de implementacion.
Finalmente en el proceso demodulador-amplificador del circuito mostradoen la figura 4.2, la senal pasa del receptor de envolvente al integrado LM311para ser tratada y convertida en un tren de pulsos de 0 a 5 V, esto teniendo
4.1. Implementacion practica del receptor y demodulador para la senal detiempo 59
Figura 4.8: Senal modulada despues de etapa amplificacion
Figura 4.9: Senal demodulada despues de etapa detector-envolvente
60 4 Resultados Generales
Figura 4.10: Senal de tiempo Arduino demodulada con etapa LM311
como objetivo alcanzar una logica digital que pueda ser entendida por el Ar-duino mediante el CO-ST. Los tiempos de ejecucion para cada bit permaneceninvariantes como se nota en la figura 4.10.
Una comparacion general entre el codigo de prueba generado con el micro-controlador UNO (superior) y la senal demodulada en su etapa final (inferior)se muestra en la figura 4.11, ambas ondas presentan un comportamiento prac-ticamente igual en sus periodos y magnitudes. Es posible calcular el error totalde tiempo y amplitud entre ambas senales para evaluar el rendimiento de loscircuitos implementados. La zona a) de la figura 4.11 evidencia tiempos enbajo de las ondas practicamente iguales, con lo se tiene un error en periodomenor al 1 %. Por otra parte, la zona b) muestra una diferencia aproximadade 0.3 V entre la tension final con LM311 y la tension de la senal generadacon Arduino, el error corresponde a 6 %.
De esta forma, es posible afirmar que se cuenta con un circuito amplificador-demodulador que se desempena satisfactoriamente ante condiciones estableci-das.
4.2. Verificacion de funcionamiento del CO-ST implementado con Arduino61
Figura 4.11: Comparacion entre senal Arduino original (superior) y la senaldemodulada (inferior)
4.2 Verificacion de funcionamiento del CO-STimplementado con Arduino
En esta seccion se muestran las capturas del Arduino y la pantalla LCD quepermiten visualizar el funcionamiento del CO-ST para decodificar la senalde tiempo. El codigo se verifica con pruebas Arduino-Arduino y Arduino-modulador-demodulador-Arduino
Verificacion Arduino-Arduino
Como se observa en la figura 4.12, se emplearon dos microcontroladores UNOpara verificar el CO-ST. El Arduino superior reproduce el codigo de pruebade la senal de tiempo y el Arduino inferior ejecuta el CO-ST. Los dispositivosse conectan a traves de su pin numero dos (en un caso como pin de entraday en el otro como pin de salida). Se visualiza en la figura 4.12 a) un tiempode 12:50 y en la figura 4.12 b) un tiempo de 12:51, ambas con una fecha de21/May/2014; datos que se plantearon de esa manera al momento de generarel codigo de prueba (ver anexo 2).
Dado lo anterior, se comprueba que el CO-ST funciona correctamente enla lectura directa de pulsos que emulan la senal de tiempo. Ası, es muy factible
62 4 Resultados Generales
Figura 4.12: Implementacion del CO-ST Arduino-Arduino
que el codigo se comporte similar ante el arribo de la informacion enviada porel NIST.
Por su parte, en la figura 4.13 se muestra el funcionamiento del CO-STen distintas etapas de lectura, antes de llegar a los estados presentes en lafigura 4.12. La figura 4.13 a) indica el inicio del sistema, se genera un saludoinicial que alerta sobre la posible llegada de la senal de tiempo. Ası tambien,en la figura 4.13 b) se visualiza como el microcontrolador reacciona ante laincursion de un pulso con las caracterısticas del codigo NIST. Finalmente,la figura 4.13 refleja la actuacion del CO-ST si se da un error grave que nopermita decodificar una senal valida (ruido, desconexion, entre otros). Estasrepresentaciones visuales son iguales en la pantalla LCD, sea cual sea la formaen que entre la senal de tiempo al Arduino (real o simulada).
El codigo de prueba que emula la senal de tiempo y su implementacion enla pantalla LED se notan en la figura 4.14. Las figuras a), b) y c) tratan deejemplificar como la senal que brinda el Arduino va variando sus valores endistintos instantes de tiempo, esto para transmitir informacion coherente, deacuerdo con lo que genera la estacion radial WWVB. Se observan un cero, ununo y un marcador respectivamente.
Verificacion Arduino-modulador-demodulador-Arduino
La figura 4.15 presenta una captura del circuito implementado para modulary demodular el codigo de prueba (comprobacion total del sistema sin antenapresente), ademas del Arduino final utilizado para reproducir el CO-ST. Co-
4.2. Verificacion de funcionamiento del CO-ST implementado con Arduino63
Figura 4.13: Diferentes etapas del codigo CO-ST
Figura 4.14: Implentacion visual del codigo de prueba Arduino
mo es evidente en la figura y la pantalla LED, los resultados finales son losesperados, por lo que se asume un comportamiento correcto e idoneo de losprocesos ejecutados y los esquematicos desarrollados a lo largo del proyecto.
Con esto, la figura 4.16 en sus imagenes a) y b) muestra diversos periodosde toma de datos que confirman la eficacia del CO-ST ante variaciones entiempo real. Esta figura se compara con los datos mostrados en la figura 4.12(tiempo y fecha), ambas arrojando los mismos resultados.
Este tipo de etapa comprobatoria es de gran valıa para los intereses aca-demicos del documento, puesto que permite simular condiciones no ideales deuna senal de tiempo cuya presencia o no en el espectro electromagnetico, estasujeta a variables imposibles de controlar (clima, ruido excesivo, entre otras).Es decir, aunque no se cuente fısicamente con la senal, se tienen las pruebassuficientes para asegurar el funcionamiento adecuado de todos los circuitos ycodigos implementados ante la llegada de la informacion.
64 4 Resultados Generales
Figura 4.15: Implementacion del CO-ST Arduino-modulador-demodulador-Arduino
Figura 4.16: CO-ST en distintos instantes temporales
5 Conclusiones y recomendaciones
Conclusiones
• Se logro el planteamiento y construccion de un circuito amplificador –demodulador, capaz de tomar una onda generica o con cualidades dela senal de tiempo y demodularla en amplitud, esto a traves de tresetapas sencillas y de bajo costo. Electronica basica como la empleadabrinda condiciones suficientes para aplicaciones que no demandan granexactitud ni colapsan ante la perdida de informacion redundante.
• El CO-ST cumplio a cabalidad su funcion en la decodificacion de la senalde tiempo, las diferentes pruebas efectuadas demostraron que el codigoes dinamico, preciso, robusto y actua con rapidez ante problemas derecepcion.
• Elementos como la pantalla LED – Arduino son de gran utilidad paravisualizar en tiempo real la informacion de los procesos que ocurrenadentro del microcontrolador. Mediante la herramienta visual fue posibleadvertir datos de tiempo y fecha en formato decimal que cambiaronconforme el periodo de transmision (cada minuto).
• La realizacion de circuitos y logica de comprobacion como los efectuadoscon el codigo de prueba Arduino y el esquematico seguidor de fuente,permiten ejecutar simulaciones, experimentos de rendimiento y analisisfuncionales mas acercados a la realidad. Se arrojan resultados con altaprecision que reflejan posibles inconvenientes, mejoras constructivas ybrindan informacion para trabajar en cualquier instante.
• El empleo de microcontroladores programables en aplicaciones de tra-tamiento de senal, abre un amplio espectro de posibilidades para que elusuario pueda explorar diversas formas de resolver un problema, desdela perspectiva que le sea mas adecuada. Arduino se convirtio en unaplataforma idonea para tratar las caracterısticas de la senal de tiempoen prueba y decodificacion, su rendimiento y cualidades de lectura – es-critura facilitaron el establecimiento de una aplicacion rapida y precisa.
• El diseno e implementacion de antenas esta sujeto a muchas variablesteoricas – constructivas que definen la funcionalidad, ganancia y ambitode frecuencias a recibir o transmitir. Crear una antena desde cero es
65
66 5 Conclusiones y recomendaciones
un proceso complejo que requiere experiencia en el tema y materialesde calidad, por ende, se considera que este es un topico que queda ensegundo plano en el documento, cediendo paso ante el desarrollo de laelectronica analogica y digital presentada.
• No se logro el desarrollo de una antena capaz de recibir ondas electromag-neticas con frecuencia de 60 KHz. La comprobacion de la funcionalidadde la antena estuvo limitada por la carencia de equipo especializadocomo: medidores de campo ROE (razon de onda estacionaria), acopla-dores direccionales, analizadores de antena, entre otros. Sin mecanismosde prueba, se hace imposible detectar errores en el sistema de recepcion.
Recomendaciones
• La tematica antena requiere de un conocimiento desarrollado en teleco-municaciones y propagacion de ondas. Si no se cuenta con la experienciaadecuada, se recomienda pedir asesorıa de personas especializadas, obien, comprar el elemento.
• Cuando se labora con senales electricas cuya permanencia en el espectroelectromagnetico esta sujeta a condiciones climaticas y factores externosajenos al control, lo ideal es contar con herramientas de respaldo quepermitan realizar pruebas y experimentacion en cualquier momento; ası,captada la onda de interes se podra tener mayores garantıas de exito enla ejecucion de la logica desplegada.
Bibliografıa
Apuy, A. (2013). Analisis de tecnologıas de radio digital terrestre y sus posi-bilidades de implementacion en costa rica. Universidad de Costa Rica.
Arduino (2014). Arduino uno. http://arduino.cc/en/uploads/Main/ArduinoUnoR3F ront.jpg.
Boylestad, R. y Nashelsky, L. (2009). Electronica: Teorıa de Circuitos y Dis-positivos Electronicos. Prentice Hall, Decima Edicion.
Correa, J. (2010). Indice de modulacion. Intitucion Universitaria de Envigado.
Couch, L. (2008). Sistemas de Comunicacion Digitales y Analogicos. PearsonEducation, septima edicion.
CRCibernetica (2014). 1602 lcd keypad shield for arduino.http://www.crcibernetica.com/1602-lcd-keypad-shield-for-arduino/.
Dıaz, J. (2007). Emisor y receptor de am.
Deutch, M., Hanson, W., Nelson, G., Snider, C., Hansen, P., y Hopkins, B.(2012). Wwvb improvements: New power from an old timer. Reporte tec-nico, National Institute of Standards and Technology.
Dorf, R. y Svodoba, J. (2008). Circuitos Electricos. Alfaomega, sexta edicion.
Durney, H., Gautier, J., y Ulloa, F. (2007). Analisis, diseno, construcciony medicion de antenas helicoidales para 2.4 ghz sobre aeroplataforma decomunicaciones globo-antena (haps). Universidad de Chile, Departamentode Electronica.
Herrrera, E. (1999). Comunicaciones I, Senales, Modulacion y Transmision.Noriega Editores. Editorial Limusa.
Huang, Y. y Boyle, K. (2008). Antennas: from theory to practice. Chichester,West Sussex, UK : Willey.
ka7oei (2012). A remote antenna for 60 khz wwvb reception.
Lombardi, M. (2002). Nist time and frecuency services. Reporte tecnico,National Institute of Standards and Technology.
67
68 Bibliografıa
Lombardi, M. (2010). How accurate is a radio controlled clock. Reportetecnico, National Institute of Standards and Technology.
Lombardi, M., Novick, A., Lowe, J., y Deutch, M. (2009). Recommended prac-tices for manufacturers and consumers. Reporte tecnico, National Instituteof Standards and Technology.
Lowe, J. (2013). Enhanced wwvb broadcast format. Reporte tecnico, NationalInstitute of Standards and Technology.
Martı, O. (2010). Recepcion de modulacion de amplitud. Ejemplar de distri-bucion gratuita.
MINAET (2008). Plan nacional de atribucion de frecuencias (pnaf). Reportetecnico, Presidencia de la Republica.
Nassar, C. (2001). Telecommunication Demystified. LLH Technology Publis-hing.
Nelson, G. y Lombardi, M. (2005). Nist time and frequency radio stations:Wwv, wwvh and wwvb. nist special. Reporte tecnico, National Institute ofStandards and Technology.
NIST (2010a). Nist radio station wwvb. National Institute of Standards andTechnology. http://www.nist.gov/pml/div688/grp40/wwvb.cfm.
NIST (2010b). Time and frequency from a to z: Am to b. National Instituteof Standards and Technology. http://tf.nist.gov/general/enc-am.htm.
NIST (2010c). Wwvb radio controlled clocks. National Institute of Stan-dards and Technology. http://www.nist.gov/pml/div688/grp50/primary-frequency-standards.cfm.
NIST (2013). Nist-f1 cesium fountain atomic clock. National Institute of Stan-dards and Technology. http://www.nist.gov/pml/div688/grp50/primary-frequency-standards.cfm.
NIST (2014). Nist general information. Na-tional Institute of Standards and Technology.http://www.nist.gov/publicaffairs/generalinformation.cfm.
Paniagua, L. (2008). Introduccion a antenas inteligentes. Universidad de CostaRica.
Solıs, E. (2008). El espectro radioelectrico en costa rica. Universidad de CostaRica.
Bibliografıa 69
Stallings, W. (2004). Comunicaciones y Redes de Computadoras. Prentice Hall.
Stutzman, W. y Thiele, G. (1981). Antenna theory and design. Wiley, New York.
TCT (1998). Irig serial time code formats. Reporte tecnico, Timing Com-mittee Telecommunications and timing group range Commanders Coun-cil.Secretariat, Range Commanders Council, U.S. Army White Sands MissileRange, New Mexico 88002-5110.
UTM (2010). Receptores. Reporte tecnico, Universidad Tecnica de Madrid,Curso Ingenierıa de Comunicaciones.
Wikipedia, C. (2014a). Modulacion por ancho de pulsos. Wikipedia, The FreeEncyclopedia. http://es.wikipedia.org/wiki/Modulaci
Wikipedia, C. (2014b). Wwvb. Wikipedia, The Free Encyclopedia.http://en.wikipedia.org/w/index.php?title=WWVB&oldid=600198698.
6 Anexos
6.1 Anexo 1 - Mas sobre el NIST y entes detiempo-frecuencia adjuntos
Instituto Nacional de Estandares y Tecnologıa
Las sedes principales del NIST se encuentran ubicadas en Gaithersburg yBoulder, regiones al este y oeste de los Estados Unidos respectivamente. Conrecursos y activos cercanos a los mil millones de dolares, el NIST en usainstitucion de prestigio y reconocimiento internacional. Cuenta con mas de3000 empleados entre cientıficos, ingenieros y personal administrativo, ademasde un sinnumero de colaboradores alrededor del globo. Informacion recopiladade la pagina oficial de la organizacion (NIST, 2014).
El NIST fue fundado hace poco mas de un siglo en 1991 y desde su crea-cion hasta la actualidad incursiona en areas como energıa electrica inteligente,nanotecnologıa, electronica, salud, biociencia, quımica y mediciones. En es-te ultimo sector se ubica la Division de Tiempo y Frecuencia, encargada demanejar lo concerniente a la informacion de tiempo.
Division de Tiempo y Frecuencia, NIST
De forma sucinta, la Division de Tiempo y Frecuencia pertenece al Laboratoriode Medidas Fısicas del NIST, localizado en la sede del Boulder, Colorado. Estaconformada por gran cantidad de cientıficos renombrados en todo el orbe comoDave Wineland, Premio Nobel de Fısica en 2012; a nivel institucional estableceparametros y escalas validas globalmente (NIST, 2010b).
Esta division realiza investigaciones y plantea estandares de tiempo pa-ra Norteamerica y el mundo. Cuenta con mecanismos y herramientas de altapresicion como el oscilador atomonico NIST-F1, base fundamental en la es-tructura del codigo que se envıa en la senal de tiempo.
NIST-F1
Especıficamente, el reloj atomico que utiliza la Division de Tiempo y Fre-cuencia del NIST como estandar de tiempo, se conoce como NIST-F1, fuedesarrollado y construido en menos de cuatro anos por Steve Jefferts y DawnMeekhof, y calibrado mediante un estandar anterior. Funciona basado en una
71
72 6 Anexos
Figura 6.1: Oscilador atomico NIST-F1 (NIST, 2013)
fuente de Cesio, lo que le brinda mas ventajas que los osciladores fundamenta-dos en el haz del mismo elemento. Se puso en funcionamiento en 1999 es unode los relojes mas exactos en el mundo, con una incertidumbre de alrededorde 0.1 nanosegundos por dıa (Lombardi, 2002).
Segun lo establecido por NIST (2013), el NIST-F1 junto con otros osci-ladores atomicos situados en todo el mundo (Tabla 2.1) definen el TiempoUniversal Coordinado (UTC, por sus siglas en ingles ), que corresponde altiempo oficial del mundo, cualidad que le brinda alto grado de confiabi-lidad. Este tipo de reloj es tan exacto que pierde precision de menos de unsegundo en el transcurso de 100 millones de anos. En la figura 6.1 se observael reloj atomico NIST-F1, utilizado por la estacion radial WWVB para tomary enviar los datos de la informacion de tiempo.
Estacion radial WWVB
La WWVB nacio como la estacion de radio KK2XEI y comenzo sus operacio-nes en Julio de 1956. Segun Lombardi (2002) su primer transmisor fue ubicadoen Boulder, Colorado (cerca de Fort Collins, sitio donde se situa en la actua-lidad) y tenıa una potencia de radiacion de apenas 1.4 KW, sin embargo,su senal llegaba y era monitoreada por la Universidad de Harvard en Mas-sachusetts (cerca de 3000 Km de distancia entre ambos puntos geograficos).Inicialmente se creo con el proposito experimental de observar la estabilidadde las ondas de radio transmitidas a bajas frecuencias (VF) y muy bajas fre-cuencias (VLF). En el cuadro 6.1 se visualiza una clasificacion rapida de lasfrecuencias, segun el rango del espectro en que se encuentran.
La estacion WWVB paso de ser un proyecto experimental o una organiza-cion operacional en 1962. En 1963 transmitio una senal estandar de 7 KW a 60
6.1. Anexo 1 - Mas sobre el NIST y entes de tiempo-frecuencia adjuntos 73
Cuadro 6.1: Banda de Frecuencias (MINAET, 2008)
Banda de Frecuencias Ambito de Frecuencias
ULF 300Hz - 3KHzVLF 3KHz - 30KHzLF 30KHz - 300KHzMF 300KHz - 3000KHzHF 3MHz - 30KHzVHF 30MHz - 300MHzUHF 300MHz - 3000MHzSHF 3GHz - 30GHzEHF 30GHz - 300GHz
KHz (LF) y en 1965 agrego la senal de tiempo a su transmision utilizando elCodigo Binario Decimal (BCD, por sus siglas en ingles); los bits son formadosa partir de los cambios de potencia en la senal portadora. Este mismo formatose sigue utilizando hoy en dıa y los cambios mas destacados son en la potenciade transmision, la cual aumento en 1999 a 50 KW y actualmente se encuentraen 70 KW (Deutch et al., 2012). Una mayor potencia de radiacion permiteun mayor area de cobertura en la senal transmitida, y ası, que receptores conantenas simples puedan captar la informacion de la onda mas facilmente.
Detallando el proceso de obtencion que emplea el NIST para generar lasenal de tiempo que transmite la WWVB, Nelson y Lombardi (2005) explicancomo esta estacion radial cuenta con tres osciladores de cesio comerciales yun reloj maestro (NIST-F1 ); los cuales son comparados todos los dıas con losestandares de frecuencia del UTC utilizando tecnicas de GPS, y corrigiendosesi es necesario. Al transmitir se escoge alguno de los osciladores secundarios o elNIST-F1 y se conecta a un generador de codigo de tiempo que crea una senalpara alimentar los elementos transmisores y emitir ası, una onda en variasfrecuencias. Los generadores de codigo y osciladores atomicos son siempremonitoreados por precision, un cambio inesperado en las salidas puede sercatastrofico.
A diferencia de las estaciones WWW y WWVH, la baja frecuencia con quetransmite WWVB su senal de tiempo (60 KHz) no le permite enviar infor-macion audible, pero si le brinda un mayor alcance en su cobertura. Segun loestablecido en el cuadro 6.1 esta senal entra dentro del rango de baja frecuencia(LF), caracterıstica que le otorga la capacidad de llegar a mayores distanciasy profundidades con menor distorsion, aunque sı, variando la potencia paraser recibida (Solıs, 2008).
74 6 Anexos
Elementos transmisores y antenas de la estacion WWVB
La WWVB utiliza dos antenas identicas (ubicadas respectivamente en el sec-tor sur y el sector norte del edificio de transmision en Fort Collins) y dostransmisores para enviar la senal de tiempo, aspecto que produce robustez ygarantiza estabilidad en caso de falla mecanica o mantenimiento de las insta-laciones (Lombardi, 2002).
Las antenas se construyeron en 1962 y se reforzaron para entregar mayorpotencia efectiva de radiacion (ERP) en 1999. La antena norte fue original-mente disenada para transmitir en la frecuencia de 20 KHz (estandar anterior),mientras que la antena sur se diseno especialmente para emitir a 60 KHz (fre-cuencia que corresponde al estandar del NIST en la estacion WWVB). Amboselementos emisores estan espaciados alrededor de 860 metros y correspondenal tipo de monopolo de carga superior, con torres de 122 metros de alturaorganizadas en forma de diamante (NIST, 2010a).
Por su parte, en Lombardi (2002) se explica como la estacion de radioWWVB tiene en sus instalaciones tres transmisores de onda, de los cuales dosse encuentran en constante operacion transmitiendo la senal de tiempo y elrestante esta en posicion de respaldo ante una eventualidad. Cada transmisorconsta de dos amplificadores de potencia iguales que se ajustan para gene-rar una senal amplificada de calidad (recibida desde los osciladores atomicos),que a su vez sera enviada a la correspondiente antena para emitirse (un trans-misor alimenta la antena sur y otro la norte). El sistema antena-transmisornorte produce una eficiencia de 57 % y el sistema antena-transmisor sur unaeficiencia del 59 %, ası, el efecto combinado de ambos sistemas provoca unatransmision muy eficiente del 71 %.
6.2. Anexo 2 - Codigo para decodificar senal de tiempo 75
6.2 Anexo 2 - Codigo para decodificar senal detiempo
// Kendall Solano Oviedo - A96037
// Proyecto Electrico
// Codigo para captar se~nal de tiempo del NIST mediante Arduino
// ***************************************************************
// Definicion de variables para el inico del programa
// Etapa Inicial
#include <LiquidCrystal.h>
// Se incluyen las librerias necesarias
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// Pines empleados por la pantalla LCD
#define pinEntrada 2
// Ingreso de la se~nal de entrada al Arduino en pin 3
unsigned int tiempoBajo1;
// Medir el tiempo en bajo de la se~nal
unsigned int tiempoBajo2;
// Medir el tiempo en bajo de la se~nal antes de que suba
int cantTiempo;
// Cantidad de tiempo en alto
int bitU[60];
// Bit Unitario
volatile byte senalRecib;
// Se aloja la se~nal recibida del NIST, es variante
byte senalAnt;
// Pulso de se~nal anterior en senalRecib
byte numBit = 0;
// Contador de los 60 bits de la se~nal
byte tipoBit;
// Aloja el tipo de bit 0=0, 1=1, 2=marcador, 3=error
byte marcaSeg = 0;
// Numero de marcadores seguidos
byte marcaTotal = 0;
// Deben haber 6 marcadores en la se~nal
int minutos, horas = 0;
// Variables que almacenan tiempo
76 6 Anexos
int diaAno, diaMes, ano, mesC, bisiesto = 0;
// Variables que almacenan fecha
int leapSecond = 0;
// Dif entre UTC y UT1
int ut1, ut2, ut3, cantidUT1 = 0;
// Variaples para valores de ajuste
int contAdy = 0;
// Cuenta para ejecutar codigo cada 60s
char* mes[] = "ENE","FEB","MAR","ABR","MAY","JUN","JUL", "AGO",
"SET", "OCT", "NOV", "DIC";
//Almacena el nombre del mes
// ***************************************************************
//Iniciacion del sistema, definicion de interrupciones, bit rate
//Etapa Setup
void setup()
lcd.begin(16, 2);
// Inicializacion de la pantalla LCD y saludo inicial
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Senal de tiempo");
lcd.setCursor(0, 1);
lcd.print("NIST WWVB");
pinMode(pinEntrada, INPUT);
// Entrada en pin 2
Serial.begin(9600);
// Tasa de transmision de datos a 9600 bps
attachInterrupt(0, senalLectura, CHANGE);
// Interrumpe cuando detecta el cambio en el pulso de la se~nal
// Formacion del lazo de ejecucion para seguir los cambios de la se~nal
// Etapa Lazo
void loop()
if (senalRecib != senalAnt)
// Se verifica cambio en los pulsos de la se~nal
analisisBit();
// Cuando hay un cambio en la se~nal se pasa a la etapa de
// clasificacion del pulso
6.2. Anexo 2 - Codigo para decodificar senal de tiempo 77
senalAnt = senalRecib;
// Se guarda el valor actual de la se~nal para la proxima evaluacion
// Rutina para identificar el valor del bit: 0, 1 o barrera
// Etapa Analisis
void analisisBit()
tiempoBajo1 = millis();
// Almacena el tiempo desde el inicio del programa
if (senalRecib == 0)
// Verifica el pulso-alto hasta un cambio
tiempoBajo2 = tiempoBajo1;
// Guarda el ultimo tiempo con el pulso en bajo
else
cantTiempo = tiempoBajo1 - tiempoBajo2;
// Total de tiempo de pulso en Bajo en un segundo
if (cantTiempo <= 100)
// Indica ruido en la se~nal
error();
// Si ruidoSenal es 1 el programa no ejecutara
else if (cantTiempo <= 350)
// Valida el cero y aumenta las cuentas
tipoBit = 0;
numBit ++;
contAdy ++;
marcaSeg = 0;
bitU[numBit] = tipoBit;
// Guarda el tipo de bit en un vector de 60 datos
else if (cantTiempo <= 650)
// Valida el uno y aumenta la cuentas
tipoBit = 1;
numBit ++;
contAdy ++;
marcaSeg = 0;
78 6 Anexos
bitU[numBit] = tipoBit;
// Guarda el tipo de bit en un vector de 60 datos
else if (cantTiempo <= 950)
// Indicador del bit marcador
//Se analizan 2 casos, inicio de transmision se~nal y
//acontecimientos durante la misma
if ((numBit == 59) && (marcaSeg == 0) && (marcaTotal== 6))
// Transicion de codigo entre envios, rutina de desarrollo normal
marcaTotal = 0;
marcaSeg = 0;
numBit = 0;
else if ((numBit != 59) && (marcaSeg == 1))
// Inicio de toma de datos al detectar dos marcas
lcd.clear();
lcd.print("Cargando codigo");
marcaTotal = 0;
marcaSeg = 0;
numBit = 0;
contAdy = 0;
else
// Valida el marcador y aumenta la cuentas
tipoBit = 2;
marcaSeg = 1;
marcaTotal ++;
numBit ++;
contAdy ++;
bitU[numBit] = tipoBit;
// Guarda el tipo de bit en un vector de 60 datos
else
error();
if (contAdy == 59)
contAdy = 0;
senalDecodif();
6.2. Anexo 2 - Codigo para decodificar senal de tiempo 79
// ***************************************************************
// Rutina de la interrupcion para leer la se~nal en el sketch inicial
// Etapa Interrupcion
void senalLectura()
senalRecib = digitalRead(pinEntrada);
// Se carga en senalRecib el valor que hay en el pin de entrada
// ***************************************************************
// Decodificacion de los 60 bits
// Etapa Decodificacion
void senalDecodif()
// Se hacen las cuentas de minutos, horas, dias del a~no y a~nos,
// segun se encuentren bits con valores en uno
minutos = (bitU[1] * 40) + (bitU[2] * 20) + (bitU[3] * 10) +
(bitU[5] * 8) + (bitU[6] * 4) + (bitU[7] * 2) +
(bitU[8] * 1);
horas = (bitU[12] * 20) + (bitU[13] * 10) + (bitU[15] * 8) +
(bitU[16] * 4) + (bitU[17] * 2) + (bitU[18] * 1);
diaAno = (bitU[22] * 200) + (bitU[23] * 100) + (bitU[25] * 80) +
(bitU[26] * 40) + (bitU[27] * 20) + (bitU[28] * 10) +
(bitU[30] * 8) + (bitU[31] * 4) + (bitU[32] * 2) +
(bitU[33] * 1);
ano = (bitU[45] * 80) + (bitU[46] * 40) + (bitU[47] * 20) +
(bitU[48] * 10) + (bitU[50] * 8) + (bitU[51] * 4) +
(bitU[52] * 2) + (bitU[53] * 1) + 2000;
// Se reconocen los bits de bisiesto, leapsecond y
// errores entre UTC y UT1
bisiesto = bitU[55];
leapSecond = bitU[56];
ut1 = bitU[36];
ut2 = bitU[37];
80 6 Anexos
ut3 = bitU[38];
cantidUT1 = (bitU[40] * 800) + (bitU[41] * 400) +
(bitU[42] * 200) + (bitU[43] * 100);
// Analisis de casos
// Errores del codigo
// Minutos, horas y dias fuera de valores esperados
if ((minutos > 59) || (horas > 24) || (diaAno > 365))
error();
// Marcadores no encontrados en bits esperados
if ((bitU[0] != 2) || (bitU[9] != 2) || (bitU[19] != 2) || (bitU[29] != 2)
|| (bitU[39] != 2) || (bitU[49] != 2) || (bitU[59] != 2))
error();
// Horario de Centroamerica UTC. Se restan 6 horas
if (horas < 0)
horas += 24;
// Retardo por variaciones entre UTC y UT1
if (cantidUT1 > 1000)
cantidUT1 = 1000;
if ((ut1 == 0) && (ut2 == 1) && (ut3== 0))
delay (cantidUT1);
if (leapSecond == 1)
delay (1000);
// Mes y dıa del a~no
if (bisiesto == 0)
if (diaAno <= 31) // Enero
mesC = 1;
diaMes = diaAno;
else if (diaAno <= 59) // Febrero
mesC = 2;
diaMes = diaAno - 31;
else if (diaAno <= 90) // Marzo
mesC = 3;
6.2. Anexo 2 - Codigo para decodificar senal de tiempo 81
diaMes = diaAno - 59;
else if (diaAno <= 120) // Abril
mesC = 4;
diaMes = diaAno - 90;
else if (diaAno <= 151) // Mayo
mesC = 5;
diaMes = diaAno - 120;
else if (diaAno <= 181) // Junio
mesC = 6;
diaMes = diaAno - 151;
else if (diaAno <= 212) // Julio
mesC = 7;
diaMes = diaAno - 181;
else if (diaAno <= 243) // Agosto
mesC = 8;
diaMes = diaAno - 212;
else if (diaAno <= 273) // Septiembre
mesC = 9;
diaMes = diaAno - 243;
else if (diaAno <= 304) // Octubre
mesC = 10;
diaMes = diaAno - 273;
else if (diaAno <= 334) // Noviembre
mesC = 11;
diaMes = diaAno - 304;
else // Diciembre
mesC = 12;
diaMes = diaAno - 334;
// A~no bisiesto
else
if (diaAno <= 31) // Enero
mesC = 1;
diaMes = diaAno;
else if (diaAno <= 60) // Febrero
mesC = 2;
diaMes = diaAno - 31;
else if (diaAno <= 91) // Marzo
mesC = 3;
diaMes = diaAno - 60;
else if (diaAno <= 121) // Abril
82 6 Anexos
mesC = 4;
diaMes = diaAno - 91;
else if (diaAno <= 152) // Mayo
mesC = 5;
diaMes = diaAno - 121;
else if (diaAno <= 182) // Junio
mesC = 6;
diaMes = diaAno - 152;
else if (diaAno <= 213) // Julio
mesC = 7;
diaMes = diaAno - 182;
else if (diaAno <= 244) // Agosto
mesC = 8;
diaMes = diaAno - 213;
else if (diaAno <= 274) // Septiembre
mesC = 9;
diaMes = diaAno - 244;
else if (diaAno <= 305) // Octubre
mesC = 10;
diaMes = diaAno - 274;
else if (diaAno <= 335) // Noviembre
mesC = 11;
diaMes = diaAno - 305;
else // Diciembre
mesC = 12;
diaMes = diaAno - 335;
// Activacion de la pantalla para mostrar tiempo y fecha
lcd.clear();
if (horas <= 9)
lcd.print("0");
lcd.print(horas);
else
lcd.print(horas);
lcd.print(":");
if (minutos <= 9)
lcd.print("0");
lcd.print(minutos);
6.2. Anexo 2 - Codigo para decodificar senal de tiempo 83
else
lcd.print(minutos);
lcd.setCursor(0, 1);
if (mesC == 1)
lcd.print(mes[0]);
else if (mesC == 2)
lcd.print(mes[1]);
else if (mesC == 3)
lcd.print(mes[2]);
else if (mesC == 4)
lcd.print(mes[3]);
else if (mesC == 5)
lcd.print(mes[4]);
else if (mesC == 6)
lcd.print(mes[5]);
else if (mesC == 7)
lcd.print(mes[6]);
else if (mesC == 8)
lcd.print(mes[7]);
else if (mesC == 9)
lcd.print(mes[8]);
else if (mesC == 10)
lcd.print(mes[9]);
else if (mesC == 11)
lcd.print(mes[10]);
else
lcd.print(mes[11]);
84 6 Anexos
lcd.print("/");
lcd.print(diaMes);
lcd.print("/");
lcd.print(ano);
// ***************************************************************
// Rutina de error, inicializa el sistema
// Etapa Error
void error()
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ERROR");
lcd.setCursor(0, 1);
lcd.print("Buscando senal");
contAdy = 0;
6.3. Anexo 3 - Codigo de prueba para CO-ST 85
6.3 Anexo 3 - Codigo de prueba para CO-ST
// Kendall Solano Oviedo - A96037
// Proyecto Electrico
// Codigo PRUEBA
#include <LiquidCrystal.h>
// Se incluyen librerıa y pines de LCD
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
// Definicion de pin
#define pinSalida 2 // pin de salida
int cont = 0;
void setup()
// Se limpia pantalla, y se establece pin 2 como salida
lcd.begin(16, 2);
lcd.clear();
pinMode(pinSalida, OUTPUT);
// ***************************************************************
// Se forma una se~nal de 0 a 5V, que se encuentra en alto,
// y baja perıodos de 0.2, 0.5 y 0.8 milisegundos
void loop()
//Inicio
digitalWrite(pinSalida, HIGH);
//bit 0 // MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(200);
//MINUTOS 51
//bit 1
86 6 Anexos
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 2
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 3
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 4 // RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 5
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 6
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
6.3. Anexo 3 - Codigo de prueba para CO-ST 87
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 7
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 8
// Se ejecuta la variacion periodica de el bit 8 entre 0 y 1
// para comprobar la funcionalidad
if (cont == 0)
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
cont ++;
else
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
cont = 0;
//bit 9 // MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
88 6 Anexos
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(200);
//bit 10 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 11 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//HORAS 12
//bit 12
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 13
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 14 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
6.3. Anexo 3 - Codigo de prueba para CO-ST 89
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 15
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 16
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 17
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 18
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 19 // MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
lcd.clear();
digitalWrite(pinSalida, HIGH);
90 6 Anexos
delay(200);
//bit 20 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 21 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//DIA DEL A~NO 141 - MAY 21
//bit 22
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 23
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 24 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
6.3. Anexo 3 - Codigo de prueba para CO-ST 91
delay(800);
//bit 25
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 26
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 27
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 28
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 29 // MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(200);
92 6 Anexos
//bit 30
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 31
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 32
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 33
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 34
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 35
digitalWrite(pinSalida, LOW);
6.3. Anexo 3 - Codigo de prueba para CO-ST 93
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
// SIGNO CORRECCION
//bit 36
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 37
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 38
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 39 //MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(200);
//CORRECCIONES
94 6 Anexos
//bit 40
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 41
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 42
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 43
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 44 // RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//A~NO 2014
6.3. Anexo 3 - Codigo de prueba para CO-ST 95
//bit 45
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 46
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 47
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 48
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 49 // MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(200);
//bit 50
96 6 Anexos
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 51
digitalWrite(pinSalida, LOW);
lcd.print("UNO");
delay(500);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(500);
//bit 52
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 53
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 54 //RESERVADO
digitalWrite(pinSalida, LOW);
lcd.print("RES");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 55
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
6.3. Anexo 3 - Codigo de prueba para CO-ST 97
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 56
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 57
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 58
digitalWrite(pinSalida, LOW);
lcd.print("CERO");
delay(200);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(800);
//bit 59 // MARCADOR
digitalWrite(pinSalida, LOW);
lcd.print("MAR");
delay(800);
lcd.clear();
digitalWrite(pinSalida, HIGH);
delay(200);