Convertitore Analogico / Digitale

Post on 05-Jan-2016

135 views 10 download

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

Transcript of 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

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

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)

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

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*

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)

ECOSCAN

ADC10 bit

PD32

MDB

MAB

MCB

I/ODB

I/OCB

MemoriaPD32

Architettura progetto ECOSCAN

20MhzClk

Vin ~RAM64Kx16

ROM1Kx16

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)

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

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

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

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

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 !!

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

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

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

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*

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.

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*

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)

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”