dijous, 2 d’agost del 2012

GPSDO (VIII) : Primers intents de sincronització

Després de l'època d'exàmens de juny he començat les primeres proves de sincronització entre el mòdul GPS i l'oscil·lador de rubidi.

Per tal d'arribar a aquest punt he hagut de definir funcions que em permeten comunicar-me amb l'oscil·lador de rubidi i modificar la seva freqüència d'eixida, i desenvolupar una funció de filtrat digital per eliminar el soroll del senyal procedent del mòdul GPS.

El prototip que estic analitzant mesura el temps que transcorre entre l'aparició del senyal del mòdul GPS, sincronitzat amb el segon atòmic dins d'un límit estret, i el procedent de l'oscil·lador principal, comptant cicles d'un tercer rellotge intern utilitzant un comptador integrat al microprocessador, interpreta les dades i les transmet a l'ordinador a través del port sèrie amb el protocol RS-232.

Per començar les proves vaig programar l'oscil·lador amb un "offset" arbitrari de -1000, i vaig deixar que el sistema evolucionara sense cap tipus de realimentació:



L'eix vertical representa la diferència de temps entre els senyals expressada en nanosegons (10^-9 segons), i les mesures s'efectuen cada segon, aplicant un filtrat de segon ordre amb una constant de temps de 15 minuts per tal d'eliminar el soroll a curt termini. A la gràfica s'aprecia que la diferència de temps es redueix, per tant podem deduir que un offset de -1000 fa que l'oscil·lador genere una freqüència lleugerament superior als 10 MHz.

Provem augmentant l'offset a -1500, i repetim l'experiència en bucle obert i amb les mateixes condicions:



Intencionadament he representat la gràfica a la mateixa escala que l'anterior per poder distingir millor les diferències entre experiències. En aquest cas, l'offset de -1500 implica una freqüència lleugerament menor als  10 MHz que vull obtenir. Sabent que el sistema d'ajustament de la freqüència és lineal, interpolem fins trobar un valor d'offset que ens dóne el valor de freqüència consigna, i el resultat és -1396:


Aquest darrer valor d'offset és bo a llarg termini (l'oscil·lador està perdent 3,7 picosegons per segon, una milèsima de segon cada 10 anys aproximadament), però l'objectiu últim és minimitzar les "ondulacions" de la diferència de fase i estabilitzar-la en un valor consigna, i per tal d'aconseguir-ho haurem d'implementar un sistema en bucle tancat que actualitze el valor de l'offset en continu.

La primera prova l'he portada a terme implementant un controlador tipus P, amb un guany de 1000:


El controlador tipus P facilita el control de l'error, però es pot observar que introdueix correccions molt elevades que posteriorment ha de contrarestar utilitzant una correcció més elevada i de signe contrari. És per això que hauré de programar un sistema de control més evolucionat, em decantaré per un controlador tipus PI o PID, del qual hauré de determinar els paràmetres per tal d'optimitzar la dinàmica de correcció i d'evitar les possibles sobrecorreccions.

El primer intent de controlador PI va donar els següents resultats:


Podem apreciar clarament l'acció de control, que presenta una sobreoscil·lació important, i que porta el sistema al valor consigna de 500 000 nanosegons després d'uns 10 minuts de maniobra, actualitzant el valor d'offset de l'oscil·lador principal cada 10 segons.

Si observem més detalladament el comportament en la zona estabilitzada podrem determinar la bondat del controlador:

La diferència entre els valors extrems és de l'ordre de 200 nanosegons, intentaré rebaixar aquest valor canviant els paràmetres del controlador en pròximes entrades.

divendres, 8 de juny del 2012

GPSDO (VII) : Seguim!

Després d'aquest període sense entrades a causa de la convocatòria d'exàmens de juny, reconnectem amb el projecte de l'oscil·lador disciplinat per GPS.


Recopilant, en aquest moment tinc tot el material necessari per al projecte, i he efectuat proves amb els mòduls individuals, amb un grau d'èxit moderat. És hora, per tant, d'assemblar el sistema complet i de provar les comunicacions entre mòduls i la coordinació electrònica portada a terme pel microcontrol·lador.

