VOXMSG

15
VOXMSG 12 bits DAC RAM 64Kx8 PD32 MDB MAB MCB I/ODB I/OAB I/OCB Memoria PD32 Architettura progetto 8 Khz Clock

description

Architettura progetto. Memoria PD32. PD32. VOXMSG. MDB. RAM 64Kx8. 8 Khz Clock. MAB. 12 bits DAC. MCB. I/ODB. I/OAB. I/OCB. Blocchi funzionali unita’ VOXMSG. INTERFACCIA I/O BUS PD32 => VOXMSG - Fornire il segnale di inizio riproduzione messaggio - PowerPoint PPT Presentation

Transcript of VOXMSG

Page 1: VOXMSG

VOXMSG

12 bitsDAC

RAM64Kx8

PD32

MDB

MAB

MCB

I/ODB

I/OAB

I/OCB

MemoriaPD32

Architettura progetto

8 KhzClock

Page 2: VOXMSG

Blocchi funzionali unita’ VOXMSG

• INTERFACCIA I/O BUS• PD32 => VOXMSG

- Fornire il segnale di inizio riproduzione messaggio- Programmare la lunghezza della sequenza da riprodurre

• VOXMSG => PD32 •- Generazione di un interrupt alla fine della riproduzione

• CONTROLLORE RAM INTERNA (64Kx8)- Gestione accessi PD32 in scrittura (memory mapped)- Gestione accessi in lettura per riproduzione messaggio

• INTERFACCIA con il DAC- Formattazione dei dati e presentazione ad 8 Khz

• SCO - Gestione del Timing

Page 3: VOXMSG

Protocollo

PD32 VOXMSG

1) Caricamento nella RAM di VOXMSG della sequenza di campioni

2) Caricamento in VOXMSG della lunghezza della sequenza da riprodurre

3) Attivazione della riproduzione del messaggio

4) Preleva i dati dalla RAM e li presenta in ingresso la DAC in formato 12 bit alla frequenza di 8 Khz

5) Invia un Interrupt al PD32

Page 4: VOXMSG

Protocollo

PD32 Routine assembler

1) Caricamento nella RAM di VOXMSG della sequenza di campioni

2) Caricamento in VOXMSG della lunghezza della sequenza da riprodurre (LENGHT)

3) Attivazione della riproduzione del messaggio

.......................................MOV 1 in registro R1MOV da memoria a registro R2 valore LENGHT

label1 MOV da memoria a registro R3 R1-campione INC R1 JUMP labe11 se R1 < R2 MOV R2 nel registro di VOXMSG ........................................

Page 5: VOXMSG

Protocollo

VOXMSG

4) Preleva i dati dalla RAM e li presenta in ingresso la DAC in formato 12 bit alla frequenza di 8 Khz

5) Invia un Interrupt al PD32

ATTESA

START ?NO

ADD = 0

Leggi MEM( ADD)ADD = ADD + 1Leggi MEM(ADD)

ADD = ADD + 1LENGHT = LENGHT -1

LENGHT = 0

NO

SI

InterruptRequest

SI

Per generare il segnale di startutilizzo la scrittura della lunghezza

Page 6: VOXMSG

ControlloreRAM64Kx8RAM

SCO

8 KhzCLK

ADD

Interfaccia I/O bus

LENGHT

Interfaccia DAC

VOXMSG Schema a blocchi funzionale- prima approssimazione -

MDB(31:0)

MWR

MAB(31:2)

Mb0

Mb1

Mb2

Mb3

I/ODB(31:0)

I/OWR

I/OAB(7:0)

/IRQ

IACK

RD(7:0) DACReg.

(11:0) al DAC

Play

RA(15:0)

8Khz Clk

Start

Page 7: VOXMSG

primo timing

CLK (8 Khz)

START

PLAY

IRQ*

TC*

Fine della riproduzionedel messaggio(LENGHT = 0)

Page 8: VOXMSG

INTERFACCIA I/O BUSPD32 => VOXMSG

•Fornire il segnale di inizio riproduzione messaggio•Programmare la lunghezza della sequenza da riprodurre

NAND9 input

I/OWR

I/OAB(7:0)

decodificaaccesso porta indirizzo 0xFF

START

LOAD*

D(14:0)I/OAB(14:0)

CEPLAY

CLKCLK (8Khz)

TC*alla SCO

Contatore 15 bit con caricamento parallelo asincrono

Page 9: VOXMSG

INTERFACCIA I/O BUS VOXMSG => PD32

• Generazione di un interrupt alla fine della riproduzione

D Q

TC* CLK

1

CL

0

IVN

IACK

I/ODB(7:0)

IRQ*

Page 10: VOXMSG

timing per interfaccia DAC

CLK (8 Khz)

RA(15:0) 0 1 2 3 4 5 6 2N-4 2N-3 2N-2 2N-1

RD(7:0) LSB0 MSB0 LSB1 MSB1 LSB2 MSB2 LSB3 MSBN-2 LSBN-1 MSBN-1

CLKMSB

CLKLSB

PLAY

conversione campione 0

conversione campione 1

conversione campione 2

conversione campione N-2

conversione campione N-1

D(11:8)

CLK

Q(11:0)

D(7:0)

CLK

Q(7:0)

D(7:0)

CLKMSBCLKLSB

RD(7:0)

(3:0)

Dato proveniente dalla RAM interna

al VOXMSG

Il campione a 12 bit viene tenuto stabileall’ingresso del DAC

Page 11: VOXMSG

SCO

•Generazione dei clocks•Gestione interazione segnali START/PLAY•Generazione indirizzi RAM interna al VOXMSG

START

CLEARPLAY

CLK

Q(14:0)

D Q

CLK

CL*

1 D Q

CLK

PLAY

CLK 8 KHz

TC

15 BITCOUNTER

RA(15:1)

NOT CLKLSB

CLKMSB

RA(0)

Page 12: VOXMSG

Controllore RAM

BloccoRD/WR

RD/WR*

A (15:0)

D (7:0)

RD(7:0)

MDB(31:0)

RA(15:0)

MAB(15:2),A1,A0

PLAY

CE*

NAND3 inputs

NOR2 inputs

Decodificamemory mapping

(0xFFF0XXXX)MAB(31:16)

NOT

MWR

PLAY

Mb0

Mb1

Mb2

Mb3

Decodifica32 to 8

bit

A0

A1

PLAY* PLAY*

D(7:0)

Memoria SRAM 64Kx8

Page 13: VOXMSG

Blocco RD/WR

RD(7:0)AND

2 inputs

Mb0

Mb1

Mb2

Mb3

AND2 inputs

AND2 inputs

AND2 inputs

PLAY*

x8

D(7:0)x8

x8

x8

MDB(7:0)

MDB(15:8)

MDB(23:16)

MDB(31:24)

Page 14: VOXMSG

“Memory Mapping”

Spazio di indirizzamento PD32

Locazio ne0x00000000

Locazio ne0xFFFFFFFF

Spazio memoriaprogramma PD32

Spazio “DEVICE-0”

Area inutilizzata

Spazio “DEVICE-N”

Quando e’ necessario si puo’ utilizzare una parte dello spazio di indirizzamento del PD32 per “mappare”una

periferica sul bus dati invece che su quello di I/O

Locazio ne0x00FF0000

Locazio ne0x00FFFFFF

Locazio ne0xF0000000

Page 15: VOXMSG

MAB(31:2),Mb0,Mb1,Mb2,Mb3

PD32

DEVICE-0

Decodifica address0x00FFXXXX

DEVICE-N

Decodifica address0xFXXXXXXX

Memoria Programma

Decodifica address< 0x00FF0000