Sviluppo di un sistema di emulazione del ritardo satellitare tramite schede dotate di FPGA programmabile dall'utente

 Read in  |   Print

"L'utilizzo dell'IF Transceiver NI PXIe-5641R ha permesso di concentrarsi sulla parte realmente innovativa e custom dell'applicazione anzichè su tutta la gestione prettamente RF."

- Gianluca Pizzocolo, IPSES

The Challenge:
Realizzare un sistema in grado di emulare dinamicamente, con estrema precisione e con assoluta fedeltà le tempistiche di trasmissione e ricezione di un satellite in orbita geostazionaria, permettendo di utilizzare in ingresso il segnale IF (Intermediate Frequency) prima che venga modulato per diventare il segnale di uplink verso il satellite, e generando in uscita il segnale IF che verrebbe demodulato dal downlink satellitare.

The Solution:
Un progetto basato sulla piattaforma NI LabVIEW e la scheda NI PXIe-5641R, dotato di due ingressi IF e due uscite IF (tutte con banda real-time di 20MHz e frequenza massima di 80MHz), di una RAM da 128MB e di una scheda NIFPGA Xilinx Virtex-5 SX95T totalmente programmabile e con connessione diretta ai DAC d'uscita e agli ADC d'ingresso. Un controller embedded gestisce poi il sistema e l'interfaccia grafica.

Author(s):
Gianluca Pizzocolo - IPSES

I satelliti geostazionari, come suggerito dal nome stesso, sono quei satelliti che seguono un'orbita geosincrona circolare, equatoriale e prograda: si muovono quindi alla stessa velocità (circa 3km/s) e nella stessa direzione di rotazione della Terra su un'orbita circolare contenuta nel piano equatoriale, mantenendo sempre la stessa posizione relativa rispetto alla superficie planetaria.

Il raggio di un'orbita ciclica di una particella intorno a un corpo celeste, ad essa sufficientemente vicina in modo da essere all'interno della sfera d'influenza gravitazionale, si ottiene semplicemente eguagliando la forza centrifuga della particella (proporzionale al quadrato della velocità angolare) con la forza di attrazione gravitazionale a cui essa è soggetta. Risolvendo tale equazione per la Terra l'unico raggio che può avere l'orbita geostazionaria è di 42.165km.

Questo è un dato analitico ideale che può essere utilizzato senza problemi in un'infinità di applicazioni e di calcoli; ma è solo un'approssimazione che resta valida sino a quando il problema da risolvere non richieda precisioni superiori a quelle raggiungibili con l'approssimazione considerata.
In particolare, l'applicazione sviluppata doveva simulare realmente una completa tratta di trasmissione satellitare (sia la tratta ascendente di uplink - dalla stazione di trasmissione a terra al satellite -, sia la tratta discendente di downlink - dal satellite ai ricevitori situati a terra) con una precisione temporale dell'ordine del microsecondo.

Basandosi solo sui conti analitici accennati, la soluzione del problema sarebbe banale: fissando il punto di trasmissione e ricezione sulla Terra, considerando una distanza fissa del satellite dal centro del pianeta di 42.165km e ipotizzando la velocità di propagazione del segnale pari a quella della luce, otteniamo un ritardo di propagazione variabile tra 240ms (consideriando la posizione equatoriale) e 280ms (considerando l'ultima posizione in cui il satellite è visibile appena sopra l'orizzonte).
Poichè tutte le applicazioni commerciali basate su satellite sono di broadcasting di segnali verso utenze civili, è più che sufficiente considerare un ritardo di segnale a un quarto di secondo, dato che non servono precisioni maggiori.

Il sistema realizzato è però concepito per applicazioni di timing e sincronizzazione dove sono necessarie precisioni molto più elevate: è fondamentale quindi considerare sia la posizione di trasmissione e ricezione del segnale a terra, che determina una variazione del ritardo di propagazione di 40ms, sia il fatto che i satelliti geostazionari non sono realmente immobili rispetto ad una data posizione a terra. Nessun satellite geostazionario riesce infatti a restare immobile a una distanza fissa e immutabile dalla Terra, ma compie dei piccoli movimenti quasi periodici in tutte le direzioni (ad esempio i satelliti Hot Bird della Eutelsat gravitano all'interno di una parallelepipedo a base quadrata di 150km di lato - perpendicolare al piano equatoriale - alto 40km). Se la posizione a terra rappresenta solo un ritardo fisso che può essere impostato a priori, i movimenti del satellite determinano invece un ritardo variabile nel tempo di circa 267us.

Il sistema che si è sviluppato permette di emulare per un tempo lungo (tipicamente una giornata, anche se è possibile farlo funzionare indefinitamente) una reale tratta satellitare, considerando la vera posizione del satellite e non quella teorica, implementando una variazione di ritardo di tratta dinamica definibile con vari profili ricavati da misuarazioni reali o calcolati manualmente.

Per ottenere questa precisione, il segnale in IF in ingresso alla scheda NI PXIe-5641R è convertito in valori I/Q campionati dall'FPGA a 100MHz e salvati in RAM in un buffer circolare che viene letto dal loop di trasmissione.
Il loop di trasmissione, eseguito sempre a frequenza fissa di 100MHz, invia al DAC un campione ogni 100ns, ricavato interpolando opportunamente due campioni presenti nel buffer in modo da poter generare qualsiasi ritardo, anche frazionario, rispetto alla risoluzione di 100ns del clock usato. 
La posizione dell'interpolazione non è fissa, ma variabile con continuità nel tempo, secondo un profilo trasmesso in streaming dall'host: è così possibile emulare il profilo di movimento del satellite, riproducendo esattamente casi reali precedentemente acquisiti.

L'allontanamento del satellite comporta un aumento del ritardo del segnale ricevuto, mentre un suo avvicinamento ne causa una diminuzione: il primo caso si traduce nell'interpolazione dei campioni in ingresso in modo da averne in uscita un numero superiore a quello salvato, nel secondo caso l'implementazione avviene decimando i campioni in ingresso, ottenendo in uscita un numero inferiore a quello salvato.

Infine, poichè per ottenere il ritardo massimo di 280ms occorre avere un buffer - campionato a 100MHz - di circa 28MB, grazie alla RAM da 128MB a disposizione, è stato possibile emulare contemporaneamente due tratte satellitari indipendenti.
L'intero core sviluppato può inoltre essere utilizzato per gestire direttamente la Ku banda (K-under band), ossia lo spettro 12-18GHz che precede la banda K (18–27 GHz), tipicamente usata per le comunicazioni satellitari, semplicemente inserendo un upconverter e un downconverter da connettere direttamente al modulo NI PXIe-5641R.

Risultati
L'utilizzo dell'IF Transceiver NI PXIe-5641R non solo ha semplificato notevolmente il progetto, ma ha anche permesso di concentrarsi sulla parte realmente innovativa e custom dell'applicazione anzichè su tutta la gestione prettamente RF, anch'essa complessa, ma standard.

Author Information:
Gianluca Pizzocolo
IPSES

Bookmark and Share


Explore the NI Developer Community

Discover and collaborate on the latest example code and tutorials with a worldwide community of engineers and scientists.

‌Check‌ out‌ the‌ NI‌ Community


Who is National Instruments?

National Instruments provides a graphical system design platform for test, control, and embedded design applications that is transforming the way engineers and scientists design, prototype, and deploy systems.

‌Learn‌ more‌ about‌ NI