Al llarg d'esta setmana pròxima aniré ampliant aquesta entrada amb els resultats i avanços sobre el projecte GPSDO.

[ACTUALITZACIÓ 9/6/2012 23:10]: He portat a terme els primers intercanvis de comandos de configuració entre el microcontrol·lador i el mòdul GPS, i el posterior processat de les dades rebudes, a falta d'optimitzacions posteriors aquests components s'entenen prou correctament. Demà desenvoluparé el codi per tal de comunicar l'oscil·lador de rubidi i el microcontrol·lador, i així seré capaç de retocar la freqüència d'oscil·lació a través del seu port sèrie.

[ACTUALITZACIÓ 10/6/2012  17:37]:  Acabe d'aconseguir mesurar la diferència de temps entre el senyal de GPS i el de l'oscil·lador atòmic dividit fins a 10 kHz, enviant-la a l'ordinador a través del port sèrie:


A la columna esquerra figura l'hora de recepció del missatge GPS decodificat, i a la dreta la diferència de temps entre els senyals GPS-Rb en microsegons. El següent pas és l'anàlisi de les dades de la columna dreta per tal de determinar la variació de freqüència de l'oscil·lador principal, fent els càlculs apropiats al microcontrol·lador, on tinc implementats els algoritmes de filtrat.

[ACTUALITZACIÓ 12/6/2012  20:58]:  L'algoritme de filtrat respon a les dades en brut rebudes des del mòdul GPS i a la freqüència de l'oscil·lador principal, mesurada com el nombre de fronts ascendents en un segon d'observació (entre dos tics del GPS). A continuació podeu veure el resultat tal com es veu a la meua pantalla:

La tercera columna representa l'eixida del filtre passa-baixa amb una constant de temps d'uns 15 minuts. L'eixida esperada és la mitjana simple de les dades de la columna d'enmig, no obstant això, el filtre requerix d'un temps d'inicialització d'aproximadament una hora fins que els valors calculats corresponen a la resposta esperada, a causa de la sobreoscil·lació del filtre (IIR de segon ordre).

dissabte, 31 de març del 2012

GPSDO (VI) : Tractant senyals

En el post anterior d'aquesta sèrie comentava que l'oscil·lador de rubidi proporciona una eixida sinusoïdal a una freqüència nominal de 10 MHz, d'on deriva el primer problema: tots els circuits de tractament de senyal de què dispose només admeten ones quadrades a l'entrada, fent necessària una adaptació. Aquesta adaptació es fa amb l'ajuda d'un amplificador operacional d'alta velocitat, en aquest cas un MAX999, generosament cedit per Maxim Integrated Products, comparant el senyal de sortida de l'oscil·lador amb el seu nivell promedi, de manera que la sortida és una imatge binària de l'entrada amb una forma i una amplitud adequades per fer funcionar els circuits de divisió de freqüència posteriors:


L'ona quadrada producte de la conversió accedix a un microcontrol·lador programat per dividir la seua freqüència, proporcionant diverses eixides a freqüències potencialment útils (100,10 i 1 kHz, a més de 100, 10 i 1 Hz). El codi programat ha estat escrit en ensamblador per tal d'optimitzar la precisió del sistema, sabent que els microcontrol·ladors de tipus PIC16 són dispositius síncrons que treballen sobre les transicions del senyal d'entrada. Finalment utilitzaré l'eixida de 100 kHz com a senyal imatge de l'oscil·lador, i no pas un senyal a 625 kHz com havia anunciat en anteriors entrades.

El següent pas serà la comparació d'aquest senyal dividit amb el senyal de sortida del mòdul GPS a través dels mecanismes ja descrits, comptant el nombre de pulsos que tenen lloc dins d'un curt espai de temps entre dos transicions del senyal GPS, i aplicant els filtrats necessaris.

dimecres, 22 de febrer del 2012

GPSDO (V) : Oscil·lant...

