1 / 21

Convertitore Analogico / Digitale

Convertitore Analogico / Digitale. Output. V REF. LSB= V REF /2 N. 111. N bit-ADC. b0. 110. Vin ~. b1. 101. 100. bN. 011. ENCODE. 010. 001. 000. Vin ~. 0. V T1. V T2. V T3. V T4. V T5. V T6. V T7. V REF. ENCODE. b(N:0). LSB = risoluzione del convertitore < 0.1 %

alden
Download Presentation

Convertitore Analogico / Digitale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 ~ 0 VT1 VT2 VT3 VT4 VT5 VT6 VT7 VREF ENCODE b(N:0) LSB = risoluzione del convertitore < 0.1 % risoluzione < (VREF /100)*0.1  LSB < VREF/1000 VREF/2N < VREF/1000  2N > 1000 N >= 10 40 ns

  2. Media Mobile ECOSCAN Media mobile su 4 campioni => M(K) = S i=0..3S(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 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) 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 0x00000000 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 0x80000000 MAB(31:2) => ADD(15:0) 0x20000000 0x0000 0x20000001 0x0001 ................................................ ................................................ 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 65536 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) ADD SCO 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. ECOSCAN - SCO (RAMENB* timing) CLK (20 Mhz) SCANREQ* RAMENB* IRQ* TC* Scrittura ultima locazione memoria interna (ADD = 0xFFFF) AND SCANREQ* D Q RAMENB* Clk@20 MHZ CLK PR* ADD = 0xFFFF or RESET

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

  13. ECOSCAN - Pipeline 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 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 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 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 Calcolo Logaritmo Valore Medio uno ogni 50 ns Clk@10mhz 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 Clk@20mhz 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 CLK@20Mhz

  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. Q D Q* CLK* PR ECOSCAN - SCO • Generazione Clk (CLK@10Mhz) • Generazione segnale RAMWE* (Clk@20Mhz ma dopo 8 cicli inizio acquisizione) 3 BIT COUNTER Clk@20mhz Clk@10mhz CLK Q0 RAMENB* Q1 Clk@20mhz OR RAMWE* CL Q2 0 WRENB* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CLK@20MHZ Q(3:0) 0 1 2 3 4 5 6 7 0 1 2 CLK@10MHZ Q2 WRENB* RAMWE*

  20. Q D Q* CLK* PR 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 0 “fine acquisizione” agisce sul preset del DFF che genera RAMENB* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 CLK@20MHZ Q(3:0) 0 1 2 3 4 5 6 7 0 1 2 CLK@10MHZ Q2 WRENB* RAMWE* RA(15:0) 0 1 2 3 4 5 6 7 8 9 10

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

More Related