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

Convertitore Analogico / Digitale

  • Upload
    alden

  • View
    147

  • Download
    10

Embed Size (px)

DESCRIPTION

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 % - PowerPoint PPT Presentation

Citation preview

Page 1: Convertitore Analogico / Digitale

Convertitore Analogico / Digitale

Vin ~VT1 VT2 VT4VT3 VT6 VREFVT7VT50

000

001

010

011

100

101

110

111

LSB= VREF/2N

Output

N bit-ADCVin ~

b0

b1

bN

VREF

ENCODE

b(N:0)

ENCODE

40 ns

LSB = risoluzione del convertitore < 0.1 %

risoluzione < (VREF /100)*0.1 LSB < VREF/1000

VREF/2N < VREF/1000 2N > 1000 N >= 10

Page 2: Convertitore Analogico / Digitale

Media Mobile ECOSCAN

Media mobile su 4 campioni => M(K) = i=0..3S(K+i)/4

Valore max. possibile della somma campioni = 1023(10 bit)*4 = 4092rappresentabile con 12 bit (e’ la dimensione dei sommatori)

Il risultato M(i) e’ ancora a 10 bit (i bit MSB della somma dei campioni)

M(0) = S(0) + S(1) + S(2) + S(3)] /4M(1) = S(1) + S(2) + S(3) + S(4)] /4M(2) = S(1) + S(2) + S(3) + S(4)] /4............................................................................................................................M(65535) = [S(65535) + S(65536) + S(65537) + S(65538)]/4

Page 3: Convertitore Analogico / Digitale

A(3:0)

B(3:0)

Cin Cout

4 bit addertpd =10 ns

A(10:0)

B(10:0)

C(3:0)

12 bit addertpd =30 ns

C(11:0)

Sommatori 12 bit

A(3:0)

B(3:0)

Cin Cout

C(3:0)A(3:0)

B(3:0)

Cin Cout

C(3:0)A(3:0)

B(3:0)

Cin Cout

C(3:0)S1(3:0)

S2(3:0)

0

R(3:0)S1(7:4)

S2(7:4)

R(7:4)0,S1(10:8)

0,S2(10:8)

R(11:0) = S1(10:0) + S2(10:0)

R(11:8)

S1(10:0)

S2(10:0)R(11:0)

Page 4: Convertitore Analogico / Digitale

ROM1K*16

ADD(9:0)

CE*

OE*

DATA(15:0)

ECOSCAN - Read Only Memory

OE*

ADD(9:0)

DATA(15:0)Alta impedenza

A

DATO(A)Alta impedenza

CE*

Tempo accesso = 70 ns

Page 5: Convertitore Analogico / Digitale

RAM64K*16

ADD(15:0)

CE*

OE*

DATA(15:0)

ECOSCAN - Random Access Memory

OE*

ADD(9:0)

DATA(15:0)

A

DATO(A)

CE*

Tempo scrittura = 25 ns

WE*

WE*

Page 6: Convertitore Analogico / Digitale

ECOSCANinternal RAM(256 Kbytes)

ECOSCAN Memory Mapping

Spazio di indirizzamento PD32 (byte)

Locazio ne0x00000000

Locazio ne0xFFFFFFFF

Spazio memoriaprogramma PD32

Locazio ne0x80000000

Locazio ne0x8003FFFF

Affinche’ il PD32 acceda in lettura la RAM internaECOSCAN deve “tradurre” gli indirizzi del MAB PD32

in indirizzi validi per la RAM interna

MAB(31:2) => ADD(15:0)0x20000000 0x00000x20000001 0x0001................................................................................................0x2000FFFF 0xFFFF

Poiche’ l’accesso e’ permesso solo a longword(32 bit)posso trascurare il valore dei segnali Mb(3:0)

Page 7: Convertitore Analogico / Digitale

ECOSCAN

ADC10 bit

PD32

MDB

MAB

MCB

I/ODB

I/OCB

MemoriaPD32

Architettura progetto ECOSCAN

20MhzClk

Vin ~RAM64Kx16

ROM1Kx16

Page 8: Convertitore Analogico / Digitale

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)

Page 9: Convertitore Analogico / Digitale

Protocollo ECOSCAN

PD32 ECOSCAN

1) Generazione via software del segnale di inizio acquisizione:

OUTB S,0xFF

2) Generazione segnale inizio acquisizioneSCANREQ*

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

Page 10: Convertitore Analogico / Digitale

RAMInterface

64Kx16RAM

SCO

20 MHzCLK

ADD

PD32 Interface

PIPELINE

ECOSCAN Schema a blocchi funzionale- prima approssimazione -

MRD

MAB(31:2)

I/ODB(7:0)

I/OWR

I/OAB(7:0)

IRQ*

IACK

/4 Vin ~

RA

(15:

0)

MDB(15:0)

10 bitADC

LOGROM

RD(15:0)Mem MapDec.

I/O BusDec.

SCANREQ*

RA

ME

NB

*

Il segnale RAMENB* sara’ attivo (0) solo durante la fase 3 del protocollocioe’ quando la memoria interna e’ controllata dalla SCO di ECOSCAN

Page 11: Convertitore Analogico / Digitale

ECOSCAN - SCO (RAMENB* timing)

CLK (20 Mhz)

SCANREQ*

RAMENB*

IRQ*

TC*

Scrittura ultimalocazione memoria interna

(ADD = 0xFFFF)

D Q

Clk@20 MHZ CLK

SCANREQ*

PR*

RAMENB*