Avui he portat a terme les primeres proves sobre l'oscil·lador de rubidi, no havia pogut avançar més perquè no disposava d'una font d'alimentació capaç d'oferir una eixida de 15 V, i he hagut de construir-ne una utilitzant peces d'antics projectes. Finalment he aconseguit subministrar les tensions requerides al mòdul de l'oscil·lador i he observat la seua resposta mesurant els senyals de sortida amb un multímetre.

Sobre el connector DB-9 la pata 3 oferix una tensió lògica depenent de l'estat de validesa dels senyals d'eixida (val +5V quan els senyals no són vàlids, i quasi 0V quan sí que ho són). L'oscil·lador comença el període d'arranc consumint una elevada corrent de la línia de 15V, aproximadament 1,5 A, i després d'un curt temps de calentament arriba a una temperatura d'operació correcta (de l'ordre de 50-60ºC). Poc després, la línia de la pata 3 canvia la seua tensió per tal d'indicar que els senyals de rellotge són bons i estables, referenciats a la ressonància dels àtoms de rubidi. A continuació us mostre el vídeo de l'oscil·lador adaptant-se a la ressonància, disculpeu per la baixa qualitat:


La primera mesura sobre el senyal de 1 puls per segon dóna una lectura correcta, així que comprove el senyal de 10 MHz, amb resultats igualment correctes. Determine aleshores, a falta de connectar-lo a l'ordinador, que aquest oscil·lador funciona correctament i és conforme a les especificacions del fabricant.

L'oscil·lador principal de rubidi haurà de variar la seua freqüència per tal de mantindre's sincronitzat amb el senyal de temps tramés pel sistema GPS a llarg termini, i aquest efecte s'aconseguix amb un bucle enganxat en fase, també conegut com PLL (Phase Locked Loop), implementat sobre el microcontrol·lador.

Fins al moment disposem d'un senyal de GPS filtrat, i per tant poc variable, que es compararà amb una versió dividida de l'oscil·lador principal, ja que l'elevada freqüència d'aquest dificulta la comparació directa. El principi és el següent: cada segon el microcontrolador compta els fronts ascendents del senyal procedent de l'oscil·lador dividit per 16 (a 625 kHz) que es produïxen dins d'una finestra d'uns 2 milisegons. Ací s'obren dues possibilitats:
  1. El compte actual és major o menor que l'anterior : L'oscil·lador principal té una freqüència superior (o inferior) a la nominal, i s'haurà d'aplicar una correcció proporcional a l'error per tal de frenar-lo (o accelerar-lo).
  2. El compte es manté aproximadament igual a l'anterior : L'oscil·lador principal està al voltant de la freqüència nominal. Les correccions a aplicar es reduïxen per tal de minimitzar l'error. La constant de temps del filtre augmenta paulatinament per incrementar la precisió reduïnt la diferència entre els senyals de GPS successius.
L'objectiu de l'algoritme de sincronització és arribar a l'estat on aquest compte es mantinga constant durant un temps prolongat, i serà tant més eficient com major siga el temps sense variacions. Cal aclarir que la tecnologia utilitzada al comptador imposa un error de +-1 cicle.

Pròxims pasos: Escriure el codi per implementar els filtres digitals (el PLL) i continuar les proves amb l'oscil·lador de rubidi amb l'objectiu d'arribar a mantindre'l connectat durant llargs períodes de temps. Per a aconseguir-ho hauré de millorar la nova font d'alimentació, o crear-ne una altra, i gestionar adequadament la temperatura dels components, ja que actualment la topologia lineal fa que es dissipe una gran quantitat d'energia en els transistors de pas, elevant la temperatura d'aquestos a més de 70ºC.

[ACTUALITZACIÓ 25/02 21:48] : Acabe d'aconseguir comunicar l'ordinador amb el mòdul d'oscil·lador de rubidi a través del port sèrie que incorpora per primera vegada. Aquesta comunicació m'ha permés obtenir el valor d'offset (diferència de freqüència respecte de la nominal (10 MHz)), que en aquesta unitat estava fixat a zero. Ajustant aquest valor d'offset es pot definir amb molta exactitud la freqüència d'eixida de l'oscil·lador per tal d'adaptar-lo al senyal GPS.

dijous, 2 de febrer del 2012

GPSDO (IV) : Filtres, bucles i oscil·lador

Continuant amb aquest projecte us he de comunicar que finalment l'oscil·lador principal no serà un cristall de quars OCXO com havia indicat en un principi sinò un oscil·lador atòmic de rubidi que he trobat a Internet.

Aquest tipus d'oscil·ladors es basen en la ressonància dels àtoms de rubidi-87 en excitar-los aplicant una freqüència adequada. Concretament la freqüència de transició entre dos nivells hiperfins d'aquests àtoms és d'aproximadament 6 834 682 610,9 Hz, i la llum emesa varia segons l'excitació, de manera que és possible extraure una referència amb moltíssima precisió gràcies a un bucle que manté la freqüència d'excitació igual a la de ressonància dels àtoms.

Externament, l'oscil·lador atòmic de rubidi té aquest aspecte (125 x 88 x 25 mm):


El connector que es mostra (DB9 mascle) permet extraure el senyal a 10 MHz, així com les comunicacions amb un processador intern per a controlar la freqüència d'eixida i l'alimentació del mòdul. Internament aquest mòdul disposa d'un forn per mantenir la temperatura constant al mecanisme de ressonància i de l'electrònica necessària per al condicionament dels senyals de rellotge. En aquest cas el mòdul s'alimenta amb +5 i +15 V en corrent continua.

L'estabilitat a curt termini d'aquest oscil·lador és de l'ordre de 10^-11, el que significa que la freqüència real mesurada entre dos segons successius pot abarcar des de 9,999 999 999 9 a 10,000 000 000 1 MHz, i la desviació diària màxima és de 20 parts per bilió (pot guanyar/perdre fins uns 2 microsegons cada dia).

La tasca d'aquest oscil·lador és mantenir la freqüència estable a curt termini, ja que l'estabilitat a llarg termini vindrà fixada per l'acció de sincronització amb els rellotges atòmics del sistema GPS, que són lleugerament més estables en utilitzar múltiples oscil·ladors de cesi i rubidi (fins a dècimes de part per bilió, 10^-13).

A hores d'ara estic desenvolupant el codi que em permetrà filtrar el senyal de 1 PPS, ja que les variacions a curt termini del sistema GPS fan que aquest senyal no tinga una freqüència exacta, sinò que patix desviacions de l'ordre de 10^-8 (és a dir, fluctua aleatòriament entre 0,999 999 99 i 1,000 000 01 Hz):

La figura anterior representa les desviacions descrites, cada punt representa la mesura del desfase entre el senyal del GPS i un oscil·lador de rubidi estable amb un període de 30 segons entre mesures, i la línia correspon a la mitjana (exponencial) d'aquestes mesures durant 15 minuts. Com major siga el temps de càlcul de la mitjana més estable serà el resultat, i segons les referències trobades a Internet aquests poden variar entre mitja hora i un dia, aproximadament, en funció de la qualitat de l'oscil·lador principal utilitzat.

Aquest mètode és vàlid només si entre correccions successives de la freqüència de l'oscil·lador principal aquesta roman estable. Vistes les característiques del filtre a utilitzar es poden descartar totes les implementacions analògiques, ja que la constant de temps necessària és massa llarga per poder arribar-hi amb els valors usuals de capacitat i resistència, el que obligarà a realitzar un filtrat en digital.

El filtrat digital té molts avantatges amb respecte a l'analògic, ja que es poden implementar filtres d'ordre molt elevat, que no serien viables amb una estructura analògica. Així mateix, es poden modificar a voluntat per adaptar-los als requeriments del projecte simplement canviant el codi i reprogramant el processador.

Començaré creant un filtre passa-baixos de segon ordre amb una constant de temps de 1800 segons. La topologia del filtre serà de Butterworth, i el comportament en freqüència serà el següent:


Com podeu veure, a baixa freqüència el filtre deixa passar el senyal sense pràcticament atenuació, mentre que a altes freqüències el senyal patix una atenuació molt gran, que s'incrementa a raó de 40dB/dècada (20 dB/dècada per cada ordre del filtre). El punt de tall a -3 dB, aquell que deixa passar el 70% del senyal, és el que correspon a la constant de temps de 1800 segons.

L'idea bàsica és fer passar el senyal del GPS a través d'aquest filtre implementat sobre el PIC, i anar augmentant la constant de temps del filtre al llarg del temps per atenuar d'una manera creixent les desviacions i així obtenir una millor precisió.

Si tot el que us he comentat funciona correctament el sistema hauria d'oscil·lar a una freqüència de 10 MHz amb una precisió d'unes 10 parts per bilió (10^-11), i en tractar-se d'un sistema en bucle tancat la fase de l'oscil·lador principal hauria d'estar en una posició constant en relació amb el senyal de GPS filtrat. A més, com el mòdul GPS permet l'ajust de la posició del senyal 1 PPS amb una resolució de nanosegons teòricament es podria sincronitzar quasi exactament la fase de l'oscil·lador principal amb la dels rellotges atòmics.

Pròxim pas: escriure el codi per implementar el filtre digital amb constant de temps variable al PIC mentre espere l'arribada de l'oscil·lador de rubidi i les rutines per tal de control·lar la sincronització entre els oscil·ladors.


dijous, 26 de gener del 2012

GPSDO(III) : Comunicacions PIC-GPS

Continuant amb el projecte, el següent pas era comunicar el mòdul GPS amb un microcontrol·lador per a poder utilitzar el sistema de forma autònoma, és a dir, sense connexió a un ordinador.

Per a aquesta tasca he escollit un PIC 18F2550, que disposa d'un mòdul dedicat a les transmissions per port sèrie, protocol que utilitza el mòdul Motorola, a més de molts altres perifèrics que poden ser útils de cara a la continuació del projecte. En l'implementació que us mostre, el microcontrol·lador treballa a una freqüència de 8 MHz, i la font del senyal de rellotge és un oscil·lador intern que incorpora aquest model.

En un principi he cablejat aquest PIC en paral·lel sobre el conversor MAX232, de forma que es puga extraure el senyal abans de la conversió TTL-RS232, permetent l'operació tant en mode autònom com en mode connectat. Després he desenvolupat un fragment de codi en C per tal de provar la correcta operació de les comunicacions entre el PIC i el GPS, i connectant el muntatge a l'ordinador he aconseguit transmetre dades en els dos sentits amb unes condicions de comunicació semblants a les del mòdul GPS, és a dir, a 9600 bauds, 8 bits de dades, 1 bit de parada i sense control de paritat.

Desxifrant aquesta darrera frase: les dades passen d'un dispositiu a un altre a un ritme de 9600 bits cada segon, agrupats en blocs de 8 bits (1 byte per transmissió), i seguits d'un bit que indica el fi de la transmissió:


Pel que fa al mòdul GPS, amb la configuració actual envia pel port de comunicacions diversos missatges, dels quals el més interessant és el que comença amb @@Ea. Aquest missatge aglutina tota l'informació bàsica, és a dir, el temps i la posició, a més de detalls sobre la qualitat del senyal rebut o un codi de protecció contra errors. A continuació mostre una trama capturada en format binari de Motorola:

@@Ea011A07DC122402000AC44E0894E390FFFE2745000029BF0000000000120769002A0005041A082DA20E00000008000000050826A2200000001C0828A2020000200F0831A220


Aquesta trama indica que a la seua recepció són les 18:36:02,000705614 hores del dia 26 de gener del 2012, i que la antena de l'aparell es troba a aprox. 39º 59' N i aprox. 0º 2' W. A més, indica que el receptor s'està movent a una velocitat de 0,18 m/s, amb una direcció 187,9º i que la dilució de precisió és de 4,2 metres. Aquest darrer paràmetre és una mesura indirecta de la qualitat del senyal rebut. Cal aclarir que l'hora rebuda està referenciada al Temps Universal Coordinat (UTC).

La tasca del PIC és decodificar aquestes trames i realitzar càlculs per prendre decisions sobre la magnitud i la direcció de l'ajust sobre la freqüència de l'oscil·lador principal (el OCXO), de forma que es mantinga regulada a exactament 10 MHz gràcies a aquesta sincronització. Com vaig comentar en posts anteriors, la diferència de temps entre dos senyals successius no és d'exactament 1 segon, fet que obliga a promediar per obtenir una bona estabilitat a curt termini.

Entorn de programació i correcció d'errors MPLAB
En l'anterior captura de pantalla es veu el programa utilitzat en el microcontrol·lador per capturar les trames del GPS i el resultat d'una captura vist com a caracters hexadecimals (columna Watch). El programa s'ha transferit al PIC utilitzant un programador PICkit2. En aquesta ocasió he pogut rebre amb èxit una transmissió de posició i temps com la mostrada més amunt. Faltaran per implementar funcions per a configurar el mòdul sense connectar-lo a l'ordinador, i altres per permetre mostrar l'informació relevant a un display LCD.

Per experiència prèvia sé que aquesta tasca requerirà un segon microcontrol·lador, ja que la transferència de dades al display LCD és molt lenta, i ocupa el processador amb rutines de retard (bucles on no s'executen instruccions útils). Intentaré per tant transmetre les dades entre els dos microcontrol·ladors per un bus de comunicacions tipus I2C, lliurant el principal dels retards innecessaris i guanyant d'esta manera capacitat de càlcul, necessària per a la fase de sincronització dels oscil·ladors.

Pròxim pas: escriure un algoritme per treure la mitjana i poder ajustar la freqüència de l'oscil·lador principal.

dimecres, 25 de gener del 2012

GPSDO (II) : Primeres connexions al PC

Ahir per la nit vaig aconseguir connectar per primera vegada el mòdul GPS a l'ordinador, i vaig transferir una configuració aproximada per a poder treballar. El muntatge és el que es mostra en la fotografia següent:
El que es veu a l'esquerra és el mòdul Oncore UT+, dalt a l'esquerra es pot veure el connector BNC que fa arribar el senyal des de l'antena del teulat fins el mòdul, i a la dreta teniu la placa de proves on he improvisat un conversor TTL a port sèrie de l'ordinador on tinc instal·lat els programes WinOncore12 i el TAC32, que em permeten analitzar les dades rebudes. A més la placa disposa d'un LED que s'il·lumina una vegada per segon de manera sincronitzada amb els rellotges atòmics que rep.
TAC32

WinOncore12
L'objectiu ara és determinar la posició GPS amb la major resolució possible per a poder configurar-lo en mode de recepció d'hora únicament i guanyar precisió en la sortida de pulsos del mòdul. Us aniré informant...

[ACTUALITZACIÓ 25/1 20:30] : Ja tinc una posició correcta, i aquesta part del sistema està completament operativa.

Pròxim pas: connectar el mòdul GPS a un microcontrol·lador per a poder llegir les dades que s'extrauen sense utilitzar l'ordinador, desenvolupant el maquinari i el codi necessari, i investigant el protocol de comunicació propietari de Motorola.

dimarts, 24 de gener del 2012

GPSDO (I) : Comencem...

Avui he rebut uns quants components per al projecte GPSDO, i he començat la presa de mesures de posició amb l'antena que us vaig mostrar i una PDA, que s'encarrega d'enregistrar en una targeta SD totes les dades que ixen del mòdul GPS d'aquesta per a poder analitzar-les després a l'ordinador.

Aquest procés de determinació de la posició pot durar dies, ja que depén de la posició relativa dels satèl·lits i de les condicions atmosfèriques. A més una major quantitat de dades ajudarà a fixar una posició més acurada, ja que la mitjana de les observacions a llarg termini és més precisa que una determinació puntual. No obstant això, em fixaré un límit d'uns 30 cm en la desviació típica, és a dir, la meua posició final serà la marcada per la mitjana (calculada segons l'ajust per mínims quadrats) amb un marge d'error de +-1 m.

A hores d'ara porte 1800 mesures, i les desviacions són de 0,165 m en latitud i de 0,665 m en longitud, us aniré informant de l'evolució del procés!

[ ACTUALITZACIÓ 24/1 14:31] : A les 14.30 porte 8500 mesures, la desviació de latitud no ha variat i la de longitud ha augmentat lleugerament fins als 0,833 metres. Pel que fa a la mitjana de posició, el resultat és estable des de les 300 mesures aproximadament.

[ ACTUALITZACIÓ 24/1 17:30] : He deixat de mesurar la posició quan ja havia recopilat més de 18000 mostres, la desviació en latitud final és de 0,117 metres i en longitud de 0,660 metres.

A continuació us mostre el diagrama del pas dels satèl·lits, la línia blava representa la posició a menor elevació des d'on es pot captar un bon senyal GPS. S'aprecia una zona d'uns 60º d'amplitud on la sensibilitat és menor, i cal que els satèl·lits passen amb una major elevació per tal de captar un bon senyal, però en general l'antena té una vista del cel prou clara. Aquesta zona de mala recepció correspon amb el sector on el teulat obstrueix la vista directa del cel, i m'obligarà a fixar l'antena sobre un suport elevat per evitar aquest efecte. Les línies verdes representen la trajectòria dels satèl·lits representada cada cert temps:


Dispose per tant d'un valor de posició molt precís, que tindré l'ocasió de verificar quan pose en funcionament el mòdul GPS Motorola Oncore UT+. El pròxim pas serà la connexió i configuració d'aquest mòdul, i l'extracció de dades cap a l'ordinador.

[ACTUALITZACIÓ 24/1 21:42] : He arribat a connectar el mòdul GPS a l'ordinador amb un muntatge provisional sobre una protoboard, i he pogut rebre les primeres dades amb el nou sistema. La posició medida amb el nou sistema difereix lleugerament de la calculada anteriorment, i hauré de repetir el cicle de mesures.

dissabte, 21 de gener del 2012

Nou projecte: GPSDO

En aquest post us descriuré els avanços d'un nou projecte electrònic que tinc en ment: un rellotge de gran precisió control·lat per GPS, que intentaré construir des de zero basant-me en implementacions simil·lars vistes a la xarxa.

Els rellotges mecànics, com hem vist en altres entrades, utilitzen elements com molles i volants d'inèrcia per tal de mantenir una oscil·lació estable, que convenientment tractada gràcies als nombrosos engranatges és transformada en l'hora mostrada al dial. Les desviacions dels millors rellotges mecànics estan al voltant d'un segon diari, és a dir, aproximadament 10 parts per milió. No obstant això, les oscil·lacions varien fortament amb la temperatura i amb les condicions exteriors (posició del rellotge, temps des de l'última revisió...).

