La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Convertitore Analogico / Digitale

Presentazioni simili


Presentazione sul tema: "Convertitore Analogico / Digitale"— Transcript della presentazione:

1 Convertitore Analogico / Digitale
Output VREF LSB= VREF/2N 111 N bit-ADC b0 110 Vin ~ b1 101 100 bN 011 ENCODE 010 001 000 Vin ~ VT1 VT2 VT3 VT4 VT5 VT6 VT7 VREF ENCODE b(N:0) LSB = risoluzione del convertitore < 0.1 % risoluzione < (VREF /100)*  LSB < VREF/1000 VREF/2N < VREF/  2N >  N >= 10 40 ns

2 Media Mobile ECOSCAN Media mobile su 4 campioni => M(K) = S i=0..3 S(K+i)/4 M(0) = [S(0) + S(1) + S(2) + S(3)] /4 M(1) = [S(1) + S(2) + S(3) + S(4)] /4 M(2) = [S(1) + S(2) + S(3) + S(4)] /4 M(65535) = [S(65535) + S(65536) + S(65537) + S(65538)]/4 Valore max. possibile della somma campioni = 1023(10 bit)*4 = 4092 rappresentabile con 12 bit (e’ la dimensione dei sommatori) Il risultato M(i) e’ ancora a 10 bit (i bit MSB della somma dei campioni)

3 Sommatori 12 bit R(11:0) = S1(10:0) + S2(10:0) 4 bit adder tpd =10 ns
Cin Cout 4 bit adder tpd =10 ns A(3:0) C(3:0) B(3:0) R(11:0) = S1(10:0) + S2(10:0) Cin Cout Cin Cout Cin Cout 0,S1(10:8) S1(3:0) A(3:0) S1(7:4) A(3:0) A(3:0) R(3:0) R(7:4) R(11:8) C(3:0) C(3:0) C(3:0) 0,S2(10:8) S2(3:0) B(3:0) S2(7:4) B(3:0) B(3:0) S1(10:0) A(10:0) 12 bit adder tpd =30 ns C(11:0) R(11:0) S2(10:0) B(10:0)

4 ECOSCAN - Read Only Memory
ROM 1K*16 ADD(9:0) DATA(15:0) OE* CE* CE* OE* ADD(9:0) A Alta impedenza Alta impedenza DATO(A) DATA(15:0) Tempo accesso = 70 ns

5 ECOSCAN - Random Access Memory
RAM 64K*16 ADD(15:0) DATA(15:0) WE* OE* CE* CE* OE* WE* ADD(9:0) A DATO(A) DATA(15:0) Tempo scrittura = 25 ns

6 ECOSCAN Memory Mapping
Spazio di indirizzamento PD32 (byte) Locazio ne 0x Spazio memoria programma PD32 Affinche’ il PD32 acceda in lettura la RAM interna ECOSCAN deve “tradurre” gli indirizzi del MAB PD32 in indirizzi validi per la RAM interna Locazio ne 0x MAB(31:2) => ADD(15:0) 0x x0000 0x x0001 0x2000FFFF 0xFFFF ECOSCAN internal RAM (256 Kbytes) Locazio ne 0x8003FFFF Poiche’ l’accesso e’ permesso solo a longword(32 bit) posso trascurare il valore dei segnali Mb(3:0) Locazio ne 0xFFFFFFFF

7 Architettura progetto ECOSCAN
Memoria PD32 PD32 ECOSCAN MDB RAM 64Kx16 ROM 1Kx16 ADC 10 bit Vin ~ MAB MCB 20Mhz Clk I/ODB I/OCB

8 Blocchi funzionali unita’ ECOSCAN
PIPELINE - conversione segnale analogico (20 Mhz) - calcolo media mobile - calcolo logaritmo RAM INTERFACE - gestione segnali RAM interna (ADD,DATA,WE*,OE*,CS*) PD32 INTERFACE - decodifica “memory mapping” in lettura (MAB,MWR) - produzione segnale inizio acquisizione (SCANREQ*) - generazione IVN durante la fase di richiesta interrupt SCO - gestione timing acquisizione (SCANREQ*) - generazione address e segnali di controllo per scritture valori calcolati - gestione dei segnali di clock - gestione Interrupt Request (IRQ*,IACK)

9 Protocollo ECOSCAN PD32 ECOSCAN
1) Generazione via software del segnale di inizio acquisizione: OUTB S,0xFF 2) Generazione segnale inizio acquisizione SCANREQ* 3) Processamento campioni (uno ogni 50 ns): - Conversione A/D - Calcolo media mobile - Calcolo logaritmo - Scrittura in memoria 4) Invia un Interrupt al PD32 dopo scritture 5) Serve la richiesta di interruzione 6) Puo’ accedere ai dati in memoria ECOSCAN

10 ECOSCAN Schema a blocchi funzionale
- prima approssimazione - MDB(15:0) MAB(31:2) PD32 Interface Mem Map Dec. RAM Interface 64Kx16 RAM RD(15:0) PIPELINE MRD LOG ROM S/4 10 bit ADC Vin ~ I/ODB(7:0) I/OWR I/OAB(7:0) I/O Bus Dec. IACK RAMENB* RA(15:0) SCO ADD 20 MHz CLK SCANREQ* IRQ* Il segnale RAMENB* sara’ attivo (0) solo durante la fase 3 del protocollo cioe’ quando la memoria interna e’ controllata dalla SCO di ECOSCAN