ADD = 0xFFFF or RESET

AND

Page 12: Convertitore Analogico / Digitale

ECOSCAN - PipelineConversione A/D

10 bit-ADC

ENCODE

Clk@20Mhz

Vin ~

+

12 bit adder (4 bit adder)

Campione precedente

40 ns + 30 ns > 50 ns (20MHz)

10 bit-ADC

ENCODE

ADC(9:0)

Pipeline register

CLK

Vin ~

All’ingresso dell’addizionatoreD(9:0)

Q(9:0)

Clk@20Mhz

Tempo pipe = Tencode + Tsu,R = 45 ns

Page 13: Convertitore Analogico / Digitale

ECOSCAN - PipelineCalcolo Media mobile

S(i+3) S(i)S(i+1)S(i+2)

+ +

+

Prendo i 10 bit MSB del risultato per effettuare la divisione per 4

10 10 10 10

1111

12

10 ns

30 ns

30 ns

70 ns > 50 ns !!

Page 14: Convertitore Analogico / Digitale

ECOSCAN - PipelineCalcolo Media mobile

S(i+3) S(i)S(i+1)S(i+2)

+ +

+

10 10 10 10

11

10 (MSB)

10 ns

30 ns

30 ns

Per entrambe le pipe si ha Tpipe = Tpd,R + Tpd,Adder(12) + Tsu.R = 45 ns

M(i)

S(i+2)+S(i+3)

11

S(i+1)+S(i)5 ns

5 ns

10 ns

Page 15: Convertitore Analogico / Digitale

ECOSCAN - PipelineCalcolo Media mobile

S(i+3) S(i)S(i+1)S(i+2)

+ +

+

10 10 10 10

11

10 (MSB)

Il tempo di pipe rimane invariato mail tempo di latenza di questo blocco e’ pari

a 6 cicli del CLK dei registri

M(i)

S(i+2)+S(i+3)

11

S(i+1)+S(i)

Uscita ADC

Ingresso alla LOG-ROM

Page 16: Convertitore Analogico / Digitale

ECOSCAN - PipelineCalcolo Logaritmo

ROM

10 ns

70 ns

M(i)

10

LOG(i)

16

105 ns

85 ns > 50 ns !!

Due soluzioni:• Ridurre la frequenza di clock (non per noi)• Buffer Multipli a frequenza ridotta!!

Poiche’ il tempo di pipe e’ Tclk < tpipe < 2*Tclkintroduciamo due buffer a frequenza CLK/2 = 10Mhz

all’uscita dell’ultimo addizionatore ed utilizziamo due ROM in parallelo

Page 17: Convertitore Analogico / Digitale

ECOSCAN - PipelineCalcolo Logaritmo

ROM 1

10 ns

70 ns

M(i)

10

LOG(i)

16

105 ns

ROM 2

M(i+1)

10

10

Clk@20mhz

Clk@10mhz

NOT

OE OE

10 ns

Tpipe(max) = Tpd,NOT + Tpd,R + Ta,ROM + Tsu.R = 95 ns

La latenza e’ pari a 2 cicli del CLK@20Mhz

Valore Medio uno ogni 50 ns

L’uscita va connessa al bus bidirezionaledella memoria interna e quindi il registrodeve essere dotato di uscite TRISTATE

OE*RAMENB*

Page 18: Convertitore Analogico / Digitale

ECOSCAN - RAM Interface

• Gestione segnali SRAM

STATO ADD CE* OE* WE*

RAMENB* = 0 ADD(SCO) 0 1 RAM WE*

RAMENB* = 1 M AB(17:0) RAM RD*(0) RAM RD* 1

• 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.

Page 19: Convertitore Analogico / Digitale

ECOSCAN - SCO

• Generazione Clk (CLK@10Mhz)• Generazione segnale RAMWE* (Clk@20Mhz ma dopo 8 cicli inizio acquisizione)

Q0

3 BITCOUNTER

Q1

Q2

CLK

CL

Clk@20mhz

RAMENB*

Clk@10mhz

D Q

CLK*PR

Q*

0 ORClk@20mhz RAMWE*

CLK@20MHZ

0

0 1 2 3 4 5 6 7 8

Q(3:0)

9 10 11 12 13 14

1 2 3 4 5 6 7 0 1 2

WRENB*

CLK@10MHZ

Q2

WRENB*

RAMWE*

Page 20: Convertitore Analogico / Digitale

ECOSCAN - SCO

• Generazione Address memoria interna (0x0000 a 0xFFFF)• Generazione segnale “fine acquisizione” ( ADD = 0xFFFF) per preset RAMENB*)

Q(15:0)

16 BITCOUNTER

CLK

CL

RANWE*

RAMENB*

Address per RAM

D Q

CLK*PR

Q*

0

CLK@20MHZ

0

0 1 2 3 4 5 6 7 8

Q(3:0)

9 10 11 12 13 14

1 2 3 4 5 6 7 0 1 2

WRENB*

CLK@10MHZ

Q2

“fine acquisizione” agisce sul preset del DFF che genera RAMENB*

RAMWE*

0RA(15:0) 1 2 3 4 5 6 7 8 9 10

Q(15)

Page 21: Convertitore Analogico / Digitale

D Q

CLKCL

Q*RAMENB*

1

IRQ*

IACK

0

ECOSCAN - SCO

• Generazione segnale IRQ* per richiesta interrupt a fine acquisizione

CLK (20 Mhz)

SCANREQ*

RAMENB*

IRQ*

“fine acquisizione”