Els rellotges de quars estàndar utilitzen cristalls d'aquest material tallats amb gran precisió, que ressonen típicament a 32.768 vegades per segon, oferint una referència estable i menys dependent de les condicions exteriors, però que varia lleugerament per efecte de la temperatura.
Les desviacions diàries d'un rellotge de quars sense sistemes de compensació de la temperatura ronden el mig segon diari, és a dir, unes cinc parts per milió, mentre que els millors rellotges de gamma alta termocompensats poden assolir desviacions de 10 segons a l'any, és a dir, 0,3 parts per milió.

Més precisos són els rellotges atòmics a bord dels satèl·lits GPS. Aquests sistemes, basats en la ressonància dels àtoms de rubidi o de cesi, poden assolir precisions de l'ordre de 5 parts per cent bilions (5·10^-14), i el més important, són capaços de transmetre la informació del temps a qualsevol receptor de GPS del món, gratuïtament. L'hora dels satèl·lits GPS és corregida constantment per tal d'adaptar-la a l'hora atòmica internacional, limitant la diferència d'aquestos dos valors a uns pocs nanosegons.

Buscant un poc per Internet vaig trobar diversos receptors que podrien adaptar-se al projecte, i un d'ells és un mòdul GPS de la casa Motorola, concretament un Oncore UT+, el qual està especialment adaptat a l'extracció del senyal de temps que acompanya a les transmissions GPS, donant una sortida d'un impuls per segon a l'inici de cada segon sobre una de les pates del connector. El mòdul rebut és el següent:


