INTRODUZIONE
5
manifatturiere (Motorola, Alcatel-Lucent, Ericsson, Nokia e Thales
Communications), quattro Operatori (Telecom Italia, Telefonica, Deutsche
Telekom e France Telecom), quattro regolatori (inglese, francese, tedesco,
olandese) e otto Università e centri di eccellenza. Il progetto ha come obiettivo
primario quello di studiare i Cognitive Radio Systems al fine di renderli parte
integrante dei sistemi “Beyond 3G” e seguenti, con lo scopo di evolvere
l’attuale contesto di reti eterogenee verso un framework cognitivo integrato,
scalabile ed efficiente.[ICT-E3]
Con “Cognitive Radio” si indica la funzionalità ulteriore di capacità di
adattamento e intelligenza degli apparati, aggiunta al concetto di Software
Defined Radio: in questo modo, un apparato Cognitive Radio in futuro
potrebbe essere in grado di adattarsi alle variazioni delle condizioni radio o di
traffico tra diversi sistemi anche in scenari che prevedano metodologie di
gestione dello spettro più flessibili. [TL]
Le nuove possibilità di Digital Signal Processing
Sebbene l’idea di una radio creata tramite l’utilizzo di software non sia nuova,
la rapida capacità di evoluzione dei dispositivi elettronici digitali ha consentito
di utilizzare praticamente molti dei processi che un tempo erano soltanto
teoricamente realizzabili.
La strada intrapresa per arrivare alla costruzione di un sistema SDR prevede,
innanzitutto, il conseguimento di due obiettivi principali:
1) Spostare nei trasmettitori e ricevitori il confine tra mondo analogico e
digitale verso la radio frequenza (RF), tramite l’adozione di convertitori A/D e
D/A a larga banda il più vicino possibile all’antenna;
INTRODUZIONE
6
2) Sostituire la tecnologia ASIC (Application Specific Integrated Circuit -
hardware dedicato) con le tecnologie di Digital Signal Processing, per
l’elaborazione del segnale in banda base al fine di definire, il più possibile, via
software, le funzionalità radio.
La compatibilità di un sistema SDR, con uno qualunque dei sistemi radio
definiti, è possibile grazie alla sua riconfigurabilità, permessa dalla
riprogrammabilità dei suoi processori che, in tempo reale, implementano
l’interfaccia radio e i protocolli di livello superiore.
Attualmente l’ASIC è la tecnologia prevalente nella costruzione di trasmettitori
e ricevitori, e le soluzioni circuitali adottate dalle varie manifatturiere risultano
essere fortemente proprietarie. La sostituzione della tecnologia ASIC con la
tecnologia Dsp consente:
- l’implementazione via software delle funzionalità di banda base quali, ad
esempio, codifica, modulazione, equalizzazione;
- la riprogrammabilità del sistema per garantire una modalità di lavoro
multistandard.
Figura 1 - Schema di un ricevitore Digital Radio [TL]
INTRODUZIONE
7
È importante notare che con Digital Signal Processing s’intende proprio il
concetto di elaborazione digitale del segnale, quindi non solo DSP chipsets in
senso stretto, ma anche FPGA (Field Programmable Gate Array) e processori
general purpose. L’uso di questo tipo di elaborazione digitale del segnale
rappresenta tuttavia una realtà già affermata, molte stazioni radio base UMTS
fanno un uso massiccio di DSP e FPGA per il processing di banda base. [TL]
Gli odierni dispositivi FPGA, dotati di un’architettura che comprende blocchi
dedicati alle funzioni di Dsp, riscuotono successo crescente in una vasta
gamma di applicazioni che un tempo erano appannaggio esclusivo dei
tradizionali processori DSP. Gli FPGA di fascia bassa sono utilizzati spesso
come co-processori per alleggerire il lavoro dei DSP, ma i dispositivi di fascia
alta sono in grado di farsi carico per intero delle più complesse applicazioni di
Digital Signal Processing. Com’è noto, i blocchi Dsp integrati nel tessuto
logico degli FPGA consistono normalmente in moltiplicatori e accumulatori
(architetture MAC). Sono questi, infatti, gli elementi funzionali di base
necessari per realizzare tutte le principali funzioni Dsp, come i filtri FIR
(Finite Impulse Response), i filtri IIR (Infinite Impulse Response), le FFT (Fast
Fourier Transform), le DCT (Discrete Cosine Transform), ecc. Normalmente
questi blocchi possono essere configurati, in sede di programmazione del
dispositivo, per svolgere operazioni diverse su dati di larghezza diversa. [EN]
Uno dei principali obiettivi di questa tesi è quello di fornire le basi per la
creazione di sistemi di comunicazione, sia semplici che complessi, utilizzando
le moderne architetture basate su DSP e FPGA per la progettazione SDR, il
tutto programmabile tramite PC con i software specifici forniti dalle case
costruttrici. Si cerca di dare un’impronta fortemente metodologica agli
argomenti trattati, essendo le procedure adottate valide sia per i software
utilizzati che per tutti i tool di programmazione per sistemi embedded, di cui
ormai il mercato è colmo.
INTRODUZIONE
8
Metodi di sviluppo
Riguardo alla programmazione dei DSP, il consolidato utilizzo del linguaggio
C per queste architetture lascia ben pochi margini di scelta. Diversamente
accade per la programmazione delle logiche programmabili, dove le maggiori
case produttrici di FPGA sviluppano costantemente nuovi metodi alternativi
alla programmazione “pura” in linguaggio HDL (Hardware Description
Language). Ciò ha permesso di giungere ad un elevato grado d’integrazione
con molti dei software più noti in ambito ingegneristico per la programmazione
model-based, come Simulink e LabView.
In questo modo vi è anche la possibilità di verificare quanto si discosta il
modello simulativo di un sistema, realizzato tramite le librerie standard dei due
programmi, dal suo modello implementativo, creato con le librerie vincolate
dalle specifiche hardware del sistema utilizzato.
Bisogna anche ricordare che la generazione del codice da caricare sul chipset,
detto bitstream, passa attraverso lunghe fasi come sintesi del codice HDL e
place and route delle netlist generate. Lo sviluppo “grafico” degli algoritmi in
uno degli ambienti di simulazione citati, consente di prevedere in anticipo il
comportamento del sistema, evitando così lunghe attese dovute alle varie
operazioni svolte dai compilatori. In questo modo, vengono ridotti nettamente i
tempi di progettazione e si garantisce una miglior affidabilità dei sistemi,
dovuta ad una maggior possibilità di debugging del codice sviluppato.
Nel corso della realizzazione del progetto, sono emersi diversi possibili tipi di
approccio allo sviluppo di applicazioni per piattaforme FPGA, tutti basati
sull’utilizzo degli stessi software fondamentali; si vedrà, dopo le varie fasi di
progettazione, che il metodo utilizzato è il più indicato sia per programmatori
esperti che per utenti con limitate conoscenze nella programmazione VHDL.
INTRODUZIONE
9
Panoramica sul progetto
Il lavoro di tesi presentato è un modem (modulatore-demodulatore) AM
(Amplitude Modulation) numerico, realizzato su scheda Sundance
SMT8036E, piattaforma basata su DSP/FPGA per applicazioni SDR.
Al DSP viene lasciato il compito di configurare il sistema, settando parametri
come frequenza di campionamento dei convertitori e abilitazione dei canali, il
tutto programmato in linguaggio C; su FPGA invece verrà implementata la
parte vera e propria di processing tramite System Geneator, librerie per
Simulink fornite da Xilinx per la creazione di sistemi Dsp basati su FPGA e la
generazione automatica del codice VHDL.
Verrà utilizzato l’ambiente di sviluppo 3L Diamond per la programmazione
dell’intero sistema tramite la creazione di task operanti su DSP e su FPGA.
Nel CAPITOLO I, vedremo nel dettaglio le funzionalità offerte dai sistemi
Sundance nello sviluppo di applicazioni SDR;
Nel CAPITOLO II, verranno illustrate le caratteristiche dei principali software
utilizzati, in particolare l’ambiente di sviluppo 3L Diamond e la libreria Xilinx
System Generator per Simulink;
Nel CAPITOLO III, forniremo brevemente i concetti di modulazione di
ampiezza, campionamento di segnali analogici e generazione di segnali
discreti;
Nel CAPITOLO IV, passeremo alla realizzazione del modulatore/demodulatore
e alla verifica dei risultati ottenuti con quelli previsti in simulazione.
Per concludere, faremo una breve riflessione su quali metodi possono essere
più efficienti al fine di sfruttare al meglio un sistema come quello utilizzato per
il progetto.
CAPITOLO I PIATTAFORMA HARDWARE
10
CAPITOLO I
PIATTAFORMA HARDWARE
Introduzione
L’hardware a nostra disposizione è il Sundance SMT8036E, un kit per lo
sviluppo di applicazioni Software Defined Radio con l’utilizzo di una singola
piattaforma basata sulle tecnologie Dsp (Digital Signal Processing), FPGA
(Field Programmable Gate Array) e DAQ (Data Acquisition).
Consiste in una board PCI (SMT310Q) su cui risiedono un processore DSP e
un FPGA (sul modulo SMT365E), quest’ultimo interagisce con due ADC
(Analog-Digital Converter) e un DAC (Digital-Analog Converter); i
convertitori (sul modulo SMT370) sono progettati specificamente per
applicazioni RF, con la possibilità di operare direttamente a frequenza
intermedia non superiore ai 70MHz.
Il sistema è dotato inoltre del modulo SMT349 front-end IF/RF, un modulo a
radio frequenza, operante nella banda ISM (Industrial, Scientific and Medical)
di 2,4 GHz, che consente di completare le catene di trasmissione e ricezione
del nostro sistema SDR. L’uso di quest’ultimo modulo esula dalle finalità di
questa tesi, infatti non è stato utilizzato per la realizzazione del progetto, ma ne
saranno comunque illustrate le funzionalità per futuri sviluppi del sistema.
CAPITOLO I PIATTAFORMA HARDWARE
11
1.1 Panoramica sui sistemi Sundance
Una tipica struttura embedded che utilizza i prodotti Sundance è composta da
un Host PC nel quale vengono installate una o più Carrier Board. Su ogni
board vengono collegati uno o più moduli processore (DSP, I/O, FPGA),
denominati TIM (Texas Instruments Module).
La comunicazione tra TIM di diverso tipo permette la creazione di complicati
sistemi di elaborazione. La carrier board è collegata all’host PC tramite slot
PCI, essa non esegue nessun programma, ospita semplicemente i vari TIM
provvedendo loro l’alimentazione e i metodi di comunicazione con l’host,
essendo i moduli incapaci di comunicare da soli col resto del sistema.
Figura 1.1 – Panoramica sull’architettura
Ci sono diversi modi per scambiare dati tra Host PC e i moduli TIM. Quello
più semplice è l’utilizzo delle ComPort. Una comport può essere vista come
una linea dati, dove su un lato vengono posti i dati provenienti da un
processore “trasmittente” e sull’altro lato vengono letti i dati da un processore
“ricevente”. Le comport possono scambiare dati in entrambi le direzioni alla
velocità di 20MB/s. Vengono collegate tra di loro esternamente tramite cavi
FMS utilizzando le porte sul retro della carrier board, oppure tramite dei
collegamenti interni gestiti via software.
CAPITOLO I PIATTAFORMA HARDWARE
12
Una comport speciale, la Host ComPort, è usata per comunicare tra l’host PC e
il primo TIM collegato alla board (Root TIM). Gli altri TIM non sono capaci di
comunicare direttamente con l’host, per cui sfruttano questa porta per ricevere
indirettamente i dati. La Host ComPort usa il bus PCI del PC e permette uno
scambio di dati fino alla velocità di 2MB/s, inoltre è utilizzata per caricare i
programmi sul DSP. La comunicazione tra board e Host PC, come quella tra
Host PC e i moduli TIM tramite la Host ComPort, avviene mediante i driver
forniti dalla Sundance.
Figura 1.2 – Comunicazione tra Host PC e Carrier Board
Oltre alle comport, esistono altri modi per comunicare tra i moduli e con l’host,
come il Global Bus (GB), il Sundance Digital Bus (SDB) ed il Sundance High-
Speed Bus (SHB).
È importante notare che tutte le risorse di comunicazione sono implementate su
FPGA. La logica programmabile, tramite le caratteristiche specificate nel
rispettivo firmware, ha infatti il compito di consentire al TIM su cui si trova di
CAPITOLO I PIATTAFORMA HARDWARE
13
scambiare dati tramite collegamenti fisici tra i componenti hardware. Anche i
vari led disponibili sui moduli sono controllati tramite FPGA.
Nota: In seguito, anche se non espressamente specificato, quando parleremo di
FPGA faremo riferimento a quello presente sul root TIM (SMT365E), poiché è
quello che opera a stretto contatto con il processore DSP.
1.1-1 DSP
Il DSP a disposizione è il TMS320C6416, prodotto dalla Texas Instruments.
Opera ad una frequenza di clock di 600MHz e utilizza 256MB di memoria
SDRAM (Synchronous Dynamic Random Access Memory). Possiede inoltre
una memoria interna di 1MB, utilizzabile come SDRAM o come memoria
cache.
1.1-2 Boot Mode
La Flash ROM contiene il bootloader e il bitstream per l’FPGA. In seguito ad
un reset della scheda, il DSP carica automaticamente i dati dalla Flash ROM
nella sua memoria interna all’indirizzo 0, iniziando l’esecuzione del
programma da questo punto.
Il codice caricato, cioè il bootloader della Sundance, contiene dati sulla
configurazione dell’FPGA. Quindi ad ogni reset, il DSP provvede a
configurare opportunamente l’FPGA portandolo ad uno stato di default. Il
bootloader inoltre configura il DSP e controlla lo stato delle 6 comport
disponibili sul modulo, aspettando poi l’arrivo dei dati su una delle porte. Solo
in seguito il controllo dell’hardware viene passato all’applicazione caricata sul
processore.