Microprocessori
Un sistema microprocessore non affronta calcoli complessi perché non è dedicato a scopi
informatici ma solo sistemi di controllo industriali. È necessario quindi sapere come è collegato e
come comunica con il mondo esterno. Vi è una memoria in cui sono contenuti i programmi ed i vari
dati utilizzati. Per poter funzionare un sistema a microprocessore deve contenere un programma
software. Il linguaggio utilizzato da una un microprocessore è il LINGUAGGIO MACCHINA .
La scheda a microprocessore è piccola ,leggera e poco costosa. Il microprocessore è in grado di
eseguire solamente somme e sottrazioni nel campo 0-255. Il linguaggio macchina non è un
linguaggio strutturato.
Il microprocessore che utilizzeremo è la Z80, possiede istruzioni molto potenti e riesce a lavorare a
20 Mhz. Fra un processore ed un’ altro possono cambiare solamente le istruzioni o la quantità di
memoria che è in grado di sfruttare. La memoria è suddivisa in memoria RAM e memoria ROM. I
microcontrollori hanno circa ( 8K di ROM e 256 Byte di RAM. Vengono soprattutto utilizzate le
memorie EPROM, EEPROM e FLASCH. Le periferiche di i7o sono molto semplici come relè,
led, pulsanti, display, ecc..
Esistono anche i MICROCONTROLLORI che sono meno espandibili ma che contengono tutto al
loro interno(generatore di Clock, il reset, la memoria RAM, la memoria ROM ed altri componenti).
Sistema di connessione
Questo sistema funziona solamente se vi è un controllo sia
che
i
trasmettitori
inviino
messaggi
non
contemporaneamente e che i ricevitori non possano
utilizzare gli stessi messaggi. Ogni trasmettitore e ricevitore
ha un piedino che ne abilita la connessione con il BUS
I trasmettitori sono realizzati tramite dispositivi TRISTATE
che fanno in modo che mandando uno 0 logico sul piedino (
EO-CS ) il circuito è attivo mentre con uno segnale logico 1
il circuito è in alta impedenza.. Nei ricevitori invece si
utilizzano Flip-Flop di tipo D.
La comunicazione virtuale tra un trasmettitore
ed un ricevitore avviene in due fasi principali :
1. la CPU legge i dati dal trasmettitore e li
memorizza al suo interno.
2. la CPU immette gli stessi dati sul Bus e
dopo un minimo di tempo manda al
U1
ricevitore un impulso di CLK che legge i
U2
74LS244
74LS374
OEa
J1
dati sul bus.
J2
Ia3 Ya3
OE
CP
Ia2 Ya2
D7
Q7
Una scheda a microprocessore ha essenzialmente
Ia1 Ya1
D6
Q6
due connettori che le permettono di comunicare con
Ia0 Ya0
D5
Q5
OEb
D4
Q4
il mondo esterno.Ogni porta è costruita tramite un’
Ib3 Yb3
D3
Q3
Ib2 Yb2
D2
Q2
apposito circuito integrato (74244 8 buffer tristate).
Ib1 Yb1
D1
Q1
Ib0 Yb0
D0
Q0
La porta possiede ( ingressi ed 8 uscite.
Quest’ultime collegate al bus di sistema e
comandate dal piedino di abilitazione. In uscita la porta è costituita da Flip-Flop di tipo D che in
®Tutti i diritti riservati a Defilippi Daniele©
1
presenza di un fronte di salita sul suo ingresso di CLK comunica i dati presenti sul bus al mondo
esterno.
INGRESSO 
TRISTTE
USCITA
 FLIP-FLOP D
La CPU attraverso una rete di decodifica trasforma un indirizzo in un impulso elettrico alla porta
desiderata. Ogni CPU dispone di un certo numero di piedini su cui mandagli indirizzi della porta
con cui vuole dialogare. Esiste quindi anche un bus degli indirizzi su cui circolano gli indirizzi dei
vari componenti. È un bus monodirezionale perché questi dati possono solamente uscire dalla CPU.
La CPU ha quindi 16 piedini per l’indirizzamento . questi piedini sono contraddistinti con la lettera
A (es_ A0,A1,A2…A15). La maggior parte di questi indirizzi è
utilizzata per il controllo delle celle di memoria. La Z80 non ha
un’indirizzamento separato per le memorie e le periferiche di I7O.
Sui primi 256 indirizzi è possibile indirizzare sia le periferiche
di i/O. per le periferiche si utilizzano quindi solo 8 bit di
indirizzamento. Questo tipo di gestione si chiama INSULATED I/O. I
processori Motorola utilizzano il sistema memory mapped in cui l’I/O è
visto come celle di memoria. Con il metodo della Z80 possiamo
utilizzare quindi più memoria ma abbiamo anche da risolvere alcuni
conflitti di bit tra le memorie e le periferiche. Il tutto viene risolto con
l’utilizzo dei segnali MREQ d IORQ. Quest’ultimi indicano se i dati
interessano la memoria oppure le periferiche di I/O. questi due segnali
fanno parte del BUS di controllo. Esistono anche i segnali RD e WR
che indicano se si sta effettuando un’operazione di lettura oppure di scrittura.
MREQ + RD
MREQ + WR
IORQ + RD
IORQ + WR
lettura memoria
scrittura memoria
lettura su periferica input
scrittura su periferica di output
Le schede che utilizziamo hanno 8K di EPROM e 4K di RAM
EPROM
0000-1FFFF 13bit 8k
RAM
0000-FFFF 12 bit 4k
La RAM è divisa a sua volta in due integrati
F000-F7FF 1°RAM 2K
F800-FFFF 2°RAM 2K
Non bisogna scrivere nelle ultime dieci celle di memoria perché sono utilizzate dalla scheda. Il
display viene gestito da un programma su EPROM e quando si avvia il programma il monitor si
spegne. Nella memoria le istruzioni ed i dati sono messi insieme. La Z80 ha 255 comandi. Un
programma in linguaggio macchina inizia sempre con un determinato comando.
ASMZ80 %1.src,%1asm /a/e,%1.lst
Comandi tastierino
M Memory consente di visualizzare il contenuto della memoria ed eventualmente di modificarlo.
Premendo le frecce si diminuisce o aumenta di 4Byte la visualizzazione perché sul display
compaiono 4Byte per volte
G Serve per lanciare il programma ad una determinata cella di memoria
M: serve per modificare la memoria e quindi si potrebbe usare il linguaggio macchina
2
®Tutti i diritti riservati a Defilippi Daniele©
S sep by step esegue il programma fermandosi dopo ogni istruzione (istruzione successiva+registri)
B debug esegue il programma fino ad un istruzione indicata (l’istruzione è compresa)
R serve per visualizzare i registri (sono Flip-Flop integrati nella CPU che sono in grado di
memorizzare il dato. L’accesso ai registri è molto più veloce dell’accesso alla memoria. Sul
registro accumulatore è possibile eseguire operazioni logiche.
REGISTRI A
IX
B
IY
16 bit
C
PC
D
8 bit
SP
E
I
H
F
8bit
L
R
I segnali read e write oltre ad indicare la direzione del trasferimento indicano l’istante in cui deve
avvenire il trasferimento dei dati. Vengono quindi eseguiti dei cicli macchina di ritardo. Le
temporizzazioni di memoria ed INPOUT/OUTPOUT i tempi di ritardo sono uguali. Subito dopo
l’immissione dei dati sul BUS i dati oscillano nei primi istanti e poi si stabilizzano.
Cicli macchina
La cattura dei dati solitamente si svolge durante il fronte di salita di WR. Questo segnale può durare
anche molto poco mentre RD dura più a lungo per permettere alla memoria di stabilizzare i dati sul
BUS. La porta di uscita 0 effettua una lettura soltanto quando IORQ e WR valgono 0. Posso
utilizzare 512 porte perché il segnale WR e RD li distinguono anche se hanno lo stesso indirizzo
(256 porte d’uscita ed altrettante di ingresso).
Decodifica ambigua
È una decodifica che non utilizza i bit degli indirizzi ma soltanto una parte . la decodifica ambigua è
quella in cui non si utilizzano bit e permette di collegare 2 porte (1 ingresso,1 uscita) La porta
risponde quindi a tutti gli indirizzai da 00 a FF I numeri di indirizzi diversi a cui risponde una porta
equivalgono a 2 elevato il numero di bit che non vengono utilizzati nel decoder.
»Il decoder più usato è 74138 da 3in e 8out. Ha 3 ingressi di abilitazione.
Per diminuire l’ambiguità collego ai due ingressi di selezione rimanenti due
74LS138
altri indirizzi. Ogni linea è quindi associata a 8 indirizzi diversi.
A3 A2
Q7
L’indirizzo a cui risponde un’uscita è 01nnnXXX.
A4 A1
Q6
Q5
A5 A0
Esiste anche il problema della sintesi che consiste nella costruzione del
Q4
Q3
circuito in base agli indirizzi.
A6 E3
Q2
A7 E2
Q1
Devono essere mandati agli ingressi di abilitazione perché non variano mai.
IORQ E1
Q0
Si può comandare il decoder inserendo sul piedino di abilitazione o il segnale
WR o RD. Oppure a valle utilizzando porte OR condizionate dal segnale o WR o RD.
Es analisi
74LS138
A0
RD
WR
A2
A1
A0
A6
A7
IORQ
E3
E2
E1
Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0
»11n rispondono le uscite 6 e 7 ma non si verifica mai perchè IORQ
non può essere abilitato
»001 -000 non risponde nessuna periferica
»10n rispondono due porte di input indirizzo 4 e 5
»01n rispondono due porte di output indirizzo 2 e 3
®Tutti i diritti riservati a Defilippi Daniele©
3
la memoria
Quando viene utilizzata viene indirizzata a 16 bit. Per leggere la memoria le temporizzazioni sono
più brevi (4 clock invece dei 5 usati per le porte).
Le celle di memoria sono vendute già impacchettate in alcuni cip che
contengono già un decoder interno.
Es 8KB
Il decoder con 13 ingressi è proibito e quindi viene
sostituito da una struttura a matrice e da due decoder. Il primo dà 7 ed
il secondo dà 6 ingressi di selezione.
Il decoder che inserisco da fuori seleziona solo l’integrato di memoria
scelto e non una specifica cella.
Ogni memoria ha dei piedini di controllo che sono:
» CS (chip select) quando è attivo la memoria funziona completamente mentre se è
inattivo la memoria è nel cosiddetto stato denominato stand by (i collegamenti verso
il BUS dei dati vanno in HIZ. Il decoder interno viene spento e diventa insensibile ai
segnali esterni). Il vantaggo è che l’integrato non consuma potenza (low power).
(Esistono memorie fatte in tecnologia CMOS a cui si può dire che non consumano nulla.)
» OE (enabled output) controlla solo l’alta impedenza verso il BUS dei dati ma non
impedisce l’ingresso dei dati e quindi possono essere scritte con OE ad !
» R/W controlla la possibilità di scrivere la memoria. Bisogna evitare che OE eR/W siano
tutti attivi perché si creerebbe un loop di ricircolo.
Solitamente viene effettuato il collegamento tra WR e R/W; e OE e RD.
RD OE
WR R/W
La z80 cerca sempre un programma all’indirizzo 0 quando resettiamo il primo della RAM è
l’8000M
Progettare rete di decodifica per ingresso uscita in grado di pilotare
8 porte le prime 4 in ingresso . Le ultime quattro in uscita in modo tale che ogni porta risponda a 8
indirizzi diversi; il primo di ogni gruppo è il seguente
3 non connessi
3 per il conteggio
2
…..
………………………….
LD è un’istruzione di trasferimento cioè trasferisce da un registro adun altro
4
®Tutti i diritti riservati a Defilippi Daniele©