Aquest mòdul requerix d'una antena adaptada a la recepció GPS, d'una alimentació a 5V en corrent continua, i d'un adaptador de nivells per a poder comunicar-se amb l'ordinador a través del port sèrie. L'antena la vaig poder trobar a Internet, mentre que l'alimentació i les comunicacions del mòdul es faran gràcies a una targeta auxiliar que hauré de desenvolupar i fabricar. Cal dir que aquest instrument és capaç de rebre tant la posició com l'hora dels satèl·lits, i de transferir la informació amb una gran precisió al senyal de sortida. L'incertesa del mòdul és d'uns 150 ns en mode de recepció complet, valor que disminueix a 50 ns si només capta l'hora, és a dir, una precisió de 0,15 a 0,05 parts per milió.

Tota la configuració inicial del mòdul GPS es farà amb l'ordinador, preparant aquest per a que la seua sortida de pulsos cada segon estiga òptimament aliniada amb el temps atòmic, considerant els efectes del retard ocasionat pels cables i pel propi mòdul. Per a arribar a aquest punt hauré de determinar la meua posició amb molta exactitud fent una sèrie de mesures amb aquest durant un temps suficientment llarg per tal d'extraure una mitjana i poder després posar el sistema en mode de recepció d'hora únicament.

En aquest punt tenim un sistema capaç de rebre l'hora i de crear un senyal en forma de puls cada segon amb una gran precisió. No obstant això cal tenir en compte que el senyal GPS varia al llarg del dia per les condicions atmosfèriques i per la posició relativa dels satèl·lits respecte al receptor, fet que provoca que l'imatge de l'hora rebuda no tinga la mateixa precisió que l'hora atòmica realment tramesa.

