Capitolo 3
La scheda di acquisizione USRP
La scheda USRP (Universal Software Radio Peripheral) è un’implementazione low-cost e high-speed che permette agli utenti di progettare e sviluppare sistemi software radio potenti e flessibili [19]. L’hardware è supportato dal free software sviluppato dal progetto GNU radio (un software completo di tipo open source per la gestione di sistemi SDR): semplicemente collegando la scheda ad un PC e installando su quest’ultimo il software GNU radio, la USRP sarà pronta a trasmettere e ricevere una quantità illimitata di segnali.
In questo capitolo ci soffermeremo sulle caratteristiche generali di questa scheda, illustrando le sue principali componenti e mettendo soprattutto in evidenza quale sarà il percorso che verrà compiuto dal segnale in ricezione, che è la situazione che ci interessa di più nel nostro contesto di sistema radar passivo.
3.1 Struttura generale
La scheda (Figura 3.1) è costituita da quattro componenti fondamentali:
• FPGA Altera EP1C12 Q240C8 “Cyclone”
• 4 convertitori AD High-Speed che campionano su 12 bit ad una velocità di 64 mega-samples per secondo (64 MS/s)
• 4 convertitori DA High-Speed che campionano su 14 bit ad una velocità di 128 mega-samples per secondo (128 MS/s)
• Connessione USB 2.0 con flusso dati consentito di 32 mega-byte per secondo (32 MB/s)
Fig. 3.1: Scheda USRP senza daughterboards
La scheda, chiamata anche motherboard, dispone di una struttura modulare che sfrutta un certo numero di connessioni a bassa velocità per comunicare con delle
front-end a RF nel quale il segnale in ricezione viene convertito dalla frequenza della portante alla frequenza intermedia (o addirittura direttamente in banda base) o viceversa in trasmissione.
Come si vede in figura 3.2 [20], la motherboard è dotata di quattro slot di connessione per supportare al più due daughterboard in trasmissione e due daughterboard in ricezione contemporaneamente e tutte indipendenti.
Queste schede intercambiabili permettono la ricezione e/o trasmissione di segnali appartenenti a diversi range frequenziali, conferendo alla scheda USRP una potenziale copertura da 0 Hz a circa 2.9 GHz e permettendo quindi di gestire una grande varietà di applicazioni, dalla AM fino ai sistemi Wi-Fi e oltre.
Le schede daughterboard attualmente disponibili sono [19]:
• LFRX: ricevitore sul range frequenziale compreso tra la continua (DC) e 30 MHz • LFTX: trasmettitore sul range frequenziale compreso tra DC e 30 MHz
• BasicRX: ricevitore sul range frequenziale compreso tra 1 MHz e 250 MHz • BasicTX: trasmettitore sul range frequenziale compreso tra 1 MHz e 250 MHz • TVRX: ricevitore sul range frequenziale compreso tra 50 MHz e 860 MHz • DBSRX: ricevitore sul range frequenziale compreso tra 200 MHZ e 2.4 GHz • RFX400: transceiver sul range frequenziale compreso tra 400 MHz e 500 MHz • RFX900: transceiver sul range frequenziale compreso tra 750 MHz e 1.05 GHz • RFX1200: transceiver sul range frequenziale compreso tra 1.15 GHz e 1.45 GHz • RFX1800: transceiver sul range frequenziale compreso tra 1.5 GHz e 2.1 GHz • RFX2400: transceiver sul range frequenziale compreso tra 2.3 GHz e 2.9 GHz
3.2 Cammino del segnale in ricezione
Il nostro interesse a questo punto ricade essenzialmente sul cammino del segnale sul lato in ricezione [20], poichè l’obiettivo di questa tesi è esaminare gli aspetti realizzativi di un radar passivo.
I segnali in arrivo dalle daughterboard vengono innanzitutto campionati su 12 bit alla frequenza di 64 MS/s dall’AD9862 (Figura 3.3), che altro non è che il chip che contiene i convertitori analogici-digitali e digitali-analogici (in realtà ci sono due chip contenenti ciascuno due AD e due DA): ho quindi una utile massima di 32 MHz, dove per banda utile si intende la banda massima che può avere il segnale che viene campionato affinchè venga rispettata la condizione di Nyquist. Normalmente viene eseguito un campionamento complesso associando ad un ADC il canale I e ad un altro il canale Q, in maniera tale da poter digitalizzare una banda di 64 MHz.
Fig. 3.3: Schema a blocchi del chip AD9862 [21]
L’ADC viene preceduto da un PGA (Programmable Gain Amplifier) la cui funzione è quella di amplificare il segnale in ingresso al convertitore, nel caso in cui questo sia di debole intensità, in modo tale da sfruttare l’intera dinamica o range del convertitore stesso, che è pari a 2V picco-picco.
I segnali una volta campionati vengono indirizzati verso la FPGA, ed esattamente verso i DDC (Digital Down Converter). Si tratta di un modulo che ha la triplice funzione di traslare in banda base i campioni del mio segnale, decimarli di un fattore N scelto dall’utente in modo tale che il data rate sia compatibile con quello del bus USB 2.0, e infine filtrarli dell’eventuale presenza di aliasing. In figura 3.4 è illustrato lo schema a blocchi del DDC, dove il segnale complesso in ingresso (a frequenza intermedia) viene moltiplicato con un esponenziale a frequenza costante (all’incirca pari alla frequenza intermedia) in maniera tale da centrare il segnale intorno all’origine [20].
Fig. 3.4: Schema a blocchi di un Digital Down Converter
Una classe di filtri che si presta bene alla realizzazione di filtri di decimazione è quella dei filtri CIC (Cascaded Integrator Comb), che non sono nient’altro che filtri FIR di tipo passa basso costituiti dalla cascata di filtri integratori e di filtri Comb1 (filtri a pettine). La FPGA è in grado di implementare quattro DDC e di conseguenza è possibile avere 1, 2 o 4 canali separati in ricezione tutti con il solito rate.
Tra gli ADC e i DDC è presente un multiplexer, che può essere interpretato come un router che instrada i flussi campionati verso i giusti DDC, permettendo quindi una notevole libertà nella configurazione e definizione dei canali di ricezione.
A questo punto (sempre all’interno della FPGA) i dati così processati vengono interallacciati in campioni su 16 bit: la scheda infatti è configurata per fornire 4 byte per campione (16 bit per la parte reale e 16 bit per la parte immaginaria).
I campioni così ottenuti vengono infine inviati al computer attraverso la connessione USB 2.0, che come già detto è in grado di supportare un rate massimo di 32 mega-byte per secondo (32 MB/s). Questo valore però limita l’ampiezza massima di banda analizzabile. Infatti, considerando che la USRP restituisce come appena detto campioni a 16 bit per ogni ramo I/Q, abbiamo che ogni sample è rappresentato su 4 byte: dividendo la banda massima per l’ampiezza di ogni singolo campione, otteniamo il
valore di 8 mega-samples per secondo (8 MS/s), che rappresenta la banda espressa in campioni (complessi) al secondo. Abbiamo quindi una banda totale analizzabile di 8 MHz, nonostante gli ADC siano in grado di campionare alla velocità di 64 MHz, e tutto ciò ovviamente è un fattore limitante.
3.2 La daughterboard DBSRX
Avendo scelto come illuminatore di opportunità il segnale proveniente da una stazione radio base UMTS, avente come ricordiamo portanti intorno ai 2 GHz, la scelta della daughterboard è ricaduta sul modello DBSRX (Figura 3.5), che permette la ricezione dei segnali nel range 800 MHz – 2.4 GHz.
Fig. 3.5: La daugtherboard DBSRX
La scheda è di ridotte dimensioni, occupa uno slot di ricezione della scheda USRP ed è in grado di alimentare antenne attive utilizzando l’alimentazione proveniente dalla USRP stessa.
Lo schema a blocchi che rappresenta la daughterboard in questione è riportato in figura 3.6:
Fig. 3.6: Schema a blocchi della DBSRX
Come vediamo troviamo tre blocchi fondamentali:
• MGA82563: è un amplificatore del segnale ricevuto dall’antenna • MAX2118: si preoccupa del lavoro di sintonizzazione della RF
• AD8132: sono due amplificatori differenziali che si occupano di prendere ciascuno un ramo del segnale I/Q generato dal MAX2118 e di trasmetterlo con i giusti livelli di potenza verso la USRP e i suoi ADC.
Il MAX2118, il cui schema a blocchi è mostrato in figura 3.7, rappresenta la componente più importante della daughterboard DBSRX [22], il quale si occupa di amplificare il segnale, sintonizzare la portante ed estrapolare le componenti I/Q.
In ingresso abbiamo un primo stadio di guadagno (max 56 dB) comandato esternamente da un riferimento di tensione. Successivamente il segnale viene diviso in due parti (ramo in fase e ramo in quadratura), quindi portato in banda base tramite la moltiplicazione per un’opportuna portante e nuovamente amplificato attraverso un amplificatore (max 24 dB). A questo punto il segnale passa attraverso un filtro passa-basso a frequenza di cut-off programmabile e quindi in un buffer d’uscita necessario per pilotare le linee esterne.
Di particolare importanza è la programmazione del PLL necessario a selezionare la frequenza d’interesse. Per definire qual è la frequenza della portante è necessario programmare il valore di due divisori: R e N. Il fattore R si occupa di dividere la frequenza di riferimento proveniente dalla USRP2, che vale 4 MHz, mentre il fattore N invece divide il valore della frequenza dell’oscillatore locale della DBSRX, ovvero i 4 MHz appena citati. Perciò, la frequenza alla quale si sintonizza la scheda DBSRX è pari a: refClkIn DBSRX
f
f
N
R
= ⋅
Dove R e N sono programmabili e possono assumere valori appartenenti rispettivamente agli intervalli che vanno da 2 a 256 e da 256 a 32768, mentre frefClkIn è
la frequenza di riferimento proveniente dalla USRP (ovvero i 4 MHz).
Altro blocco interessante è rappresentato dal filtro passa basso successivo al down-converter, anch’esso programmabile tramite l’utilizzo di due registri, M e FDAC, dove il primo viene utilizzato per dividere ancora una volta la frequenza di riferimento proveniente dalla USRP in un range compreso tra 1 MHz e 2.5 MHz, mentre il secondo registro viene utilizzato per una ricerca fine dell’ampiezza di banda e può
2
Si tratta di 1/16 della frequenza della USRP (che è 64 MHz): il divisore per 16 è stato deciso in fase di progetto della DBSRX e non è modificabile attraverso programmazione.
assumere un valore compreso tra 0 e 128. La frequenza di taglio a -3dB è determinata dalla seguente equazione:
3