1
Software Defined Radio
Dr. Ing. Alessandro Di Nepi([email protected])
Università degli Studi “Roma TRE”Dipartimento di Elettronica Applicata
Laboratorio di Telecomunicazioni
Agenda
• Architettura Software Defined Radio
• Radio Front-End
• Radio Back-End– Front-End Digitale
– Processing in Banda Base
• Tecnologie per piattaforme SDR
• Radio Description Language
• Esempi: GNURadio
2
riferimenti
• Paul Burns. Software Defined Radio for 3G. Artech House, 2003.
• Walter H. W. Tuttlebee. Software Defined Radio: Enabling Technologies. John Wiley & Sons, 2002.
• Walter H. W. Tuttlebee. Software Defined Radio: Baseband Technologies for 3G Handsets and Basestations. John Wiley & Sons, 2004.
• Software defined radio forum. http://www.sdrforum.org.
• Gnu radio project. www.gnu.org/software/gnuradio/.
introduzione
• Rete di telecomunicazione: complesso di mezzi che, attraverso le risorse tecniche ed operative necessarie, consente ai suoi utenti il trasferimento dell’informazione
Zone 4:Global
SatelliteZone 3:Suburban
Zone 2:Urban Zone 1:
In building
Macro cell Pico cellMicro cellWorld cell
2Gs: Satellitenetworks
public mobile &fixed networks
private residential &fixed networks
3
Motivazioni
• Ampia varieta’ di sistemi di comunicazione wireless
– differenti frequenze operative,
– tecniche di modulazione,
– tecniche di codifica,
– protocolli,
– etc.;
• Ogni sistemi richiede terminali ed infrastrutture dedicate
• Algoritmi “simili”
• Potenza di calcolo a disposizione
standard radio
4
requisiti
Frequenze operative
• Stessi standard presentano differenti frequenze operative a seconda dell’area geografica
• Terminali multi-band
• Nuovi standard (UMTS, WLAN)
• Applicazioni VoIP basate su piattaforme multi-standard
5
Applicazioni
Algoritmi comuniAlgoritmi comuni•• Stima del tempo di arrivoStima del tempo di arrivo•• Schemi di ModulazioneSchemi di Modulazione•• CodificatoriCodificatori
Servizi ComuniServizi Comuni•• GPSGPS•• GALILEOGALILEO•• UMTSUMTS
Riutilizzo delle piattaforme esistentiper realizzare servizi multi-standard
SOFTWARE DEFINED RADIOSOFTWARE DEFINED RADIO
Software Defined Radio
Possibile soluzione:
Software Defined Radio: insieme di tecnologie Hardware e Software che permettono di ottenere architetture riconfigurabili per reti e terminali wireless;
• Utilizzo dello stesso HW per diverse funzioni;
• Configurazione dinamica a seconda del contesto operativo;
• Si ottiene con:
– Hardware “flessibile”;
– Livello di interfaccia Software
6
IL RICEVITORE SDR IDEALE
• Vantaggi:
– Assenza di messa a punto, fenomeni di invecchiamento, economicita’
– Flessibilita’, Portabilita’, Compatibilita’ e riutilizzo del SW.
XX
LOLO
XX
VCOVCO
BPFBPF LNALNA
DOMINIO RFDOMINIO RF
BPFBPF AGCAGC
DOMINIO IFDOMINIO IF BANDA BASEBANDA BASE
A/DA/D DSPDSPLPFLPFA/DA/D DSPDSP
DIGITALDIGITAL
Campionamento IF
• Si sfrutta il fenomeno dell’aliasing per campionare direttamente il segnale RF, ottenendo una replica in banda base dello spettro del segnale.
BPFBPF LNALNA
f0
f
PXX(f)
2W
f
PDD(f)
0
2W
A/DA/D LPFLPFDIGITALEDIGITALE
ffss << f<< f00
• fs > 2W• fs = f0/k
BW > fBW > f00
7
Antenna• Wideband• Multi-band• Basse Perdite
FRAME • Voice• Data• Video
Virgola mobile su DSP
DDC & FILTER• Down-Conversione digitale• Filtraggio e Decimazione• AGC Digitale
Virgola fissa su HW dedicato (ASIC o FPGA)
Modulation & Mapping• FFT (Fast Fourier Transform)• NCO (Numeric Controlled Oscillator)• Demodulatore• Correlatore•
Virgola Fissa su FPGA
FEC (Frame Error Correction)• Reed-Solomon• De-Interleaver• Viterbi Decoder• Turbo Decoder• CRC
Virgola fissa/mobile su FPGA o DSP veloci
Stato dell’Arte
ADC• Ampiezza di banda (200MHz)• Alte velocita’ (100MS/s)• Alte risoluzioni (12-14 bit)
A/DA/D DDC &DDC &FILTERFILTER
MODULATIONMODULATION& MAPPING& MAPPING FECFECRFRF FRAMEFRAME
PCPC
BUS DI CONTROLLOBUS DI CONTROLLO
Sezione RF• Filtraggio• Conversione IF• Amplificazione
Analogica
PC• Controllo•Interfaccia utente
MAPPATURA
100MS/s 500KS/s
HWHW
SWSWRTOS (Real Time Operative System)RTOS (Real Time Operative System)
ApplicazioniApplicazioni & & ServiziServizi
ASIC FPGA DSP GPPFis
ico
Fis
ico
MA
CM
AC
Rete
Rete
HAL (Hardware Abstraction Level)HAL (Hardware Abstraction Level)
Java VM RDL
50Kb/s 10Kb/s 8Kb/s
802.11 Bluetooth UMTS
A/DA/D DDC &DDC &FILTERFILTER
MODULATIONMODULATION& MAPPING& MAPPING FECFEC FRAMEFRAMERFRF
8
Riprogrammabilita’
ProgrammaProgramma ApplicativoApplicativo
Compilatore
File File EseguibileEseguibile • Applicazioni SW• Algoritmi DSP• Coefficienti dei filtri• Funzioni HW
uP SoftwareDSP FirmwareFPGA Bit Stream
• Bug Fixes• Aggiornamenti• Nuovi Servizi
API, DriversAPI, Drivers
RTOSRTOS
HWHW FPGA DSP uP
LibreriaLibreriauP UI uP UI
DSP FWDSP FWHDL CodeHDL Code
Localizzazione SU SDR
A/DA/DCorrezioneCorrezione
OffsetOffsetFrequenzaFrequenza
FFTFFT64 Punti64 Punti DescramblerDescrambler
CorrezioneCorrezioneOffsetOffsetFaseFase
KalmanKalmanFilterFilter
DemodulazioneDemodulazioneQAM, QPSKQAM, QPSK
ViterbiViterbiDecoderDecoder
Implementazione di un ricevitore 802.11g con integrati i servizi di localizzazione su piattaforma SDR
FPGAFPGA
DSPDSP
Tempo Tempo didiarrivoarrivo DatiDati
9
Architettura sistema radio
•• AntennaAntenna: interfaccia col mezzo
•• RF FrontRF Front--EndEnd: filtraggio e conversione A/D, D/A
•• Banda BaseBanda Base: Elaborazione del segnale
•• ControlloreControllore: gestione dei sotto-sistemi
sistema radio
•• High Speed SPHigh Speed SP: modulazione/de-modulazione
•• Low Speed SPLow Speed SP: protezione errore (co/decodifica)
•• Protocol StackProtocol Stack: gestione canale
•• Controllo localeControllo locale: gestione HW, SW
•• Human InterfaceHuman Interface: periferiche I/O utente
10
Evoluzione sistema radio
SISTEMA RADIO TRADIZIONALE
• Campionamente secondo Nyquist
• Tecniche DSP solo per banda base
• Utilizzato in TACS (ITALY) e AMPS (USA) con Frequency
Division Multiplexing.
11
Ultimate SDR
• Campionamente IF (A/D e D/A wideband)
• Tecniche DSP utilizzate per tutte le funzioni
• Terminali multibanda e multimodo
STAto dell’arte SDR
• Front-End a banda larga
• Campionamento IF di intere porzioni di spettro
• Tecniche DSP utilizzate per le funzioni a basso bit rate
• Terminali multibanda e multimodo
12
PArtizionamento parte digitale
• High Speed: Filtraggio, up/down-conversione, NCO,
modulazione
• Low Speed: co/decodifica, interleaving, mapping, frame
processing
Partizionamento funzionale
• Il sistema SDR puo’ essere partizionato
funzionalmente in due parti:
–– RADIO FRONTRADIO FRONT--ENDEND si occupa dell’elaborazione RF
analogica
• ANTENNA
• SEZIONE RF (analogica)
• ADC e DCA
–– RADIO BACKRADIO BACK--ENDEND si occupa del processing digitale del
segnale
13
Radio back-end
• Front-end Digitale (DFE)
• Processing in Banda Base
Hardware per SDR
• La piattaforma ideale per il SDR e’ costituita da DSP programmati con SW
• Alcuni compiti vanno ancora svolta con HW dedicato
Processing LoadProcessing Load per la gestione di un canale UMTS a 384Kbps
14
Performance vs capability
•• ASICASIC (Application Specific IC)
•• FPGAFPGA (Field Programmable Gate Array)
•• DSPDSP (Digital Signal Processor)
•• GPPGPP (General Porpouse Processor)
Technology evolution
15
Hardware per SDR
• Non esiste una tecnologia migliore di un’altra
• I diversi dispositivi offrono diversa “granularità”
• Il progetto di un sistema efficiente si ottiene utilizzando un mix dei dispositivi in modo da massimizzare la flessibilità col minor consumo
parallelismo
• In alcuni casi avere a disposizione strutture a granularità fine consente di sfruttare il parallelismo insito in un algoritmo per aumentare la velocità
16
Fpga vs dsp
ASIC: introduzione
• Gli ASIC sono circuiti integrati dedicati a svolgere particolari funzioni
• Forniscono la soluzione piu’ efficente in termini di area occupata e consumo
• Non sono riconfigurabili
• Hanno un ciclo di sviluppo molto lungo (1-2 anni)
• Il costo di sviluppo è molto alto (100K$)
• Non possono essere testati se non alla fine del ciclo di sviluppo come prodotto finito
• Frequenze operative dell’ordine di 100MHz
17
ASIC: tecnologia
• Sono costituiti da una matrice di porte logiche configurabili dall’utente
• Il progettista decide quali porte mettere e come collegarle per svolgere particolari funzioni
• Il circuito viene dato alla fonderia che si occupa della costruzione
ASIC: flusso di sviluppo
18
ASIC: descrizione vhdl
• La descrizione del circuito viene fatta attraverso Hardware Description Language (VHDL o Verilog)
• Forniscono diversi livelli di astrazione:– Behavioral
– RTL (sintetizzabile)
– Strutturale
• Modellano strutture HW digitali
• Portabilità
ASIC: descrizione vhdl
q
qb
RSFFset
resetab
c
ab
centity rsff isport ( set :in bit;
reset : in bit;q,qb : buffer bit );
end rsff;
architecture rsff_struct_a of rsff iscomponent nand_gate
port ( a, b : in bit ;c : out bit );
end component ;begin
nand_1: nand_gateport map ( a => set, b => qb, c => q );
nand_2: nand_gateport map ( a => reset, b => q, c => qb );
end rsff_struct_a ;
19
ASIC: simulazione
• Il circuito viene simulato verificando che le funzionalità vengono imlpementate nel modo desiderato
A
B
C
D
BCLK
DFFd q
clk
D_EXT
Q
0
1
2
3
ASIC: sintesi
• Particolari software, detti sintetizzatorisintetizzatori, traducono la descrizione in un circuito costituito da porte logiche che svolge la funzione voluta
20
fpga: introduzione
• Le FPGA sono circuiti HW configurabili
• Sono costituiti da una matrice di blocchi configurabili e da una rete di interconessione programmabile
• I circuiti vengono partizionati in blocchi logici, mappati e routati
fpga: schema
21
fpga: introduzione
• La granularità e’ più grossa rispetto agli ASIC
• Forniscono unaa soluzione meno efficente in termini di area occupata e consumo rispetto agli ASIC
• Vengono programmate specificando la funzione dei singoli blocchi e come questi vengono collegati tra loro e con i pin di I/O
• Hanno un ciclo di sviluppo breve (<1 anno)
• Basso costo di sviluppo (<10K$)
• Possono essere testati durante il design
• Frequenze operative minori di 100MHz
fpga: stato dell’arte
• Il segmento delle FPGA è quello a crescita maggiore nell’industria dei semiconduttori
• Due grandi società in contrapposizione fra loro:– Xilinx
– Altera
• Integrazioni di macro hard-wired e soft-wired sempre piu’ complesse:– DSP blockset
– GPP
– Collegamenti Hi-speed
– RAM
– FIFO
– Protocol interface (USB, FireWire)
22
fpga: flusso di sviluppo
fpga: altera
23
fpga: altera apex 20K
fpga: altera apex 20K
24
fpga: altera apex 20K
fpga: altera apex 20K le
25
fpga: altera apex 20K le
fpga: xilinx virtex 4
26
fpga: xilinx virtex 4
CLB
PowerPC 405
xDSP
dsp: introduzione
• I DSP sono processori che eseguono in maniera molto efficiente operazioni MAC
• Il processing avviene eseguendo un particolare programma: si caricano i dati dalla memoria, si eseguono calcoli e si scrive risultato in memoria
• Inizialmente programmati in Assembler per le migliori performance, oggi si usa il C
• Semplicemente caricando un nuovo programma si cambia il compito eseguito
• Offrono flessibilità a scapito dell’efficienza
• Parallelismo SIMD
27
dsp: stato dell’arte
dsp: flusso di sviluppo
28
dsp: debug
dsp: TI TMS320C6000
29
dsp: TI TMS320C6000
dsp: TI TMS320C6000
• Basata su un’architettura VLIW (Very Long Instruction Word)
• 64 registri a 32 bit
• Memoria cache a 2 livelli
• Più unità in parallelo permettono di eseguire operazioni multiple per ciclo di clock: 2 motliplicatori a 32 bit e 6 ALU indipendenti
• Co-processori:– Viterbi Co-Processor (VCP): configurabile, supporta fino a
500 8Kbps canali voce AMR
– Turbo Co-Processor (TCP): configurabile, supporta fino a 6 canali UMTS a 2Mbps o 32 a 384Kbps
30
dsp: TI TMS320C6000
PPEERRIIPPHHEERRAALLSS
Central Central ProcessingProcessing
UnitUnit
Internal MemoryInternal Memory
Internal BusesInternal Buses
ExternalExternalMemoryMemory
dsp: TMS320C6000 instruction set
ArithmeticArithmeticABSABSADDADDADDAADDAADDKADDKADD2ADD2MPYMPYMPYHMPYHNEGNEGSMPYSMPYSMPYHSMPYHSADDSADDSATSATSSUBSSUBSUBSUBSUBASUBASUBCSUBCSUB2SUB2ZEROZERO
Program CtrlProgram CtrlBBIDLEIDLENOPNOP
LogicalLogicalANDANDCMPEQCMPEQCMPGTCMPGTCMPLTCMPLTNOTNOTORORSHLSHLSHRSHRSSHLSSHLXORXOR
Data MgmtData MgmtLDB/H/WLDB/H/WMVMVMVCMVCMVKMVKMVKLMVKLMVKHMVKHMVKLHMVKLHSTB/H/WSTB/H/W
Bit MgmtBit MgmtCLRCLREXTEXTLMBDLMBDNORMNORMSETSET
31
dsp: TMS320C6000 ADDRESS Space
Byte AddressByte Address
FFFF_FFFFFFFF_FFFF
0000_00000000_0000 64K x 8 Internal64K x 8 Internal(L2 cache)(L2 cache)
Internal MemoryInternal MemoryUnified (data or Unified (data or progprog))4 blocks 4 blocks -- each can beeach can beRAM or cacheRAM or cache
OnOn--chip Peripheralschip Peripherals0180_00000180_0000
External MemoryAsync (SRAM, ROM, etc.)Sync (SBSRAM, SDRAM)
256M x 8 External2
256M x 8 External3
8000_00008000_0000
9000_00009000_0000
A000_0000A000_0000
B000_0000B000_0000
256M x 8 External0
256M x 8 External1Level 1 Cache4KB Program4KB DataNot in map CPUCPU L2L2
64K64K
4K4KPP
4K4KDD
dsp: TMS320C6000 data path
AADD
InternalInternalMemoryMemory
x32x32AADD
ExternalExternalInterfaceInterface
AADD
x32x32
PeripheralsPeripherals
can perform 64can perform 64--bit data loads.bit data loads.‘‘C67x C67x
Data Data AddrAddr -- T1T1 x32x32
Data DataData Data -- T1T1 x32/64x32/64
Data Data AddrAddr -- T2T2 x32x32
Data DataData Data -- T2T2 x32/64x32/64
AAregsregs
BBregsregs
Program Program AddrAddr x32x32
Program DataProgram Data x256x256PCPC
DMA DMA AddrAddr -- ReadRead x32x32
DMA DataDMA Data -- ReadRead x32x32
DMA DMA AddrAddr -- WriteWrite x32x32
DMA DataDMA Data -- WriteWrite x32x32
DMADMA
32
dsp: AD tiger shark
gpp: introduzione
• I GPP sono processori RISC general porpouse
• Elevata frequenza di clock (2GHz)
• Il processing avviene eseguendo un particolare programma: si caricano i dati dalla memoria, si eseguono calcoli e si scrive risultato in memoria
• Programmati con linguaggi ad alto livello
• Soluzione meno efficiente ma più versatile
• Parallelismo SIMD e multi-core
• Estensioni a 64 bit
33
gpp: stato dell’arte
• Tre grandi contendenti:– IBM PowerPC
– Intel Pentium IV
– AMD Athlon64
• Possono implementare funzioni complesse solo su blocchi a basso bit rate (decodifica FM)
• Generalmente vengono utilizzati per controllo e frame processing
gpp: flusso di sviluppo
• Ambiente di sviluppo formato da compilatore, debugger e loader;
• Lo sviluppo puo’ essere fatto su una piattaforma diversa da quella di destinazione: ad es. si sviluppa codice PowerPC (target) su architetture x86 (host).
• Il codice viene poi caricato sulla macchina target come un normale programma eseguibile.
• Si possono realizzare piattaforme SDR molto semplici per bassi bit rate utilizzando convertitori A/D e D/A della scheda audio
34
Architettura software
• Viene resa indipendente dallo strato HW attraverso l’uso:– Hal
– API, drivers
• Per riutilizzare il SW bisogna prevedere:– Moduli parametrici
– Massimizzare le similitudini fra le diverse interfacce
• La programmabilità ad alto livello è ottenuta con compilatori linkati allo strato HW
riconfigurabilità
Può essere ottenuta in due modi:
• Staticamente all’accensione il sistema può essere riconfigurato per gestire:– Una nuova interfaccia radio
– Nuove funzionalità
• Dinamicamente, mentre il sistema è in funzione vengono cambiati alcuni parametri dei sottoblocchi– Guadagno dell’AGC
– Banda dei filtri
– Frequenza di demodulazione
35
rdl
• E’ un linguaggio compilato per descrivere signal processing graphs
• Offre due tipi di costrutti:–– ModulesModules: costituiscono gli elementi di processing del
sistema
–– AssembliesAssemblies: sono grafi costituiti da moduli e sottoassembly collegati fra loro per realizzare funzioni di processing
• Altri oggetti:–– Porte: Porte: interfaccia del modulo verso l’esterno
–– StreamStream: rappresenta un collogamento dove passano i dati
–– CanaleCanale: descrive il messaggio che viaggia in uno stream
Rdl: assembly
36
Piattaforme software defined radio
• Diverse piattaforme software defined radio
• Non esiste uno standard
• E’ possibile implementare piattaforme custom a seconda delle esigenze
• Stessi algoritmi SW vengono implementati su piattaforme HW diverse a seconda della complessità
gnuradio
• Piattaforma SW definita come open source (www.gnu.org/software/gnuradio)
PC
37
Universal software radio peripheral
• Utilizzata nella piattaforma GNURadio
• Utilizzata come front-end RF e high-speed back-end per la ricezione e trasmissione
• Convertitore A/D 64MSps, 12 bit, 200MHz
• Convertitore D/A 128MSps, 14 bit
• È corredata di una FPGA Altera CICLONE
• Si interfaccia ad un PC che esegue i compiti di signal processing attraverso una porta USB 2.0
• Non è previsto alcun DSP
• Sistema modulare, asservito ad un PC
• Costo contenuto ($450)
Universal software radio peripheral
38
Universal software radio peripheral
• 4 converitori A/D
• 4 convertitori D/A
• Interfaccie RF su daugtherboard
– dual raw coax connection
– dual 50-800 MHz RX, 8 MHz IF bandwidth
– 420 - 450 MHz amateur band RX + TX
– 902 - 928 MHz amateur band RX + TX
– 1.24 - 1.30 GHz amateur band RX + TX
– 2.30 - 2.45 GHz amateur band RX + TX
Universal software radio peripheral
• Il fattore che limita maggiormente il sistema è la banda disponibile per il collegamento col PC: la porta USB fornisce un throughput di 32MB/s half-duplex
• Il formato di I/O e’ 16bit per le componenti I e Q (rappresentazione complessa), risultante in un flusso di 8M campioni complessi al secondo sulla porta USB.
• Questo fornisce un’ampiezza di banda totale di 6MHz.ampiezza di banda totale di 6MHz.
• L’FPGA puo’ implementare fino a 4 up-convertitori e 4 down-contertitori: questo permette di estrarre 1, 2 o 4 canali contemporaneamente dal segnale RF fornito dalla daughterboard.
39
Flex radio SDR-1000
• Piattaforma HW/SW da interfacciare ad un PC
• SW proprietario su piattaforma Windows
• Supportata in GNURadio 2.0
Flex radio SDR-1000
40
Flex radio SDR-1000
Flex radio SDR-1000
• Banda 11KHz-65MHz general coverage receiver
• Il controllo dei parametri viene fatto attraverso la porta parallela
• A/D e D/A converter nella scheda audio
41
Flexcom SDR-3000
• Piattaforma HW/SW in standard cPCI (http://www.spectrumsignal.com/products/sdr/sdr_3000.asp)
• Famiglia di schede contenti FPGA, DSP, RF, ADC e DCA
• Parte SW proprietaria
• Supporta fino a 4 canali indipendenti, half o full duplex, tra 500KHz e 3GHz con una banda IF fino a 16MHz
Flexcom SDR-3000
42
Flexcom SDR-3300: RF
• 4 ADC 14bit@80MHz• 4 DAC 14bit@160MHz
Flexcom SDR-3350: RF
• 2 ADC AD9430 12bit@200MHz• 2 ADC AD9755 14bit@200MHz
43
Flexcom SDR-3100: FPGA
Flexcom SDR-3500: GPP (powerpc g4)
44
Flexcom SDR-8310: DSP (TMS320C64x)
La vostra piattaforma
• Potete progettare e costruire la vostra piattaforma software defined radio su componenti commerciali
Top Related