Pag. 6

Memoria

L'8051 gestisce la memoria in due segmenti separati :

La CPU può effettuare il fetch solo nella memoria di programma


Memoria di programma

La massima capacità della memoria di programma è di 64K di cui 4K possono risiedere dentro il chip.

Nel modo di funzionamento a memoria interna (EA=1) la CPU nel primi 4 K di indirizzamento, esegue il fetch nella memoria interna, per indirizzi superiori 0FFFH il fetch viene effettuato nella memoria esterna

Nel modo di funzionamento a memoria esterna la CPU esegue sempre il fetch, per tutta l'area di indirizzamento (0000....FFFFH ), nella memoria esterna.

Durante l'accesso alla memoria esterna la, Cpu sfrutta P0 come parte bassa del bus indirizzi o bus dati e P2 come parte alta del bus indirizzi, di conseguenza non è più possibile sfruttarle come porte I/O.

Pag. 7

Collegamenti della memoria programmi esterna

La memoria programmi esterna può essere collegata come in figura (in questo schema la memoria per i programmi esterna viene abilitata solo quando il micro esegue i fetch al di sopra dell'indirizzo 0FFFH, EA= 1).

Pag. 8

Indirizzi Memoria
0000H, 0FFFH ROM interna
1000H,1FFFH EPROM esterna

Gli indirizzi per la memoria programmi vengono emessi dalle porte PO e P2 (rispettivamente parte bassa e parte alta degli indirizzi). La porta PO serve anche per ricevere e trasmettere i dati: la porta PO costituisce quindi I'interfaccia di un bus indirizzi/dati multiplato. La parte bassa dell'indirizzo viene emessa prima del trasferimento del dato; deve essere memorizzata temporaneamente fino al completamento dell'operazione di trasferimento (si faccia riferimento ai diagrammi temporali di lettura e scrittura sulla memoria esterna).


Andamento temporale di un ciclo di lettura di memoria di programma esterna.


I1 segnale ALE (Address Latch Enable) indica quando è presente un indirizzo e quindi può essere utilizzato come segnale di clock per il latch che congela temporaneamente la parte bassa dell'indirizzo.

I1 segnale #PSEN indica che I'operazione di lettura avviene con la memoria esterna e viene utilizzato come segnale di abilitazione delle uscite della ROM collegata. Si noti che il segnale #PSEN è attivo tutte le volte che 1'8051 deve effettuare un fetch del codice di un'istruzione dalla memoria esterna per i programmi.


Pag. 9

Memoria dati

I registri interni della CPU de11'8051 sono mappati in un'area di RAM interna che va dall'indirizzo 80H all'indirizzo OFFH detta SFR area (Special Function Register area).

I 128 byte di RAM interna utilizzabili come area per i dati sono mappati invece dall'indirizzo OOH all'indirizzo 7FH.

Non tutte le locazioni della SFR area (da 80H a OFFH) sono utilizzate per contenere i registri. Le rimanenti locazioni sarebbero teoricamente utilizzabili per contenere dati, ma la Intel raccomanda di non utilizzarle per questo scopo poiché il risultato sarebbe la lettura di dati casuali e la scrittura in tali locazioni non avrebbe alcun effetto. Queste locazioni sono riservate alla ditta costruttrice del chip per futuri sviluppi.

Struttura memoria dati interna


Pag. 10

Register banks : area di memoria scomposta in 4 gruppi di 8 celle utilizzabili come registri della CPU (vedi R7-R0 nel set istruzioni). La selezione del gruppo si ottiene dalla combinazione binaria di due bit nel PSW (RS0,RS1).

Bit addressable segment : (128 bit) area di memoria dove è possibile l'indirizzamento per singolo bit vedi istruzioni per la manipolazione dei singoli bit.

Scratch pad area : area di memoria libera per memorizzare dati.


Collegamenti della memoria dati esterna


In figura viene mostrato il collegamento con una memoria RAM per i dati. Anche qui si utilizzano le porte PO e P2 come bus indirizzi e dati. Vengono inoltre utilizzati i segnali P3.7 (RD)e P3.6 (WR) della porta P3 per l'abilitazione in lettura e in scrittura della RAM. I1 segnale PSEN non viene utilizzato poiché la sua funzione è quella di abilitare in lettura una memoria esterna per i programmi (si noti inoltre che EA viene forzato a Vcc in modo da utilizzare per i programmi i 4 k di ROM interna).

In ambedue i collegamenti vengono sacrificate le due porte PO e P2 e parte della porta P3 per generare tutti i segnali necessari alle memorie esterne.

Si tenga comunque presente che, ad esempio, se si utilizza una memoria RAM esterna più piccola di 64 k non è necessario utilizzare tutti i bit della porta P2 (lo stesso dicasi per la memoria programmi).

La memoria esterna per i programmi e per i dati può essere combinata applicando il segnale PSEN e RD ad una porta AND a due ingressi e usando l'uscita della porta come segnale di lettura per la memoria dati/programmi.


Pag. 11

Andamento temporale di un ciclo di lettura su memoria dati esterna.


Andamento temporale di un ciclo di scrittura su memoria dati esterna.