Eliminata citazione inutile. Usa il tasto RISPONDI, non il tasto CITA, a meno che non voglia proprio citare qualcosa
Salve rusti, vorrei chiederti una delucidazione dul metodo che la Subroutine di Risposta degli Interrupt utilizza per recuparare i valori ASCII che la tastiera o altra periferica di input mettono a disposizione quando esse mettono a livello basso il piedino INT.
Allora tu parlavi della lettura da parte della sub. di risposta dell' INT del bus condiviso e di bufferizzazione dei dati.
Cosa si intende per mappatura della mamoria degli I/O? Mi spiegheresti questo concetto?
Cosa si intende di preciso per bufferizzazione?
Cosa fa di preciso nei dettagli la Subroutine di Risposta degli Interrupt? Dove essa va a mettere il contenuto dei dati letti dalla tastiera? Li mette un carattere alla volta direttamente in qualche registro della CPU oppure li mette in qualche area della RAM dedicata alla periferica tastiera?
Z80 keyboard interrupt
Moderatore:
Paolino
27 messaggi
• Pagina 3 di 3 • 1, 2, 3
2
voti
Questo problema è mal posto, cerco di fare un po' di chiarezza.
Oggi si utilizzano i microcontrollori, una volta (a parte pochi e sparuti casi) si usavano i sistemi a microprocessore.
In buona sostanza oggi vengono integrati in un solo chip di silicio il microprocessore, la memoria di programma, la memoria dati ed una serie di periferiche. Quindi è necessario vedere un sistema a microprocessore come un microcontrollore.
I microcontrollori odierni sono l' evoluzione dei sistemi a microprocessore nel senso che già da allora si è cercato di integrare più componenti all' interno di un unico componente. Un esempio è l' 8085 che integrava l' 8080 ed un altro integrato indispensabile per il funzionamento. Il passo successivo (e anche molto semplice) è stato quello di integrare il generatore di clock, poi si è passati ad integrare altre periferiche (come nel 6303 dove è stata integrata l' UART e diverse porte di I/O. Quindi si è passati ad integrare un po' di RAM lasciando comunque la memoria di programma non integrata per motivi di flessibilità. Lo stesso H8325, bellissimo microcontrollore ad 8 bit in contenitore a 64 pin DIL passo 1,78, non ostante integrasse 32KB di memoria OTP (EPROM One Time Programming perché senza finestrella) aveva la possibilità di funzionare con una memoria di programma esterna (ne ho ancora diverse centinaia in garage programmati che possono funzionare in modalità ROMLESS). Se oggi si vuole fare un passo indietro e provare il brivido di lavorare con componenti separati fra di loro (memorie, periferiche ed altro) lo si deve fare con l' idea di realizzarsi il proprio microcontrollore.
Da qui in poi si può iniziare a fare un ragionamento che abbia un senso e sviluppare l' applicazione.
Come non ha senso, nel caso di un microcontrollore, parlare di interrupt esterna per la gestione di una tastiera, non ha senso farlo per un sistema a microprocessore.
rusty descrive un sistema, in pratica quello che noi oggi troviamo completo all' interno di un microcontrollore, che ha queste caratteristiche:
- 32KB di memoria di programma
- 32KB di RAM
- 32 linee di I/O digitali bidirezionali organizzate in 4 porte da 8 bit
La mappatura delle porte e tutt gli altri particolari del sistema sono esclusivi del sistema che può essere visto come un unico componente (molto limitato per gli standard di oggi).
L' approccio al problema deve essere fatto in due fasi:
1) La definizione ed il progetto del sistema a microprocessore che verrà considerato come un black box esattamentente come un microcontrollore odierno.
2) La gestione della tastiera e tutto il resto.
Mischiare le due cose, ripeto, non ha senso.
Oggi si utilizzano i microcontrollori, una volta (a parte pochi e sparuti casi) si usavano i sistemi a microprocessore.
In buona sostanza oggi vengono integrati in un solo chip di silicio il microprocessore, la memoria di programma, la memoria dati ed una serie di periferiche. Quindi è necessario vedere un sistema a microprocessore come un microcontrollore.
I microcontrollori odierni sono l' evoluzione dei sistemi a microprocessore nel senso che già da allora si è cercato di integrare più componenti all' interno di un unico componente. Un esempio è l' 8085 che integrava l' 8080 ed un altro integrato indispensabile per il funzionamento. Il passo successivo (e anche molto semplice) è stato quello di integrare il generatore di clock, poi si è passati ad integrare altre periferiche (come nel 6303 dove è stata integrata l' UART e diverse porte di I/O. Quindi si è passati ad integrare un po' di RAM lasciando comunque la memoria di programma non integrata per motivi di flessibilità. Lo stesso H8325, bellissimo microcontrollore ad 8 bit in contenitore a 64 pin DIL passo 1,78, non ostante integrasse 32KB di memoria OTP (EPROM One Time Programming perché senza finestrella) aveva la possibilità di funzionare con una memoria di programma esterna (ne ho ancora diverse centinaia in garage programmati che possono funzionare in modalità ROMLESS). Se oggi si vuole fare un passo indietro e provare il brivido di lavorare con componenti separati fra di loro (memorie, periferiche ed altro) lo si deve fare con l' idea di realizzarsi il proprio microcontrollore.
Da qui in poi si può iniziare a fare un ragionamento che abbia un senso e sviluppare l' applicazione.
Come non ha senso, nel caso di un microcontrollore, parlare di interrupt esterna per la gestione di una tastiera, non ha senso farlo per un sistema a microprocessore.
- 32KB di memoria di programma
- 32KB di RAM
- 32 linee di I/O digitali bidirezionali organizzate in 4 porte da 8 bit
La mappatura delle porte e tutt gli altri particolari del sistema sono esclusivi del sistema che può essere visto come un unico componente (molto limitato per gli standard di oggi).
L' approccio al problema deve essere fatto in due fasi:
1) La definizione ed il progetto del sistema a microprocessore che verrà considerato come un black box esattamentente come un microcontrollore odierno.
2) La gestione della tastiera e tutto il resto.
Mischiare le due cose, ripeto, non ha senso.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
1
voti
In attesa del buon
rusty ti rispondo io.
Se guardi il datasheet di un microcontrollore qualsiasi vedrai che le porte di I/O ed i registri delle altre periferiche risiedono in una zona della memoria. La stessa cosa si fa con i sistemi a microprocessore: si fa in modo che le porte di I/O corrispondano ad uno specifico indirizzo in memoria. Il microprocessore suppone di scrivere o leggere una locazione (il poverino non conosce altro) ma in pratica scrive o legge lo stato dei pin di una porta attraverso un apposito circuito d' interfaccia (per esempio la PIO o un buffer o un latch). L' operazione di di assegnazione di un indirizzo specifico è chiamata mappatura.
L' utilizzo di una zona di memoria RAM per la memorizzazione temporanea di dati. Questi posso provenire da una tastiera o da una linea seriale per esempio, e rimangono in memoria in attesa di essere letti dal programma. Questo per fare in modo di non perdere nessun carattere e metterli a disposizione del programma principale che li andrà a leggere quando gli fa comodo.
Quando un sistema riceve un' interrupt interrompe la normale esecuzione del programma principale per eseguire una subroutine specifica. Questa subroutine farà un qualcosa e, terminato il lavoro, restituirà il controllo al programma principale. In pratica riprende il programma principale dal punto in cui l' aveva lasciato. La stessa cosa la fai tu quando ti squilla il telefono. Interrompi di fare quello che stavi facendo, rispondi al telefono (subroutine di servizio dell' interrupt) per poi ritornare, una volta finita la telefonata, a fare quello che stavi facendo prima.
Solitamente in un buffer, una zona di memoria che contiene temporaneamente i dati ricevuti dalla tastiera.
Non li può mettere in un registro della CPU (oddio potrebbe anche farlo ma è da pazzi) perché l' interrupt arriva quando arriva, in un momento non prevedibile ed alterare i registri della CPU avrebbe effetti drammatici.
alien75 ha scritto:Cosa si intende per mappatura della mamoria degli I/O? Mi spiegheresti questo concetto?
Se guardi il datasheet di un microcontrollore qualsiasi vedrai che le porte di I/O ed i registri delle altre periferiche risiedono in una zona della memoria. La stessa cosa si fa con i sistemi a microprocessore: si fa in modo che le porte di I/O corrispondano ad uno specifico indirizzo in memoria. Il microprocessore suppone di scrivere o leggere una locazione (il poverino non conosce altro) ma in pratica scrive o legge lo stato dei pin di una porta attraverso un apposito circuito d' interfaccia (per esempio la PIO o un buffer o un latch). L' operazione di di assegnazione di un indirizzo specifico è chiamata mappatura.
alien75 ha scritto:Cosa si intende di preciso per bufferizzazione?
L' utilizzo di una zona di memoria RAM per la memorizzazione temporanea di dati. Questi posso provenire da una tastiera o da una linea seriale per esempio, e rimangono in memoria in attesa di essere letti dal programma. Questo per fare in modo di non perdere nessun carattere e metterli a disposizione del programma principale che li andrà a leggere quando gli fa comodo.
alien75 ha scritto:Cosa fa di preciso nei dettagli la Subroutine di Risposta degli Interrupt?
Quando un sistema riceve un' interrupt interrompe la normale esecuzione del programma principale per eseguire una subroutine specifica. Questa subroutine farà un qualcosa e, terminato il lavoro, restituirà il controllo al programma principale. In pratica riprende il programma principale dal punto in cui l' aveva lasciato. La stessa cosa la fai tu quando ti squilla il telefono. Interrompi di fare quello che stavi facendo, rispondi al telefono (subroutine di servizio dell' interrupt) per poi ritornare, una volta finita la telefonata, a fare quello che stavi facendo prima.
alien75 ha scritto:Dove essa va a mettere il contenuto dei dati letti dalla tastiera? Li mette un carattere alla volta direttamente in qualche registro della CPU oppure li mette in qualche area della RAM dedicata alla periferica tastiera?
Solitamente in un buffer, una zona di memoria che contiene temporaneamente i dati ricevuti dalla tastiera.
Non li può mettere in un registro della CPU (oddio potrebbe anche farlo ma è da pazzi) perché l' interrupt arriva quando arriva, in un momento non prevedibile ed alterare i registri della CPU avrebbe effetti drammatici.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Vorrei chiedeti in quali rispettivi ambiti dei sistemi basati su z80 vengono impiegate le
tre modalita' di interrupt mascherato (modo0, modo1 e modo2) il modo0 e' ancora utilizzato?
Se si in quale ambito dei sistemi? Il modo2 immagino venga utilizzato negli ambiti in cui e' previsto il bisogno di molte periferiche I/O come i PLC?
Che modo viene utilizzato di solito nelle periferiche estraibili negli slot dei PC?
tre modalita' di interrupt mascherato (modo0, modo1 e modo2) il modo0 e' ancora utilizzato?
Se si in quale ambito dei sistemi? Il modo2 immagino venga utilizzato negli ambiti in cui e' previsto il bisogno di molte periferiche I/O come i PLC?
Che modo viene utilizzato di solito nelle periferiche estraibili negli slot dei PC?
0
voti
E chi se lo ricorda?

Il modo 0 (esecuzione di un' istruzione all' interrupt) che io sappia non è più utilizzato da nessun micro moderno.
Il modo 2 è un' interrupt classica a cui si fornisce l' indirizzo della ruotine di servizio. Non ha niente a che vedere con la velocità e l' applicazione. E' solo un modo di risposta che, invece di puntare ad un indirizzo specifico come nel modo 1 è più flessibile perché gli fornisci l' indirizzo della ruotine.
L' ultima domanda che hai fatto non mi pare abbia senso. Cosa c'entrano gli slot di un PC
con lo Z80 lo sai solo tu. 
Il modo 0 (esecuzione di un' istruzione all' interrupt) che io sappia non è più utilizzato da nessun micro moderno.
Il modo 2 è un' interrupt classica a cui si fornisce l' indirizzo della ruotine di servizio. Non ha niente a che vedere con la velocità e l' applicazione. E' solo un modo di risposta che, invece di puntare ad un indirizzo specifico come nel modo 1 è più flessibile perché gli fornisci l' indirizzo della ruotine.
L' ultima domanda che hai fatto non mi pare abbia senso. Cosa c'entrano gli slot di un PC

"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Una lettura ai datasheet vale più di ogni mia spiegazione. 
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
27 messaggi
• Pagina 3 di 3 • 1, 2, 3
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 7 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)
