ricevitore digitale per hf
Transcript
ricevitore digitale per hf
2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 RICEVITORE DIGITALE PER HF SANDRO TOGNANA, IW3GZQ Via A.Guidi n°1, 35125 Padova [email protected] oppure [email protected] Rev. 0 Pagina 1 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 1. INTRODUZIONE La progettazione di un ricevitore completamente digitale era un’idea che avevo da tempo, anche se non mi ero mai spinto a tentarne la realizzazione pratica, intravedendo difficoltà enormi. Oggi, la disponibilità di componentistica dedicata e la maggior esperienza nel campo dei processori DSP, hanno permesso, con un discreto impegno di tempo, la realizzazione di un primo prototipo di ricevitore digitale. Dal momento che tutte, o quasi, le funzioni del ricevitore dipendono dal software, si può intuire quale possa essere la sua flessibilità, che permette la sperimentazione di moltissime combinazioni di banda passante e/o schema di demodulazione. Le difficoltà di costruzione sono limitate alla saldatura dei componenti SMD, non essendo richiesta nessuna taratura o allineamento degli stadi di IF, che sono realizzati in modo digitale con la tecnica della decimazione. Questo ricevitore si presta in modo particolare ad essere utilizzato come porzione finale (frequenza intermedia e demodulatore) di un ricevitore supereterodina, preceduto da stadi preselettori e mixer tradizionali. La banda passante particolarmente elevata del convertitore analogico digitale utilizzato, permetterebbe l’impiego di una frequenza di prima conversione molto alta, ad esempio di 70 MHz, utilizzando il metodo del sottocampionamento (ricevitore “super Nyquist”). Pur essendo queste tecniche molto diffuse in ambito professionale, nel campo radioamatoriale gli esempi di realizzazioni di questo tipo si contano sulla punta delle dita: questo ricevitore può costituire un ottimo punto di partenza per la sperimentazione e l’acquisizione di nuove esperienze. 2. SCHEMA A BLOCCHI Lo schema a blocchi del ricevitore digitale e’ riportato in figura 1. Il segnale proveniente dall’antenna viene limitato alla banda 0…20 MHz per mezzo di un filtro passa basso, amplificato per mezzo di uno stadio a larga banda, ulteriormente filtrato ed inviato ad un convertitore analogico digitale. AD9632 PB AD6640 PB ADC AD6620 decimator e ADSP2184 DSP AD1858 DAC DATI o AUDIO ADUC812 µP PC Figura 1. Schema a blocchi del ricevitore digitale. Rev. 0 Pagina 2 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Il segnale numerico così ottenuto viene elaborato da un chip decimatore che provvede ad effettuare, in forma numerica, la traslazione di frequenza e la selezione del canale richiesto tramite tre stadi in cascata di filtri numerici decimatori. I dati relativi alla porzione di spettro desiderata vengono inviati ad un processore DSP, che provvede a demodulare, filtrare ed effettuare altre elaborazioni sul segnale: solo a questo punto, infine, i campioni numerici vengono inviati ad un convertitore digitale analogico e quindi all’altoparlante. 3. STADIO D’INGRESSO 3.1 FILTRO ANTIALIAS La banda d’ingresso del ricevitore deve essere limitata utilizzando un filtro passa basso che assicuri una sufficiente attenuazione per frequenze superiori alla frequenza di Nyquist (pari a metà della frequenza di campionamento) per evitare che queste ultime compaiano in banda per aliasing. La frequenza di campionamento è pari a 50 MHz e la frequenza di taglio del filtro d’ingresso è stata limitata a soli 20 MHz, anziché 25 MHz, assicurando, in questo modo, un margine di sicurezza maggiore sull’aliasing. Il filtro, progettato e realizzato da IV3NWV (Nicolangelo Palermo) e IW3MUR (Cesare) è stato realizzato con componenti SMD su circuito stampato doppia faccia con spessore 0.8 mm, di dimensioni 30 x 12 mm. In figura 2 si possono vedere le caratteristiche del filtro, mentre in appendice A sono riportati lo schema elettrico e lo sbroglio del circuito stampato. Figura 2. Caratteristiche del filtro d’ingresso (antialias) progettato e realizzato da IV3NWV e da IW3MUR. Rev. 0 Pagina 3 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 3.2 PREAMPLIFICATORE D’INGRESSO La scelta del preamplificatore da utilizzare in questo tipo di applicazione (larga banda ed elevata dinamica) è critica: le caratteristiche del circuito devono essere tali da non pregiudicare in nessun modo le prestazioni del convertitore A/D che segue. La scelta è caduta sull’AD9632, componente appositamente progettato per svolgere la funzione di amplificatore pilota per convertitori A/D ad alta velocità. Le caratteristiche salienti del componente sono [2]: - larghezza di banda (4 Vpp): bassissima distorsione (SFDR): - basso rumore: alimentazione: assorbimento: 180 MHz -113 dBc a 1 MHz -72 dBc a 20 MHz 7 nV/√Hz da ± 3 V a ± 5 V 17 mA Lo schema elettrico, riportato in appendice B insieme allo sbroglio del circuito stampato, è molto semplice: si tratta, infatti, di uno stadio in configurazione invertente, con amplificazione pari a 10 volte (+20 dB in tensione). L’amplificatore è stato realizzato su un circuito stampato a doppia faccia di dimensioni ridotte (30 x 40 mm) ed inscatolato in un box di alluminio (75 x 52 mm) dotato di connettori BNC per l’ingresso e l’uscita del segnale (vedi foto 3). Tutti i componenti (tranne l’AD9632) sono del tipo a montaggio superficiale, ed, anche in questo caso, un intero lato del circuito stampato è dedicato esclusivamente al piano di massa; nello stesso contenitore trova posto anche il filtro passa basso d’ingresso. Questo stadio richiede per l’alimentazione una tensione duale di ± 5 V. In figura 3 è riportato l’andamento della IP3 nel caso di guadagno unitario che, come si può vedere, sono ottime e raggiungibili con maggior difficoltà nel caso si ricorresse ad una soluzione a componenti discreti. Figura 3. Preamplificatore: andamento dell’intercetta del terzo ordine (IP3) in funzione della frequenza ( G = +1 ). Sotto i 20 MHz supera i +45 dBm ! Rev. 0 Pagina 4 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 4. SCHEDA “RF” (Digital Tuner) La scheda chiamata “RF” comprende i seguenti componenti: convertitore A/D, decimatore e microcontrollore. 4.1. CONVERTITORE A/D La scelta del convertitore analogico digitale (ADC) è determinante ai fini delle prestazioni del ricevitore digitale: da questo componente dipendono la cifra di rumore, la dinamica e la banda di copertura del ricevitore. Sul mercato si possono trovare ADC con prestazioni di tutto rispetto, funzionanti con frequenze di clock maggiori di 100 MHz e quantizzazione fino a 14 bit, rendendo possibile la realizzazione di un ricevitore con copertura continua da 0 a 20-30 MHz senza bisogno di conversioni di frequenza (ricevitore a conversione diretta). Al momento in cui ho iniziato la progettazione di questo ricevitore (Novembre 1999), le prestazioni massime dell’ADC che potevo acquistare ad un prezzo ragionevole erano limitate ad una frequenza di clock di 65 MHz ed una precisione di 12 bit: la scelta è caduta sull’ AD6640 (Analog Devices) [1]. La frequenza di clock utilizzata per realizzare il prototipo del ricevitore digitale è stata limitata a soli 50 MHz, per diversi motivi: - mancanza di esperienza nell’impiego di ADC veloci. maggiore semplicità di realizzazione del circuito stampato1. minor dissipazione di potenza. minor livello di rumore digitale causato dai picchi di assorbimento di corrente durante le commutazioni dei dati in uscita dal convertitore. Figura 4. Relazione temporale tra segnale di clock e dati in uscita: il segnale DRY non è disponibile sul convertitore AD6640 e deve essere costruito ritardando il segnale di ENCODE. Un primo problema incontrato è costituito dal fatto che il convertitore prescelto non mette a disposizione un segnale di fine conversione2: spetta all’utilizzatore generare un ritardo sul segnale di ENCODE di quel tanto che basta per sincronizzare la lettura dei dati in uscita. 1 2 Per semplificare lo stampato ho deciso di utilizzare un oscillatore TTL integrato: all’epoca, l’oscillatore a frequenza più elevata che sono riuscito a reperire era, per l’appunto, a 50 MHz. I convertitori dell’ultima generazione (AD6644, 14 bit, 65 MSPS), non solo hanno un segnale di fine conversione, ma anche un segnale di overflow, utile per la realizzazione di un algoritmo di AGC efficiente. Rev. 0 Pagina 5 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Il ritardo sul clock viene ottenuto con una porta AND della famiglia LVQ (74LVQ00), che possiede un ritardo di propagazione di circa 9 ns3, che sommati al ritardo introdotto dalla cella RC utilizzata per il disaccoppiamento dell’oscillatore (vedi C23 e R18+R19 di appendice D) , danno i 15 ns richiesti (vedi figura 4). Utilizzando la massima frequenza di clock ammessa dal decimatore, pari a 65 MHz, bisognerebbe probabilmente utilizzare porte AND più veloci, con ritardi di propagazione di circa 3-3.5 ns e collegarne due o più in serie sino ad ottenere il ritardo richiesto. Le porte AND andranno, naturalmente, scelte tra quelle che ammettono il funzionamento ad una tensione di 3.3 V. La generazione di una corretta temporizzazione è un punto assai critico del progetto e necessita sicuramente di qualche prova in più per testarne la ripetibilità. Il circuito stampato del prototipo ha subito il maggior numero di modifiche proprio in questa sezione. Nei data-sheet del convertitore AD è consigliata l’interposizione di uno stadio latch tra il convertitore stesso ed il decimatore, dato il ridottissimo fan-out dello stadio di uscita. Questa soluzione è stata scartata per l’eccessiva complessità introdotta: lo sbroglio del circuito stampato è, infatti, un punto che deve essere valutato con estrema attenzione. L’ideale sarebbe poter ricorrere a CS multistrato, riservando un piano per le masse, un piano per le due alimentazioni ed uno o due piani per le piste di segnale, ma, per ovvi motivi, la realizzazione di CS “casalinghi” obbliga alla classica “doppia faccia”. La regola alla quale è stata data la massima priorità durante lo sbroglio del CS è stata utilizzare un lato per i segnali e riservare l’altro lato esclusivamente per il piano di massa, come suggerito in [8], mantenendo lo sbroglio il più possibile complanare. Come si può osservare dallo schema elettrico in appendice C, in serie a ciascuna uscita digitale sono state inserite delle resistenze da 330 ohm. Queste resistenze hanno il duplice scopo di: - - adattare l’impedenza d’uscita del convertitore all’impedenza caratteristica delle piste del CS, limitando le sovraelongazioni (oscillazioni) in corrispondenza dei fronti di salita e discesa dei segnali (vedi figure 5 e 7) limitare il picco di corrente richiesto per la commutazione delle capacità parassite e, di conseguenza, ridurre il rumore sulla linea di alimentazione4. Figura 5. Clock a 50 MHz; a) all’uscita dall’oscillatore e b) all’ingresso dell’AD6620, dopo la resistenza da 330 ohm di adattamento dell’impedenza: i livelli logici sono stati perfettamente ripristinati. 3 Il tempo tra il fronte di salita di ENCODE ed i dati validi in uscita va da 8.5 a 12.5 ns. I dati in uscita vengono mantenuti validi per altri 8 ns. Il ritardo su ENCODE puo quindi variare tra 12.5 ns e 20.5 ns . 4 Per avere un’idea dell’entità del problema, si supponga che ciascuna uscita del ADC (gate CMOS), insieme alla pista del CS abbia una capacità parassita di circa 10 pF; essendo lo slew rate dell’uscita pari ad 1V/ns, si calcola facilmente che, ogni volta che l’uscita cambia stato, è necessaria una corrente di 10 mA (10 pF x 1V / 1 ns) per la commutazione della capacità parassita di una uscita. Con un convertitore a 12 bit, la corrente totale ad ogni commutazione è pari a circa 120 mA! Rev. 0 Pagina 6 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Il convertitore AD6640 possiede un piedino riservato all’alimentazione dello stadio d’uscita digitale: in questo modo è possibile interfacciare direttamente il convertitore, che funziona a 5 V, con il decimatore, che funziona a 3.3V, semplicemente alimentando lo stadio d’uscita del convertitore con la tensione minore. Un ulteriore vantaggio offerto dalla alimentazione separata dello stadio d’uscita deriva dal fatto che le correnti di commutazione delle uscite rimangono confinate tra il pin di alimentazione dei buffer d’uscita e massa: filtrando opportunamente l’alimentazione e sbrogliando con cura il circuito stampato, si evita l’accoppiamento del rumore digitale con l’ingresso analogico del convertitore ([1] e [8]). Figura 6. Ritardo tra il segnale di ENCODE ed il fronte di salita del clock dell’AD6620 (decimatore). dX = 15 ns Gli ingressi di segnale e di clock dell’ADC sono entrambi di tipo differenziale, per migliorare le prestazioni nei confronti del rumore di modo comune. Sia per il clock che per il segnale d’ingresso è stato utilizzato un trasformatore a larga banda realizzato avvolgendo due spire trifilari su un binoculare di ferrite. Le caratteristiche del convertitore A/D (AD6640) possono essere così riassunte: - alimentazione: +5 V (core) e +3.3 V (stadio d’uscita) dissipazione: 710 mW massima frequenza di campionamento: 65 MSPS uscita: parallela a 12 bit in complemento 2 track-and-hold e reference: incluse nel chip rapporto segnale rumore: 68 dB spurious free dynamic range (SFDR): 80 dB (su 25 MHz di banda) impedenza d’ingresso: 900÷1000 ohm larghezza di banda dell’ingresso: 300 MHz massima ampiezza del segnale d’ingresso (fondo scala): 2 Vpp Come si può notare, la banda passante dell’ingresso arriva a 300 MHz, rendendo possibile l’impiego di questo convertitore anche a frequenze superiori alla frequenza di Nyquist (metà della frequenza di campionamento) sfruttando il fenomeno dell’aliasing. Naturalmente, all’aumentare del rapporto di sottocampionamento, diviene sempre più importante il jitter sul segnale di clock, tanto che, già a 70-100 MHz, le prestazioni dal punto di vista dello SFDR e del rumore iniziano a scendere (vedi [1]), ed è necessario utilizzare un oscillatore appositamente progettato per avere jitter particolarmente basso. Rev. 0 Pagina 7 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Nel caso di questa realizzazione, il clock viene generato da un oscillatore integrato alla frequenza di 50 MHz. Il segnale ottenuto, a livello logico TTL, viene disaccoppiato in AC e limitato per mezzo di una resistenza da 100 ohm, quindi applicato al primario di un trasformatore a larga banda che provvede a trasformarlo in segnale differenziale per pilotare il convertitore A/D. Lo stesso segnale TTL viene contemporaneamente applicato ad una porta AND (un 74LVQ00 alimentato a 3.3 V) per essere traslato ad un livello compatibile con gli stadi successivi e per essere ritardato. (dalle misure sul prototipo, come si vede in figura 6, il ritardo complessivo e’ di 15 ns). Come già detto sopra, anche il segnale d’ingresso, proveniente dal preamplificatore, è accoppiato al convertitore per mezzo di un trasformatore a larga banda, allo scopo di a) b) Figura 7. Segnale relativo al bit 0 ( LSB ) a) come esce dal convertitore e b) dopo l’adattamento di impedenza e limitazione della corrente (misure non contemporanee). adattare l’impedenza e trasformare il segnale in differenziale. L’impedenza d’ingresso del convertitore è di circa 900 ÷ 1000 ohm e per portarla a 50 ohm sarebbe necessario un trasformatore con rapporto di 20:1 (rapporto spire = 4.47:1). Come suggerito dai data-sheet, si preferisce però utilizzare un trasformatore con rapporto più basso (4:1, rapporto spire = 2:1) e forzare l’impedenza d’ingresso del convertitore ad un valore inferiore (200 ohm) con una resistenza in parallelo al secondario. Il fondoscala del convertitore si raggiunge con una tensione di 2 Vpp, che su 200 ohm corrispondono a + 4dBm: al primario del trasformatore, sui 50 ohm, + 4 dBm corrispondono a 1 Vpp. Se consideriamo che il preamplificatore introduce + 20 dB di guadagno, ed i due filtri antialias al massimo introducono 1.7 dB ciascuno di attenuazione (a 21 MHz, cfr. marker n. 2 di Figura 2), si calcola che è necessario un segnale pari a +4 – 20 + 1.7 + 1.7 = –12.6 dBm su 50 ohm (148 mVpp) per portare a fondoscala il convertitore. In presenza di una antenna trasmittente nelle immediate vicinanze è possibile saturare il convertitore: disporre di un segnale di overflow permetterebbe di disinserire automaticamente il preamplificatore o introdurre un attenuatore, cosa che, in questo ricevitore deve essere fatta manualmente. 4.2. DECIMATORE E’ il componente più importante di tutto il sistema: ad esso il compito di effettuare la conversione di frequenza per mezzo di un oscillatore numerico e di ottenere la selettività di canale per mezzo di tre stadi successivi di filtri numerici decimatori. Quasi tutti i maggiori costruttori di componenti elettronici, attratte dal remunerativo mercato della telefonia cellulare, hanno ormai tra i loro prodotti un integrato decimatorecanalizzatore con caratteristiche appropriate alla realizzazione di una radio digitale; tra Rev. 0 Pagina 8 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 queste, le più note sono HARRIS (HSP50016, HSP50216), ANALOG DEVICES (AD6620 e AD6624), NATIONAL (CLC5902) e GRAYCHIP (GC4016): il solo, tra questi, reperibile con facilità anche in piccola campionatura è l’AD6620, che quindi è stato utilizzato in questa realizzazione; in figura 8 è riportato lo schema a blocchi di questo componente: [3] Figura 8. Schema a blocchi del tuner digitale AD6620. Il primo stadio, composto da un moltiplicatore digitale e da un oscillatore numerico (NCO), trasla lo spettro del segnale d’ingresso in banda base, secondo il tipico schema del ricevitore in quadratura (figura 9). I due segnali in fase ed in quadratura, indicati con I e Q, vengono poi filtrati da due filtri decimatori (denominati CIC2 e CIC5 in figura 8), a coefficienti fissi, che riducono la frequenza di campionamento di un fattore programmabile da 2 a 16 e da 1 a 32 rispettivamente. X(f) -fo fo I(f) f jQ(f) -fo -fo Figura 9. fo f Traslazione di frequenza ottenuta tramite moltiplicazione per la portante complessa x(t)= e Rev. 0 fo −2πjf0 t . Pagina 9 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Questi due stadi devono funzionare a frequenze di clock molto elevate e sono quindi realizzati con strutture hardware molto semplici, utilizzando l’architettura CIC (Cascaded Integrator Comb ) ovvero la combinazione di un filtro integratore, un filtro derivatore ed un decimatore (Figura 10). integratore derivatore Figura 10. Possibile rappresentazione di un filtro decimatore CIC. La risposta in frequenza di un filtro di questo tipo dipende dall’ordine dell’integratore e del derivatore, nonché dal fattore di decimazione: in figura 11 sono riportate le risposte calcolate per alcune combinazioni dei due parametri. I filtri decimatori rimuovono le porzioni di spettro non desiderate (e quindi anche il rumore) dal canale di interesse; quando la larghezza di banda del canale di interesse è minore della banda del segnale d'ingresso, la riduzione del rumore fuori banda ottenuta per mezzo del filtraggio e successiva riduzione della frequenza del campionamento prende il nome di “process gain”. Nel caso di questo ricevitore, il fattore di decimazione complessivo è pari a 2048, (la frequenza di campionamento passa da 50 MHz a circa 24 KHz), ottenendo un miglioramento nel rapporto segnale rumore di 10 * log10(50e6/24417) = +33 dB5. 0 0 -20 -20 -40 -40 -60 -60 -80 -80 -100 0 0.1 0.2 0.3 es.: CIC2 N=4 -- -- 0.4 0.5 N = 10 -1000 0.1 0.2 0.3 es.: CIC5 N=4 -- 0.4 0.5 N = 10 -- Figura 11. Risposte in frequenza di filtri decimatori CIC di ordine 2 e 5, per fattori di decimazione di 4 e 10. L’asse x è normalizzato rispetto alla frequenza di campionamento. Il terzo stadio ha la struttura di un filtro FIR a coefficienti programmabili (massimo 256) e fattore di decimazione programmabile tra 1 e 32. La distribuzione dei fattori di decimazione tra i tre stadi ed i valori dei coefficienti dello stadio RCF sono stati calcolati usando un software apposito6: stabiliti il fattore di decimazione complessivo, la frequenza di campionamento, la banda passante e l’attenuazione minima fuori banda, questo software analizza tutte le possibili combinazioni dei fattori di decimazione, fornendo tutte le soluzioni che soddisfano le specifiche. I coefficienti del filtro RCF (troncati a 20 bit) così calcolati sono poi inseriti nella flash del microcontrollore (solo 128, ovvero metà dei 256 coefficienti, dato che il filtro è simmetrico, 5 Il rapporto segnale rumore del convertitore A/D a 12 bit è pari a 68 dB: grazie al process gain, il rapporto segnale rumore dopo gli stadi filtri decimatori diviene 68 + 33 = 101 dB Rev. 0 Pagina 10 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 risparmiando 512 bytes di flash) e scritti nella RAM del 6620 durante la fase dell’inizializzazione. Le specifiche scelte per il prototipo realizzato sono le seguenti: - frequenza di campionamento: fattore di decimazione complessivo: banda passante (-6 dB): attenuazione minima fuori dalla banda passante: banda del filtro anti alias : 50 MHz 2048 4 kHz almeno 100 dB 0…20 MHz La soluzione che soddisfa queste specifiche prevede i fattori di decimazione così distribuiti: CIC2: 16 CIC5: 32 RCF: 4 La risposta in frequenza complessiva del canale IF digitale è riportata in figura 12. Figura 12. Schermata finale del software per il progetto del filtro digitale: nel riquadro a destra in alto, la risposta in frequenza del filtro utilizzato nel prototipo. L’AD6620 è in grado di fornire i dati in uscita sia in formato parallelo che in formato seriale. La scelta, per questa realizzazione, è caduta sul formato seriale per diversi motivi: a) Drastica semplificazione del circuito stampato: sono sufficienti 4 piste per connettere il decimatore al DSP, al posto delle 18 necessarie utilizzando il formato parallelo. b) Il segnale di clock relativo ai dati in uscita ha una frequenza pari a 6.25 MHz (50e6/8), utile, come vedremo più avanti, per il funzionamento del convertitore D/A. c) Semplicità di interfacciamento con il DSP, che è in grado di gestire in “hardware” il bus seriale sincrono multicanale. Un aspetto che ha richiesto diverso tempo per essere messo a punto è proprio la massima semplificazione della trasmissione seriale dei dati tra decimatore, DSP e DAC audio, al fine di ridurre al minimo l’hardware aggiuntivo. 6 Scricabile dal sito www.analog.com Rev. 0 Pagina 11 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Il segnale TFS (Transmit Frame Sync) segnala l’inizio di un burst composto da 32 bit: i primi 16 bit sono relativi al canale I, gli altri 16 bit riguardano il canale Q (vedi figura 14a ). L’interfaccia seriale SPORT0 del DSP è programmata in modalità “multichannel”, con una lunghezza di parola di 8 bit e 32 parole per frame. Solo le prime 4 parole sono però marcate come valide, le altre 28 vengono ignorate. Figura 13. Clock seriale in uscita dal decimatore, di frequenza pari a 50 MHz / 8 = 6.25 MHz In questo modo, sfruttando la capacità di autobuffering, il DSP genera un’interruzione quando la ricezione di 4 parole da 8 bit viene completata; all’ingresso nella routine di gestione dell’interruzione (ISR), ci si ritrova nel buffer di ricezione i due campioni I e Q, suddivisi in parte alta e parte bassa, ciascuna da 8 bit: utilizzando due operazioni di SHIFT e due operazioni di OR si ricostruiscono i 16 bit originari: sr0=dm(RxBuff+1); si=dm(RxBuff); sr=sr or lshift si by 8 (lo); ax0=sr0; { componente I 8 bit bassi } { componente I 8 bit alti } { 16 bit ricostruiti } { memorizza In nel registro AX0 } sr0=dm(RxBuff+3); si=dm(RxBuff+2); sr=sr or lshift si by 8 (lo); ax1=sr0; { componente Q 8 bit bassi } { componente Q 8 bit alti } { 16 bit ricostruiti } { memorizza Qn nel registro AX1 } Questa leggera complicazione ha come vantaggio il fatto che per ogni coppia di campioni a 16 bit sono necessari 256 impulsi di clock (8 bit * 32 parole = 256): lo stesso clock seriale può quindi essere utilizzato come master clock per il DAC audio, di tipo sigmadelta, che richiede proprio un clock 256 volte maggiore rispetto al rate dei campioni in ingresso (vedi [4]). Il DAC audio, dotato di due canali, richiede due dati per ciclo, uno relativo al canale destro ed uno relativo al canale sinistro: la trasmissione dei campioni verso il DAC deve avvenire ad un tasso doppio rispetto alla frequenza dei campioni in arrivo dal decimatore ed ogni campione deve essere accompagnato da un impulso di TFS (vedi figura 14b). Il problema è stato risolto utilizzando la seconda seriale sincrona del DSP, chiamata SPORT1. Al pin SCLK1 viene portato lo stesso clock seriale proveniente dal decimatore; il pin di TFS1 è connesso al pin di RFS1 (Receive Frame Sync.): il segnale RFS1 viene generato dal DSP a partire dal clock seriale, impostando il divisore a 128 (metà di 256 !!); l’autobuffer è stato abilitato in trasmissione, predisponendo un buffer circolare di lunghezza due (Left e Right). In questo modo, ogni 128 impulsi di clock viene generato un impulso di RFS1, che provoca un impulso di TFS1 e la conseguente trasmissione dei 16 bit relativi al canale destro e sinistro alternativamente, dal momento che il buffer di trasmissione ha lunghezza Rev. 0 Pagina 12 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 due. I dati contenuti nel buffer di trasmissione vengono aggiornati dalla ISR di ricezione ogni 256 impulsi di clock. La frequenza del clock seriale del decimatore deve pertanto essere 256 volte maggiore della frequenza di aggiornamento dei dati d’uscita. Riassumendo, valgono le seguenti relazioni: Frequenza di campionamento = 50 MHz Decimazione = 2048 Fattore di divisione per il clock seriale del decimatore = 8 (vedi ingressi SDIV di AD6620) Frequenza clock seriale = 50'000’000 / 8 = 6'250'000 Hz Frequenza master clock DAC = 6'250'000 Hz Frequenza clock SPORT0 = 6'250'000 Hz Frequenza clock SPORT1 = 6'250'000 Hz Frequenza campioni I e Q (su RFS0) = 50'000'000 / 2048 = 24'414 Hz Frequenza campioni L + R (su TFS1) = 48'818 KHz L’unica restrizione che nasce usando questa configurazione è che il valore della decimazione deve contenere i fattori 256 e 8 perché deve poter essere divisibile per entrambi questi numeri (2048 = 256 * 8 * 1). Naturalmente, sono possibili altre combinazioni, ad esempio usando un fattore di divisione del clock seriale diverso, tale da assicurare comunque la banda passante richiesta7. La completa programmabilità, sia a livello di software che hardware, danno la massima a) b) Figura 14. a) Impulso di TFS proveniente dal decimatore e burst di 16+16 bit dei canali I e Q in ingresso alla SPORT0 e b) impulsi di TFS e dati a 16 bit relativi al canale destro e sinistro in ingresso al DAC generati dalla SPORT1. flessibilità al progetto, permettendo la sperimentazione di moltissime combinazioni, adatte ai più disparati schemi di modulazione/demodulazione. Va ulteriormente sottolineato, a conferma della estrema flessibilità del circuito, che la configurazione esposta rappresenta solamente una delle possibili scelte. Per fare un esempio, il DAC potrebbe essere programmato per funzionare con un clock 384 volte (vedi [4]) maggiore del data rate: si potrebbe allora semplificare la routine di IRQ impostando la lunghezza di parola a 16 bit e la lunghezza del frame seriale a 24. In questo modo un frame viene completato in 24 * 16 = 384 cicli di clock, durante i quali vengono trasmessi al DSP i due campioni a 16 bit I e Q. 7 Usando, ad esempio, un fattore di divisione di 10 (SDIV = 5), si dovrebbe impiegare una decimazione di 2560, ottenedo una banda passante massima di 9765.6 Hz Rev. 0 Pagina 13 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Programmando il fattore RFSDIV a 192, il DAC audio riceve due impulsi di TFS (e quindi i due campioni relativi al canale destro e sinistro) per ogni frame I e Q del decimatore. Il fattore di decimazione complessivo ora dovrà essere multiplo di 384 e di SDIV; imponendo una banda passante minima di 10 kHz, si ottiene: 50e6/384/20e3 = 6.51. Arrotondando SDIV a 6, si ha: Decimazione = 384*6 = 2304 Fattore di divisione per il clock seriale del decimatore (SDIV) = 6 Frequenza clock seriale = 50'000’000 / 6 = 8'333'333 Hz Frequenza master clock DAC = 8'333’333 Hz Frequenza clock SPORT0 = 8'333’333 Hz Frequenza clock SPORT1 = 8'333’333 Hz Frequenza campioni I e Q (su RFS0) = 50'000'000 / 2304 = 21'701 Hz Frequenza campioni L + R (su TFS1) = 43'402 kHz Naturalmente andranno ricalcolati i coefficienti dello stadio RCF utilizzando il nuovo fattore di decimazione, il buffer di ricezione avrà lunghezza due, dovranno essere marcati valide solamente le prime due word del frame seriale e non saranno più necessarie le operazioni di “shift” ed “or” per ricostruire i campioni I e Q a 16 bit. 4.3. MICROCONTROLLORE Il microcontrollore utilizzato è un ADuC812 di Analog Devices [6], scelto unicamente perché già in mio possesso, compresi gli strumenti per lo sviluppo del software (compilatore C) e da me già utilizzato per applicazioni professionali. Questo microcontrollore è basato sull’8052, un micro molto diffuso in ambiente industriale e per il quale esiste una vasta letteratura e disponibilità di tools di sviluppo. Per la scrittura del codice è stato utilizzato un compilatore C in versione dimostrativa, anche questa disponibile gratuitamente sul web8. La versione demo del compilatore non permette il debug di codice più lungo di 2K e non comprende la libreria per l’aritmetica a virgola mobile, ma si è rivelata più che sufficiente allo scopo; l’efficienza del codice generato è veramente molto buona. Il microcontrollore è equipaggiato con 8K di memoria programma di tipo FLASH, una interfaccia seriale asincrona (RS232) ed una sincrona (I2C o SPI), timers, due DAC a 12 bit (non usati), 8 canali AD a 12 bit (non usati), 256 bytes di RAM e 640 bytes di E2PROM (utili per memorizzare parametri ed impostazioni in maniera non volatile). Il contenitore è un LQFP a 52 pin, caratteristica che riduce l’ingombro e, a mio avviso, semplifica la costruzione del circuito stampato doppia faccia (ci risparmia l’esecuzione e l’allineamento di 52 fori!). Questo componente può, tuttavia, essere tranquillamente sostituito con un microcontrollore qualsiasi della famiglia 8052 senza nemmeno ricompilare il codice sorgente, in quanto non sono state utilizzate le caratteristiche particolari dell’ADuC812. Una grossa comodità, offerta oramai da quasi tutti i microcontrollori moderni, è la possibilità di riprogrammare la memoria flash “in-circuit”, utilizzando l’interfaccia seriale asincrona (RS232) ed un semplice programma di download dal PC. Il compito principale del microcontrollore è quello di inizializzare il tuner digitale (AD6620) programmando i fattori di attenuazione, la decimazione, i coefficienti del filtro RCF e la modalità di funzionamento: la fase di inizializzazione deve necessariamente avvenire 8 www.keil.com Rev. 0 Pagina 14 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 tramite una porta di I/O parallela (chiamata “micro-port”, vedi [3]), non essendo possibile eseguirla tramite porta seriale9. Per mezzo di un semplice protocollo di comunicazione tra microcontrollore e PC, attraverso l’interfaccia seriale, è possibile modificare una serie di parametri che influenzano il funzionamento del decimatore, come ad esempio: - la frequenza di ricezione l’attivazione del “phase dither” o dell’ ”amplitude dither” i valori dei fattori di attenuazione degli stadi CIC2, CIC5 ed RCF Un ulteriore insieme di comandi è riservato al controllo delle funzioni del DSP, permettendo di attivare o meno determinati algoritmi ed impostarne i parametri di funzionamento. Diverse porte di I/O del microcontrollore rimangono inutilizzate e potrebbero essere utili, ad esempio, per pilotare un display LCD, per gestire una tastiera ed un encoder per la sintonia eliminando, in questo modo, la necessità di utilizzare un PC per pilotare il ricevitore. 5. SCHEDA “BF” (DSP) La scheda “BF” comprende i seguenti componenti: il DSP, la eprom contenente il programma per il DSP, il DAC audio ed uno stadio buffer ad operazionale per abbassare l’impedenza d’uscita ad un livello sufficiente a pilotare i due altoparlanti. 5.1 DSP Il DSP usato è l’ADSP 2184, processore con architettura a 16 bit, aritmetica a virgola fissa e capace di funzionare ad una frequenza di clock di 40 MHz. Questo componente è dotato di 20 K bytes di RAM interna, suddivisa in 4 K words (a 24 bit) per lo spazio programma e 4 K words (a 16 bit) per lo spazio dati. E’ il più piccolo e meno costoso della famiglia 218x, “pin to pin” compatibile con i fratelli maggiori. Per poter funzionare, richiede solamente una EPROM esterna, dalla quale, al momento del boot, viene letto il programma e trasferito nella RAM interna. Il DSP è dotato di una serie di periferiche molto utili, alcune delle quali sono (vedi [5]): - due interfacce seriali sincrone con capacità di autobuffering e multichannel (solo una delle due) un timer una porta di I/O programmabile bidirezionale ad 8 bit ulteriori pin di I/O monodirezionali (FLAGS) canali di DMA verso la EPROM e/o verso l’eventuale RAM esterna porta dedicata alla connessione multiprocessore Le due porte seriali sincrone sono state impiegate per la gestione dei dati in ingresso (dal decimatore) ed in uscita (verso il DAC audio). La porta di I/O è parzialmente utilizzata per comunicare con il microcontrollore, tramite un protocollo seriale sincrono (del tipo SPI) gestito da software. 9 Con la futura disponibilità dell’AD6624, evoluzione dell’AD6620, sarà possibile eseguire l’inizializzazione del decimatore direttamente dal DSP tramite la porta seriale, riducendo in modo significativo l’occupazione di memoria del microcontrollore. Rev. 0 Pagina 15 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Tre uscite (FLAG0, 1 e 2) pilotano altrettanti LED, utili per il debug del codice ed altre indicazioni di funzionamento. Il programma, dopo una prima fase di inizializzazioni, entra in un loop di attesa comandi: nel caso in cui la routine di interrupt segnali un flag di ricezione comando, viene eseguito il codice relativo per poi tornare al loop principale. Esistono due Interrupt Service Routines (ISR), la prima dedicata alla ricezione ed elaborazione dei campioni provenienti dal decimatore, la seconda alla comunicazione con il microcontrollore. Il flusso dati nella routine di ricezione può essere schematizzato come segue: a) ricostruzione dei due campioni I e Q a 16 bit a partire dai 4 byte del buffer di ricezione. b) a seconda del tipo di demodulazione da effettuare: AM: Calcolo del modulo a(t)=√(I2+Q2) e successivo filtraggio, con banda passante di 4 kHz SSB: Filtraggio e sfasamento dei campioni relativi ai segnali I e Q tramite una coppia di filtri “omologhi”. I filtri SSB hanno banda passante di 2400 Hz. c) calcolo del valore di picco del segnale per l’algoritmo di IF-AGC. d) aggiornamento del valore di IF-AGC, intervenendo sui fattori di attenuazione del decimatore con passi di 6 dB (se IF-AGC abilitato) e) aggiornamento dell’algoritmo di AGC audio, per una regolazione fine del livello del segnale in uscita, con un range di 32 dB (se AGC audio abilitato) f) se abilitato, filtraggio tramite filtro adattativo per la riduzione del rumore ed aggiornamento dei coefficienti secondo un algoritmo LMS10. g) se abilitato, filtraggio tramite filtro notch automatico ([17] e [19]) ed aggiornamento dei coefficienti con algoritmo LMS. h) se abilitato, filtraggio attraverso un filtro stretto centrato a 1000 Hz, con 500 Hz di banda passante. (filtro CW) i) aggiornamento del buffer di trasmissione (DAC audio) 20 0 -20 -40 -60 -80 -100 0 5000 10000 15000 Figura 15. Risposta in frequenza (modulo) dei filtri “omologhi” utilizzati per la demodulazione SSB e CW. Quelli che al punto b) ho chiamato “filtri omologhi” non sono altro che una coppia di filtri con struttura FIR, composti da 127 taps11, aventi risposta in frequenza uguale come 10 Least Mean Squares, conosciuto anche come metodo del gradiente, vedi [16], [17], [18] e [19]. Rev. 0 Pagina 16 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 modulo ma diversa come fase: il primo non introduce nessuno sfasamento se non il ritardo di gruppo (filtro con risposta reale) mentre il secondo sfasa il segnale di 90° (filtro di Hilbert, con risposta immaginaria pura). Questi due filtri sono stati progettati utilizzando l’algoritmo “REMEZ” descritto in [15]. In figura 15 è riportato l’andamento del modulo della risposta in frequenza dei due filtri: in banda passante le risposte sono perfettamente sovrapponibili; in figura 16 si possono, invece, vedere le due risposte impulsive, in a) del filtro di Hilbert (risposta impulsiva “dispari”) ed in b) del filtro reale (risposta impulsiva “pari”). 0.2 0.2 0.15 0.1 0.1 0.05 0 0 -0.1 -0.05 -0.2 0 20 40 60 80 100 120 -0.1 0 140 20 40 60 80 100 120 140 b) a) Risposta impulsiva dei due filtri ”omologhi”: in a) il filtro di Hilbert ( ∆ ϕ = 90° ), in b) il filtro reale ( ∆ϕ = 0° ). Figura 16. L’algoritmo di demodulazione SSB consiste semplicemente nel sommare (caso USB) o sottrarre (caso LSB) i campioni corrispondenti all’uscita dai filtri omologhi: in figura 17 è illustrato, nel dominio della frequenza, quello che succede per la USB. La demodulazione AM si ottiene, invece, calcolando il modulo del vettore che ha per componenti i campioni In e Qn, utilizzando la formula an = √(I2n + Q2n), approssimata utilizzando l’espansione in serie di Taylor ([29] e [30]). Trasformata di Hilbert: H(f) = -j sgn(f) jQ(f) Qh( f) -fo fo I(f) -fo Figura 17. 11 f f U(f)=Qh(f)+I(f) fo f Esempio di demodulazione USB utilizzando il metodo a sfasamento. In un filtro FIR, un “tap” corrisponde ad una coppia di una cella di memoria della linea di ritardo ed un coefficiente numerico. Rev. 0 Pagina 17 2nd Convention “Digital & Radio Communications” IF-AGC abilitato ? no Stella di Renon, 30 settembre – 1 ottobre 2000 uscita si M = abs(audio) Md = media mobile (filtro FIR decimatore) Md > soglia_H ? si no T decay = 0 ? si aumenta attenuazione di 6dB reinizializza T decay si diminuisci attenuazione di 6dB reinizializza T attack no decrementa T decay Md < soglia_L ? no si T attack = 0 ? no decrementa T attack uscita Figura 18. Diagramma di flusso dell’algoritmo di IF-AGC. L’algoritmo di IF-AGC va ad agire sui fattori di attenuazione dei filtri decimatori, che costituiscono il canale di frequenza intermedia digitale. L’obiettivo di questo stadio è evitare che i filtri decimatori possano saturare: purtroppo, nell’hardware del decimatore, non è stato previsto nessun circuito hardware che possa fornire l’indicazione dell’overflow di uno dei tre stadi, né l’indicazione che il convertitore A/D stesso sia in condizioni di saturazione. Per questo motivo, si è costretti a lavorare con un largo margine, prossimo al 50% del fondoscala, in modo da permettere momentanei ed ampi sbalzi del segnale senza provocare overflow prima dell’intervento sui fattori di attenuazione del decimatore. In figura 18 è riportato il diagramma di flusso dell’algoritmo di IF_AGC; la presenza delle due soglie (“soglia H” e “soglia L”) introduce l’isteresi necessaria ad evitare il continuo intervento da parte della regolazione: personalmente non sono del tutto soddisfatto del funzionamento di questo controllo e ritengo debba essere migliorato12. 12 Componenti simili all’AD6620, ma di altri costruttori, dedicano molte risorse hardware alla realizzazione di un AGC efficiente. Cfr. [10] [11] [12] e [13] Rev. 0 Pagina 18 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 In Tabella 1 sono riportati i valori di attenuazione introdotta in funzione del valore della variabile utilizzata per rappresentare il livello di IF-AGC. Livello IF-AGC A CIC2 A CIC5 A RCF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 5 6 5 6 5 6 5 6 6 6 6 6 6 6 14 14 14 16 16 18 18 20 20 20 20 20 20 20 20 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 Guadagno/ Attenuazione +12 +6 0 -6 -12 -18 -24 -30 -36 -42 -48 -54 -60 -66 -72 Indicazione S-METER S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S9+6 S9+12 S9+18 S9+24 S9+30 Tabella 1. Valori di attenuazione introdotti dall’algoritmo di IF-AGC. La combinazione dei fattori di attenuazione ACIC2, ACIC5 ed ARCF, sono stati scelti in modo da massimizzare il rapporto segnale rumore, mantenendo il più basso possibile il valore dell’attenuazione del primo stadio. La risoluzione minima della regolazione è pari a circa 6 dB (shift a destra di un bit = divisione per due = 6.02 dB di attenuazione), pari anche alla risoluzione dell’indicazione dello S-METER. In corrispondenza di un intervento dell’algoritmo di IF-AGC, è udibile in altoparlante la variazione di intensità audio: a contrastare questo effetto è stato aggiunto un secondo anello di AGC, ottenuto moltiplicando il campione del segnale audio per una grandezza variabile (guadagno) con continuità tra 0.5 e 20, in modo da mantenere costante la potenza media del segnale d’uscita. Il valore del riferimento (indicato con ref. in figura 20) è impostabile da PC. 13 Componenti simili all’AD6620, ma di altri costruttori, dedicano molte risorse hardware alla realizzazione di un AGC efficiente. Cfr. [10] [11] [12] e [13] Rev. 0 Pagina 19 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 out in integratore decimatore Gain (0.5 … 20) integratore |x| ∫ ↓ z-1 - ref. Figura 20. + K Schema a blocchi dell’algoritmo di AGC audio. Lo schema a blocchi dell’algoritmo di AGC audio è riportato in figura 20 e, come si può vedere, è più complesso rispetto all’IF-AGC. Anche questa regolazione automatica, naturalmente, è attivabile o disattivabile a piacimento. La costante K di figura 20 determina la velocità delle fasi di salita e discesa dell’AGC: nel codice utilizzato nel ricevitore sono utilizzati due valori diversi, indicati Ka e Kd, in modo da ottenere una fase di salita molto rapida ed una fase di discesa più lenta. I valori delle due costanti, e quindi dei tempi di risposta dell’AGC, sono modificabili in qualunque istante utilizzando il programma di controllo da PC. Sono poi stati previsti due valori di default per il decay, ottimizzati per il CW (decay lento) e per la SSB e l’AM (decay più rapido). 5.2. CONVERTITORE D/A E STADIO DI USCITA L’ultimo stadio digitale del ricevitore è rappresentato dal convertitore D/A; la disponibilità di questo tipo di componenti è molto ampia e, anche in questo caso, i criteri utilizzati per la scelta sono stati, nell’ordine, la semplicità d’uso e la facile reperibilità. Il componente scelto è l’AD1858 [4], convertitore D/A di tipo sigma delta, a due canali a 16 bit, pilotabile da un clock 256 (o 384) volte superiore alla frequenza di campionamento e di costo estremamente basso. Come si vede dallo schema elettrico di appendice D, i componenti discreti richiesti da questo integrato sono praticamente limitati ai soli condensatori di disaccoppiamento delle alimentazioni. Il contenitore, in linea con quasi tutti gli altri componenti attivi e passivi della scheda, è a montaggio superficiale da 20 piedini. Il livello d’uscita è di 1 Vpp su 2000 ohm: il segnale all’uscita viene, pertanto, “bufferizzato” tramite un operazionale (AD8534, rail-to-rail a singola alimentazione [33]) in configurazione invertente, accoppiato in continua al D/A utilizzando la Vref fornita dal D/A stesso. L’amplificazione in tensione dello stadio buffer è di poco superiore a 1, per sfruttare tutta la dinamica del DAC (96 dB) e la banda passante viene limitata a 10 kHz per mezzo di un condensatore in parallelo alla resistenza di retroazione. Insieme al filtro passa basso d’ingresso ed alla capacità di elaborazione del DSP, questa è una delle pochissime limitazioni imposte alla banda passante dall’hardware del ricevitore. Il DAC, il DSP, la EPROM e l’operazionale d’uscita trovano posto su di una scheda formato EUROCARD, fissata con quattro distanziatori a torretta sopra alla scheda del tuner digitale, come si può vedere dalla foto 4 in appendice G. Rev. 0 Pagina 20 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 Anche in questo caso sono stati presi particolari accorgimenti nella realizzazione del circuito stampato: segnali digitali e analogici hanno piani di massa separati e sono confinati in zone dedicate del circuito stampato. Il piano di massa analogico si connette al piano di massa digitale in un unico punto, in prossimità del morsetto di alimentazione (punto ad impedenza più bassa), per mezzo di una impedenza di blocco tipo VK200. 6. SOFTWARE DI CONTROLLO PER PC In un primo momento la comunicazione tra PC ed il ricevitore era basata su una interfaccia a comandi “ASCII” leggibili in chiaro, del tipo “TNC2”, in modo da rendere possibile il controllo dei vari parametri utilizzando un semplice programma di terminale. In seguito, si è reso necessario codificare i comandi con un singolo byte binario, per ridurre l’ingombro del programma del microcontrollore: gli 8 K di flash a disposizione sono, nonostante questa modifica, quasi completamente utilizzati. Figura 21. Schermata del pannello di controllo del ricevitore digitale. In un secondo momento è stato scritto, utilizzando il linguaggio Visual Basic, un software di controllo per PC, visibile in figura 21, con il quale è possibile controllare agevolmente tutte le funzioni e le impostazioni dei parametri del ricevitore. Rev. 0 Pagina 21 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 7. CARATTERISTICHE DEL RICEVITORE Le caratteristiche del ricevitore digitale possono essere così riassunte: Alimentazione: 5 V, 600 mA -5 V, 8.5 mA Dinamica del convertitore A/D: 69 dB Rapporto segnale/rumore di quant.: 101 dB Frequenze operative: da 20 kHz a 20 MHz Demodulazioni: AM, USB, LSB, CW Banda passante: 2400 Hz 4000 Hz 500 Hz Selettività: fattore di forma del filtro IF: fattore di forma filtri AF: Sintonia: 1.16 1.2 1.18 1.3 (USB e LSB) (AM) (CW) (AM) (SSB) (CW) impulsi per giro del resolver: a passi di 1 Hz, 10 Hz o 100 Hz (da PC) a passi di 10 Hz tramite resolver a manopola 24 Stabilità in frequenza: ± 20 ppm Elaborazioni audio: - auto notch filter (programmabile) auto noise reduction (programmabile) controllo automatico del volume (programmabile) filtro stretto 500 Hz Dinamica AGC: - 84 dB a step di 6 dB (sul canale IF) 20 dB (preamplificatore RF) 36 dB (AF-AGC) Costanti di tempo AGC: completamente programmabili sia la fase di salita che di discesa. Indicatore di livello (s-meter): da S0 a S9+30, con risoluzione di 6 dB Purezza spettrale oscillatore locale: -100 dBc, utilizzando il phase dither (vedi [3]) Risposta Audio (preamplificatore audio): da 0 a 10 kHz Livello audio in uscita: Rev. 0 2 Vpp su 16 Ohm Pagina 22 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 8. OSSERVAZIONI E CONCLUSIONI Dato il carattere sperimentale di questa realizzazione, le possibili migliorie possono essere molte, a partire dai tre circuiti stampati, che possono essere sbrogliati in modo più “denso” ed essere unificati in un’unica scheda. Le caratteristiche del ricevitore possono essere migliorate utilizzando un preamplificatore a guadagno programmabile ed un attenuatore a scatti controllato dal microprocessore. La dinamica ed il rapporto segnale-rumore possono essere migliorati di circa 12 dB utilizzando un convertitore analogico digitale a 14 bit anziché 12, oggi disponibile fino alla frequenza di campionamento di 65 MHz. [7] Volendo utilizzare questo ricevitore come canale di media frequenza per realizzare un ricevitore supereterodina per frequenze più elevate, potrebbe essere utile implementare, nella sezione DSP, un algoritmo di demodulazione FM e/o demodulazioni numeriche. Dall’anno prossimo saranno disponibili, anche per campionature, nuovi circuiti integrati, con i quali, ad esempio, sarà possibile gestire contemporaneamente quattro canali IF contemporanei ed indipendenti, sia per frequenza che per banda passante, che per modo operativo, con la possibilità, tuttavia, di sincronizzare e combinare tra loro le quattro sorgenti, ottenendo prestazioni di selettività ancora migliori. Sarà possibile, inoltre, realizzare sulla stessa scheda la sezione trasmittente, anch’essa interamente digitale, senza aumentare troppo la complessità del circuito, dal momento che numerose risorse potranno essere condivise con la sezione ricevente. Infatti, la capacità della SPORT0 del DSP di gestire il protocollo seriale sincrono multicanale, è sfruttata attualmente solo per la ricezione dei due canali I e Q del decimatore: i restanti 30 slot sono quindi liberi e potrebbero essere impiegati per la connessione con altre periferiche, come, ad esempio, altri chip decimatori, uno o più chip interpolatori o un sintetizzatore (DDS) per la realizzazione della sezione trasmittente. I dati relativi alle prestazioni del ricevitore, riportati al paragrafo predente, derivano solo in parte da misure realmente effettuate sul prototipo, essendo, per la maggioranza derivate dai data-sheet; è doveroso, quindi, completare il lavoro con una accurata e completa caratterizzazione strumentale (vedi, ad es. [29]), per poter così confrontare in modo corretto, le prestazioni di questo ricevitore con le prestazioni dei ricevitori analogici tradizionali. Rev. 0 Pagina 23 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 A. SCHEMA ELETTRICO E CIRCUITO STAMPATO DEL FILTRO ANTI-ALIAS 1 2 3 4 D D C4 8p2 C7 8p2 J1 L1 470 N L2 470 N L3 470 N L4 470 N IN C1 150 P C C2 220 P C3 100 P C5 220 P C6 150 P C8 220 P C9 100 P J2 OUT C1 0150 P C B B Title A A 1 2 Date: File : Filtro Passa-Basso 22MHz (c) 1999, Microtelecom s.r.l. - Pavia di Udine, Drawn C:\LPF22M.DDB Italia 3 By: A 4 Disegno non in scala. Rev. 0 Pagina 24 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 B. SCHEMA ELETTRICO E CIRCUITO STAMPATO SCHEDA AMPLIFICATORE RF 1 2 3 4 D D R4 2K +5VNF +5V R2 221 JP1 U1 C R5 C? Port R3 50 Port 100 0.1 1 2 3 4 C? 0.1 C Power AD9632 R1 50 -5V -5VNF B B 5VNF +5V L1 VK200 C1 1nF C2 100nF -5VNF VK200 C3 10uF -5V L2 C4 1nF C5 100nF C6 10uF Title A Size A Number Revision A4 Date: File: 1 2 3 25-Aug-2000 C:\Documenti\Ampli.ddb Sheet of Drawn By: 4 Disegno non in scala Rev. 0 Pagina 25 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 C. SCHEMA ELETTRICO SCHEDA “RF” (Digital Tuner) 1 2 3 4 5 6 7 8 9 10 11 12 J1 1 6 2 7 3 8 4 9 5 C2 C7 C3 C8 D D RS232 FEMMINA +5VA P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 +5VA C1+ 2 1uF 3 4 5 1uF 7 C8 8 C7 T1IN T2OUT T2IN R2IN C3 12 R1OUT C2- C2 13 R1IN V- 6 14 T1OUT C2+ C36 1uF RESPACK5 R20 0.1 15 GND C1- C35 C9 16 VA V+ 1 2 3 4 5 6 7 8 1 C34 1uF 9 U3 C33 RxD 11 TxD 10 C7 0.1 9 R2OUT 1 JP1 MAX232 COMAND LATCH U9 3 A2 4 5 8 74LCX574 11 U10B 16 4 6 15 5 12 14 11 SN74LVQ00 13 13 SN74LVQ00 12 D2 Q3 D3 Q4 D4 Q5 D5 Q6 D6 Q7 D7 2 3 P0.1 4 P0.2 5 P0.3 6 P0.4 7 P0.5 8 P0.6 9 D8 CLK P0.0 P0.7 CMD CLK +5VA INTERFACCIA ADuC 812 (tutti livelli 0-5V) D4 4 3 2 1 D5 RESOLVER 330 37 38 23 39 40 D5 D4 D3 VSS D2 D1 VDD D0 DS DTAK R/W VSS MODE A2 A1 A0 D6 72 IN3 SDIV3 IN2 SDIV2 IN0 12 R22 330 6 C13 0.1 5 40 42 43 44 45 46 47 48 49 50 51 41 PSEN ALE P0.0 P0.1 P0.2 P0.3 DGND P0.4 P0.5 P0.6 DVdd EA DSP_data DSP_sck DISP_E DISP_RW DISP_RS 2 R31 U11 +5VA 1K LED +5VA SDI C14 0.1 INTERFACCIA DSP ADSP2184 C15 4u7 R26 SDO 330 SN74LCX32 U12C DVcc 9 8 10 R27 SDFS 330 70 SN74LCX32 69 68 DVcc 67 B 66 65 64 63 J7 SCLK SDO SDI SDFS 62 61 J3 60 59 58 57 P2.0 27 U5A SN74HC14 TxD 330 4 71 SDIV1 56 55 54 53 52 51 50 42 C P2.1 SN74LCX32 U12B R23 330 73 VSS 41 C8 0.1 P2.2 C6 0.1 SCLK R28 11 DVcc 76 NC VDD 1 2 3 4 +5VA DVcc P2.3 +5VA RxD R25 330 13 330 77 NC IN4 DVcc 28 C2 39pF SN74LCX32 U12D R42 74 NC IN5 3 22 21 20 19 18 17 16 15 14 13 12 CS IN6 IN1 29 C1 11.0952MHz 39pF U2A SN74HC14 1 1 SDIV0 36 VDD A/B out 35 AD VSS I/Q out 34 DVcc IN7 VDD 24 330 30 SDATA C30 0.01 75 WL0 DVout R15 330 31 P2.0 R2 100K R21 330 78 WL1 AD6620S PAR/SER R14 330 25 33 IN8 +5VA D7 2 SBM U7 IN9 XT1 32 D6 79 VSS IN10 RESET R13 330 26 32 330 VDD TRST R12 27 330 GND GND AVcc AVcc GND GND AVcc NC 28 31 TCK GND AVcc R11 30 TMS C1 11 C31 0.01 R10 29 29 TDO D0 30 28 TDI D1 Vref 330 VDD GND GND DVcc DVcc GND GND DVcc D9 D10 D2 AIN 330 R9 49 10 C10 0.1 C32 0.01 D3 AD6640AS AIN R8 31 48 9 R7 32 SYNC_NCO 8 T4-1T D4 GND 7 C11 0.1 D5 GND 33 SDFE 47 6 R3 220 ENCODE AVcc T1 B D6 SDFS IN11 46 5 D7 ENCODE SDO IN12 45 4 DVcc D8 DVcc AVcc D1 SOT2 J2 RF in U4 DVcc +5VA 33 ADUC812 JP2 D3 CMD CLK 80 VDD IN13 44 3 VSS 43 2 DVcc D11 1 400 GND T2 T4-1T R29 SDI Serial Port 0.1 GND C12 27 IN14 SYNC_CIC 26 34 35 36 37 38 39 40 41 42 43 44 25 SCLK SYNC_RCF 24 EXP0 EXP1 DVcc IN15 VSS R4 R5 R6 330 330 330 DVcc D7 CLK 23 P2.1 U12A EXP2 A/B 22 P2.2 P1.4 D2 P2.0 21 P2.3 DAC1 P1.6 R24 R30 10K 10K D1 DAC0 P1.5 13 D0 10 GND 12 P2.4 35 74LCX574 1 2 3 4 5 6 Q2 Q8 11 7 8 9 10 11 12 13 14 15 16 17 18 19 20 DVcc D1 P2.6 P2.5 SCLK 17 8 SN74LVQ00 U10D Q1 1 36 P2.6 26 18 U10C 9 OC 25 19 10 DATA LATCH VCC 24 U8 DVdd 20 23 GND 10 DENC 74LVQ00 22 OUT R34 330 R18 330 P1.7 3 2 0.1 7 14 1 1 NC 50 MHz XTAL1 2 C23 +5V 8 Vref 1 +5VA 14 C 9 XTAL2 P2.7 34 DVdd Cref P3.7 U10A 37 DGND AGND 7 P3.6 C3 0.1 38 P2.4 AVdd 6 C4 0.1 P3.5 C5 0.1 P2.5 P3.4 C27 4u7 RD P2.6 P1.2 P1.3 WR 10 R1 1000 39 P2.7 P1.1 DGND +5VA 21 P2.7 P1.0 2 A1 9 D8 GND U1 DVdd 1 A0 DVdd P2.6 8 +5VA CS 20 7 Monitor tensione Tuner RESET P3.3 P2.5 19 P2.4 6 P3.2 P2.3 5 D7 CLK P2.2 4 TxD 3 D6 Q8 11 P2.1 RxD D5 52 D4 Q5 Q7 12 R19 330 TXC1 D3 Q4 Q6 13 DVcc P2.0 D2 Q3 PRG. BOOT P2.6 2 RESET 14 VCC Q2 1 18 15 D1 17 16 OC Q1 16 17 VCC 15 18 DVcc 2 +5VA 19 P0.7 DVdd 20 RESET DVcc 8 7 6 5 1 2 3 4 5 6 7 8 9 10 DSP SDIV RESET DENC R38 10K R39 10K R40 10K R41 10K DVcc L2 VK200 C26 0.1 c16 100uF R32 2R2 A A U6 LM317 3 3.3 V Vin +Vout 2 DVcc C24 0.1 R16 330 C17 22uF 1 ADJ R44 220 DL2 LED R17 330 C25 0.1 Title Size Number Revision A1 Date: File: 1 Rev. 0 2 3 4 5 6 7 8 9 10 11 5-Aug-2000 Sheet of C:\Documenti\Protel\AD66RX\AD66rx.DDB Drawn By: 12 Pagina 26 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 D. SCHEMA ELETTRICO SCHEDA “BF” (DSP) +5V 3 +5V D17 J1 1 2 3 4 8 7 6 5 D18 BMS RD C18 0.1 SN74HC14 2 GND VCC VCC VPP JUMPER4 1 D1 R1 Fs=16.276KHz 4.1667MHz U3 1 2 3 4 5 6 7 8 9 10 SCLK0 RESET +5V +5AV U2B +5V 3 D2 R2 LEFT 1K BIAS LED U2C R3 100K R4 100K R5 100K 5 Mclk PD/RST Mode NC DEEMP 384/256 AVdd OutL AGND CMout 20 19 18 17 16 15 14 13 12 11 SDATA Bclk LRclk DVdd DGND Mute AVdd OutR AGND Filt C5 0.1 SCLK0 C6 10uF D +5AV RIGHT AD1858JRS C3 10uF C4 10uF C14 0.1 1K SN74HC14 AM27C010-200DC(32) +5V D3 R6 6 +5V 150 1K SN74HC14 4 150 R? DT1 LED LED +5V 100 A3 99 A2 98 A1 97 A0 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 D18 77 D17 76 D16 16 +5V C16 4u7 D8 D9 D10 D11 D12 D13 D14 D15 6 R? +5V 7 C2 0.1 D 13 14 15 17 18 19 20 21 30 A0 O0 A1 O1 A2 O2 A3 O3 A4 O4 A5 O5 A6 O6 A7 O7 A8 NC A9 A10 A11 A12 A13 A14 A15 A16 CE OE PGM GND C1 4u7 12 11 10 9 8 7 6 5 27 26 23 25 4 28 29 3 2 22 24 31 5 TFS1 U2A U1 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 D16 4 +5V 14 2 +5V 32 1 1 A6 A7 A8 A9 A10 A11 A12 A13 XI XO J3 +5VNF POWER 1 2 +5V RD BMS B X1 XI A4 A5 GND A6 A7 A8 A9 A10 A11 A12 A13 GND CLKIN XTAL VDD CLKOUT GND VDD WR RD BMS DMS PMS IOMS CMS XO C17 22pF comunicazione con ADuC812 IRQE MOSI MISO SCLK 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 D15 D14 D13 D12 +5AV L1 RESET SCLK0 TFS1 DT1 IRQ2 +5V C10 0.1 +5V C VK200 C11 0.1 C12 4u7 C13 4u7 J2 D11 D10 D9 C9 4u7 D8 SCLK0 DR0 1 2 3 4 5 6 7 8 9 10 RFS0 RESET C20 0.1 C25 R12 OUT RIGHT 16R DSP 100u U5 1 R7 C23 0.01 R9 2K +5V 10K R10 2K2 2 3 RIGHT 4 R8 5 LEFT 6 C24 0.01 modo slave (SCLK1=SCLK0) RFS1 generato internamente dividendo SCLK1 per 128 TFS1 esterno e connesso a RFS1 R11 2K2 7 +5AV R13 10K Out 1 Out 4 - In 1 - In 4 + In 1 + In 4 V+ V- + In 2 + In 3 - In 2 - In 3 Out 2 Out 3 14 13 B 12 11 10 BIAS 9 8 AD8534 J4 VK200 C26 100u R14 1 A 1 2 3 4 5 6 7 8 9 10 SCLK MISO MOSI IRQE 0.1 C27 4u7 C28 C29 4u7 C30 0.1 R15 16R OUT LEFT C31 RFS0 DR0 SCLK0 modo Slave Multichannel length = 24 words word length = 8 bit Ch usati: 0,1= campione I (8 + 8 = 16 bit) 2,3 = campione Q (8 + 8 = 16 bit) RFS generato dal 6620 ADuC812 F=50 MHz F=64 MHz decimazione = 3072 Fc=16276 Hz SDIV=6 (Fclk=4.1667 MHz) Fclk/256=16276 Hz decimazione = 3072 Fc = 20833 Hz SDIV = 6 (Fclk=5.3333 MHz) Fclk/256=20833 Hz R16 10K 100u A J5 OUTPUT OUT RIGHT OUT LEFT Fclk=Fs/(512*SDIV) Fs=clock AD6640 Fclk=data rate uscita decimazione=2*256*SDIV Title 1 2 Size 2 3 Number Revision B Date: File: 1 Rev. 0 L2 VK200 2K +5V L3 ADSP-2184 +5VNF D15 D14 D13 D12 GND D11 D10 D9 VDD GND D8 D7 D6 D5 D4 GND VDD D3 D2 D1 D0 BG EBG BR EBR 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 C15 16 MHz 22pF +5VNF 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 PF4 PF5 GND PF6 PF7 DT0 TFS0 RFS0 DR0 SCLK0 VDD DT1 TFS1 RFS1 DR1 GND SCLK1 ERESET RESET EMS EE ECLK ELOUT ELIN EINT A4 A5 A3 A2 A1 A0 PWDACK BGH MODE A MODE B GND PWD VDD MODE C PF3 FL0 FL1 FL2 D23 D22 D21 D20 GND D19 D18 D17 D16 U4 C 4 5 27-Aug-2000 C:\Documenti\Protel\AD66RX\AD66rx.DDB Sheet of Drawn By: 6 Pagina 27 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 E. CIRCUITO STAMPATO SCHEDA “RF” (Digital Tuner) lato componenti non in scala lato “saldature” non in scala. Rev. 0 Pagina 28 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 F. CIRCUITO STAMPATO SCHEDA “BF” (DSP) lato componenti non in scala lato “saldature” non in scala. Rev. 0 Pagina 29 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 G. FOTOGRAFIE foto 1 foto 2 foto 3 Rev. 0 foto 4 Pagina 30 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 H. BIBLIOGRAFIA [1.] AD6640, 12-Bit, 65 MSPS IF Sampling A/D Converter, Analog Devices Data Sheet, 1998 Rev.0 [2.] AD9631/AD9632 Ultralow Distortion, Wide Bandwidth Voltage Feedback Op Amps, Analog Devices, Design-in Reference Manual, 1994, pgg.324-328 [3.] AD6620, 65 MSPS Digital Receive Signal Processor, Analog Devices Data Sheet, 1998, Rev. 0 [4.] AD1857/AD1858, Stereo, Single Supply 16-, 18- and 20-Bit Sigma-Delta DACs, Analog Devices Data Sheet, 1997, Rev.0. [5.] ADSP-2184 DSP Microcomputer, Analog Devices Data Sheet, 1999, Rev.0. [6.] ADuC812 MicroConverter, Multichannel 12-Bit ADC with Embebbed FLASH MCU, Analog Devices Data Sheet, 1999, Rev. 0. [7.] AD6644, 14-Bit, 40 MSPS/65 MSPS A/D Converter, Analog Devices Data Sheet, 2000, Rev. 0 [8.] Grounding in High Speed Systems, Walt Kester, James Bryant, Analog Devices [9.] A Faster and Better ADC for the DDC-Based Receiver, Peter Traneus Anderson, KC1HR, QEX Sept/Oct 1998, pgg 30-32 [10.] CLC5902, Dual Digital Tuner/AGC, National Semiconductor Data Sheet, May 1999, Rev. 3.05 (http://www.national.com) [11.] GC4016 Multi-Standard Quad DDC Chip, GRAYCHIP Inc. Preliminary Data Sheet, Rev. 0.3, April 2000 [12.] HSP50016 Digital Down Converter, Intersil Inc. Data Sheet, February 1999, File Number 3288.6, (http://www.intersil.com) [13.] HSP50216 Four-Channel Programmable Digital DownConverter, Intersil Inc. Preliminary Data Sheet, February 2000, File No. 4557.2. [14.] An Introduction to Digital Filters, Intersil Inc. Application Note AN9603.2, January 1999. [15.] A Computer Program for Designing Optimum FIR Linear Phase Digital Filters, J.H. McClellan, T.W. Parks, L.R. Rabiner, IEEE Transaction on Audio and Electroacoustics, Vol. AU-21, No. 6, December 1973. [16.] Adaptive Noise Cancelling: Principles and Applications, B. Widrow, J. R. Glover, Proceedings of the IEEE, Vol. 63, NO. 12, December 1975 Rev. 0 Pagina 31 2nd Convention “Digital & Radio Communications” Stella di Renon, 30 settembre – 1 ottobre 2000 [17.] Digital Signal Processing, Principles, Algorithms and Applications, J.G. Proakis, D.G.Manolakis, Prentice Hall, 1996, Third Edition. ISBN 0 – 13 – 373762 – 4 [18.] A Simple Approach to Digital Signal Processing, C. Marven & G. Ewers, 1993, Texas Instruments. ISBN 0-904 047-00-8 [19.] Signals, Samples and Stuff: A DSP Tutorial (Part1 & Part 2), D.Smith, KF6DX/7, QEX Mar/Apr + May/June 1998 [20.] Digital Receiver Handbook, Rodger H. Hosking, N4RGI, Second Edition, 1998 Pentek Inc. (http://www.pentek.com) [21.] Designing a Super-Heterodyne Multi-Channel Digital Receiver, Brad Brannon, N4RGI, Analog Devices Inc. [22.] Designing a Superetherodyne Receiver Using an IF Sampling Diversity Chipset, Brad Brannon, N4RGI, Analog Devices Application Note AN-502. [23.] Basics of Designing a Digital Radio Receiver (Radio 101), Brad Brannon, N4RGI, Analog Devices Inc. [24.] Architecture of Data Converters, James M. Bryant, http://www.analog.com [25.] Performace Specifications for Amateur Receivers of the Future, Ulrich Graf, DK4SX, QEX May/June 1999, pp. 43-49. [26.] An All-Digital Automatic Gain Control, A. Lovrich, R. Chirayil, Texas Instruments, Application Report: SPRA081 [27.] A Different Weaver of SSB Receiver, P. T. Andersons, KC1HR, QEX September 1993, pp. 3-7. [28.] A Weaver Method SSB Modulator Using DSP, C.M. Puig, KJ6ST, QEX September 1993, pp. 8-13. [29.] Using The Low-Cost, High Performance ADSP-21065L Digital Signal Processor For Digital Audio Applications, J. Tomarakos, D. Ledger, Analog Devices, Rev. 1.0 – 12/4/1998 [30.] Digital Signal Processing Applications, Volume 1, Prentice Hall, ISBN 0-13219726-X, 1992, Analog Devices. [31.] Digital Signal Processing Applications, Volume 2, Prentice Hall, ISBN 0-13178567-2, 1995, Analog Devices. [32.] ADSP-2100 Family User’s Manual, Prentice Hall, ISBN 0-13-006958-2, 1994, Analog Devices. [33.] AD8531/AD8532/AD8534, Low Cost, 250 mA Output, Single Supply Amplifiers, Analog Devices Data-sheet, 1999, Rev. B. Rev. 0 Pagina 32