Università degli Studi di Bologna Elaborazione Elettronica dei Segnali Digitali Prof. Giorgio Baccarani Esercitazione Ing. Stefano Vitali Tel: 051 2093772 [email protected] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 1 Il corso di Eleborazione Elettronica dei Segnali Digitali si propone di illustrare le metodologie di trattamento dei segnali digitali nei moderni sistemi elettronici operanti in tempo reale, con particolare riferimento ai sistemi di telecomunicazioni, di automazione industriale e, più in generale, ai sistemi di elaborazione digitale dell’informazione. Le esercitazioni contenute in queste slides si propongono di integrare il corso con esperienze pratiche di implementazione degli algoritmi di signal processing su un DSP (Digital Signal Processor) di Texas Instruments a disposizione nel laboratorio. Le esercitazioni avranno una parte teorica in cui si apprenderanno le nozioni sull’architettura e gli strumenti di creazione del software del DSP e una parte pratica che prevede l’utilizzo del DSP per realizzare progetti di signal processing riguardanti algoritmi applicati alle telecomunicazioni. Sulla pagina web delle esercitazioni del corso (si accede dalla pagina personale del prof. Baccarani) si possono trovare tutte le slides e il link ai manuali del DSP. 1 Obiettivi Utilizzare una scheda hardware ed alcuni tools software per progettare ed eseguire programmi software per il DSP TMS320C6711 di Texas Instruments Gli strumenti a disposizione sono: 1. DSP Starter Kit (DSK) 2. Code Composer Studio (CCS) 3. Strumenti di laboratorio (generatore di funzioni, oscilloscopio) 4. MATLAB Ci saranno esempi teorici numerati (es: ASM1, ASM2 per l’assembler) ed esempi pratici chiamati LAB# Elaborazione Elettronica dei Segnali Digitali - Esercitazione 2 Lo starter kit è una scheda prodotta da Texas Instruments su cui è montato il DSP e che interfaccia lo stesso DSP con diverse periferiche e memorie. La scheda consente un rapido collegamento al PC per la programmazione del DSP. Il software da caricare ed eseguire sul DSP viene prodotto utilizzando un programma sempre di Texas Instruments chiamato Code Composer Studio. Sulla scheda, il DSP è interfacciato ad un codec audio tramite le porte seriali del processore ed il codec è interfacciato con il mondo esterno attraverso due jack audio (uno di ingresso ed uno di uscita) presenti sulla scheda. Il codec sarà molto utilizzato nel corso delle esercitazioni collegando ai jack un generatore di funzioni ed un oscilloscopio. Sarà utilizzato anche Matlab per produrre i coefficienti dei filtri digitali che si implementeranno e per altri calcoli. 2 Indice prima parte Architettura del DSP e struttura del DSK Ambiente di sviluppo Assembler Strumenti Matlab Esempio di FIR Elaborazione Elettronica dei Segnali Digitali - Esercitazione 3 Entro le prime quattro settimane si dovrà essere in grado di far eseguire al DSP programmi completi in Linear Assembler. Per far questo si comincerà con una panoramica sulla struttura interna del chip del DSP e sull’architettura della scheda, poi si darà uno sguardo abbastanza approfondito al software di sviluppo del codice per il DSP ed in seguito all’assembler del DSP stesso; infine si vedranno alcuni strumenti in Matlab utili per creare velocemente alcuni esempi di codice come i filtri FIR. La prova intermedia consiste nell’implementazione di alcuni algoritmi su DSP di non elevata difficoltà. 3 Indice seconda parte Programmazione ed uso del codec Modulazione/Demodulazione AM e FM Generazione di sequenze binarie Segnali PAM Modulazione/Demodulazione QAM Esempi di filtri con l’analizzatore di spettro PROGETTO FINALE Elaborazione Elettronica dei Segnali Digitali - Esercitazione 4 La seconda parte delle esercitazioni consiste in tutta una serie di argomenti teorici legati ad algoritmi per telecomunicazioni utili per lo svolgimento del progetto finale. 4 Perché i DSP INTRODUZIONE L’elaborazione analogica si serve ad esempio di: resistenze, induttanze e capacità ma le tolleranze, la temperatura, le variazioni di tensione e le vibrazioni meccaniche possono fortemente influenzare le prestazioni effettive dei circuiti analogici. L’elaborazione digitale fornisce prestazioni esattamente predicibili ed è ormai così potente che a volte è molto difficile, se non impossibile, per i circuiti analogici raggiungere le stesse prestazioni. Elaborazione Elettronica dei Segnali Digitali - Esercitazione 5 La “predicibilità” si raggiunge non solo per il fatto che il DSP esegue un algoritmo specifico e noto ma anche studiando gli errori numerici legati alla rappresentazione binaria interna dei segnali. 5 I DSP: processori di segnale x ADC Campionamento di un segnale analogico: DSP Y DAC Molti algoritmi per DSP si basano sulla somma di prodotti: A N Y = Σ i = 1 ai * xi t [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 6 - I DSP si utilizzano quando occorre elaborare digitalmente i segnali sfruttando un certo algoritmo. Per fare questo occorre innanzitutto rappresentare il segnale in ingresso in forma digitale attraverso un ADC e riconvertire il segnale elaborato dal DSP in forma analogica attraverso un DAC. - Poichè il segnale analogico in ingresso viene quantizzato e campionato, l’intervallo di tempo tra due campioni successivi rappresenta il tempo massimo in cui l’algoritmo deve essere eseguito dal DSP; altrimenti il segnale in uscita non è corretto perchè alcuni campioni in uscita sono prelevati prima che il DSP abbia terminato di calcolarli (mancato rispetto della condizione di elaborazione in realtime). - La maggior parte degli algoritmi contiene un elemento fondamentale: la somma di prodotti. In queste esercitazioni vedremo come implementare algoritmi legati al mondo delle telecomunicazioni attraverso il DSP di Texas Instruments scelto. 6 DSP e GPP I DSP (Digital Signal Processors) sono CPU progettate appositamente per svolgere calcoli (somme e prodotti). I DSP si utilizzano quando è importante: • Ridurre il costo • Ridurre le dimensioni • Ridurre il consumo di potenza • Elaborare in real-time i segnali I GPP (General-Purpose Processors) si utilizzano quando occorrono: • Quantità grandi di memoria • Sistemi operativi complessi Elaborazione Elettronica dei Segnali Digitali - Esercitazione 7 I GPP soprattutto non sono progettati per eseguire algoritmi nel rispetto della condizione di elaborazione in real-time. 7 Alcuni vantaggi e svantaggi dei DSP I segnali in alta frequenza non possono essere elaborati in digitale per due ragioni: 1. I convertitori A/D non possono campionare troppo in fretta 2. L’applicazione può essere facilmente troppo complessa per poter essere elaborata in real-time Con i DSP diventa molto semplice cambiare, correggere e aggiornare le applicazioni I DSP inoltre consentono di ridurre la sensibilità al rumore, il numero di chip, il tempo di sviluppo, il costo e il consumo di potenza Elaborazione Elettronica dei Segnali Digitali - Esercitazione 8 Allo stato attuale, campionare ed elaborare segnali a frequenze troppo elevate (molti Ms/s o addirittura Gs/s) comporta consumi di potenza spropositati. Avere la possibilità di gestire direttamente in digitale segnali a frequenze molto alte a costi accettabili implicherebbe un passo avanti fondamentale nelle prestazioni e capacità dei sistemi di telecomunicazione. 8 Considerazioni a livello di sistema Interfacciamento Performance Potenza Dimensioni Facilità d’uso • Programmazione • Interfacciamento • Debugging Costi • Costo di dispositivo • Costo di sistema • Costo di sviluppo • Time to market Integrazione • Memoria • Periferiche [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 9 Il DSP e le sue periferiche costituiscono un sistema molto complesso che però deve funzionare nell’ambito di stringenti specifiche in termini di tempo di elaborazione e trattamento dei segnali. A livello di sistema dunque vi sono molti aspetti da considerare: •Performance: l’elaborazione real-time dei segnali è la specifica più importante per questi sistemi e deve essere sempre rispettata qualunque sia la complessità dell’algoritmo eseguito; •Interfacciamento: in base al tipo di applicazione, il DSP deve poter scambiare segnali con una varietà di oggetti esterni (computer, sensori/attuatori, codecs) e deve essere perciò opportunamente provvisto di periferiche in grado di interfacciarsi con tutti questi oggetti; •Dimensioni: il sistema finale, specialmente per le moderne applicazioni portatili, può imporre limitazioni sulle dimensioni del sistema ed i DSP ben si prestano a soddisfare questa esigenza; •Facilità d’uso: gli strumenti messi a disposizione per lo sviluppo di applicazioni basate su DSP oggi sono sistemi integrati di editing/debugging che consentono un rapidissimo sviluppo e collaudo del programma che implementa un certo algoritmo; questi strumenti poi portano con sé pezzi di codice già pronti per svolgere tutte quelle attività legate alla programmazione dell’hardware. Le periferiche del DSP sono facili da configurare (registri mappati in memoria) e possiedono moltissime modalità di funzionamento per permettere di interfacciare al processore qualsiasi tipo di sistema esterno; •Costi: nella scelta del DSP più adatto alla propria applicazione, sicuramente il costo rappresenta un parametro fondamentale. Vi sono diversi tipi di DSP in commercio appositamente progettati per applicazioni diverse e perciò con più o meno dotazioni hardware che comportano maggiori o minori costi di sviluppo e di sistema; •Integrazione: anche l’integrazione di più o meno periferiche o l’architettura della memoria nello stesso chip della CPU è fortemente legato all’applicazione specifica (o alla classe di applicazioni) e vi sono numerose possibilità in commercio. 9 Attuali applicazioni dei DSP Wireless / Cellular Voice-band audio RF codecs Voltage regulation Consumer Audio Stereo A/D, D/A PLL Mixers HDD PRML read channel MR pre-amp Servo control SCSI tranceivers DSP: Technology Enabler Multimedia Stereo audio Imaging Graphics palette Voltage regulation Automotive Digital radio A/D/A Active suspension Voltage regulation DTAD Speech synthesizer Mixed-signal processor [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 10 Dall’audio digitale alle applicazioni multimediali, alla sintesi vocale, alle applicazioni nel campo automotive, ai controllori per hard disks, alle telecomunicazioni wireless, i DSP hanno contribuito in maniera fondamentale allo sviluppo di sistemi portatili piccoli ma potenti in grado di svolgere complesse funzioni con un ridotto consumo di potenza. 10 La famiglia TMS320 di Texas Instruments Nella famiglia di DSP TMS320 ci sono diverse classi di processori che servono per differenti tipi di applicazioni C2000 Basso costo Sistemi di controllo Controllo motori Memorie di massa Sistemi di controllo digitali C5000 C6000 Efficienza Migliore MIPS per Watt / Dollar / Size Telefoni wireless Internet audio players Telecamere digitali Modems Telefonia VoIP Performance e facilità d’uso Applicazioni multicanale e multifunzione Comm Infrastructure Wireless Base-stations DSL Imaging Multi-media Servers Video [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 11 In base alle considerazioni svolte nelle due precedenti slides, riassumiamo qui le soluzioni che Texas Instruments offre oggi per le applicazioni fin qui presentate. In particolare la famiglia di DSP TMS320 raccoglie una grande varietà di DSP in virgola fissa e in virgola mobile adatti per applicazioni molto diverse tra loro. Il DSP che utilizzeremo appartiene alla classe C6000. 11 La classe C6000 della famiglia TMS320 Software Compatible Performance Floating Floating Point Point Multi-core Multi Multi-core ™ DSP C64x DSP C64x™ 1.1 1.1 GHz GHz 2nd Generation (Fixed Point) ™ DSP C64x C64x™ DSP General Purpose 1st Generation C6414 C6414 ce t es m a n h g H i rf o r Pe C6415 C6415 C6411 C6411 C6203 C6204 C6202 C62x™ C6713 C6205 C6201 C67x™ C6211 C6701 C6712 C6711 [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione C6416 C6416 3G Wireless Media Gateway Infrastructure FixedFixed-point FloatingFloating-point Time 12 Stabilita la famiglia e la classe di DSP (C6000) che sarà utilizzata in questa esercitazione, in questa slide c’è un riassunto delle caratteristiche dei DSP di questa classe. Il grafico rappresenta i vari DSP della classe prodotti nel tempo la cui altezza è proporzionale alle prestazioni di ciascun membro della classe. Tutti i DSP prodotti consentono una compatibilità all’indietro con il codice delle versioni precedenti. 12 Fixed-Point e Floating-Point ¾ È richiesto un processore floating-point quando serve: • Elevata precisione • Ampio range dinamico • Elevato rapporto segnale/rumore • facilità di utilizzo ¾ Le limitazioni nell’uso di DSP floating-point sono: • Elevato consumo di potenza • Minore velocità • Costo e area maggiori Elaborazione Elettronica dei Segnali Digitali - Esercitazione 13 L’utilizzo della virgola mobile comporta vantaggi e svantaggi. Per realizzare filtri digitali ad esempio non è di norma conveniente utilizzare calcoli in virgola mobile perché i coefficienti possono efficacemente essere rappresentati con numeri interi. - La possibilità di rappresentare i numeri reali attraverso una mantissa ed un esponente rende la precisione della rappresentazione molto elevata (pari al più piccolo numero rappresentabile) e rende il range dinamico molto ampio (pari al più grande numero rappresentabile). - La precisione ed il range dinamico offrono poi un elevato rapporto segnale/rumore. I circuiti che occorrono per svolgere calcoli in virgola mobile sono molto più complessi perché devono gestire operazioni come la normalizzazione dell’esponente ed il calcolo separato della mantissa e dello stesso esponente; questo comporta un maggiore consumo di potenza, un maggiore tempo di elaborazione ed un maggiore consumo di area sul chip. 13 DSP general purpose e ASIC I circuiti integrati per applicazioni specifiche (ASIC) sono progettati per eseguire certe particolari funzioni al massimo delle prestazioni possibili. Vantaggi ASIC • • • • • • Svantaggi ASIC Elevato throughput • Elevato costo di sviluppo Area minima • Minore flessibilità Basso consumo di potenza • Elevati tempi di progetto Maggiore affidabilità Riduzione del rumore di sistema Costo produttivo minore [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 14 In questa slide, per completezza è riportato un confronto tra DSP e dispositivi ASIC. 14 Le operazioni fondamentali: Somme di Prodotti La somma di prodotti (SOP: Sum Of Products) è l’elemento chiave in molti algoritmi per DSP Algorithm Equation M Finite Impulse Response Filter y ( n) = ∑a k x(n − k ) k x ( n − k )+ k =0 M Infinite Impulse Response Filter ∑a y ( n) = N k =0 ∑b k y (n − k ) k =1 N Convolution y ( n) = ∑ x ( k ) h( n − k ) k =0 N −1 Discrete Fourier Transform X (k ) = ∑ x(n) exp[− j(2π / N )nk ] n=0 Discrete Cosine Transform F (u ) = N −1 π ∑ c(u). f ( x). cos 2 N u(2 x + 1) x =0 [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 15 Come già anticipato, la somma di prodotti è tra le operazioni maggiormente utilizzate dagli algoritmi. Nella slide ci sono alcuni esempi. Tutti i DSP possiedono soluzioni hardware/firmware specifiche per svolgere il nucleo fondamentale di questa operazione detto MAC (Multiply and ACcumulate) che consiste in una moltiplicazione e la successiva accumulazione del risultato. 15 Esempio di prodotto I DSP sono ottimizzati per fare somme e moltiplicazioni Le somme e le moltiplicazioni sono di norma svolte in hardware e in un solo ciclo Hardware 1011 x 1110 10011010 Microcode 1011 x 1110 0000 1011. 1011.. 1011... 10011010 Cycle Cycle Cycle Cycle Cycle 1 2 3 4 5 [Fonte: Texas Instruments] Elaborazione Elettronica dei Segnali Digitali - Esercitazione 16 Proprio perché la somma di prodotti è molto sfruttata nei calcoli eseguiti dal DSP, le architetture delle CPU devono prevedere moltiplicatori realizzati in hardware in maniera da ottimizzare le prestazioni del sistema. La slide mostra schematicamente il confronto tra una moltiplicazione svolta in hardware ed una svolta via software. 16 Il DSK Il DSP Starter Kit è una scheda che interfaccia il DSP con alcune periferiche. Sulla scheda si trova: • DSP a 150MHz • Porta parallela per l’interfacciamento con il PC • Codec a 16 bit • 16Mb di memoria SDRAM esterna e 128kb di memoria flash • 3 Switch e 3 LED a disposizione • Connettori di espansione della scheda (memoria e periferiche) • Generatore del clock, PLL e timers Elaborazione Elettronica dei Segnali Digitali - Esercitazione [Fonte: Texas Instruments] 17 Il DSP ha integrate nel chip diverse periferiche come porte seriali, bus esterni, DMA che vengono poi sfruttate a livello di scheda per interfacciarsi con altri dispositivi esterni. Il particolare starter kit a disposizione consente all’utente di interfacciarsi alla scheda attraverso un connettore di espansione ed un codec audio. 17 Il software di controllo CCS (Code Composer Studio) è l’ambiente software integrato di Texas Instruments per il progetto e il debugging delle applicazioni per il DSP. Con questo potente pacchetto è possibile: • Scrivere codice C e assembler attraverso il text editor • Compilare, linkare e caricare il codice con l’aiuto di sofisticati strumenti di ottimizzazione • Programmare via codice l’hardware attraverso un esteso insieme di librerie fornite da Texas Instruments • Utilizzare un sistema operativo programmabile graficamente per la gestione ad eventi dell’attività del DSP • Seguire l’esecuzione del codice con il debugger real-time e misurarne le prestazioni Elaborazione Elettronica dei Segnali Digitali - Esercitazione 18 CCS è un pacchetto software molto sofisticato e per questo, nel seguito, impareremo ad utilizzare solo alcune delle innumerevoli caratteristiche offerte. 18