El meu objectiu és atenuar aquestes variacions per tal d'augmentar la precisió tant com siga possible. Intentaré per tant utilitzar un oscil·lador més estable que el senyal rebut pel mòdul GPS a curt termini, per exemple un oscil·lador de quars control·lat per temperatura (Oven Controlled X (crystal) Oscillator), de freqüència ajustable per tensió. Aquest tipus d'implementació em permetrà tenir bona estabilitat a curt, i una excel·lent precisió a llarg termini.

Recapitulant, compararé la sortida d'un oscil·lador de quars control·lat per temperatura amb una mitjana del senyal rebut pel mòdul GPS, ajustant i regulant l'oscil·lador per tal de limitar la diferència de temps entre ells. Aquesta efecte suavitzador de la mitjana em permetrà avançar fins les precisions de l'ordre de 10^-9 a 10^-11, i en condicions especials fins al 10^-12. Per a tenir una referència cal dir que un oscil·lador capaç de mantindre la freqüència amb una precisió de 10^-9 varia 0,03 segons a l'any.

Tot el treball d'ajust el farà un microcontrolador que gestionarà els diferents senyals i generarà les correccions pertinents per optimitzar el funcionament del sistema, adaptant-lo a les condicions externes. Aquest microcontrolador serà un PIC, previsiblement de la família 18F o dsPIC, muntat sobre una targeta que caldrà desenvolupar, a més del codi.

Com heu pogut veure, el projecte és llarg i complex, per això l'he dividit en tasques:

1- Desenvolupar la targeta auxiliar de comunicacions per al mòdul
2- Fabricar la targeta principal de control amb el microcontrolador
3- Escriure el codi del regulador
4- Comparar la precisió del sistema amb un estàndar apropiat (rellotge de Rubidi o Cesi)
5- Portar a terme correccions per tal de millorar la precisió fins al límit esperat (10^-12)

Us mantindré informats de tots els avanços d'aquest projecte, i us anime a escriure els vostres comentaris!