11 locazione memoria interna
ECOSCAN - SCO (RAMENB* timing) CLK (20 Mhz) SCANREQ* RAMENB* IRQ* TC* Scrittura ultima locazione memoria interna (ADD = 0xFFFF) AND SCANREQ* D Q RAMENB* MHZ CLK PR* ADD = 0xFFFF or RESET

12 ECOSCAN - Pipeline + 40 ns + 30 ns > 50 ns (20MHz)
Conversione A/D 12 bit adder (4 bit adder) 10 bit-ADC Vin ~ + ENCODE Campione precedente 40 ns + 30 ns > 50 ns (20MHz) Pipeline register 10 bit-ADC Vin ~ Q(9:0) ADC(9:0) D(9:0) All’ingresso dell’addizionatore ENCODE CLK Tempo pipe = Tencode + Tsu,R = 45 ns

13 + + + ECOSCAN - Pipeline S(i+3) S(i+2) S(i+1) S(i)
Calcolo Media mobile S(i+3) S(i+2) S(i+1) S(i) 10 10 10 ns 10 10 + + 30 ns 11 11 + 30 ns 12 Prendo i 10 bit MSB del risultato per effettuare la divisione per 4 70 ns > 50 ns !!

14 + + + ECOSCAN - Pipeline S(i+3) S(i+2) S(i+1) S(i) M(i)
Calcolo Media mobile S(i+3) S(i+2) S(i+1) S(i) 10 10 10 ns 10 10 + + 30 ns 11 11 5 ns S(i+1)+S(i) S(i+2)+S(i+3) 10 ns + 30 ns 10 (MSB) 5 ns M(i) Per entrambe le pipe si ha Tpipe = Tpd,R + Tpd,Adder(12) + Tsu.R = 45 ns

15 + + + ECOSCAN - Pipeline S(i+3) S(i+2) S(i+1) S(i) M(i)
Calcolo Media mobile Uscita ADC S(i+3) S(i+2) S(i+1) S(i) 10 10 10 10 + + 11 11 S(i+1)+S(i) S(i+2)+S(i+3) + Il tempo di pipe rimane invariato ma il tempo di latenza di questo blocco e’ pari a 6 cicli del CLK dei registri 10 (MSB) M(i) Ingresso alla LOG-ROM

16 ECOSCAN - Pipeline M(i) ROM LOG(i)
Calcolo Logaritmo M(i) 10 ns 10 ROM 70 ns 10 5 ns LOG(i) Due soluzioni: Ridurre la frequenza di clock (non per noi) Buffer Multipli a frequenza ridotta!! 85 ns > 50 ns !! 16 Poiche’ il tempo di pipe e’ Tclk < tpipe < 2*Tclk introduciamo due buffer a frequenza CLK/2 = 10Mhz all’uscita dell’ultimo addizionatore ed utilizziamo due ROM in parallelo

17 ECOSCAN - Pipeline M(i) M(i+1) ROM 1 ROM 2 LOG(i) Calcolo Logaritmo
Valore Medio uno ogni 50 ns NOT 10 ns M(i) M(i+1) 10 ns 10 10 ROM 1 ROM 2 70 ns OE OE 10 10 5 ns L’uscita va connessa al bus bidirezionale della memoria interna e quindi il registro deve essere dotato di uscite TRISTATE LOG(i) RAMENB* OE* 16 Tpipe(max) = Tpd,NOT + Tpd,R + Ta,ROM + Tsu.R = 95 ns La latenza e’ pari a 2 cicli del

18 ECOSCAN - RAM Interface
Gestione segnali SRAM Segnale RAMRD* = Il PD32 ha indirizzato ECOSCAN ( MAB(31:18) = 0x2000 e MRD = 1) Proviene dal blocco “PD32 Interface” Segnale RAMWE* = ha la stessa temporizzazione di un clk 20 Mhz ma si deve attivare solo dopo che il tempo di latenza della PIPELINE e’ finito ( 8 cicli da RAMENB* = 0) Proviene dalla SCO.

19 ECOSCAN - SCO OR Generazione Clk (CLK@10Mhz)
Generazione segnale RAMWE* ma dopo 8 cicli inizio acquisizione) 3 BIT COUNTER CLK Q0 RAMENB* Q1 OR RAMWE* CL Q2 D Q CLK* PR Q* WRENB* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Q(3:0) 1 2 3 4 5 6 7 1 2 Q2 WRENB* RAMWE*

20 ECOSCAN - SCO Generazione Address memoria interna (0x0000 a 0xFFFF)
Generazione segnale “fine acquisizione” ( ADD = 0xFFFF) per preset RAMENB*) 16 BIT COUNTER Address per RAM RANWE* CLK Q(15:0) RAMENB* Q(15) CL D Q CLK* PR Q* “fine acquisizione” agisce sul preset del DFF che genera RAMENB* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Q(3:0) 1 2 3 4 5 6 7 1 2 Q2 WRENB* RAMWE* RA(15:0) 1 2 3 4 5 6 7 8 9 10

21 ECOSCAN - SCO Generazione segnale IRQ* per richiesta interrupt a fine acquisizione 1 D Q CLK CL Q* IRQ* RAMENB* IACK CLK (20 Mhz) SCANREQ* RAMENB* “fine acquisizione” IRQ*


Scaricare ppt "Convertitore Analogico / Digitale"

Presentazioni simili


Annunci Google